¿HMAC-SHA256 y HMAC-SHA512 pueden actuar como reemplazo en lugar de HMAC-SHA1 en HOTP / TOTP?

5

En RFC 4226, el algoritmo para HOTP se describe a continuación.

  

HOTP (K, C) = Truncate (HMAC-SHA-1 (K, C))

TOTP es esencialmente el mismo algoritmo que HOTP, excepto por el hecho de que el contador C se reemplaza por un número entero derivado de la hora actual. En las palabras de RFC 6238,

  

Básicamente, definimos TOTP como TOTP = HOTP (K, T), donde T es un número entero      y representa el número de pasos de tiempo entre el contador inicial      tiempo T0 y el tiempo actual de Unix.

Sin embargo, el código de referencia descrito en RFC 6238, así como los valores de prueba listados en el Apéndice B tienen referencia a HMAC-SHA256 y HMAC-SHA512 . Sin embargo, los dos algoritmos no se mencionan en ningún otro lugar, ya sea en RFC 4226 o RFC 6238.

Mi pregunta: ¿Se admite oficialmente HMAC-SHA256 y HMAC-SHA512 como variantes de los algoritmos HOTP y TOTP?

    
pregunta Ayrx 22.11.2013 - 13:19
fuente

2 respuestas

3

Obviamente, estos dos algoritmos hash no son compatibles con el estándar. De hecho, SHA-1 se usa en casi todas partes en RFC 4226, por lo que si lo reemplaza con otro hash, implementará un sistema diferente.

Además, me pregunto cuál sería la idea detrás de esto: la implementación exige que se trunque el resultado del HMAC y el HMAC inicial utiliza un secreto muy breve: el uso de un algoritmo hash diferente aquí no mejoraría la seguridad, pero lo haría incompatible con las aplicaciones y tokens existentes.

editar: RFC 4226 es bastante claro sobre qué algoritmo puede usar: HMAC-SHA-1 (sección 5.2), por lo tanto, si debe ser compatible con RFC 4226, no puede usar nada más.

RFC 6238, por otro lado, abre la puerta al uso de SHA-256 y SHA-512 (en la sección 1.2).

Por lo tanto, parece que todo depende de sus requisitos: si está implementando RFC4226 (HOTP) o debe ser compatible con él, no puede usar nada más que HMAC-SHA-1. Sin embargo, si está implementando RFC 6238 (TOTP), el uso de HMAC-SHA-256 o HMAC-SHA-512 está dentro del alcance de la norma.

    
respondido por el Stephane 22.11.2013 - 14:13
fuente
4

No es solo el ejemplo de código y los valores de prueba, incluso está explícitamente en RFC 6238 :

  

Las implementaciones de TOTP PUEDEN usar las funciones HMAC-SHA-256 o HMAC-SHA-512,   basado en SHA-256 o SHA-512 [SHA2] funciones hash, en lugar de las funciones hash   Función HMAC-SHA-1 que se ha especificado para el cálculo de HOTP   en [RFC4226].

Entonces, sí.

Mi suposición inexperta pero ligeramente educada sería que no hay nada de malo en usarlos incluso con HOTP (aunque el RFC no lo dice explícitamente). Después de todo, HOTP y TOPT son prácticamente lo mismo.

    
respondido por el Adi 22.11.2013 - 14:41
fuente

Lea otras preguntas en las etiquetas