Résumé : crypt ; aespipe ; openssl gpg
Si vous voulez chiffrer un fichier, par exemple un fichier de backup, vous avez plusieurs commandes pour le faire, adaptées à différents besoins.
Chiffrement symétrique
Vous pouvez utiliser le chiffrage symétrique pour des besoins courants, rapide et sûr, cette méthode permet de chiffrer rapidement avec un mot de passe connu de l'émetteur et du récepteur.
Nous avons donc l'ancienne méthode : crypt
# un mot de passe
$ crypt < file1 > file2
Bien, mais ce chiffrage est un peu faible, ça commence à dater. Heureusement, un tout nouveau standard de chiffrage est apparu, AES.
# attention, par contre le mot de passe doit faire 20 caractères minimum
$ aespipe < file1 > file2
Vous trouverez aussi bcrypt qui a un niveau tout à fait acceptable, et qui accepte les mots de passe de 8 caractères. Notez que vous avez aussi openssl en ligne de commande qui vous propose un grand nombre d'algorithmes de chiffrement symétrique, avec un usage relativement simple (man enc), mais bizarrement pas de chiffrement asymétrique.
$ openssl enc -des -e -salt -in file1 -out file2
Chiffrement asymétrique
Maintenant il se peut que vous vouliez chiffrer un fichier pour le communiquer à quelqu'un. Dans ce cas, un chiffrage asymétrique est probablement plus adapté (pas besoin de partager de mot de passe entre les 2 personnes).
Pour ce faire, intéressons nous donc à gpg.
Il nous faut une clé pour le destinataire :
$ gpg --gen-key
Clé dont on donne la partie publique à celui qui va chiffrer le fichier :
$ gpg --armor --export chiffre@dest.fr > pubkey
Émetteur qui va enregistrer cette clé :
$ gpg --import pubkey
On va enfin pouvoir chiffrer le fichier secret, côté sympathique, il n'y a aucun mot de passe à spécifier :
$ gpg -o secret.gpg -r chiffre@dest.fr -e secret
Un fichier chiffré secret.gpg est créé et vous pouvez le transmettre.
Le récepteur pourra alors le déchiffrer :
$ gpg -o secret -d secret.gpg