Qual è una buona soluzione per crittografare alcuni file in unix? [chiuso]


44

Sto cercando un programma di utilità per crittografare alcune directory in Linux. Non sto cercando alcun servizio di crittografia del disco completo, ma semplicemente per crittografare alcune directory allo scopo di archiviare i file nel cloud. Una volta recuperati, dovrei decrittografarli prima di poter accedere. Cercando di farlo per un paio di directory (alcune centinaia di GB di dimensione). Qualche idea? Preferibilmente basato sulla CLI.

Risposte:


51

Uso solo GnuPG per questo compito. Le cartelle vengono prima impacchettate in un archivio TAR-GZ:

tar czf files.tar.gz /path/to/my/files

Se non lo hai già fatto, devi prima creare una coppia di chiavi GPG privata / pubblica:

gpg --gen-key

Seguire le istruzioni. I valori predefiniti dovrebbero essere sufficienti per un primo test. Apparirà qualcosa del genere:

gpg (GnuPG) 2.0.18; Copyright (C) 2011 Free Software Foundation, Inc.
Questo è un software gratuito: sei libero di cambiarlo e ridistribuirlo.
Non esiste alcuna GARANZIA, nella misura consentita dalla legge.

Seleziona il tipo di chiave che desideri:
   (1) RSA e RSA (impostazione predefinita)
   (2) DSA ed Elgamal
   (3) DSA (solo segno)
   (4) RSA (solo segno)
La tua selezione? 1
Le chiavi RSA possono avere una lunghezza compresa tra 1024 e 4096 bit.
Quale dimensione del tasto vuoi? (2048) 4096
La dimensione della chiave richiesta è 4096 bit
Specifica per quanto tempo deve essere valida la chiave.
         0 = la chiave non scade
        = la chiave scade tra n giorni
      La chiave w = scade tra n settimane
      La chiave m = scade tra n mesi
      y = la chiave scade tra n anni
La chiave è valida per? (0)
La chiave non scade affatto
È corretto? (y / N) y

GnuPG deve costruire un ID utente per identificare la tua chiave.

Nome reale: chiave di crittografia file
Indirizzo email: admin@company.org
Commento: chiave di crittografia file
Hai selezionato questo ID UTENTE:
    "Chiave di crittografia file (chiave di crittografia file)"

Cambia (N) ame, (C) omment, (E) mail o (O) kay / (Q) uit? o

Ti verrà chiesto un passphrase per la chiave. Si consiglia vivamente di usarne uno forte. Non è necessario per la crittografia dei file, quindi non preoccuparti dell'utilizzo in batch in un secondo momento.

Se tutto è fatto, qualcosa di simile apparirà sul tuo schermo:

Dobbiamo generare molti byte casuali. È una buona idea esibirsi
qualche altra azione (digitare sulla tastiera, spostare il mouse, utilizzare il
dischi) durante la prima generazione; questo dà il numero casuale
generatore di una migliore possibilità di ottenere abbastanza entropia.
Dobbiamo generare molti byte casuali. È una buona idea esibirsi
qualche altra azione (digitare sulla tastiera, spostare il mouse, utilizzare il
dischi) durante la prima generazione; questo dà il numero casuale
generatore di una migliore possibilità di ottenere abbastanza entropia.
gpg: chiave FE53C811 contrassegnata come in definitiva fidata
chiave pubblica e segreta creata e firmata.

gpg: controllo del trustdb
gpg: 3 marginale / i necessari, 1 completo / i necessari, modello di attendibilità PGP
gpg: profondità: 0 valida: 1 firmata: 0 fiducia: 0-, 0q, 0n, 0m, 0f, 1u
pub ***** / ******** 2013-03-19
      Impronta digitale chiave = **** **** **** **** **** **** **** **** **** ****
uid Chiave di crittografia file (chiave di crittografia file) 
sub ***** / ******** 2013-03-19

Ora potresti voler esportare il file di chiavi pubblico per importarlo su altri computer:

gpg --armor --output file-enc-pubkey.txt --export 'File Encryption Key'

Il File Encryption Keyè il nome che ho inserito durante la procedura di generazione delle chiavi.

Ora sto usando GnuPG nell'archivio appena creato:

