Quelle est la bonne solution pour chiffrer certains fichiers sous Unix? [fermé]

44

Je cherche un utilitaire pour chiffrer certains répertoires sous Linux. Je ne cherche pas de services de chiffrement de disque complet, mais simplement de chiffrer quelques répertoires afin de stocker des fichiers dans le cloud. Une fois les récupérer, je devrais les déchiffrer avant de pouvoir y accéder. Vous cherchez à faire cela pour quelques répertoires (quelques centaines de Go en taille). Des idées? De préférence basé sur CLI.

Peter
la source

Réponses:

51

J'utilise seulement GnuPG pour cette tâche. Les dossiers sont d'abord emballés dans une archive TAR-GZ:

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

Si ce n'est déjà fait, vous devez d'abord créer une paire de clés privée / publique GPG:

gpg --gen-key

Suivez les instructions. Les valeurs par défaut devraient suffire pour un premier test. Quelque chose comme ça va apparaître:

gpg (GnuPG) 2.0.18; Droit d'auteur (C) 2011 Free Software Foundation, Inc.
C'est un logiciel libre: vous êtes libre de le changer et de le redistribuer.
Il n'y a AUCUNE GARANTIE, dans la mesure permise par la loi.

Veuillez sélectionner le type de clé que vous souhaitez:
   (1) RSA et RSA (par défaut)
   (2) DSA et Elgamal
   (3) DSA (signe uniquement)
   (4) RSA (signe uniquement)
Votre sélection? 1
Les clés RSA peuvent avoir une longueur comprise entre 1024 et 4096 bits.
Quelle taille de clé voulez-vous? (2048) 4096
La taille de clé demandée est de 4096 bits
Veuillez spécifier combien de temps la clé doit être valide.
         0 = la clé n'expire pas
        = la clé expire dans n jours
      w = clé expire dans n semaines
      m = clé expire dans n mois
      y = clé expire dans n ans
La clé est valable pour? (0)
La clé n'expire pas du tout
Est-ce correct? (y / N) y

GnuPG doit créer un ID utilisateur pour identifier votre clé.

Nom réel: clé de chiffrement de fichier
Adresse e-mail: [email protected]
Commentaire: clé de cryptage de fichier
Vous avez sélectionné cet identifiant utilisateur:
    "Clé de cryptage de fichier (clé de cryptage de fichier)"

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

On vous demandera une phrase secrète pour la clé. Il est fortement recommandé d'utiliser un puissant. De toute façon, il n’est pas nécessaire de chiffrer les fichiers, ne vous inquiétez donc pas de l’utilisation ultérieure du lot.

Si tout est fait, quelque chose comme ceci apparaîtra sur votre écran:

Nous devons générer beaucoup d'octets aléatoires. C'est une bonne idée de jouer
une autre action (tapez sur le clavier, déplacez la souris, utilisez le
disques) pendant la génération principale; cela donne le nombre aléatoire
générer une meilleure chance de gagner assez d'entropie.
Nous devons générer beaucoup d'octets aléatoires. C'est une bonne idée de jouer
une autre action (tapez sur le clavier, déplacez la souris, utilisez le
disques) pendant la génération principale; cela donne le nombre aléatoire
générer une meilleure chance de gagner assez d'entropie.
gpg: clé FE53C811 marquée comme étant finalement fiable
clé publique et secrète créée et signée.

gpg: vérification de la confiance
gpg: 3 marginal (s) nécessaire (s), 1 complet (s) requis, modèle de confiance PGP
gpg: profondeur: 0 valide: 1 signé: 0 confiance: 0-, 0q, 0n, 0m, 0f, 1u
pub ***** / ******** 2013-03-19
      Empreinte digitale clé = **** **** **** **** **** **** **** **** **** ****
uid clé de cryptage de fichier (clé de cryptage de fichier) 
sous ***** / ******** 2013-03-19

Maintenant, vous pouvez exporter le fichier de clé publique pour l’importer sur d’autres machines:

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

Le File Encryption Keyest le nom que j'ai entré lors de la procédure de génération de clé.

Maintenant, j'utilise GnuPG sur les archives nouvellement créées:

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

Vous avez maintenant un files.tar.gz.gpgfichier crypté.

Vous pouvez le déchiffrer avec la commande suivante (votre phrase secrète vous sera demandée):

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

