web-dev-qa-db-fra.com

Comment résoudre le problème "AVERTISSEMENT: le message n'était pas protégé en intégrité" lors de l'utilisation du chiffrement symétrique GPG?

J'ai crypté un fichier en utilisant un cryptage symétrique comme ceci:

gpg --symmetric myfile

ce qui donne un fichier myfile.gpg.

Bien. Maintenant déchiffrons à nouveau le fichier:

gpg -o myfile --decrypt myfile.gpg

On me demande le mot de passe composé que j'ai mis, puis je vois

gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
gpg: WARNING: message was not integrity protected

Je ne suis pas sûr de la première et de la dernière ligne.

  • Qu'est-ce que le chiffre CAST5 et est-il sécurisé? Je connais 3DES et AES et je sais que ceux-ci sont sécurisés.
  • Pourquoi n'est-il pas protégé pour l'intégrité?
  • Et en outre, comment puis-je résoudre ce problème?
44
gertvdijk

Contexte

CAST-5 est un ancien algorithme de chiffrement utilisé par GnuPG car AES n'existait pas encore à l'époque de la création initiale de GnuPG. source. Ce n'est pas très utilisé (à part GnuPG pour des raisons de compatibilité).

Le WARNING: message was not integrity protected est dû au fait que cette fonctionnalité n'est pas activée par défaut au moment du cryptage. Si cette option était activée, GnuPG pourrait indiquer si le fichier a été modifié pendant le transit.

Mise à jour: les versions modernes de GnuPG livrées avec Ubuntu/Debian ont maintenant MDC activé par défaut et vous ne devriez plus jamais voir ce message pour quoi que ce soit signé avec ces nouvelles versions .

Solutions

Pour utiliser un AES-256 plus puissant, vous devez le spécifier soit en ligne de commande, soit dans votre fichier de configuration.

  • Ligne de commande: ajoutez l'option --cipher-algo AES256 pour que la ligne complète à chiffrer devienne

    gpg -o myfile.gpg --cipher-algo AES256 --symmetric myfile
    
  • Fichier de configuration (recommandé): ajoutez la ligne suivante à votre fichier de configuration ~/.gnupg/gpg.conf.

    cipher-algo AES256
    

    Je recommande cette approche car elle sera utilisée pour toutes les futures opérations GPG sur ce compte utilisateur.

Il n'y a rien à changer pour que l'utilisateur déchiffre le fichier - GnuPG le détectera automatiquement.

Notez qu'en utilisant le chiffrement AES-256, l'intégrité du message est automatiquement protégée. Pour activer manuellement la protection de l'intégrité sur d'autres chiffrements pour lesquels cela n'est pas activé (comme CAST-5), ajoutez l'option --force-mdc lors du chiffrement.

Encore mieux: signe!

Une approche encore meilleure serait de signer vos fichiers avec votre paire de clés (si vous en avez). Ajoutez simplement l'option --sign à la commande de chiffrement, comme ceci:

gpg -o myfile.gpg --cipher-algo AES256 --sign --symmetric myfile

Cela validera non seulement l'intégrité du fichier, mais permettra également au destinataire du fichier de vérifier l'origine. Toute modification du fichier entraînerait l'échec de la vérification de la signature.

68
gertvdijk