Bonjour,
je zone dans les documentations d'OpenSSL et de GNU PG pour trouver une jolie solution à un problème courant: signer un fichier.
Le genre de chose qu'on trouve dans n'importe quel dépôt de n'importe quelle distribution Linux/BSD/etc (ah... non ? Tiens, j'aurais juré).
Le moins qu'on puisse dire, c'est que je n'y trouve rien qui m'aide à comprendre :-)
Admettons que j'ai un fichier nommé fichier.dat
Je souhaite créer un certificat (auto-signé, ça suffit), puis signer ce fichier avec, afin que mes correspondant aient la certitude que le fichier viens bien de moi. J'aurais alors un fichier nommé fichier.dat.signature
Ca c'est la théorie. En pratique, je viens de passer pas mal de temps avec OpenSSL, et les docs et exemples que je trouve ne me permettent pas cela (ou alors je suis nul, hypothèse à retenir).
J'y arrive tout de même sous forme s/mime, car les exemples sont tout cuits:
# générer un certificat
openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout cert.pem -out cert.pem
# générer la partie publique du certificat
openssl x509 -in cert.pem -out public.cert
# jetter un coup d'oeil
openssl x509 -text -in cert.pem
# ou
openssl x509 -text -in public.cert
# jusque là, je sais faire depuis longtemps.
# c'est la suite que je ne connais pas.
# signer avec s/mime
openssl smime -sign -signer cert.pem -in fichier.txt -out fichier.txt.signed
# vérifier
openssl smime -verify -in fichier.txt.signed -CAfile cert.pem
Avec cette méthode, si le fichier fait 1Mo alors le fichier de signature aussi. Savez-vous comment faire pour générer une signature séparée ?
Avec
# signer
openssl dgst -sha512 -sign cert.pem -out fichier.txt.sha1 fichier.txt
# vérifier
openssl dgst -sha512 -verify public.cert -signature fichier.txt.sha1 fichier.txt
# ... erreur: le fichier public.cert ne contient pas de certificat public (ah ?!)
Ca ne fonctionne pas. Dommage, ça ressemble à quelque chose de sympa, mais non, erreur.
Quelqu'un sait faire ?
# PGP
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 9.
Donc, avec GnuPG :
$ gpg --gen-key
$ gpg --sign FICHIER
Et voilà, ce n'est pas plus difficile que ça. Pour vérifier ton fichier, accompagné de sa signature FICHIER.gpg :
$ gpg --verify FICHIER.gpg
Pour cela il faut disposer de ta clef publique : tu peux la diffuser sur ton site, la donner par clef USB, la publier sur des serveurs de clef…
[^] # Re: PGP
Posté par Kerro . Évalué à 3.
Si mon fichier d'origine fait 30 Go (une sauvegarde), alors j'ai une signature d'un peu plus de 30 Go.
Bon, la documentation est bien meilleure
Je fais "gpg --detach-sign mon_fichier" et hop j'ai un minuscule fichier comportant la signature, problème réglé.
Je me penche sur les autres options.
Merci :-)
[^] # Re: PGP
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 1.
[^] # Re: PGP
Posté par B16F4RV4RD1N . Évalué à 4.
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
# Taille signature
Posté par dest . Évalué à 3.
Non, normalement, quand tu signes un fichier, tu signes un hash.
Fichier -> hash du fichier -> signature du hash.
# Signer des sommes de contrôles
Posté par Benoit . Évalué à 1.
[^] # Re: Signer des sommes de contrôles
Posté par khivapia . Évalué à 4.
Notamment parce que contrairement à l'intuition, le temps de calcul pour trouver une collision sur deux fonctions de hachage en même temps n'est pas égal au produit des temps de calculs pour trouver une collision sur chaque, mais lui est largement inférieur (et pas substantiellement plus important que le temps de trouver une collision sur la plus forte des deux).
[^] # Re: Signer des sommes de contrôles
Posté par khivapia . Évalué à 3.
[^] # Re: Signer des sommes de contrôles
Posté par Kerro . Évalué à 4.
Pour ma part j'utilise en général 2 algo différents pour que des personnes peu à l'aise (enfin des gros nuls, car ils sont sensés être admin) puissent tout de même faire un semblant de vérification. Donc MD5 toujours (bien qu'il soit cassable théoriquement) et SHA512.
Je vais ajouter Whirlpool alors :-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.