C'est toute la magie.

Assurez-vous de sauvegarder votre clé! Et n'oublie jamais ton mot de passe! Si ce n'est pas sauvegardé ou oublié, vous avez gigaoctets de données inutiles!

Sauvegardez votre clé privée avec cette commande:

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

Les avantages

  • Aucun des chiffreurs n'a besoin de connaître d'informations sensibles sur le chiffrement - le chiffrement est effectué avec la clé publique. (Vous pouvez créer la paire de clés sur votre poste de travail local et transférer uniquement la clé publique sur vos serveurs.)
  • Aucun mot de passe n'apparaît dans les fichiers de script ou les travaux
  • Vous pouvez avoir autant de crypteurs que vous le souhaitez sur n'importe quel système
  • Si vous gardez votre clé privée et le mot de passe complexe, tout va bien et il est très difficile de compromettre
  • Vous pouvez déchiffrer avec la clé privée sur les plates-formes Unix, Windows et Linux à l'aide de la mise en œuvre spécifique de PGP / GPG.
  • Pas besoin de privilèges spéciaux sur les systèmes de chiffrement et de déchiffrement, pas de montage, pas de conteneurs, pas de systèmes de fichiers spéciaux
zéro0
la source
1
Notez qu'en fonction des données, il peut être plus rapide de s'exécuter tarsans le zcommutateur pour éviter de le compresser.
l0b0
28

Pour ma part, j'utilise principalement deux méthodes:

Première méthode: tar et openssl

Tar le répertoire

tar cvf backup.tar /path/to/folder

Vous pouvez supprimer le commutateur [v] de la commande tar pour désactiver le mode prolixe.

Crypter

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

Vous pouvez remplacer aes-128-cbc par n’importe quelle autre méthode de chiffrement prise en charge par openssl (openssl --help).

Déchiffrer

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

Il vous demandera le mot de passe.

Deuxième méthode: zip crypté

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

Il vous demandera le mot de passe.

  • -r signifie récursivement (arborescence de dossiers complète)
  • -0 signifie seulement stocker (ne pas compresser, plus vite)
  • -e signifie chiffrer une archive

Un avantage: il fonctionnera mieux avec un système Windows.

Julien R.
la source
3
Donner un mot de passe en ligne de commande n'est pas une bonne idée. Le mot de passe reste dans l'historique du shell.
Les
1
Il est à noter que le zipcryptage est censé être craquable.
Acumenus
22

Si vous ne souhaitez pas chiffrer vos fichiers avec une paire de clés publique / privée et utiliser uniquement un chiffrement symétrique avec une phrase secrète, utilisez la commande suivante:

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

On vous demandera votre phrase secrète. Après cela, un fichier crypté nommé files.tar.gz.gpgest créé.

Pour décrypter, utilisez la commande

gpg --decrypt files.tar.gz.gpg > files.tar.gz
Chiborg
la source
2

Vous pouvez utiliser TrueCrypt solution très simple et agréable. Il a un paquet pour la console uniquement. C'est très simple à apprendre et à utiliser. http://www.truecrypt.org

B14D3
la source
4
À compter du 28 mai 2014, TrueCrypt n'est plus. Voir en.wikipedia.org/wiki/TrueCrypt
Bryce
2

Dans ce but, je suggérerais le cryptage FUSE (tel que encfs ). Pour des données plus petites, j’utiliserais gpg.

Il est implémenté dans l'espace utilisateur, vous n'avez donc pas besoin de privilèges spéciaux.

Maciej Piechotka
la source
1

Certains systèmes de fichiers Linux sont destinés au chiffrement de données. Avez-vous déjà pensé à LUX par exemple?

Gardien
la source
1

Un moyen très simple de chiffrer un fichier est le suivant:

gpg -c filename.ext

Une phrase de passe vous sera demandée deux fois, et gpg créera filename.ext.gpg. Téléchargez le fichier crypté sur votre service de cloud. Pour récupérer le fichier, utilisez:

gpg filename.ext.gpg

Ce qui va recréer filename.ext. Notez que les fichiers non cryptés ne sont pas sécurisés et que les données pertinentes resteront sur votre support de stockage même après leur suppression. Seul le conteneur gpg est sécurisé. EncFS est une alternative plus pratique pour le cryptage basé sur le cloud au niveau du fichier.

Bryce
la source