Domanda:
I file ZIP protetti da password sono sicuri?
trejder
2013-05-13 13:29:09 UTC
view on stackexchange narkive permalink

Sto seguendo la mia risposta. Se posso elencare il contenuto di un file ZIP protetto da password, controllare i tipi di file di ogni file memorizzato e persino sostituirlo con un altro, senza conoscere effettivamente la password, i file ZIP dovrebbero comunque essere considerati sicuri?

Questo è completamente insicuro in termini di ingegneria sociale / influenza ecc.

Posso dirottare (intercettare) il file di qualcun altro (file ZIP protetto da password) e posso sostituire uno dei file che contiene, con il mio (falso, virus) senza conoscere la password. Il file sostituito rimarrà non crittografato, non protetto da password all'interno dello ZIP, ma gli altri file non verranno modificati.

Se una vittima decomprime un archivio protetto da password, il programma di estrazione chiederà la password solo una volta, non ogni volta per ogni file. Quindi l'utente finale non vedrà la differenza - se il programma non richiede una password, perché la conosce già (file originale) o perché il file estratto non ha bisogno di una password (file modificato da me). In questo modo, posso iniettare qualcosa di veramente brutto in un file ZIP protetto da password, senza conoscerne la password e contare sul destinatario supponendo che il file non sia stato modificato.

Mi manca qualcosa o è davvero sbagliato? Cosa possiamo dire dei termini di sicurezza di una soluzione, se la password non è richiesta per introdurre qualsiasi modifica in un file protetto da password?

