Qual è il modo più popolare per crittografare singoli file o cartelle?
Qual è il modo più popolare per crittografare singoli file o cartelle?
Risposte:
GnuPG (GPG) può usare la crittografia asimmetrica e simmetrica. La crittografia asimmetrica prevede due chiavi, una chiave pubblica per la crittografia e una chiave privata per la decrittografia. Vedi la risposta di djeikyb in questa pagina per l'utilizzo della chiave asimmetrica.
Per la crittografia simmetrica, le chiavi di crittografia e decrittazione sono uguali. È importante rendersi conto che la maggior parte delle persone è molto cattiva nella scelta di password complesse. Pertanto, uno schema di crittografia che utilizza le password dovrebbe utilizzare una funzione di derivazione delle chiavi che impiega più risorse (tempo, memoria) per rallentare gli attacchi di forza bruta.
Per una descrizione del KDF di GnuPG, vedi questo post sullo scambio di criptovalute . Esempio di utilizzo della crittografia simmetrica:
gpg --symmetric < unencrypted_file > encrypted_file
decrittazione:
gpg --decrypt < encrypted_file > decrypted_file
Nota che gpg
memorizza nella cache la chiave di default (comportamento documentato). Per evitare ciò, utilizzare l' --no-symkey-cache
opzione come descritto in una risposta correlata .
vecchia risposta per gli utenti che sono in grado di scegliere buone chiavi, vedere la nota di seguito
Per i singoli file, openssl
è molto utile, soprattutto quando si invia il file su un canale non protetto (ad es. E-mail). È gratuito (in denaro e in libertà), a differenza di TrueCrypt, che è gratuito solo in denaro.
NOTA : la password immessa qui verrà elaborata da una iterazione MD5 1 . Se scegli una password "123456", avrai pochissima sicurezza.
Encrypt:
openssl aes-256-cbc -salt -in unencrypted_file -out encrypted_file
Ti verrà richiesta una password, che dovrai inserire due volte.
decrypt:
openssl aes-256-cbc -d -in encrypted_file -out unencrypted_file
Pagina del manuale per il programma enc .
1 openssl enc
usa la funzione digest definita -md
dall'opzione (default md5) e invoca la funzione EVP_BytesToKey()
con un conteggio iterativo di 1. Questo può essere trovato nella fonte openssl all'indirizzo apps/enc.c
.
-a
base64-codifica l'input (alias di -base64
), per decrittografarlo è inoltre necessario aggiungere l' -a
opzione.
aes-256
è un alias per aes-256-cbc
, non c'è differenza. CBC è una modalità operativa per i cifrari a blocchi. Vedere la pagina di manuale di enc(1)
per un elenco di cifre supportate.
Uso Seahorse per questo. È un front-end Gnome per GnuPG e si integra bene con nautilus:
Per ottenere l'integrazione con nautilus, installa il pacchetto seahorse-nautilus
dal Software Center: seahorse-nautilus
TrueCrypt : software di crittografia del disco freeware disponibile alla fonte , fuori produzione, non sicuro.
Un metodo cli sarebbe GnuPG e forse tar. Questa è una breve guida di riferimento, dovresti davvero leggere la documentazione.
Prima esecuzione gpg --gen-key
. Seguire le istruzioni per generare la coppia di chiavi pubblica / privata. Ora è possibile crittografare file: gpg -e foo.txt
. Questo creerà un file chiamato foo.txt.gpg
. GnuPG non elimina il file originale non crittografato, dipende da te se vuoi che sia in giro. Per decrittografare foo.txt.gpg, eseguire gpg foo.txt.gpg
. La decrittografia ti chiederà prima di sovrascrivere i file esistenti.
Se devi crittografare una directory, prima tar:
tar -cf foo.tar foo/
gpg -e foo.tar
È possibile rinominare il file crittografato come desiderato. Quando viene decrittografato, viene conservato il nome del file originale.
C'è anche eCryptfs , che Ubuntu usa per crittografare le home directory.
È possibile selezionare la crittografia della home directory al momento dell'installazione oppure è possibile impostare una singola directory, $HOME/Private
per impostazione predefinita, utilizzando l' utilità ecryptfs-setup-private . Questa cartella può essere configurata per il montaggio automatico all'accesso e lo smontaggio al logout. Ogni singolo file e cartella all'interno $HOME/Private
, ricorsivamente, sarà crittografato.
È inoltre possibile utilizzare "Firma accademica" per utilizzare la crittografia a curva ellittica con una GUI di wxWidgets. È open source ma non nei repository. Fa principalmente crittografia asimmetrica ECC, firme e timestamp. Ma lo strumento ha anche una voce di menu per invocare Gnupg (RSA) e l'accesso diretto alla crittografia / decrittografia simmetrica dei file che offrono AES e altri algoritmi. La sua homepage è qui: https://www.academic-signature.org
Lo uso molto per proteggere i file in transito e per firmare digitalmente i documenti accademici (trascrizioni, lettere di raccomandazione, liste di voti ecc.)
Ho preso alcuni degli altri suggerimenti e creato un semplice wrapper di script di shell (per i più pigri)
https://github.com/orionM/ssl-crypt-tools
godere
openssl aes-256-cbc ...
Sai invece di usare if [ $? -ne 0 ] ; then... fi
puoi semplicemente usare ||
? E ci sono alcune persone che pensano che OpenSSL "* abbia avuto diversi importanti difetti di sicurezza nell'ultimo anno [ Heartbleed ], mentre i documenti Snowden mostrano che GPG è uno dei pochi programmi che potrebbero ostacolare l'NSA se usato correttamente. Anche il codice OpenSSL è un pozzo nero completo e ha una copertura test terribile. (Divulgazione: [lui] lavora [s] su un progetto "OpenSSL succhia; ripariamolo".) - jbarlow * "