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

45

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

gpg --symmetric myfile

qui aboutit à 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?
Gertvdijk
la source
En fait, vous pouvez simplement gpg -c myfilechiffrer et gpg myfile.gpgdéchiffrer, la sortie sera déchiffrée myfilepar défaut.
CPRN
1
@CyprianGuerra gpg myfile.gpgse traduira par une sortie déchiffrée envoyée à stdout sur mon système ...
gertvdijk
Intéressant. Je l'ai sur les valeurs par défaut ...
cprn
J'ai téléchargé l'interface graphique ici et le fichier décrypté en l'utilisant. Ça a marché! pgptool.github.io
Iftikhar Ahmad Dar

Réponses:

69

Contexte

CAST-5 est un algorithme de cryptage plus utilisé par GnuPG parce que AES n'existait pas encore de retour dans le temps GnuPG a été initialement créé la source . Ce n'est pas très utilisé (à part GnuPG pour des raisons de compatibilité).

C'est WARNING: message was not integrity protectedparce 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 fournies avec Ubuntu / Debian ont maintenant MDC activé par défaut et vous ne devriez plus jamais voir ce message pour quelque chose 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’ --cipher-algo AES256option 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 ~/.gnupg/gpg.conffichier de configuration.

    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' --force-mdcoption 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' --signoption à 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.

Gertvdijk
la source
N'ai-je pas besoin d'un certificat pour signer?
Bilal Fazlani
@bilalfazlani à signer, vous aurez besoin d'une paire de clés GnuPG, oui. Pas besoin de le rendre public si vous ne le souhaitez pas. Il vous suffit de partager la clé publique avec les pairs avec lesquels vous partagez les fichiers cryptés. Ils doivent alors vérifier l'empreinte de la clé avec vous.
gertvdijk
Merci pour la réponse détaillée. Pouvez-vous expliquer davantage sur l'utilisation de la paire de clés?
Ben-Nabiy Derush
"le message n'était pas protégé en intégrité" se produit du côté du destinataire et vous expliquez comment résoudre ce problème du côté de l'expéditeur. La question est de savoir comment ignorer la question du côté de la réception pour pouvoir déchiffrer les messages plus anciens (en enigmail)
ensonic
@ ben-NabiyDerush Ces deux articles pourraient éclaircir vos questions sur la manière (et pourquoi) d'utiliser une paire de clés publique et privée. Cryptographie à clé publique . Web of Trust
Jpaugh le