Dire che ho il testo user:123
crittografato con AES/ECB/PKCS5Padding
, risultante nel testo cifrato vnjlWxfkYuTK3juNY38NKQ==
. Quanto è difficile modificare il testo cifrato per ottenere un altro valore numerico a 3 cifre significativo? È simile in difficoltà alla forzatura bruta della chiave di crittografia?
Se modifico solo un byte del testo cifrato, ottengo dati confusi nell'intero blocco, quindi ho bisogno di una modifica piuttosto elaborata al testo cifrato al fine di influenzare solo la parte del valore in modo significativo. Quanto elaborato sarebbe questo cambiamento?
Sfondo: Vengo abbastanza spesso in tutti i casi in cui la crittografia viene utilizzata come mezzo per trasmettere "segretamente" i dati tra le applicazioni, il più delle volte utilizzando una modalità di crittografia AES. Nella maggior parte di questi casi è tuttavia più importante che i dati non vengano modificati durante il trasporto o dall'utente, anziché essere leggibili.
Esempio : l'utente X viene registrato nell'applicazione A e passa tramite un collegamento, con parametri contenenti l'identità dell'utente, all'applicazione B. I parametri del collegamento sono crittografati AES / ECB, utilizzando una chiave che è noto ad entrambe le applicazioni. HTTPS viene utilizzato da entrambe le applicazioni, quindi viene trattata la minaccia dei parametri letti da una terza parte. Ancora più importante è che l'utente non può modificare la propria identità e impersonare un altro utente.
Vorrei sottolineare questo malinteso comune agli sviluppatori e agli architetti delle applicazioni A e B, che la crittografia significa che i dati non possono essere modificati, mostrando uno scenario di attacco in cui il testo cifrato viene modificato, in modo che, al momento della decodifica, i dati validi sono ricevuti In questo modo possono capire meglio che in questi casi è necessario un algoritmo di crittografia autenticato.