Le implementazioni crittografiche "roll your own" sono davvero una preoccupazione per lo storage offline?

2

Questa è una situazione fittizia e non intendo utilizzare un'implementazione crittografica personalizzata in qualcosa di serio.

Capisco perché il codice crittografico mal scritto possa essere vulnerabile a molti attacchi. Finora gli esempi che ho letto su tutti richiedono che l'hacker provi diversi input e utilizzi dati come il tempo necessario per crittografare per rompere la chiave.

L'output dal cifrario sarà lo stesso per le buone e cattive implementazioni di detto codice se implementato correttamente. Supponendo la crittografia offline e il cold storage in cui l'autore dell'attacco riceverà solo una copia dei dati crittografati in seguito, questi attacchi sono davvero una preoccupazione?

    
posta Arno 28.03.2017 - 23:29
fonte

1 risposta

6

Sì. Meno preoccupante, certo, ma quello che stai descrivendo è un attacco cipher-text-only . Assolutamente e senza dubbio ancora possibile.

Voglio dividere la tua domanda in due casi:

1) Scrivi la tua implementazione di un codice standardizzato.

Certo, in questo caso sono d'accordo con te: se hai realizzato un'implementazione di un algoritmo che è fedele alle specifiche, allora il tuo testo cifrato non sarà più facile da rompere del testo cifrato di qualsiasi altra implementazione conforme.

Direi che non stai davvero "facendo il tuo giro".

Essere resistenti agli attacchi dei canali laterali è davvero più "indurente" che "rolling your own"; ogni implementazione ovunque potrebbe utilizzare più hardening. Sempre.

2) Hai inventato il tuo cifrario o algoritmo

Ecco dove accadono cose brutte. Generalmente, l'attacco è l'analisi della frequenza, ad esempio se so che i tuoi testi sono scritti in inglese, quindi posso iniziare ad analizzare i tuoi ciphertexts cercando pattern che corrispondano alla distribuzione delle lettere in inglese. Se i tuoi testi sono in formato XML, allora posso cercare la struttura generale dei blocchi XML nidificati, ecc.

Non sottovalutare mai l'intelligenza dei crittanalisti professionisti. Inoltre, non dimenticare mai la legge di Schneier :

Anyone, from the most clueless amateur to the best cryptographer, can create an algorithm that he himself can't break.

Solo perché non puoi romperlo, non significa che nessuno possa.

    
risposta data 28.03.2017 - 23:39
fonte

Leggi altre domande sui tag