Quale codice di crittografia viene utilizzato quando si utilizza zip -e?
Sto cercando un modo multipiattaforma per crittografare le credenziali che devo inviare a un client.
So che gli archivi zip crittografati perdono metadati e possono essere manomessi, ma quanto è forte la crittografia?
zip -ejr "/path/to/folder.zip" "/path/to/folder"
Risposte
Il formato zip può utilizzare un metodo di crittografia vecchio e debole e la crittografia AES (chiavi a 128, 192 o 256 bit).
È possibile leggere le specifiche di crittografia AES per i dettagli.
Il client zip della riga di comando utilizza quasi sicuramente la crittografia zip tradizionale, che non si desidera utilizzare.
Mi piace la soluzione, quando si rivolge a utenti non tecnici di invio di file crittografati AES, poiché:
- In genere gli utenti hanno già utilizzato file zip in passato e li conoscono. Non stai "insistendo nell'usare un formato strano".
- Puoi forzare la crittografia sicura (AES) al tuo fianco (questo potrebbe essere un problema se avessero anche bisogno di rispedirti un zip crittografato).
- Se utilizzano un client senza il supporto della crittografia AES, il messaggio di errore dirà chiaramente "È necessaria una versione più recente per aprire i file zip in formato XY". Questo indica all'utente un problema con il proprio software, non il mittente.
Per creare un file zip utilizzando la crittografia AES, puoi utilizzare 7-zip ( ti consigliamo almeno la versione 19.00 ), dalla riga di comando che sarebbe:
7z a -p -mem = aes256 -tzip "/path/to/folder.zip" "/ path / to / folder"
Potresti creare un semplice script di shell per questo:
#!/bin/sh
7z a -p -mem=aes256 -tzip "$@"
Limitazioni:
Ovviamente, perderai metadati come nomi di file, dimensioni dei file (prima e dopo la compressione), timestamp ... Se la tua unica preoccupazione è condividere alcune credenziali, ti consiglio di non comprimere i contenuti (metodo di memorizzazione), per evitare BEAST -come le fughe di informazioni, ma questi problemi non sembrano troppo problematici. Tuttavia, è comunque necessario condividere in modo sicuro con il cliente la password zip. E non sarei sorpreso se poi salvassero il file estratto con le credenziali in chiaro sul desktop.
Hai scritto: "Sto cercando un modo multipiattaforma per crittografare le credenziali che devo inviare a un client".
Non definisci cosa intendi per "multipiattaforma". La tua migliore soluzione è * non usare zip .
Se "multipiattaforma" significa "Windows e Mac", la soluzione migliore è utilizzare la crittografia di Microsoft Word o Adobe Acrobat. Entrambi i sistemi utilizzano AES nella loro incarnazione più recente.
Se "multipiattaforma" significa "Windows, Mac e Linux", utilizza Acrobat.
In entrambi i casi, dovrai scambiare una chiave di crittografia ad alta entropia per il documento con il tuo cliente. Cioè, dovrai scambiare una password per scambiare la tua chiave di crittografia. Ovviamente, se puoi farlo, potresti anche inviare le credenziali stesse usando questo meccanismo fuori banda, no?
Quindi quello che vuoi veramente fare è usare la crittografia a chiave pubblica. Cioè, probabilmente è meglio che il tuo client crei un certificato S / MIME e invii la posta crittografata al client utilizzando Apple Mail o Microsoft Outlook o Thunderbird o qualsiasi altro approccio multipiattaforma per l'utilizzo di S / MIME. Troverai i dettagli in NIST SP800-177, "Email affidabile".
Altre persone suggeriranno di utilizzare PGP. Non lo farò, perché è troppo difficile da usare. Ma se vuoi usare PGP, provalo!
Se tutto questo suona come troppo lavoro, potresti andare a bassa tecnologia e mettere le credenziali in una busta, firmare il tuo nome sul retro della busta, metterlo in una seconda busta e inviarlo al tuo cliente tramite posta ordinaria .