La signature d'un message exige la saisie de la phrase de passe de la clé privée à chaque fois.
"message" correspond à un fichier texte contenant le message à signer.
# cat message
Ceci est un message signé.
# gpg --sign message
Un nouveau fichier message.gpg est généré contenant le message et la signature au format binaire.
Pour lire le contenu du message, il faut obligatoirement utiliser gpg avec l'option --decrypt.
En effet, le message n'est pas chiffré, il est seulement signé, mais étant au format binaire, seule l'option --decrypt est capable de vérifier la signature et d'afficher le message en clair.
# gpg --clearsign message
Un nouveau fichier message.asc est généré contenant le message et la signature au format ASCII.
# gpg --detach-sign message
Un nouveau fichier message.sig est généré contenant uniquement la signature au format binaire.
# gpg --detach-sign --armor message
Un nouveau fichier message.asc est généré contenant uniquement la signature au format ASCII.
Pour modifier le nom du fichier généré, il faut utiliser l'option -o nomDuFichier (ou --output).
# gpg --detach-sign --armor -o signature.asc message
Il est possible de signer un message sans passer par l'intermédiare de fichiers (entrées/sorties)
# echo "Ceci est un message signé." | gpg --clearsign
You need a passphrase to unlock the secret key for
user: "Jean Michel A Peu Près <jm@apeupres.fr>"
2048-bit RSA key, ID 219FE958, created 2015-09-11 (main key ID 0D6FE738)
gpg: gpg-agent is not available in this session
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Ceci est un message signé.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAEBAgAGBQJV9enkAAoJED/atMwhn+lYiz8H+wc1peA+zFNh0pI0Xl9LaCng
2BPlhod4MYO7yAJTKh76MHx1pXZAjPRZdvQf7WockS9gyHC2/h3MGcFMJZ4LAYdQ
16LfwCC2ip08FsiWuIjnAdC+qEcvLVM6MkH5iiKVgLRnwn7b7oqp9M/mwQGb8JmA
gxRwMTDZxxSBHjjIKPtbOzzN/Wp308WQiI1G0d/uM+GE8JmOQcGAz2pNS/i01KbR
7ft0RUGOtdlnZOyBpuTl90CEkEhFjICvoyB3EEoXAR+DorxhgRUGeGliZzgoKSeU
cWsGlMaigvofC67xSaWacIpk/GOv0hZUPMR9EqmKuCDqSHpcrnWX3W2JWYqwkZM=
=XBKV
-----END PGP SIGNATURE-----
Copier/coller le message signé dans un mail au format texte (tout le contenu de -----BEGIN PGP SIGNED MESSAGE----- jusqu'à -----END PGP SIGNATURE-----).
Pour envoyer la sortie vers un fichier, utiliser l'option -o monFichier (--output).
On signe le fichier message
# gpg --armor --detach-sign message
On vérifie la signature du fichier message.
L'option --verify prend en premier paramètre le nom du fichier contenant la signature (si la signature est dans un fichier à part) et le nom du fichier signé en second paramètre.
# gpg --verify message.asc message
gpg: Signature made Sun 13 Sep 2015 11:40:49 PM CEST using RSA key ID 219FE958
gpg: Good signature from "Jean Michel A Peu Près <jm@apeupres.fr>"
La signature est correcte.
On altère le fichier message pour simuler un piratage du fichier.
# echo "" >> message
On vérifie à nouveau la signature du fichier.
# gpg --verify message.asc message
gpg: Signature made Wed 16 Sep 2015 07:14:28 PM CEST using RSA key ID 219FE958
gpg: BAD signature from "Jean Michel A Peu Près <jm@apeupres.fr>"
Le résultat nous indique que la signature est incorrecte.
Nous avons la preuve que le fichier d'origine a été altéré.
Franchement, c'est quand même pas si compliqué de signer un fichier et c'est quand même plus sécurisant.
Et si maintenant on le chiffrait, ce fichier ...