È nella progettazione degli archivi ZIP che sono solo _container_. La crittografia viene eseguita sui file e non sul contenitore stesso, quindi la riservatezza e l'integrità sono comunque garantite per i _file_ all'interno. Lo stesso archivio ZIP non è protetto da password, ma i file al suo interno lo sono. In realtà, i file RAR si comportano quasi allo stesso modo, tranne per il fatto che ti danno la possibilità di crittografare l'elenco dei file. Puoi _puoi_ aggiungere file falsi a un file RAR (non tramite WinRAR), ma se l'elenco dei file è crittografato, non puoi modificarlo, quindi l'applicazione che si apre non sarà in grado di elencare il file falso.
Dopo ulteriori letture, ho appreso che ZIP utilizza AES in modalità CBC, che [in realtà non garantisce l'integrità] (http://security.stackexchange.com/a/9446/). Sebbene non sia così facile modificare il contenuto dei file, una minaccia persistente alla fine sarà in grado di farlo. ** Nota **: il problema di integrità, ovviamente, non è che i file possono essere sostituiti. IMHO, ottenere la sostituzione e la manomissione dei file va bene, ma non essere in grado di rilevare tale manomissione _è_ il problema di integrità.
Potresti comprimere i tuoi file (senza password) e poi comprimere di nuovo quell'archivio (con password)? In questo modo avresti un solo file protetto da password e, poiché non puoi accedervi, non puoi modificare lo zip interno.
@poke: Un'idea piuttosto interessante! :]
Sì, puoi, WinZip chiama questa "doppia compressione": http://kb.winzip.com/kb/entry/147/
Fai attenzione ai programmi di archiviazione che decomprimono i file in una cartella temporanea e poi li lasciano lì. 7zip lo fa e si rifiuta di risolverlo. Se utilizzi 7zip, i tuoi file crittografati NON sono protetti perché inevitabilmente verranno lasciati non crittografati in una cartella temporanea da qualche parte.
Perché non controllare l'integrità con un checksum, ad es.sha, md5?
Undici risposte:
bethlakshmi
2013-05-13 20:11:26 UTC
view on stackexchange narkive permalink

Per rispondere a questa domanda, ci deve essere una migliore definizione di "sicuro" e / o "sicuro". Deve sempre essere definito alla luce dello scopo della protezione e del rischio per il sistema. Non c'è una taglia che vada bene per tutti qui, ciò che è "abbastanza sicuro" per un sistema, può essere estremamente debole per un altro. E ciò che è "abbastanza sicuro" su un altro può essere un costo proibitivo o addirittura poco pratico in un caso diverso.

Quindi, prendendo le preoccupazioni tipiche una per una:

  • Riservatezza : marginale nella migliore delle ipotesi. La riservatezza è generalmente valutata in termini di tempo necessario per ottenere l'accesso al materiale protetto. Potrei essere in grado di modificare il file zip, ma come hacker mi ci vorrà un po 'di tempo per decifrare la password o forzarla. Non molto tempo, le password sono una delle protezioni più deboli e, dato il modo in cui i file zip sono spesso condivisi, il modo in cui si fa l'ingegneria sociale per la password di solito non è difficile.

  • Integrità - no - come fa notare il richiedente - è facile cambiare il pacchetto e farlo sembrare legittimo.

  • Disponibilità - generalmente non applicabile a questo tipo di controllo di sicurezza - questo di solito si riferisce al rischio di rendere un servizio non disponibile - l'archiviazione / confezionamento dei dati di solito non influisce sulla disponibilità in un modo o nell'altro.

  • Non ripudio - no, nessuna protezione - chiunque può modificare il pacchetto, quindi chiunque contribuisca ha una probabile negabilità.

Il trucco è: quanto di meglio vuoi ottenere? L'email crittografata è un'opzione, come protezione migliore. Anche se pone problemi di connettività. E ci sono molti modi migliori per crittografare i dati, ma le opzioni migliori comportano anche sfide di distribuzione chiave che possono aggiungere problemi di tempo e costi.

Come un modo rapido per impacchettare e condividere alcuni dati che non vuoi rendere completamente pubblici - è meglio di niente, ea volte è l'unico denominatore comune che puoi elaborare. Per qualsiasi cosa ad alto rischio, troverei un'opzione migliore.

Cosa c'è di debole in una password complessa (come 14 caratteri casuali) combinata con un metodo di crittografia forte (come AES-256)?
Non sono chiaro da quale prospettiva viene la tua domanda? Questa persona sta specificamente chiedendo informazioni sul metodo di protezione con password in relazione ai file zip e i problemi sono stati delineati abbastanza bene nella domanda: in questo caso, non importa quanto grande o casuale sia la tua password, il blocco della password del file zip non si blocca molto di tutto. In * generale * le password sono piuttosto deboli - sono prontamente condivise e richiedono che entrambe le parti le conoscano (sono un segreto condiviso) - quindi c'è sempre il rischio che qualcun altro conosca la password. Quindi il non ripudio è un divieto con qualsiasi password.
Sto parlando esclusivamente di Riservatezza e non di Integrità o di qualsiasi altro valore che hai correttamente indicato alla luce di questa domanda. Hai notato che "le password sono una delle protezioni più deboli" e voglio semplicemente sottolineare che questa affermazione è molto relativa. Tutto dipende dalla forza della password e dal metodo di crittografia, ma anche dal modo in cui viene condiviso questo segreto condiviso.
@bethlakshmi "negabilità probabile" - intendevi negabilità plausibile?
Cordiali saluti per coloro che non hanno familiarità con i termini di riservatezza / integrità / disponibilità / non ripudio wikipedia ha una descrizione per laici qui: https://en.wikipedia.org/wiki/Information_security#Confidentiality (personalmente ho trovato i proiettili in questa risposta al suonocome una lingua straniera)
per aggiungere "integrità" ... non potresti semplicemente fornire un file di checksum all'archivio crittografato generato tramite `sha256sum`, sì / no?
Polynomial
2013-05-13 14:06:41 UTC
view on stackexchange narkive permalink

La password ha lo scopo di garantire la riservatezza, non l'integrità o l'autenticità.

Questo è uno di quei casi in cui la sicurezza è limitata dall'usabilità e dalle intenzioni umane. Il gestore dell'archivio non ha modo di sapere se il file modificato doveva essere crittografato in primo luogo. Essenzialmente si tratta di un attacco di ingegneria sociale, in quanto hai indotto l'utente a credere che il file originale fosse a posto. Tuttavia, la vera vulnerabilità di sicurezza sarebbe che tu avessi accesso in lettura / scrittura a un archivio sensibile in primo luogo.

Per quanto riguarda la mitigazione, ci sono alcuni modi per aumentare la sicurezza:

  • Utilizza un formato di archivio che supporti la crittografia del nome file (ad es. 7Zip, RAR)
  • Firma l'archivio con una chiave privata, ad es. tramite GPG.
o usa tar.gz :)
Su Windows? :] Se fossi su Linux non userei affatto gli ZIP! Inoltre, la domanda è se i file ZIP protetti da password possono essere considerati sicuri, non se esistono archivi più sicuri. Perché ci sono e ne sono abbastanza sicuro ...
Sì, tar.gz non può essere utilizzato su Windows, soprattutto se non si capisce cosa siano 7zip, WinRar o miliardi di altri software! : PI immagino che stai navigando su un IE? : D
Buon Dio, no! :] Stavo parlando del supporto _nativo_, a livello di sistema. E piuttosto dire che il formato `.tar.gz` è per Linux (Unix) ciò che` .zip` è per Windows. Ma poi di nuovo, è solo una nota a margine, poiché la domanda non è: quale formato di archivio dovrei usare, solo `.zip` è abbastanza sicuro?
Cosa significa esattamente nativo per te? Su Unix, tar è solo un programma; zip e unzip sono anche solo programmi. Non c'è una vera differenza.
Non so di Unix e Linux (non li uso), ma AFAIK puoi lavorare con gli archivi direttamente dalla riga di comando, poiché si tratta di componenti di sistema o programmi esterni forniti con quasi tutte le distro (senza menzionare quelli minimi ). Installi il sistema puro e li hai, giusto? Cerchi di ottenere lo stesso risultato su Windows? Senza installare manualmente programmi di terze parti non sarai in grado di utilizzare gli archivi. Il supporto shell per ".zip" è stato aggiunto in Windows XP. Non c'è nessuna shell e nessun supporto da riga di comando per `tar`,` rar`, `gzip` su altri su Windows. Questo è ciò che chiamo _nativo_.
Se entrambe le parti riceventi e finali hanno PGP e hanno le chiavi pronte, preferisco ** crittografare ** il file zip con PGP piuttosto che ** firmare ** lo zip (nel primo caso, impossibile conoscere l'intero contenuto ( elenco di file, ecc.) Nel secondo, puoi semplicemente controllare se il file zip è stato alterato o meno ... la protezione con password zip è troppo debole per garantire che il contenuto non sia stato accessibile)
Vorrei mettere un grande punto interrogativo dietro questa presunta "usabilità e intento umano".Come utente ingenuo, mi aspetterei davvero che se crittografassi un file ZIP pieno di cose * tutte * queste cose sono crittografate.Compresi nomi di file ed estensioni.E perché mai qualcuno * che non conosce la password * dovrebbe mai aver bisogno di aggiungere file a un simile archivio?Onestamente non riesco a pensare a nessun caso d'uso in cui potrebbe essere necessario ...
@fgysin Ebbene sì, ecco perché nessuno si affida a file zip crittografati.
@fgysin Lo stesso utente ingenuo si aspetterebbe che * tutta * una posta crittografata sia crittografata.Compresi oggetto e nome del mittente.- Forse dovremmo rendere i nostri utenti molto più consapevoli di tali limiti di varie crittografie ...
l0b0
2013-05-14 13:21:35 UTC
view on stackexchange narkive permalink

No. Per creare un file crittografato (in modo non sicuro poiché la password viene ripetuta):

  $ cd - "$ (mktemp --directory)" $ echo secret > 1.txt $ echo super secret > 2 .txt $ zip -e -P dIg4BuOTFh secret.zip 1.txt 2.txt aggiunta: 1.txt (memorizzato 0%) aggiunta: 2.txt (memorizzato 0%)  

A scopri quali file sono inclusi:

  $ unzip -l secret.zipArchive: secret.zip Lunghezza Data Ora Nome --------- --------- - ----- ---- 7 2013-05-14 10:15 1.txt 13 2013-05-14 10:14 2.txt --------- ------- 20 2 file  

Per sovrascrivere un file con dati falsi senza conoscere la password:

  $ echo lie > 2.txt $ zip -u secret.zip 2.txtupdating: 2.txt (memorizzato 0%)  

Verifica:

  $ unzip -o -P dIg4BuOTFh secret.zipArchive: estrazione secret.zip : Estrazione 1.txt: 2.txt $ cat 2.txtlie  

man zip non menziona n questo avvertimento nella descrizione dell'opzione -e , ma quanto segue è dalla documentazione di -P:

(E dove la sicurezza è veramente importante, usa una crittografia forte come Pretty Good Privacy invece della crittografia standard relativamente debole fornita dalle utility zipfile.)

La crittografia debole nota dovrebbe essere rimossa dall'utilità per evitare un falso senso di sicurezza, ma questa è un'altra storia.

Perché 2.text è più sicuro di 1.txt?
Non è. Volevo solo utilizzare contenuti diversi per i due file :)
La sicurezza nota debole è purtroppo necessaria per l'interoperabilità perché ci sono molti archivi zip là fuori che utilizzano lo schema noto-debole e altri sistemi che supportano solo lo schema noto-debole.
La roba di dati falsi potrebbe essere un problema, tuttavia questo può essere mitigato semplicemente includendo un MD5 insieme al file (che _pote_ avere collisioni ma è abbastanza improbabile da coprire la maggior parte delle basi)
Lucas Kauffman
2013-05-13 14:04:05 UTC
view on stackexchange narkive permalink

