Pregunta

Me pregunto si puedo usar una clave secreta compartida que se establece entre dos clientes como la clave HMAC también.

he visto que no es un problema cuando se utiliza como un CBC-MAC, pero no he encontrado ninguna evidencia que es una mala práctica para HMAC.

Gracias, Vladimir

¿Fue útil?

Solución

Creo que es actualmente en la categoría de "parece probablemente bien, pero ¿por qué correr el riesgo?".

La mejor práctica es tener cada lado generan dos nuevas claves de la clave secreta compartida:

encryption-key := HMAC(shared-key, "Encryption Nonce")
hmac-key := HMAC(shared-key, "Authenticity Nonce")

Otros consejos

Como CAF eludió. Una de las formas correctas de hacer esto es para discutir la clave secreta compartida con algunos datos adicionales.

Por ejemplo:

enc-key = HASH(shared-key || 1)
hmac-key = HASH(share-key || 2)

Esto tiene la ventaja de no tener que transferir 2 nonces adicionales, además de ser fácil de implementar.

No utilizaría la misma clave en diferentes funciones (ENC + HMAC). Eso es buscar problemas y una mala idea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top