Pourquoi ne pas utiliser des pipes? c'est tout l’intérêt.
Pour le chiffrement, OK, mais pour le déchiffrement, c’est à éviter.
Pour des raisons historiques, OpenPGP (et donc GnuPG) fonctionne en mode MAC-then-Encrypt. Un MAC est calculé sur le texte clair, ajouté à la fin du texte (RFC 4880, §5.13), et l’ensemble est ensuite chiffré. (C’est une mauvaise stratégie et ça fait partie des choses que le prochain RFC sur OpenPGP devrait corriger.) Ce n’est donc qu’après avoir déchiffré tout le texte chiffré que GnuPG peut enfin prendre connaissance du MAC et ainsi vérifier l’intégrité du texte clair.
Si tu fais quelque chose comme ça :
gpg -d archive.tar.gpg | tar xf -
tu envoies à tar un texte clair dont l’intégrité n’a pas (encore) été vérifié. Si l’archive chiffrée a été modifiée par un attaquant, GnuPG affichera un message d’erreur en fin d’opération, mais dans le contexte d’un script appelé depuis une interface graphique (sans console pour afficher la sortie d’erreur standard), celui-ci passera inaperçu.
Il faut laisser GnuPG déchiffrer intégralement le fichier, vérifier le code de retour, et ensuite seulement détarrer l’archive :
if gpg -o archive.tar -d archive.tar.gpg ; then
# OK, on peut continuer
tar xf archive.tar
else
# Il y a quelque chose qui ne va pas
# Même si GnuPG a commencé à écrire le
# fichier archive.tar, on ne peut pas s’y fier!
# Prévenir l'utilisateur ou faire autre chose
:
fi
[^] # Re: script pour chiffrer des fichiers et dossiers
Posté par gouttegd . En réponse au journal GnuPT a disparu. Évalué à 5.
Pour le chiffrement, OK, mais pour le déchiffrement, c’est à éviter.
Pour des raisons historiques, OpenPGP (et donc GnuPG) fonctionne en mode MAC-then-Encrypt. Un MAC est calculé sur le texte clair, ajouté à la fin du texte (RFC 4880, §5.13), et l’ensemble est ensuite chiffré. (C’est une mauvaise stratégie et ça fait partie des choses que le prochain RFC sur OpenPGP devrait corriger.) Ce n’est donc qu’après avoir déchiffré tout le texte chiffré que GnuPG peut enfin prendre connaissance du MAC et ainsi vérifier l’intégrité du texte clair.
Si tu fais quelque chose comme ça :
tu envoies à tar un texte clair dont l’intégrité n’a pas (encore) été vérifié. Si l’archive chiffrée a été modifiée par un attaquant, GnuPG affichera un message d’erreur en fin d’opération, mais dans le contexte d’un script appelé depuis une interface graphique (sans console pour afficher la sortie d’erreur standard), celui-ci passera inaperçu.
Il faut laisser GnuPG déchiffrer intégralement le fichier, vérifier le code de retour, et ensuite seulement détarrer l’archive :