Modo corretto per combinare più segreti in una chiave HMAC?

3

Sto utilizzando HMAC + SHA256 per firmare e verificare le attestazioni in un'applicazione web. Ogni distribuzione ha il suo segreto crittografico a 512 bit che posso usare come chiave HMAC, ma in alcuni casi voglio mescolare anche un altro segreto. Ad esempio, mescolando la password hash dell'utente come parte della chiave, il token diventa non valido non appena l'utente cambia la password, il che è utile per i link di reimpostazione della password.

La mia domanda principale è: Qual è il modo corretto di mescolare più segreti insieme per formare una chiave HMAC?

Una possibilità è di concatenare i segreti insieme, ma ho già raggiunto la lunghezza massima effettiva della chiave di HMAC + SHA256 con il mio segreto a livello di istanza a 512 bit. XOR è un'alternativa migliore?

O c'è un modo migliore per unire più chiavi insieme, come ad esempio l'annidamento delle chiamate HMAC? Per esempio. HMAC(HMAC(claims, secret1), secret2) ?

Come domanda secondaria: È opportuno farlo in primo luogo? Mi piace poter dire che se X segreta cambia, allora il token è automaticamente non valido, senza esporre il segreto come richiesta . Firmare il token con più segreti sembra un ottimo modo per farlo. Ci sono delle preoccupazioni di cui dovrei essere a conoscenza, usando i segreti (in particolare la password hash dell'utente) in questo modo?

    
posta Carl Leth 09.04.2018 - 22:36
fonte

0 risposte

Leggi altre domande sui tag