Date de publication: le mercredi 15 août 2007 à 21h00
Dernière modification: par Pascal BOYER le mardi 28 décembre 2010 à 13h37
Signature GnuPG
Télécharger une archive
Pour l'exemple, on se servira de l'archive du serveur web Apache 1.3.37
Sur ce serveur:
http://mir2.ovh.net/ftp.apache.org/dist/httpd/
...il est possible de télécharger la dernière version de Apache dans la branche 1.3, soit l'archive apache_1.3.37.tar.gz:
wget http://mir2.ovh.net/ftp.apache.org/dist/httpd/apache_1.3.37.tar.gz
--20:53:42-- http://mir2.ovh.net/ftp.apache.org/dist/httpd/apache_1.3.37.tar.gz
=> `apache_1.3.37.tar.gz'
Résolution de mir2.ovh.net... 213.186.33.38
Connexion vers mir2.ovh.net|213.186.33.38|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 2 665 370 (2.5M) [application/x-gzip]
100%[==================================================>] 2 665 370 6.21M/s
20:53:43 (6.21 MB/s) - « apache_1.3.37.tar.gz » sauvegardé [2665370/2665370]
Télécharger la signature
Il faut ensuite être en possession de la signature de l'archive:
wget http://mir2.ovh.net/ftp.apache.org/dist/httpd/apache_1.3.37.tar.gz.asc
--20:31:09-- http://mir2.ovh.net/ftp.apache.org/dist/httpd/apache_1.3.37.tar.gz.asc
=> `apache_1.3.37.tar.gz.asc'
Résolution de mir2.ovh.net... 213.186.33.38
Connexion vers mir2.ovh.net|213.186.33.38|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 481 [text/plain]
100%[=============================================>] 481 --.--K/s
20:31:09 (21.39 MB/s) - « apache_1.3.37.tar.gz.asc » sauvegardé [481/481]
Télécharger la clef
Enfin, on télécharge le dernier morceau du puzzle:
wget http://mir2.ovh.net/ftp.apache.org/dist/httpd/KEYS
--20:30:10-- http://mir2.ovh.net/ftp.apache.org/dist/httpd/KEYS
=> `KEYS'
Résolution de mir2.ovh.net... 213.186.33.38
Connexion vers mir2.ovh.net|213.186.33.38|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 302 597 (296K) [text/plain]
100%[===========================================>] 302 597 1.50M/s
20:30:10 (1.50 MB/s) - « KEYS » sauvegardé [302597/302597]
Effectuer le contrôle
Dans le même répertoire, on est donc en présence des trois fichiers suivants:
ls -la
total 336 drwxrwxrwx 3 root root 4096 2007-08-15 20:50 . drwxrwxrwx 15 root staff 4096 2007-08-14 22:43 .. -rw-r--r-- 1 root root 2665370 2006-07-27 20:38 apache_1.3.37.tar.gz -rw-r--r-- 1 root root 481 2006-07-27 20:38 apache_1.3.37.tar.gz.asc -rw-r--r-- 1 root root 302597 2006-11-09 08:13 KEYS
Le contrôle s'effectue avec les deux commandes suivantes:
gpg --import KEYS
gpg: key 2719AF35: "Ben Laurie <ben@gonzo.ben.algroup.co.uk>" not changed gpg: key A99F75DD: "Rodent of Unusual Size <coar@ACM.Org>" not changed gpg: key 302DA568: "Rodent of Unusual Size (DSA) <coar@ACM.Org>" not changed gpg: key 2C312D2F: "Rodent of Unusual Size <coar@ACM.Org>" not changed gpg: key A0BB71C1: "Jim Jagielski <jim@jaguNET.com>" not changed gpg: key 08C975E5: "Jim Jagielski <jim@apache.org>" not changed gpg: key DD919C31: "sameer@c2.net" not changed gpg: key 940A64BD: "Robert Hartill <robh@imdb.com>" not changed gpg: key 631B5749: "Randy Terbush <randy@zyzzyva.com>" not changed gpg: key 49A563D9: "Mark Cox <mjc@redhat.com>" not changed gpg: key 2F90A69D: "Paul Sutton <paul@ukweb.com>" not changed gpg: key BA20321D: no valid user IDs gpg: this may be caused by a missing self-signature gpg: key 26BB437D: "Ralf S. Engelschall <rse@engelschall.com>" not changed gpg: key 45B91DF1: no valid user IDs gpg: this may be caused by a missing self-signature gpg: key 163751F5: "Dean Gaudet <dgaudet@arctic.org>" not changed gpg: key EE65E321: "Martin Kraemer <martin@apache.org>" not changed gpg: key FDE534D1: "Martin Kraemer <martin@apache.org>" not changed gpg: key FDE534D1: "Martin Kraemer <martin@apache.org>" not changed gpg: key EC140B81: "Dirk-Willem van Gulik <dirkx@webweaving.org>" not changed gpg: key F08E012A: "Dean Gaudet <dgaudet@apache.org>" not changed gpg: key F88341D9: "Lars Eilebrecht <lars@eilebrecht.org>" not changed gpg: key 28AA55C5: "Daniel Lopez Ridruejo <ridruejo@apache.org>" not changed gpg: key C808A7BF: "rbb@apache.org" not changed gpg: key 06A14C05: no valid user IDs gpg: this may be caused by a missing self-signature gpg: key 00ADEBF5: "Marc Slemko <marcs@znep.com>" not changed gpg: key 62C48B29: "Ask Bjoern Hansen <ask@apache.org>" not changed gpg: key 10FDE075: "wrowe@covalent.net" not changed gpg: key B96CD0C7: "Bill Stoddard <bill@wstoddard.com>" not changed gpg: key 423FF2F1: "Paul J. Reder <rederpj@raleigh.ibm.com>" not changed gpg: key 82AB7BD1: "Cliff Woolley <jwoolley@apache.org>" not changed gpg: key 6BBA9D5D: "Cliff Woolley <jwoolley@apache.org>" not changed gpg: key B0D5F771: "Cliff Woolley <jwoolley@virginia.edu>" not changed gpg: key 37114B39: "Cliff Woolley <jwoolley@virginia.edu>" not changed gpg: key 751D7F27: "Graham Leggett <minfrin@apache.org>" not changed gpg: key 6D791A41: "Greg Ames <gregames@apache.org>" not changed gpg: key E04F9A89: "Roy T. Fielding <fielding@gbiv.com>" not changed gpg: key E2226795: "Justin R. Erenkrantz <jerenkrantz@apache.org>" not changed gpg: key 2CF86427: "Ian Holsman <ianh@apache.org>" not changed gpg: key 2CF86427: "Ian Holsman <ianh@apache.org>" not changed gpg: key CC8B0F7E: "Aaron Bannert <abannert@kuci.org>" not changed gpg: key 3A4E7AC9: "Brad Nicholes <bnicholes@novell.com>" not changed gpg: key DE885DD3: "Sander Striker <striker@apache.org>" not changed gpg: key E005C9CB: "Greg Stein <gstein@lyra.org>" not changed gpg: key 8103A37E: "Andre Malo <nd@apache.org>" not changed gpg: key 75A67692: "Erik Abele <erik@codefaktor.de>" not changed gpg: key 2261D073: "Astrid Kessler (Kess) <kess@kess-net.de>" not changed gpg: key 208F5064: "Joe Schaefer <joe@sunstarsys.com>" not changed gpg: key 0300A2E9: no valid user IDs gpg: this may be caused by a missing self-signature gpg: key A879FCF5: "Gregory Trubetskoy (Grisha) <grisha@ispol.com>" not changed gpg: key E76CF6D0: "Stas Bekman <stas@stason.org>" not changed gpg: key 42721F00: "Paul Querna <chip@force-elite.com>" not changed gpg: key F39B3750: "Colm MacCarthaigh <colm.maccarthaigh@heanet.ie>" not changed gpg: key 311A3DE5: "Ruediger Pluem <rpluem@apache.org>" not changed gpg: key 83E6AE0D: "Maxime Petazzoni (Bulix.org) <maxime.petazzoni@bulix.org>" not changed gpg: key 40581837: "Nick Kew <nick@webthing.com>" not changed gpg: key 152924AF: "Sander Temme <sander@temme.net>" not changed gpg: key 7F4436ED: "Sander Temme <sander@temme.net>" not changed gpg: key EC88A0BF: "Philip M. Gollucci <pgollucci@p6m7g8.com>" not changed gpg: Total number processed: 58 gpg: w/o user IDs: 4 gpg: unchanged: 54
Et enfin:
gpg --verify apache_1.3.37.tar.gz.asc
gpg: Signature made jeu 27 jui 2006 20:35:51 CEST using RSA key ID 10FDE075 gpg: Good signature from "wrowe@covalent.net" gpg: aka "William A. Rowe, Jr. <wrowe@rowe-clan.net>" gpg: aka "wrowe@lnd.com" gpg: aka "wrowe@apache.org" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 33 16 9B 46 FC 12 D4 01 CA 6D DB D7 DE EA 4F D7
La deuxième ligne nous indique que la signature est correcte («Good signature from...»)
Empreinte MD5
Pour une description détaillés de cet outil, je vous renvoie à la page que lui consacre Wikipedia: MD5
Prenons l'exemple d'une archive openssl téléchargée sur le site officiel.
Télécharger l'archive
wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz
Télécharger l'empreinte MD5
wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz.md5
Contrôle d'intégrité
On calcule l'empreinte unique engendrée par le fichier dont on souhaite vérifier l'intégrité:
md5sum openssl-0.9.8e.tar.gz
3a7ff24f6ea5cd711984722ad654b927 openssl-0.9.8e.tar.gz
L'empreinte est la longue chaîne de caractères qui précède le nom de l'archive.
Il ne reste plus qu'à comparer avec l'empreinte contenue dans le second fichier:
cat openssl-0.9.8e.tar.gz.md5
3a7ff24f6ea5cd711984722ad654b927
Signature SHA-1 ou SHA-256 ou SHA-384 ou SHA-512
Pour la description détaillé de toute la famille SHA des fonctions de hachage cryptographique je vous renvoie à nouveau vers Wikipedia: SHA
Le principe est en tout point identique à celui de MD5.
Prenons l'exemple d'une archive openssl téléchargée sur le site officiel.
Télécharger l'archive
wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz
Télécharger l'empreinte SHA-1
wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz.sha1
Contrôle d'intégrité
On calcule l'empreinte unique engendrée par le fichier dont on souhaite vérifier l'intégrité:
sha1sum openssl-0.9.8e.tar.gz
b429872d2a287714ab37e42296e6a5fbe23d32ff openssl-0.9.8e.tar.gz
L'empreinte est la longue chaîne de caractères qui précède le nom de l'archive.
:
Sur votre distribution Debian vous trouverez également les utilitaires sha224sum, sha256sum, sha384sum et sha512sum
Il ne reste plus qu'à comparer avec l'empreinte contenue dans le second fichier:
cat openssl-0.9.8e.tar.gz.sha1
b429872d2a287714ab37e42296e6a5fbe23d32ff
Commentaires














