6 votos

¿Por qué el comportamiento de los dígitos de dos factores de TOTP es diferente entre las implementaciones de Android e iOS de Google Authenticator?

Tengo el siguiente código QR generado desde mi aplicación para que los usuarios puedan utilizar sus teléfonos para una OTP basada en el tiempo. En el caso de Google Authenticator en iOS, al escanear el código QR correctamente se genera una OTP de ocho caracteres basada en el tiempo cada 30 segundos. Sin embargo, en el mismo Google Authenticator en Android, genera incorrectamente una cadena de seis caracteres en su lugar.

He proporcionado la cadena de muestra y el código QR a continuación (es de un sistema de prueba) - ¿alguien sabe por qué la implementación de la funcionalidad difiere entre la misma aplicación exacta en Android y iOS, o, alternativamente, donde puedo encontrar la documentación del desarrollador para cualquiera de los otpauth o el propio Google Authenticator (ambos parecen escasos y he tenido que coger lo que he podido de los tutoriales)?

Ejemplo de cadena: otpauth://totp/test@email.com?secret=GQ2DOMBXGRCDCMRSIVBEEOJSGMZEEQ2F&issuer=TestApplication&algorithm=SHA256&digits=8&period=30

Ejemplo de código QR:

9voto

Andrew T. Puntos 2107

Aunque la versión de Play Store de Google Authenticator es propia, también existe una versión de código abierto .

Navegando por su wiki para Formato de la clave Uri hay una observación para digits parámetro.

Dígitos

OPCIÓN: : El digits puede tener los valores 6 u 8, y determina la longitud del código de acceso único que se mostrará al usuario. El valor por defecto es 6.

Actualmente, en Android y Blackberry el parámetro dígitos es ignorado por la implementación de Google Authenticator.

Así que, aparentemente, el digits se ignora en la versión de Android (junto con otros parámetros opcionales como algorithm y period que se ignoran en todas las plataformas).

Por más que he intentado buscar la razón específica por la que no se implementa, no he podido encontrarla.

0 votos

Gracias por eso - qué cosa más rara para ser diferente entre las dos versiones. Marcaré esto como la respuesta aceptada. Parece que vamos a recomendar a nuestros usuarios una aplicación diferente que funcione correctamente en ambas plataformas...

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X