PDA

Visualizza la versione completa : HMAC e algoritmi di crittografia


ciro78
01-12-2016, 18:56
Ciao ragazzi,
sono due ore che sono alle prese con un bel dilemma.

Il sistemista del mio cliente mi chiede di utilizzare algoritmi di crittografia SHA256 per la protezione dei dati.

Dopo essermi documentato a fondo ho letto che SHA256 è solo un sistema di hash e non utile per la crittografia. Dove 3des e AES sono i migliori cifrari in circolazione.

Sempre navigando ho visto che si parla di crittografia in accoppiata con HMAC SHA256.

Anche in questo caso mi pare di capire che si tratta di hash e quindi di elementi non reversibili.

Confermate ?

Grazie

ciro78
02-12-2016, 10:33
help

MItaly
04-12-2016, 03:52
Sono tutte robe che si usano per cose diverse... AES è 3DES sono algoritmi di cifratura simmetrica, HMAC è una procedura che usa una funzione di hash (a scelta) per garantire autenticità e integrità a messaggi, SHA256 è un algoritmo di hashing. Cosa ti serve dipende da cosa devi fare...

ciro78
04-12-2016, 14:06
io devo crittografare dei dati ma il cliente ha parlato di sha256. Mi ero documentato online ma volevo essere certo che il cliente avesse sbagliato.

Grazie mille per la conferma

Scara95
04-12-2016, 14:53
Puoi usarlo al più per le password, certo sha256 da solo è un po' "debole"

MItaly
04-12-2016, 20:19
io devo crittografare dei dati ma il cliente ha parlato di sha256. Mi ero documentato online ma volevo essere certo che il cliente avesse sbagliato.
Se sta parlando di crittografare dati la richiesta non ha senso - da un hash non torni indietro; ma se sta parlando di password la richiesta è sensatissima - le password non vanno mai memorizzate in chiaro, ma come hash con salt. Quando l'utente vuole effettuare il login, ri-hashi (con salt) la password che ti dà, e confronti se il risultato è uguale all'hash memorizzato.

Puoi usarlo al più per le password, certo sha256 da solo è un po' "debole"
Be' oddio, SHA-256 è uno degli hash più robusti in circolazione, certo per evitare attacchi di lookup inverso/rainbow table ovviamente bisogna aggiungerci del salt casuale, ma questo lo sanno anche i bambini ormai. :D Poi se vogliamo essere paranoici si può fare il giochino di applicare la funzione di hash n volte (stile PBKDF2) per rendere più lento un eventuale bruteforce di ordini di grandezza, ma anche solo avere un hash robusto con salt credo sia meglio del 95% del software che c'è in giro. :mame:

Scara95
04-12-2016, 20:48
Be' oddio, SHA-256 è uno degli hash più robusti in circolazione, certo per evitare attacchi di lookup inverso/rainbow table ovviamente bisogna aggiungerci del salt casuale, ma questo lo sanno anche i bambini ormai. :D Poi se vogliamo essere paranoici si può fare il giochino di applicare la funzione di hash n volte (stile PBKDF2) per rendere più lento un eventuale bruteforce di ordini di grandezza, ma anche solo avere un hash robusto con salt credo sia meglio del 95% del software che c'è in giro. :mame:
Era esattamente questo quello a cui mi riferivo, ma ero di fretta, infatti avevo messo debole fra virgolette. Poi mi sono dimenticato di completare.
Riguardo a lo sanno anche i bambini, mai dare nulla per scontato.

MItaly
04-12-2016, 22:07
Era esattamente questo quello a cui mi riferivo, ma ero di fretta, infatti avevo messo debole fra virgolette. Poi mi sono dimenticato di completare.
Riguardo a lo sanno anche i bambini, mai dare nulla per scontato.
Sì, vedendo cosa si trova in giro non posso darti torto. :stordita:

ciro78
05-12-2016, 10:41
Ciao,
il fatto che le password mi servono in chiaro. Mi servono per connettermi ad un db di tipo oracle.

Non ha senso quindi usare hash non credi?

D'accordo che in un sistema di login posso hashare le password e fare il confronto recuperando il valore dal db e facendo l'hash di quello che manda l'utente. Ma se i dati servono per effettuare connessioni ssh/ db etc?

Scara95
06-12-2016, 11:37
Più che altro non puoi mai farlo se ti interessa la stringa originale, ovviamente.

Loading