8 votes

Comment vérifier un fichier à chiffrement symétrique GPG ?

J'ai créé un fichier crypté avec un cryptage symétrique.

gpg -c 50GBfile

Maintenant, je veux supprimer l'original. Avant de supprimer l'original, je veux vérifier l'intégrité du fichier crypté. (De la même manière que les fichiers ZIP utilisent le CRC). Est-ce que gpg offre un moyen de vérifier le contenu des fichiers cryptés symétriquement ?

5voto

Ninveh Points 181

La seule opération de "vérification" dans gnupg est la vérification de la signature. qui, en gros, crypte le dièse du fichier crypté avec une clé publique (=sign).

À mon avis, cela signifie que si les bits de sortie sont corrompus pendant que le fichier est crypté, le hachage sera calculé par rapport à l'adresse de l'utilisateur. fichier corrompu . Vous ne le découvrirez jamais en vérifiant le signature de ce fichier puisque vous avez signé un fichier déjà corrompu.

Il semble que la seule façon de vérifier positivement un fichier crypté contre la corruption est de passer par le long processus de décryptage du fichier généré et de comparer son hachage avec l'original.

Et c'est ce que Sepero a proposé ci-dessus, mais au lieu de "Vous pourriez vérifier..." il devrait l'être " Le sólo moyen de vérifier..."

Mise à jour - pour faire passer le message :

C'est ce que j'ai fait il y a quelques minutes : Diviser un fichier de sauvegarde de 9,8 Go en 5 morceaux rar, et chaque morceau crypté symétriquement par gnupg. Avant de supprimer les morceaux rar, j'ai vérifié l'intégrité des morceaux chiffrés comme je l'ai dit plus haut : 1 sur les 5 n'a pas passé le test de hachage. J'ai décrypté à nouveau ce morceau, et maintenant le hachage du morceau décrypté correspondait au morceau rar original.

J'ai comparé en binaire la mauvaise partie du rar décrypté avec la bonne partie décryptée, et la seule différence dans ces fichiers de 2 Go était un octet : C8 contre 48 - ce qui est causé par un retournement de 1 bit (c'est-à-dire 11001000 contre 01001000).

La morale de l'histoire, c'est que si, sur un bon système WIN7 et un bon disque dur, gnupg peut faire des pirouettes sur le décryptage, il pourrait le faire aussi sur le cryptage. Je ne sauterai plus jamais cette étape de vérification de l'intégrité.

4voto

Si vous avez crypté le fichier avec gpg -c alors il n'y a aucun moyen de vérifier ce que contient le fichier sans connaître la phrase de passe. C'est une propriété essentielle du cryptage symétrique. Puisque vous devrez de toute façon fournir la phrase de passe, faites le vrai test : décompressez le fichier et comparez-le avec l'original. Sur Linux ou une autre variante d'Unix :

gpg -d <50GBfile.gpg | cmp - 50GBfile

Si vous voulez une garantie supplémentaire d'intégrité, vous pouvez signer le fichier avec votre clé privée en ajoutant l'option -s lorsque vous cryptez le fichier.

gpg -c -s 50GBfile

Ensuite, vous pouvez vérifier la signature avec gpg --verify 50GBfile.gpg . Notez que cela ne donne que la garantie que le fichier est l'un des fichiers que vous avez signés, cela ne vous protège pas contre une erreur par laquelle vous auriez signé le mauvais fichier.

Si vous avez utilisé un cryptage asymétrique (avec la clé publique du destinataire - votre propre clé publique), la vérification que le fichier a le contenu souhaité nécessitera la clé privée du destinataire. Avec plusieurs destinataires, la clé privée de n'importe quel destinataire fera l'affaire. En général, vous placez votre propre clé comme destinataire de tous les messages cryptés, avec la mention encrypt-to o hidden-encrypt-to dans le fichier de configuration GPG.

1voto

Sepero Points 266

Vous pouvez le vérifier en extrayant et en comparant le md5sum à l'original.

$ gpg -d 50GBfile | md5sum
gpg: AES256 encrypted data
gpg: gpg-agent is not available in this session
gpg: encrypted with 1 passphrase
1df1aaffb20c5255e282d6f584489993  -
$ md5sum 50GBfile
1df1aaffb20c5255e282d6f584489993  50GBfile

0voto

mateuszk87 Points 13

Dans le cas où vous voulez vérifier l'intégrité, vous devez signe le fichier original également.

gpg --encrypt --sign fichier

Enfin, vous pouvez vérifier l'intégrité (basée sur la signature) en décryptant le fichier (l'intégrité est vérifiée automatiquement).

gpg --decrypt fichier.asc

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X