¿Cómo se generan las contraseñas de un solo uso para los sitios web?

OTP (contraseña única) es una contraseña válida solo para una interacción, sesión o transacción. La mayoría de las contraseñas de los usuarios son lógicas: usan fechas, números, apellidos y se pueden supervisar, robar o incluso adivinar fácilmente. OTP es más seguro que la contraseña estática, ya que se genera automáticamente. Las OTP se pueden usar en lugar de las contraseñas estáticas o se pueden usar como una capa adicional de seguridad.

Se pueden usar diferentes formas para obtener una OTP. Puede entregarse por SMS y correo electrónico o generarse mediante el token de hardware o software. Uno de los siguientes algoritmos se utiliza para generar un OTP: TOTP, HOTP u OCRA.

Consideremos la situación en la que el token de hardware o software genera la OTP. El token y el servidor conocen la misma clave secreta (semilla), por lo que generan la misma OTP. El token genera el OTP y el servidor verifica si es correcto. Cuando se utiliza el algoritmo TOTP, la OTP es válida solo por un corto período de tiempo (generalmente, 30 o 60 segundos). En el caso del algoritmo HOTP, la OTP es válida hasta que no se haya utilizado. Si la OTP que ingresa es correcta, obtiene acceso a su cuenta.

Una OTP, o contraseña de un solo uso en su totalidad, es una solución utilizada para proteger servicios basados ​​en web, credenciales privadas y datos. Más específicamente, es una cadena de caracteres o números generados automáticamente para usarse en un solo intento de inicio de sesión. Estos pueden enviarse al teléfono del usuario a través de SMS o mensajes Push.

La idea general de una contraseña de un solo uso es agregar una segunda capa de autenticación para adelantarse al delito cibernético y proteger a su organización contra los efectos catastróficos del fraude en su negocio. El riesgo de fraude se reduce drásticamente si el usuario no solo tiene que completar su nombre de usuario y contraseña (algo que sabe) sino que también necesita algo que “tiene” para completar el inicio de sesión. Este ‘algo’ puede ser el teléfono del usuario.

Fuente: ¿Qué es una OTP?

Las contraseñas de un solo uso son contraseñas válidas para una sesión o transacción. La generación de una contraseña única requiere una función hash criptográfica (H) y una semilla generada aleatoriamente (W). Se utiliza un esquema de cadena hash para generar contraseñas sucesivas. Los pasos son:

  • El usuario o el servidor generan una clave secreta (W).
  • Supongamos que se deben generar n contraseñas. El servidor aplica la función hash n veces para obtener [matemáticas] H ^ n (W). [/ Matemáticas]
  • W se descarta.
  • Se proporciona al usuario [matemática] H ^ i (W) [/ matemática]. Para la autenticación, el servidor verifica la contraseña proporcionada por el usuario aplicando H en [matemáticas] H ^ i (W) [/ matemáticas] [matemáticas] H ^ {(ni)} [/ matemáticas] veces. Si coincide con [matemática] H ^ n (W) [/ matemática], la contraseña proporcionada por el usuario es correcta.
  • El servidor almacena solo [matemáticas] H ^ n (W) [/ matemáticas]. Distribuye [matemática] H ^ 1 (W) …………… H ​​^ (n-1) (W) [/ matemática] a los usuarios.

    Fuentes:

    1. http://en.wikipedia.org/wiki/Tiene
    2. http://en.wikipedia.org/wiki/S/KEY

Wikipedia tiene la información necesaria sobre esto, junto con enlaces relevantes para lecturas adicionales.
http://en.wikipedia.org/wiki/One

Hay tres algoritmos principales para OTP
HOTP: función hash basada en un secreto compartido y un contador
TOTP: igual que HOTP, pero en lugar de servidor de contador y token de autenticación, use tiempo relativo
OCRA: el servidor de protocolo basado en respuesta de desafío envía un desafío al autenticador y el autenticador firma en él. Más seguro y bueno para pagos