Fichas basadas en AEAD sin estado (AES-GCM)

1

Quiero generar tokens de datos seguros que se pueden compartir con el cliente para usos como restablecimiento de contraseñas, etc., lo que implica una baja sobrecarga de almacenamiento al final del servidor. Idealmente, solo me interesa administrar la clave secreta.

Por lo que entiendo, AES-GCM necesita una clave y un Nonce junto con los datos (y opcionalmente los datos adicionales). Genera una etiqueta y texto de cifrado después del cifrado.

Para descifrar, se necesitan el mismo Nonce, la clave y la etiqueta junto con el texto cifrado.

Por supuesto, la clave debe mantenerse en secreto, pero quiero evitar la sobrecarga de almacenar el Nonce y la etiqueta que, según tengo entendido, serían exclusivos de cada token.

¿Es seguro compartir el Nonce y la etiqueta junto con CipherText con el cliente?

Se supone que el cliente devuelve el token y no lo lee / modera. Es para aplicaciones web y puede asumir que toda la comunicación se realiza a través de TLS.

    
pregunta Anshul 06.02.2016 - 15:03
fuente

1 respuesta

1

JSON Web Encryption esencialmente hace esto. Además, le permite seleccionar diferentes Claves de cifrado de contenido (CEK) para cada token.

BASE64URL(UTF8(JWE Protected Header)) || '.' || 
BASE64URL(JWE Encrypted Key) || '.' || 
BASE64URL(JWE Initialization Vector) || '.' || 
BASE64URL(JWE Ciphertext) || '.' || 
BASE64URL(JWE Authentication Tag)

En mi caso, podría seleccionar alg como dir para que CEK sea esencialmente la clave simétrica que especifico y sería precisamente lo que quería.

    
respondido por el Anshul 06.02.2016 - 17:47
fuente

Lea otras preguntas en las etiquetas