6 votes

Pourquoi le comportement des chiffres à deux facteurs TOTP est-il différent entre les implémentations Android et iOS de Google Authenticator ?

J'ai généré le code QR ci-dessous à partir de mon application afin que les utilisateurs puissent utiliser leur téléphone pour un OTP basé sur le temps. Pour Google Authenticator dans iOS, la numérisation correcte du code QR entraîne la génération d'un OTP temporel de huit caractères toutes les 30 secondes. Cependant, sur le même Google Authenticator dans Android, il génère incorrectement une chaîne de six caractères à la place.

J'ai fourni l'exemple de chaîne et de code QR ci-dessous (il provient d'un système de test). Quelqu'un sait-il pourquoi l'implémentation de la fonctionnalité diffère entre la même application sur Android et iOS, ou bien où je peux trouver la documentation du développeur pour l'un ou l'autre des deux systèmes ? otpauth ou Google Authenticator lui-même (les deux semblent peu répandus et j'ai dû me contenter de tutoriels) ?

Exemple de chaîne de caractères : otpauth://totp/test@email.com?secret=GQ2DOMBXGRCDCMRSIVBEEOJSGMZEEQ2F&issuer=TestApplication&algorithm=SHA256&digits=8&period=30

Exemple de code QR :

9voto

Andrew T. Points 12017

Alors que la version Play Store de Google Authenticator est propriétaire, il existe également une version open-source .

En parcourant son wiki pour Format de l'Uri de la clé il y a une remarque pour digits paramètre.

Chiffres

OPTIONNEL : Le site digits peut avoir les valeurs 6 ou 8, et détermine la longueur du code de passe à usage unique à afficher à l'utilisateur. La valeur par défaut est 6.

Actuellement, sur Android et Blackberry, le paramètre digits est ignoré par l'implémentation de Google Authenticator.

Donc, apparemment, le digits est ignoré dans la version Android (tout comme les autres paramètres facultatifs tels que algorithm y period qui sont ignorées sur toutes les plateformes).

J'ai eu beau chercher la raison spécifique pour laquelle elle n'est pas mise en œuvre, je ne l'ai pas trouvée.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X