A che serve utilizzare più algoritmi di checksum con "aiutante"?

5

In aide l'autore offre più di un algoritmo di hash per fare il check-sum, perché è così?

Non sono uno solo, abbastanza% co_de per determinare le modifiche ai file? Credo che questi algoritmi siano tutti testati nell'area matematica, non dovrebbe essere un problema qui, sbaglio?

    
posta daisy 03.01.2013 - 16:30
fonte

2 risposte

6

Ci sono pochi motivi per usare più di un hash allo stesso tempo. Non ci sono collisioni note contro SHA-2. In teoria l'utilizzo contemporaneo di più dispositivi può essere un'assicurazione contro gli attacchi alla funzione hash, ma non credo che questo sia un grosso problema per AIDE.

Ma consentire la scelta può essere utile. L'impostazione predefinita corrente potrebbe rompersi a un certo punto. Una volta che succede, cambiare l'hash in un file di configurazione è più facile che lanciare una nuova versione del software.

Gli hash hanno anche caratteristiche di performance diverse. Ad esempio, SHA-256 è più veloce di SHA-512 su sistemi a 32 bit, ma più lento su sistemi a 64 bit. Quindi potresti voler scegliere quello che corrisponde all'architettura della tua CPU.
Oppure, se hai bisogno di prestazioni elevate (ad esempio, usi i RAID SSD), puoi utilizzare hash più veloci che non sono approvati dal NIST.

    
risposta data 03.01.2013 - 16:36
fonte
4

Per aggiungere alcune informazioni sulla buona risposta di @ CodesInChaos:

Usare diversi hash simultaneamente è stato suggerito come un modo per far fronte alle future debolezze delle funzioni hash. Ad esempio, hai hash con MD5 e con SHA-1, in modo che il tuo sistema rimanga solido anche se uno di essi si rompe (a prescindere da quale sia rotto). Questo equivale a definire una nuova funzione di hash (chiamiamola SHAMD-51) che offre come output la concatenazione di ciò che SHA-1 e MD5, rispettivamente, produrrebbero sui dati di input.

È facile vedere che la concatenazione ti darà una funzione che sarà almeno resistente alla collisione come la più strong delle due. Sfortunatamente, la resistenza alle pre-immagini sarà più vicina a quella delle più deboli delle due funzioni. In generale, la concatenazione non è un buon modo per costruire funzioni hash: non vale la pena spendere i tuoi soldi, cioè non tanto la sicurezza che potresti pretendere, dato il tuo sforzo di elaborazione e la dimensione dell'output con cui devi fare i conti. Vedi questa risposta per qualche altro analisi e puntatori.

Offrire la scelta tra diverse funzioni di hash è molto meglio, poiché ti consente di selezionarne una che corrisponda alla tua architettura, per prestazioni migliori. Nota che l'hashing tende ad essere comunque veloce; quando esegui l'hashing di file dal disco o dati dalla rete, la funzione di hash è raramente il collo di bottiglia. Per quanto riguarda tutti i problemi di prestazioni, la prima cosa da fare è misurare : non ci sono problemi di prestazioni a meno che uno non sia stato rilevato e quantificato in modo affidabile.

La scelta della funzione di hash è anche chiara quando devi rispettare regole inflessibili (che potrebbero imporre l'uso di una funzione "Approvato", con una lettera maiuscola).

In pratica, molti sistemi in cui più funzioni hash possono essere utilizzate insieme lo fanno a causa di alcune convinzioni irrazionali che la crittografia è come il ranch che può rendere commestibile il peggior roadkill purché ne aggiunga abbastanza.

Nota: non esiste alcuna prova matematica che una determinata funzione di hash sia sicura. In realtà, non c'è prova matematica che possa esistere una cosa come una funzione di hash sicura. Il meglio che abbiamo sono le funzioni di hash che sono state utilizzate "in the wild" per molto tempo e sono sopravvissute agli assalti sfrenati di orde di crittografi infuriati. Le funzioni SHA-2 (SHA-256, SHA-512) sono tali funzioni.

    
risposta data 03.01.2013 - 17:42
fonte

Leggi altre domande sui tag