Outils pour utilisateurs

Outils du site


bash:gpg_backup

GPG backup & restore

Ces deux scripts répondent à ma problématique: un hébergeur cloud (genre HubiC) ne doit pas être capable techniquement de fouiller dans les données. Si uploader un conteneur TrueCrypt est possible, il me semble meilleur que l'hébergeur sache précisément que le fichier est chiffré et par quelle technologie. Et puisque GPG est très connu pour le chiffrement d'emails (secret des correspondances aidant), bloquer ou supprimer spécifiquement les données chiffrées avec GPG est moins facilement justifiable.

Principe

Les fichiers à sauvegarder sont placés dans un dossier, ce dernier est concaténé-compressé (TAR et LZMA), le fichier compressé enfin est chiffré avec une clé privée. Le fichier “.gpg” en résultat peut être envoyé pour sauvegarde. La même clé privée est nécessaire pour déchiffrer le fichier, sachant que les clés GPG sont généralement de type RSA 1024 bits ou plus.

Le déchiffrement se fait sur tous les fichiers gpg du dossier.

gpg_backup
#!/bin/bash
filename=$(date +%Y-%m-%d_%H-%M-%S)
mkdir -p "$filename/"
read -p "Un dossier [$filename] vient d'être crée. Placez vos fichiers/dossiers à chiffrer dedans et appuyez sur ENTRÉE pour continuer. "
gpg -K
read -p "Quelle clé privée voulez-vous utiliser ? (la première partie de l'uid suffit) " cle
echo "Veuillez patienter, concaténation et compression du dossier data en cours..."
tar -Jcvf "$filename.tar.xz" "$filename/"
echo "*****************************************"
echo " [[ le fichier sera nommé $filename.gpg ]]"
echo "*****************************************"
echo "Fichier prêt pour chiffrement."
size=$(stat -c%s "$filename.tar.xz")
	if (( size > 52000000 )); then echo "Votre fichier fait plus de 50 Mo, le chiffrement peut prendre plusieurs minutes !"; fi
echo "(si maintenant GPG vous demande de confirmer l'utilisation de la clé [$cle], confirmez. Vous pourrez éviter ça à l'avenir en signant la clé)"
echo "*****************************************"
echo "_________________________________________"
gpg -z 0 -e -r $cle -o "$filename.gpg" "$filename.tar.xz"
rm "$filename.tar.xz"
echo "*****************************************"
echo "+++++++++++++++++++++++++++++++++++++++++"
echo "Chiffrement terminé, vous pouvez envoyer $filename.gpg dans votre sauvegarde. Si le dossier $filename/ ne vous est plus utile, supprimez-le."
read -p " == FIN DU SCRIPT == "
gpg_restore
#!/bin/bash
read -p "Placez les fichiers gpg à déchiffrer dans le même emplacement que ce script, et appuyez sur ENTRÉE."
echo "Déchiffrement et décompression des fichiers, veuillez patienter..."
for file in *.gpg; do
gpg -o "${file%.???}.tar.xz" "$file"
tar -Jxvf "${file%.???}.tar.xz"
rm "${file%.???}.tar.xz"
done
echo "*****************************************"
echo "+++++++++++++++++++++++++++++++++++++++++"
echo "Déchiffrement terminé."
read -p " == FIN DU SCRIPT == "
bash/gpg_backup.txt · Dernière modification: 2013/02/19 19:28 (modification externe)