sistema OTP Lamport

2

¿El algoritmo OTP de Lamport es diferente de HOTP y TOTP? ¿Qué tan similares o diferentes son?

    
pregunta user2497094 05.06.2015 - 06:14
fuente

2 respuestas

3

HOTP y TOTP son similares. Lamport OTP es diferente.

Un HOTP es un HMAC de un secreto compartido y un contador. Por ejemplo, en su Nth login usted usaría HMAC(SHARED SECRET, N) . Esto proporciona una gran seguridad, pero puede sufrir los desajustes entre el cliente y el servidor. También tiene el problema de que el próximo HOTP es de larga duración. Es decir, es válido hasta que se utiliza. Esto puede dar a un atacante un tiempo considerable para intentar adivinarlo.

Un TOTP es un HMAC de un secreto compartido y la hora actual. Para nuestra discusión, asumiremos que la contraseña cambia cada 60 segundos. Como ejemplo, un inicio de sesión que se produzca el 2015-06-05 05:33 GMT, usaría HMAC(SHARED SECRET, 201506050533) . A diferencia del HOTP, no hay un contador que desincronice (es justo asumir que los relojes se sincronizan con unos pocos segundos de diferencia). Además, cada contraseña solo dura un minuto, por lo que un atacante que esté tratando de adivinar el TOTP debe encontrarla dentro de los 60 segundos o debe comenzar a adivinar nuevamente.

A Lamport OTP es un poco diferente a HOTP y TOTP. Una OTP Lamport no requiere un secreto compartido. Los OTP de Lamport se utilizan para validar una serie de inicios de sesión sucesivos. Para nuestro ejemplo, supongamos que tenemos una función hash H (elige tu favorita). Los OTP de Lamport tienen la propiedad de que el Nth OTP, escrito OTP(N) es H(OTP(N+1)) . Esto significa que si el servidor recuerda que la última OTP fue X , cuando recibe la siguiente OTP Y , puede validar que es correcta asegurando que X sea igual a H(Y) . Si es correcto, el servidor permitirá el inicio de sesión y almacenará Y para usar en el siguiente inicio de sesión. El servidor obtiene la OTP inicial del cliente cuando el cliente inicia sesión por primera vez.

En el extremo del cliente, el cliente comienza por elegir un valor semilla. Luego calcula H(SEED) , H(H(SEED)) , ... Digamos para 1000 iteraciones. Almacena toda la secuencia. Cuando primero inicia sesión en el servidor, le pasa el valor 1000. La próxima vez que le pase el valor 999 y así sucesivamente. Debido a que los algoritmos hash no son fácilmente reversibles, un observador que ve cualquier OTP específica no puede calcular la próxima OTP, ya que eso requeriría que se invierta el hash.

Cuando la cadena de OTP de Lamport se agote (por ejemplo, después de que se usen los 1000), el cliente debe crear una nueva semilla, calcular una nueva cadena y pasar el último valor al servidor. Si bien no es un requisito de las OTP de Lamport, uno podría imaginar que un inicio de sesión que está pasando el último último valor de una cadena requeriría una autenticación de 2 factores, mientras que los inicios de sesión que utilizan la próxima OTP de Lamport solo requieren un factor. >

Si bien todos estos tienen la palabra "contraseña" en su nombre, se pueden usar para fines distintos de los inicios de sesión. Por ejemplo, este artículo describe el uso de OTP de Lamport para autenticar mensajes sucesivos en una conversación.

    
respondido por el Neil Smithline 05.06.2015 - 06:59
fuente
0

Creo que hay una diferencia conceptual entre lamport OTP y OATH HOTP / TOTP.

Eche un vistazo a RFC1938, que usted prueba al referirse a Lamport OTP. Fue publicado en 1996 y está basado en [1]

[1] Leslie Lamport, "Autenticación de contraseña con inseguro        Comunicación ", Comunicaciones de la ACM 24.11 (noviembre        1981), 770-772

En realidad, hay herramientas para calcular dichos valores OTP "OUST COAT FOAL MUG BEAK TOTE" y para iniciar sesión como, digamos SSH. Experimenté con eso hace varios años. Dicho valor OTP se calcula en función del número de iteración y la contraseña que ingresa para calcular el valor OTP.

HOTP / TOTP (RFC4226) se calcula en base a una clave secreta, generalmente almacenada en hardware. Al menos todos los escritores participantes de RFC4226 son ... ... proveedores de hardware.

A mi entender, Lamport OTP y OATH HOTP / TOTP tienen objetivos totalmente diferentes. Aunque SSL 1.0 se publicó en 1994, el número RFC para SSL es 2246, que es significativamente más alto que 1938 ;-) El objetivo de Lamport OTP era evitar los ataques de repetición de contraseñas en conexiones inseguras. Ver también el abstarct de RFC 1936.

En contraste, HOTP / TOTP está diseñado para introducir un segundo factor para la autenticación, donde la clave secreta se almacenó originalmente en el hardware fuera de línea. Lamport OTP generó la OTP basándose en un factor "frase de contraseña" y fue solo para evitar enviar la contraseña por el cable.

    
respondido por el cornelinux 06.03.2017 - 23:11
fuente

Lea otras preguntas en las etiquetas