Non è sicuro nel senso che non puoi dipendere dall'integrità del file zip. La riservatezza è ancora in ordine poiché non è possibile accedere ai contenuti dei file (solo i nomi dei file).

Questo inconveniente in zip è stato discusso in precedenza, personalmente uso sempre rar proprio a causa di questo problema. Un'altra soluzione alternativa sarebbe firmare il file zip con PGP.

Se entrambe le parti riceventi e finali hanno PGP e hanno le chiavi pronte, preferisco ** crittografare ** il file zip con PGP piuttosto che ** firmare ** lo zip (nel primo caso, impossibile conoscere l'intero contenuto ( elenco di file, ecc.) Nel secondo, puoi semplicemente controllare se il file zip è stato alterato o meno ... la protezione con password zip è troppo debole per garantire che il contenuto non sia stato accessibile)
@Lucas, vuoi dire che se zippassi un file exe e lo proteggessi con una password, un virus potrebbe * ancora * modificare il file exe contenuto aggiungendovi il suo payload senza possedere la password?
No, non puoi confermare se la riservatezza è stata violata o meno.
Sry, ti dispiace spiegare l'elaborazione di * "non può convalidare se la riservatezza è stata violata o meno" *?
cambiare qualcosa è integrità, essere in grado di vedere qualcosa è riservatezza.
Mister Smith
2013-05-13 18:33:43 UTC
view on stackexchange narkive permalink

Oltre ai rischi che hai già indicato, IMHO uno dei maggiori problemi con gli strumenti di compressione è legato all'uso di cartelle temporanee per archiviare i file non compressi. Poiché i file di input possono essere di dimensioni arbitrarie, i file di output non compressi potrebbero non essere contenuti nella RAM. Viene utilizzata una cartella di output temporanea (spesso quella predefinita del sistema operativo).

Quindi non importa quanto sia potente l'algoritmo di crittografia se dimentichi di distruggere correttamente le cartelle temporanee ogni volta che decomprimi un file protetto da psw. La maggior parte degli strumenti non pulisce automaticamente la directory di output né avvisa l'utente in merito. Stessa cosa durante la compressione: assicurati di distruggere il file originale.

Gene M.
2013-05-13 14:12:07 UTC
view on stackexchange narkive permalink

Se dovessi usare la definizione generale di sicuro per indicare che applica privacy, autenticazione, integrità e non ripudio, direi che non è sicuro per un certo numero di punti. Ma poiché la protezione tramite password su un file ZIP crittografato intende fornire solo la privacy (impedendo la visualizzazione del contenuto di un file tranne che dalle parti previste), direi che fa il suo lavoro.

TOM
2014-06-25 19:23:17 UTC
view on stackexchange narkive permalink

La specifica del formato .ZIP ufficiale consente di nascondere l'elenco dei nomi di file (ma non il numero di file), oltre a nascondere i metadati come la dimensione del file originale e il CRC del file originale. Ma non puoi usare WinZip o Info-Zip per farlo. Inoltre, l'integrità nelle specifiche ufficiali .ZIP viene fornita attraverso l'uso di una o più firme digitali oltre alla crittografia. La mia raccomandazione personale, tuttavia, è di evitare le password e invece di utilizzare le chiavi pubbliche. Le funzioni di derivazione chiave stanno diventando sempre più veloci e non credo che nessun fornitore abbia nemmeno provato a tenere il passo.

Rod MacPherson
2013-05-14 01:19:47 UTC
view on stackexchange narkive permalink

Se si dispone di una versione non crittografata di uno dei file in uno zip protetto da password, è possibile utilizzare un attacco in chiaro noto per ottenere la password per tutti gli altri file.

Come dovrebbe aiutare un noto attacco con testo in chiaro? Zip non utilizza un algoritmo cerebrale morto, quindi è resistente agli attacchi di testo in chiaro noti.
http://www.elcomsoft.com/help/archpr/index.html?known_plaintext_attack_(zip).htmlSpiacenti, probabilmente avrei dovuto includere un collegamento, ma questo è stato menzionato qui in questo forum di discussione solo pochi giorni fa. Google è anche molto efficiente nel proporre questa risposta.
Ah, grazie. Ciò contraddice [l'affermazione di Adnan] (http://security.stackexchange.com/questions/35818/are-password-protected-zip-files-secure/35854?noredirect=1#comment55783_35818) che zip utilizza AES-CBC. Il formato è cambiato da quando è stata scoperta quella vulnerabilità? Quali algoritmi supportano le varie implementazioni zip disponibili?
Sembra che Elcomsoft si riferisca a un'implementazione zip molto vecchia. Alla ricerca di una documentazione di Winzip, ora usano AES e PBKDF2. http://kb.winzip.com/help/winzip/help_encryption.htm
IT_Architect
2013-10-14 20:53:51 UTC
view on stackexchange narkive permalink

Quindi la conclusione è che, a meno che non ci sia una vulnerabilità o una backdoor nel codice di crittografia, è sicuro quanto la tua passphrase è resistente agli attacchi di forza bruta. Esistono vari siti su Internet in cui è possibile prototipare lo schema che si intende utilizzare, per verificare approssimativamente quanto tempo ci vorrebbe per decifrare. (Non usare QUELLO che intendi usare)

Tutto ciò a cui chiunque può accedere fisicamente è crackabile, dato abbastanza tempo. Tuttavia, puoi avere una sicurezza pratica se il costo e / o il tempo necessari per accedere alle informazioni supera il loro valore probabile. A meno che non si tratti di informazioni finanziarie, spesso c'è una grande differenza tra ciò che è prezioso per un hacker e ciò che è prezioso per te. Se il nome del file all'interno dello zip è Allegato_1 e il contenuto non crittografato dell'e-mail non descrive il contenuto dell'allegato, non dà molto a un hacker su cui basarsi. È improbabile che un hacker sia disposto a spendere molto tempo, e certamente non denaro, per ottenere l'accesso a qualcosa che non ha un'elevata probabilità convincente di contenere qualcosa di valore per lui.

Ousef Kuruvilla
2014-07-13 10:47:46 UTC
view on stackexchange narkive permalink

Non tutto ciò che è protetto da password può essere violato da attacchi di forza bruta. Tuttavia, i file zip possono essere violati dalla forza bruta. Altri sistemi dispongono di controlli, come ad esempio blocco dopo tre tentativi, verifiche passkey ecc.

un blocco da un file compresso?come dovrebbe funzionare in uno scenario di attacco offline?non hai bisogno di uno scenario di attacco online simile a un server per questo? e perché dici che i file zip possono essere violati con la forza bruta?questo è vero solo quando la password è abbastanza forte.nella tua logica, anche il metodo di crittografia più potente come quelli che hai menzionato può essere "forzato".Hai solo bisogno di molto tempo in entrambi i casi.
Faizan
2013-05-13 22:03:00 UTC
view on stackexchange narkive permalink

Ho sentito parlare di modi in cui i file zippati protetti da password possono essere violati. Di solito con attacchi di forza bruta, quindi in breve non sono molto sicuri per i dati riservati segreti di &.

Tutto ciò che si basa su una password è vulnerabile alla forzatura bruta della password. Non è questo il punto qui.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...