Token basati su Stateless AEAD (AES-GCM)

1

Voglio generare token di dati sicuri che possono essere condivisi con il client per utilizzi come la reimpostazione della password, ecc. che comporta un sovraccarico di storage ridotto all'estremità del server. Idealmente, sono interessato solo alla gestione della chiave segreta.

Da quanto ho capito, AES-GCM ha bisogno di una chiave e di un nonce insieme ai dati (e facoltativamente dati aggiuntivi). Genera un testo Tag e Cipher dopo la crittografia.

Per decrittografare, sono necessari lo stesso Nonce, Key e Tag insieme a Cipher Text.

Naturalmente, la chiave deve essere tenuta segreta, ma voglio evitare il sovraccarico di memorizzazione di Nonce e Tag che a mio avviso sarebbe univoco per ciascun token di questo tipo.

È sicuro condividere il Nonce e Tag insieme a CipherText con il client?

Il client è solo per restituire il token e non leggerlo / temperarlo. Si tratta di app Web e puoi presumere che tutte le comunicazioni avvengano su TLS.

    
posta Anshul 06.02.2016 - 15:03
fonte

1 risposta

1

Crittografia web JSON essenzialmente lo fa. Inoltre, consente di selezionare diversi Content Encryption Key (CEK) per ciascun token.

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

Per il mio caso, potrei selezionare alg come dir in modo che CEK sia essenzialmente la chiave simmetrica che ho specificato e sarebbe esattamente ciò che volevo.

    
risposta data 06.02.2016 - 17:47
fonte

Leggi altre domande sui tag