ZipGenius

  1. Casa
  2. /
  3. Blog
  4. /
  5. ZipGenius
  6. /
  7. Perché un file ZIP...

Probabilmente avrete letto quest’articolo nel sito web bleepingcomputer.com, nel quale è riportata la notizia secondo cui un archivio ZIP può essere decifrato con due password diverse. È vero: come spiega l’articolo, è possibile farlo usando l’hash della password originale calcolato con SHA-1; tuttavia, affinché ciò accada, devono ricorrere le seguenti condizioni:

  1. l’archivio deve essere crittografato con l’algoritmo AES-256;
  2. la password deve essere lunga.

Le due condizioni sono connesse tra loro: se si desidera creare un archivio ZIP protetto da una password più lunga di 20 caratteri e con l’algoritmo menzionato, il formato ZIP attiva l’algoritmo PBKDF2 che funziona così:

  1. calcola l’hash SHA-1 della password lunga per ottenere una chiave lunga 160 bit (20 caratteri, perciò);
  2. l’hash ottenuto diviene esso stesso la reale password dell’archivio.

Non importa quanto sia lunga la password digitata in sede di compressione dei files: essa sarà sempre ridotta a una stringa di 20 caratteri. Se conosci la password, puoi calcolare l’hash SHA-1 e usare questo per decifrare l’archivio.

Nota bene: così come puntualizzato dal ricercatore autore della scoperta, questa non è una falla di sicurezza perché comunque si dovrebbe essere a conoscenza della password originale e l’intero procedimento spiegato sopra è abbastanza inutile.

In realtà, quello che ci preoccupa è un dettaglio diverso, ossia che il formato ZIP, ancora nel 2022, impieghi SHA-1, un algoritmo di hashing deprecato perché soggetto al fenomeno delle “collisioni”qui una spiegazione. Un soggetto attaccante potrebbe creare un hash identico senza conoscere la password e decifrare ugualmente l’archivio. È un’ipotesi ma non è impossibile che si possa verificare un evento del genere.

Bisogna dirlo una volta per tutte: il formato ZIP ha grossi problemi con la crittografia.

Lo schema di cifratura originalmente concepito da PKWARE – solitamente chiamato “ZipCrypto” – era basato sul calcolo CRC quindi un attaccante potrebbe decifrare uno ZIP con appena una porzione dell’intestazione del file e impiegando, contemporaneamente, un attacco basato su dizionario.

Successivamente, il file ZIP venne aggiornato con l’integrazione delle implementazioni di AES-128 e AES-256 concepite da WinZip: a quel punto i files potevano essere crittografati con algoritmi sicuri (ancora oggi), tanto che queste modifiche vennero inserite nello standard del formato. Questo, però, fu l’ultimo aggiornamento per ciò che riguarda la crittografia – maggior info qui. In più, AES nel formato ZIP viene inizializzato con l’hash SHA-1 di una password, così come mostrato sopra.

Dunque, come possono gli utenti proteggere i loro file compressi?

Noi abbiamo creato ZipGenius e lo diciamo chiaramente: non usate le funzioni di cifratura integrate nel formato ZIP! Nessuna, nemmeno AES. Fareste meglio a usare un’applicazione per la crittografia vera come la nostra Czip X, la quale inserisce il file zip in un “contenitore sicuro” perché usa algoritmi migliori, Twofish, Blowfish e AES, insieme a un miglior algoritmo per l’hashing della passphrase, SHAKE, derivato direttamente dal più solido algoritmo SHA-3.

Ultimi 5 articoli

Sostieni ZipGenius