web-dev-qa-db-fra.com

Quelle est la bonne solution pour crypter certains fichiers sous Unix?

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

44
Peter

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

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

Si ce n'est pas 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 être suffisantes pour un premier test. Quelque chose comme ça apparaîtra:

 gpg (GnuPG) 2.0.18; Copyright (C) 2011 Free Software Foundation, Inc. 
 Il s'agit d'un logiciel gratuit: vous êtes libre de le modifier 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 seulement) 
 (4) RSA (signe seulement) 
 Votre sélection? 1 
 Les clés RSA peuvent avoir une longueur comprise entre 1024 et 4096 bits. 
 Quelle taille de clé souhaitez-vous? (2048) 4096 
 La taille de clé demandée est de 4096 bits 
 Veuillez spécifier la durée de validité de la clé. 
 0 = la clé n'expire pas 
 = La clé expire en n jours 
 w = la clé expire dans n semaines 
 m = la clé expire dans n mois 
 y = la clé expire dans n années 
 La clé est valide 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 
 Courriel address: [email protected] 
 Commentaire: File Encryption Key 
 Vous avez sélectionné cet ID D'UTILISATEUR: 
 "File Encryption Key (File Encryption Key)" 
 
 Changer (N) ame, (C) omment, (E) mail ou (O) kay/(Q) uit? o 

Un mot de passe vous sera demandé pour la clé. Il est fortement recommandé d'en utiliser un solide. De toute façon, il n'est pas nécessaire pour le cryptage des fichiers, alors ne vous inquiétez pas de l'utilisation par lots plus tard.

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

 Nous devons générer beaucoup d'octets aléatoires. C'est une bonne idée d'exécuter 
 Une autre action (taper sur le clavier, déplacer la souris, utiliser les disques 
) Pendant la génération principale; cela donne au générateur de nombres aléatoires 
 une meilleure chance de gagner suffisamment d'entropie. 
 Nous devons générer beaucoup d'octets aléatoires. C'est une bonne idée d'exécuter 
 Une autre action (taper sur le clavier, déplacer la souris, utiliser les disques 
) Pendant la génération principale; cela donne au générateur de nombres aléatoires 
 une meilleure chance d'obtenir suffisamment d'entropie. 
 gpg: clé FE53C811 marquée comme 
 clé publique et secrète finalement approuvée créée et signée. 
 
 gpg: vérification du trustdb 
 gpg: 3 marge (s) nécessaire (s), 1 complet (s) nécessaire, 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 (File Encryption Key ) 
 sub *****/******** 2013-03-19 

Maintenant, vous pouvez vouloir exporter le fichier de clés publiques pour l'importer sur d'autres machines:

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

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

Maintenant, j'utilise GnuPG sur l'archive nouvellement créée:

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

Vous avez maintenant un files.tar.gz.gpg fichier chiffré.

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

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

C'est toute la magie.

Assurez-vous de sauvegarder votre clé! Et n'oubliez jamais votre phrase secrète! S'il n'est pas sauvegardé ou oublié, vous avez des gigaoctets de données indésirables!

Sauvegardez votre clé privée avec cette commande:

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

Avantages

  • Aucun des chiffreurs n'a besoin de connaître des 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 vers vos serveurs)
  • Aucun mot de passe n'apparaîtra dans les fichiers de script ou les travaux
  • Vous pouvez avoir autant de chiffreurs que vous le souhaitez sur n'importe quel système
  • Si vous gardez votre clé privée et la phrase secrète secrètes, tout va bien et très très difficile à compromettre
  • Vous pouvez décrypter avec la clé privée sur les plates-formes Unix, Windows et Linux en utilisant l'implémentation PGP/GPG spécifique
  • Pas besoin de privilèges spéciaux sur les systèmes de cryptage et de décryptage, pas de montage, pas de conteneurs, pas de systèmes de fichiers spéciaux
51
zero0

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 détaillé.

Crypter

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

Vous pouvez remplacer aes-128-cbc par toute 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 entière)
  • -0 signifie stocker uniquement (ne se comprime pas, plus rapidement)
  • -e signifie chiffrer l'archive

Un avantage de cela: il fonctionnera mieux avec un système basé sur Windows.

28
Julien R.

Si vous ne souhaitez pas crypter vos fichiers avec une paire de clés publique/privée et utiliser uniquement un cryptage symétrique avec une phrase de passe, utilisez la commande suivante:

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

On vous demandera votre phrase de passe. Après cela, un fichier chiffré nommé files.tar.gz.gpg est créé.

Pour décrypter, utilisez la commande

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

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

2
B14D3

À cette fin, je suggère le chiffrement Fuse (tel que encfs ) - pour des données plus petites, j'utiliserais gpg.

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

2
Maciej Piechotka

Un moyen très simple de crypter un fichier est:

gpg -c filename.ext

On vous demandera une phrase secrète deux fois, et gpg créera filename.ext.gpg. Téléchargez le fichier crypté sur votre service cloud. Pour récupérer le fichier, utilisez:

gpg filename.ext.gpg

Qui recréera filename.ext. Notez que les fichiers non chiffrés ne sont pas sécurisés et 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 chiffrement basé sur le cloud au niveau du fichier.

1
Bryce

Il existe certains systèmes de fichiers Linux destinés au chiffrement des données. Avez-vous déjà pensé à Lux par exemple?

1
Guardian