Appliquer la notion

Nous allons manipuler des clés GPG sur un repl Bash.

Question

Générer une paire de clés pour un utilisateur « John Smith » d'adresse e-mail john@smith.xyz.

Solution

On utilise :

1
gpg --generate-key

On entre les informations et on choisit une phrase de passe suffisamment grande.

Question

Créer un fichier message.txt de contenu :

1
Message secret

Et le chiffrer pour vous même avec gpg en un fichier msg.txt.gpg.

Indice

On utilisera une commande de la forme.

1
gpg --output fichier_chiffré --encrypt --recipient addresse_email fichier_à_chiffrer

Solution

On utilise :

1
gpg --output msg.txt.gpg --encrypt --recipient john@smith.xyz message.txt

Question

Faire une copie de ce fichier nommée copy.txt.gpg et changer quelques octets dans la copie.

Indice

On pourra utiliser la commande cp.

Solution

1
cp msg.txt.gpg copy.txt.gpg
2
nano copy.txt.gpg

Le fichier étant chiffré, dans l'éditeur de texte, il y aura des caractères illisibles. Il suffit de supprimer un ou deux caractères au milieu du fichier pour l'altérer.

Question

Déchiffrer le fichier original msg.txt.gpg et le fichier altéré copy.txt.gpg.

Que se passe-t-il dans le cas du fichier altéré ?

Solution

On déchiffre ainsi le premier fichier :

1
gpg --output message_dechiffre.txt --decrypt msg.txt.gpg

Le contenu est identique au contenu du fichier original message.txt.

Pour la copie altérée, le déchiffrement est impossible.

1
gpg --output copy.txt --decrypt copy.txt.gpg
2
gpg: no valid OpenPGP data found.
3
gpg: decrypt_message failed: Unknown system error

Dans le cas où l'altération (légère) est réalisée en début ou en fin de fichier, il est possible que le déchiffrement reste réalisable car seul l'entête ou la signature est légèrement touchée

Stéphane Crozat, Marc Damie Paternité - Partage des Conditions Initiales à l'Identique