Informazioni su SHA1 in Disk Encryption predefinita in Linux

2

Link alla discussione: Opzioni raccomandate per LUKS (cryptsetup)

Mi chiedo quale sia la differenza esatta tra SHA1 e SHA512. So che SHA512 ha una chiave più lunga, ma ho letto che non importa quale è stato scelto perché LUKS esegue il loop dell'Hash fino a quando non è trascorso 1 secondo in tempo reale.

Quindi perché ci sono anche le opzioni per SHA512, Whirlpool o SHA256? Qual è la differenza? Sembra che non ce n'è uno. Sono un po 'confuso.

    
posta user284148 15.01.2015 - 15:02
fonte

3 risposte

1

Consentitemi di utilizzare una risposta per spiegare le differenze tra l'allungamento delle chiavi e l'hashing, anche se questa non è una risposta alla vostra domanda.

Non ho intenzione di utilizzare un esempio di collisione reale, perché non so cosa siano, quindi i miei esempi di hash saranno puramente casuali.

Immagina che la tua password sia pass123 , lascia sha1Result = sha1('pass123') .

Una collisione si ha quando bksdajfdjfaskf può anche essere usato, dove sha1Result also = sha1('bksdajfdjfaskf') .

Un KDF è un ciclo di feedback, dove sha1Result2 = sha1(sha1Result) e sha1Result3 = sha1(sha1Result2) e così via n numero di volte.

La seguente funzione KDF() sarà KDF(password, hash-algorithm, iteration-count)

Lascia kdfResult = KDF('pass123', SHA1, 100,000) .

Consenti kdfResult also = sha1('jadfjlkdfjasldfjskdf') perché abbiamo una collisione, sort-of, ma non proprio.

Perché per accedere al mio sistema, devi passare attraverso il mio KDF() , solo avere una collisione sha1() del mio KDF() non ti aiuta, perché non lo faccio sha1() del testo in chiaro fornito per poterti autenticare, I KDF() del testo in chiaro fornito e KDF('jadfjlkdfjasldfjskdf', SHA1, 100,000) non corrisponde a KDF('pass123', SHA1, 100,000) .

Questo è un caso d'uso diverso per un KDF che per la crittografia HDD. Per la crittografia HDD, KDF non viene utilizzato per l'autenticazione, ma è utilizzato come chiave per la crittografia dei dati.

Tuttavia, potrebbe essere quello che dovresti riformare la tua domanda. Le vulnerabilità di collisione SHA1 rappresentano ancora una vulnerabilità quando viene iterata a 103,696 volte?

    
risposta data 15.01.2015 - 17:49
fonte
1

Una differenza importante tra, in particolare SHA-1 (o PBKDF2-HMAC-SHA-1) e SHA-512 (o PBKDF2-HMAC-SHA-512) è che SHA-512 (e SHA-384) richiede 64 -bit operazioni, che in questo momento riducono drasticamente il vantaggio che la maggior parte degli attaccanti ha utilizzato le GPU sull'applicazione utilizzando la CPU, poiché le GPU moderne non hanno la stessa velocità di esecuzione delle operazioni a 64 bit su 32 bit.

Vedi oclHashcat benchmark come riferimento.

    
risposta data 16.01.2015 - 08:18
fonte
0

La principale differenza tra SHA-1 e SHA-256 / SHA-512 è che le debolezze crittografiche sono state scoperte con SHA -1 (probabile coinvolgimento di collisioni). La principale differenza tra SHA-256 e SHA-512 è che il primo produce 256 bit (32 byte) -lungo lungo e il secondo 512 bit (64 byte) -lungo uno.

La ragione per cui Luks ti dà la possibilità di scegliere una cifra è che puoi selezionare un buon compromesso tra la latenza di lettura e il livello di crittografia. Se un determinato codice rende la lettura dal tuo disco molto lenta, allora hai la possibilità di indebolire la crittografia e ottenere prestazioni migliori.

Potrebbe esserci confusione nel modo in cui è stata posta la domanda. Le funzioni hash crittografiche SHA vengono utilizzate per eseguire "key-stretching" della password del disco. Luks memorizza la chiave master crittografica per il disco in modo sicuro. La password del disco è necessaria per sbloccare la chiave principale, prima che la chiave principale possa essere utilizzata per leggere il disco. È durante questa fase di sblocco che SHA è impiegato per fare ciò che è chiamato key-streatching sulla password.

    
risposta data 17.04.2016 - 23:11
fonte

Leggi altre domande sui tag