gpg --encrypt --recipient 'File Encryption Key' files.tar.gz

Ora hai un files.tar.gz.gpgfile crittografato.

Puoi decrittografarlo con il seguente comando (ti verrà richiesta la passphrase):

gpg --output files.tar.gz --decrypt files.tar.gz.gpg

Questa è tutta la magia.

Assicurati di eseguire il backup della chiave! E non dimenticare mai la tua passphrase! Se non il backup o dimenticato, hai gigabyte di dati spazzatura!

Eseguire il backup della chiave privata con questo comando:

gpg --armor --output file-enc-privkey.asc --export-secret-keys 'File Encryption Key'

vantaggi

  • Nessuno dei criptatori deve conoscere informazioni sensibili sulla crittografia: la crittografia viene eseguita con la chiave pubblica. (Puoi creare la coppia di chiavi sulla tua workstation locale e trasferire la chiave pubblica solo sui tuoi server)
  • Nessuna password verrà visualizzata nei file di script o nei lavori
  • Puoi avere tanto quanto i criptatori su qualsiasi sistema tu voglia
  • Se mantieni segreta la tua chiave privata e la passphrase, tutto va bene e molto, molto difficile, da scendere a compromessi
  • È possibile decrittografare con la chiave privata su piattaforme Unix, Windows e Linux utilizzando l'implementazione PGP / GPG specifica
  • Non sono necessari privilegi speciali per i sistemi di crittografia e decrittografia, nessun montaggio, nessun contenitore, nessun file system speciale

1
Si noti che a seconda dei dati, potrebbe essere più veloce eseguire tarsenza lo zswitch per evitare la compressione.
l0b0

28

Da parte mia, utilizzo principalmente due metodi:

Primo metodo: tar e openssl

Tar la directory

tar cvf backup.tar /path/to/folder

È possibile rimuovere l'opzione [v] dal comando tar per disattivare la modalità dettagliata.

Encrypt

openssl aes-128-cbc -salt -in backup.tar -out backup.tar.aes -k yourpassword

È possibile modificare aes-128-cbc con qualsiasi altro metodo di cifratura openssl support (openssl --help).

Decrypt

openssl aes-128-cbc -d -salt -in backup.tar.aes -out backup.restored.tar

Chiederà la password.

Secondo metodo: zip crittografata

zip -r -0 -e backup.zip /path/to/folder

Chiederà la password.

  • -r significa ricorsivamente (albero di cartelle intero)
  • -0 significa solo negozio (non comprime, più veloce)
  • -e significa crittografare l'archivio

Un vantaggio di questo: funzionerà meglio con il sistema basato su Windows.


3
Dare la password dalla riga di comando non è una buona idea. La password rimane nella cronologia della shell.
pbies,

1
Va notato che zipsi dice che la crittografia sia crackabile.
Acumenus,

22

Se non si desidera crittografare i file con una coppia di chiavi pubblica / privata e utilizzare invece solo la crittografia simmetrica con una passphrase, utilizzare il comando seguente:

gpg --symmetric --cipher-algo aes256 files.tar.gz

Ti verrà chiesta la passphrase. Successivamente files.tar.gz.gpgviene creato un file crittografato denominato .

Per decrittografare utilizzare il comando

gpg --decrypt files.tar.gz.gpg > files.tar.gz


2

A tale scopo suggerirei la crittografia FUSE (come encfs ) - per dati più piccoli utilizzerei gpg.

È implementato nello spazio utente, quindi non hai bisogno di privilegi speciali.


1

Esistono alcuni filesystem Linux destinati a scopi di crittografia dei dati. Hai già pensato a LUX, ad esempio?


1

Un modo molto semplice per crittografare un file è:

gpg -c filename.ext

Ti verrà chiesto un passphrase due volte e gpg creerà filename.ext.gpg. Carica il file crittografato sul tuo servizio cloud. Per recuperare il file utilizzare:

gpg filename.ext.gpg

Che si ricrea filename.ext. Si noti che i file non crittografati non sono sicuri e che i dati rilevanti rimarranno sul supporto di archiviazione anche dopo l'eliminazione. Solo il contenitore gpg è sicuro. EncFS è un'alternativa più pratica per la crittografia basata su cloud a livello di file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.