Aggiunge una quantità di sale prima che la generazione di hash sia sufficiente

4

Ho quello che penso sia un meccanismo salino / hashing generato in modo sicuro per l'autenticazione HMAC basata su SHA256 in posizione. Tuttavia, sto usando il sale in, da quello che posso vedere, un modo abbastanza standard di accodare il resto del token prima della generazione di hash in questo modo;

// conceptual, not actual code...
var saltedToken = token + salt;
var hash = HashGenerator.Get(saltedToken);

Ma è sufficiente aggiungere abbastanza sale per essere sicuro o dovrei fare qualcosa di più con esso, ad es. applicare il sale come operazione XOR sul resto del token, ecc. Questa risposta implica che mettere il sale a l'avvio potrebbe essere insicuro in alcuni algoritmi di hashing ma non sono sicuro.

L'approccio "append sale" è abbastanza semplice? O ho bisogno di scramble ulteriormente prima di hashing?

    
posta DiskJunky 01.11.2017 - 11:56
fonte

1 risposta

5

Non è necessario salare in HMAC, per mia migliore comprensione. Salting previene le tabelle arcobaleno di oggetti comuni con hash: nel caso delle password, questo è perché ci sono molte persone con la stessa password, troppo spesso. In un algoritmo HMAC, stai triturando un messaggio e una chiave segreta, concatenati in un modo specifico. Questo non è qualcosa per cui ci sarà un tavolo arcobaleno, quindi la salatura non è necessaria. La risposta che vedi ha a che fare con l'hashing della password, non con HMAC.

Il link è probabilmente come lo si vuole fare - ma in realtà, implementare questo tipo di cose da soli raramente è ciò che voglio fare. Usa le librerie per le funzioni crittografiche, scegliendo quelle che sono state studiate e riviste dai crittografi.

Le domande più dettagliate sono probabilmente le più consigliate in crypto.stackexchange.com, piuttosto che qui

MODIFICA per chiarire: nota che per un hash lineare hai HASH (messaggio) - il messaggio ha solo una parte. Quando parli di prependere un sale, allora è HASH (CONCATENATE (cancelletto, messaggio)). Quando è installato un HMAC RFC2104, si dispone di HMAC (chiave, messaggio). PBKDF2, definito in RFC2898 PKCS # 5 , usa HMAC con salt, messaggio, dove si applica qualche matematica aggiuntiva che l'output di ogni iterazione HMAC si nutra nel prossimo round HMAC.

    
risposta data 01.11.2017 - 15:08
fonte

Leggi altre domande sui tag