Chiffrer automatiquement un fichier avec mcrypt

Tous les détails de la commande mcrypt

La commande mcrypt propose différentes solutions afin de l'utiliser via un script.

Soit en utilisant un fichier de configuration, soit en utilisant des variables d'environnement.

Il est possible d'utiliser un fichier de configuration qui sera utilisé par défaut par la commande mcrypt.
Ce fichier doit être obligatoirement nommé ".mcryptrc" et placé dans le home de l'utilisateur.
Il devra contenir 3 paramètres :
- l'algorithme à utiliser
- le mode d'encryptage
- la phrase de passe

$ ls -l .mcryptrc
-rw------- 1 root root 46 31 oct.  09:09 .mcryptrc
$ cat .mcryptrc
algorithm des
mode cbc
key ma_phrase_de_passe
$

Lors de l'utilisation de la commande mcrypt, les paramètres d'encryptage seront automatiquement récupérés.

$ mcrypt monFichier
Warning: It is insecure to specify keywords in the command line
File monFichier was encrypted.
$ ls -l monFichier*
-rw-r--r-- 1 root root  0 31 oct.  08:32 monFichier
-rw------- 1 root root 84 31 oct.  08:32 monFichier.nc
$

Il est également possible d'utiliser un fichier de configuration nommé différemment mais dans ce cas, il faudra le spécifier lors de l'utilisation de la commande mcrypt avec l'option -c.

$ ls -l my_config_file
-rw------- 1 root root 46 31 oct.  09:15 my_config_file
$ cat my_config_file
algorithm des
mode cbc
key ma_phrase_de_passe
$ mcrypt -c my_config_file monFichier
Warning: It is insecure to specify keywords in the command line
File monFichier was encrypted.
$ ls -l monFichier*
-rw-r--r-- 1 root root  0 31 oct.  08:32 monFichier
-rw------- 1 root root 84 31 oct.  08:32 monFichier.nc
$

Il est possible égalment d'utiliser des variables d'environnement qu'il faudra initialiser et exporter directement dans le script utilisant la commande mcrypt.

Ces variables sont :

MCRYPT_KEY:la phrase de passe
MCRYPT_ALGO:l'algorithme à utiliser
MCRYPT_MODE:le mode d'encryptage

Exemple d'un script :

$ cat mon_script.sh
#!/bin/bash
 
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
 
export MCRYPT_KEY="la phrase de passe"
export MCRYPT_ALGO="DES"
export MCRYPT_MODE="CBC"
 
if [[ -e monFichier.nc ]]; then
        rm monFichier.nc
fi
 
mcrypt monFichier
 
exit 0
$

Dans ce script, les variables propres à mcrypt sont initialisées et exportées.
Un test sur l'existence du fichier crypté permet de le supprimer avant d'exécuter la commande mcrypt (cela évite d'avoir un message de confirmation de la commande mcrypt pour écraser le fichier)
Enfin, la commande mcrypt est exécutée sur le fichier "monFichier".

Exécution du script :

$ ./mon_script.sh
File monFichier was encrypted.
$

Ce script peut être utilisé pour envoyer un fichier sur un serveur FTP par exemple sans compromettre les données du fichier.

Etiquettes: