¿Cómo funciona realmente la “clave segura” de HSBC?

43

Mi banco me ha enviado recientemente una clave Digipass / Secure, que parece una calculadora pequeña . Presiona el botón verde para activarlo, escribe un PIN para desbloquearlo, luego presiona el botón verde nuevamente para generar un código de 6 dígitos que escribes al iniciar sesión.

Sin embargo, no entiendo realmente cómo este dispositivo aumenta la seguridad. Supongo que todos los dispositivos están vinculados a la cuenta de una persona. Pero no hay comunicación desde el dispositivo. Puedo presionar el botón 10 veces y generar 10 códigos diferentes, cualquiera de los cuales parece funcionar.

¿Cómo sabe el banco que el código es genuino?

    
pregunta DisgruntledGoat 12.11.2012 - 02:05
fuente

3 respuestas

44

Hay dos formas estándar de construir un dispositivo de este tipo:

  • Basado en el tiempo. El dispositivo tiene una clave secreta K (conocida solo para el dispositivo y para su banco). Cuando presiona el botón, el dispositivo calcula F (K, T) (donde T es la hora actual) y lo envía como un código de 6 dígitos.

    Su banco, que también sabe K , puede calcular la misma función. Para lidiar con el hecho de que los relojes pueden no estar perfectamente sincronizados, el banco calculará un rango de valores y verificará si el código de 6 dígitos que usted proporciona cae en algún lugar dentro de ese rango. En otras palabras, el banco podría calcular F (K, T-2) , F (K, T-1) , F (K, T) , F (K, T + 1) , F (K, T + 2) , y si el código que proporciona coincide con cualquiera de esos 5 valores, el El banco acepta su nombre de usuario.

    Sospecho que no es así como funciona tu dispositivo , ya que tu dispositivo siempre te da un valor diferente cada vez que presionas el botón.

  • Basado en secuencia. El dispositivo tiene una clave secreta K (conocida solo para el dispositivo y para su banco). También contiene un contador C , que cuenta cuántas veces ha presionado el botón hasta ahora. C se almacena en la memoria no volátil de su dispositivo. Cuando presiona el botón, el dispositivo incrementa C , calcula F (K, C) y lo emite como un código de 6 dígitos. Esto garantiza que recibas un código diferente cada vez.

    El banco también rastrea el valor actual del contador para su dispositivo, y lo usa para reconocer si el código de 6 dígitos que proporcionó es válido. A menudo, el banco probará una ventana de valores. Por ejemplo, si el último valor de contador que vio fue C , entonces el banco podría calcular F (K, C + 1) , F (K, C + 2) , F (K, C + 3) , F (K, C + 4) y acepte su código de 6 dígitos si coincide con cualquiera de esas cuatro posibilidades. Esto ayuda a garantizar que si presiona el botón una vez y luego no lo envía al banco, aún puede iniciar sesión (no está bloqueado para siempre). En algunos esquemas, si hay una brecha en los códigos (por ejemplo, porque presionó el botón varias veces y luego no envió el código al banco), deberá ingresar dos códigos válidos consecutivos antes de que el banco lo registre. en.

Según lo que nos ha dicho, supongo que su dispositivo probablemente esté utilizando el enfoque basado en secuencias.

    
respondido por el D.W. 12.11.2012 - 04:08
fuente
9

Si desea una explicación 'abierta' de cómo se deriva la contraseña de un solo uso, puede leer sobre el estándar de juramento y la especificación del algoritmo aquí, enlace . El producto Vasco / Digipass es compatible con esta especificación, y su token puede utilizarlo en este caso, sin embargo, sí admiten otros algoritmos de generación de OTP.

Normalmente, el número de serie del token se mantiene como un registro en la base de datos del servidor de autenticación y el número de serie se asigna a un nombre de usuario. El número de serie también se compara con un valor 'inicial', que cuando se combina a través del algoritmo con el valor de tiempo / secuencia deriva la OTP.

También, pudo introducir un PIN una y otra vez y ser autenticado porque el servidor de autenticación permitirá un par de minutos de desviación del reloj. El token que tiene tiene un reloj incorporado para generar el componente basado en el tiempo. El servidor genera valores por un intervalo de tiempo. A continuación, puede ver qué código envía y escribir un valor de deriva en su registro. Algunos sistemas tendrán un modo 'next-tokencode', que se usa si los relojes se alejan demasiado. El sistema le pedirá que envíe dos valores y vea si son correctos y en el orden correcto, en un "intervalo" de tiempo mayor. Si los valores son correctos, el servidor de autenticación puede escribir el valor de deriva del reloj en el registro.

    
respondido por el Fearmonger 12.11.2012 - 16:16
fuente
4

Creo que esta pregunta se presta a una visión general de muy alto nivel sobre cómo la autenticación multifactor ( MFA ) trabajos. Por supuesto, tenemos que hojear lotes y lotes de detalles técnicos.

En resumen, esto es lo que sucede:

  1. El banco programa el token con una clave encriptación única . (En este caso, su token Digipass está hecho por Vasco, pero hay muchos other compañías que hacen tokens similares, que son" algo que tienes "con respecto a la autenticación de múltiples factores).

  2. El token generará una serie de caracteres que se derivan de la clave de cifrado, la hora actual y (opcionalmente) otros factores diversos.

  3. Como el banco conoce la clave de cifrado (única) y todos los demás factores que utiliza el token, pueden aplicar ingeniería inversa a la entrada para averiguar quién "posee" ese token. Si el propietario del token coincide con el propietario de la cuenta bancaria a la que se está conectando, el inicio de sesión es auténtico.

Hay muchas variaciones en este tema central, pero en general siempre involucran "algo que tienes" (un token físico o una aplicación de teléfono inteligente), una clave secreta almacenada dentro del token y un algoritmo matemático para producir la salida .

A menudo, el tiempo es un factor crítico para generar la salida. Dependiendo del algoritmo, la salida puede ser diferente cada vez (en su caso), o puede variar solo ocasionalmente (por ejemplo, cada hora).

    
respondido por el scuzzy-delta 12.11.2012 - 03:56
fuente

Lea otras preguntas en las etiquetas