for the specific case of using AES-CBC symmetric encryption of a block of text
Il problema qui - e con la maggior parte delle implementazioni degli algoritmi crittografici - è che il caso specifico non è sufficientemente specifico. Se stai utilizzando 128 bit di output da / dev / random come chiave, memorizzando quella chiave, quindi inserendola manualmente per crittografare e decifrare, probabilmente sei al sicuro.
Se, tuttavia, non si desidera memorizzare 128 bit veramente casuali, come si ottiene la chiave? Spero che sia una buona funzione di derivazione della chiave basata su password, non un semplice hash crittografico della password e un salt.
Quindi, se non stai attento a quante volte tenterai di decifrare un testo cifrato, avrai bisogno di un codice di autenticazione del messaggio che verifichi l'integrità del testo cifrato prima di tentare la decodifica; o diventerai un oracolo di imbottitura. Thomas Ptacek ha scritto una divertente drammatizzazione di questa modalità di errore: link
Ci sono molti altri attacchi a cui questa applicazione di AES potrebbe essere soggetta, a seconda di come i dettagli reali si concretizzano. Il problema cognitivo sottostante è che noi umani pensiamo formando modelli mentali di situazioni; e i nostri modelli mentali sono, 99.99999% delle volte, non sufficientemente dettagliati e precisi per implementare la crittografia in sicurezza.