NOM¶
rsautl - Utilitaire pour RSA
SYNOPSIS¶
openssl rsautl [
-in fichier] [
-out fichier]
[
-inkey fichier] [
-pubin] [
-certin] [
-sign]
[
-verify] [
-encrypt] [
-decrypt] [
-pkcs]
[
-ssl] [
-raw] [
-hexdump] [
-asn1parse]
DESCRIPTION¶
La commande
rsautl peut être utilisée pour signer,
vérifier, chiffrer et déchiffrer des données en utilisant
l'algorithme RSA.
OPTIONS DE LA COMMANDE¶
- -in nom_fichier
- Ceci spécifie le nom de fichier d'entrée où lire les
données. Par défaut, si cette option n'est pas fournie, les
données sont lues depuis l'entrée standard.
- -out nom_fichier
- Le nom du fichier de sortie. Par défaut, la sortie standard est
utilisée.
- -inkey fichier
- le fichier avec la clé d'entrée. Par défaut, ce doit
être une clé privée RSA.
- -pubin
- le fichier d'entrée est une clé publique RSA.
- -certin
- le fichier d'entrée est un certificat contenant la clé
publique RSA.
- -sign
- signer les données d'entrée et fournir le résultat
chiffré. Ceci nécessite une clé privée
RSA.
- -verify
- vérifier les donnée d'entrée et fournir les
données convertie.
- -encrypt
- chiffrer les données d'entrée en utilisant la clé
publique RSA.
- -decrypt
- déchiffrer les données d'entrée en utilisant la
clé privée.
- -pkcs, -oaep, -ssl, -raw
- le type de remplissage (« padding ») à
utiliser : respectivement PKCS#1 v1.5 (par défaut), PKCS#1
OAEP, remplissage particulier utilisé pour la compatibilité
arrière avec les poignées de mains SSL v2, ou pas de
remplissage. Pour les signatures, seules les options -pkcs et
-raw peuvent être utilisées.
- -hexdump
- affichage hexadécimal des données de sortie.
- -asn1parse
- analyser les données de sortie avec asn1parse. C'est utile
lorsqu'elle est associée à l'option -verify.
NOTES¶
Parce qu'elle utilise l'algorithme RSA directement, la commande
rsautl ne
peut être utilisée que pour signer ou vérifier des
données de petite taille.
EXEMPLES¶
Signer des données en utilisant une clé privée :
openssl rsautl -sign -in file -inkey key.pem -out sig
Récupérer les données signées :
openssl rsautl -verify -in sig -inkey key.pem
Examiner les données brutes signée :
openssl rsautl -verify -in file -inkey key.pem -raw -hexdump
0000 - 00 01 ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0010 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0020 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0030 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0040 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0050 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0060 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0070 - ff ff ff ff 00 68 65 6c-6c 6f 20 77 6f 72 6c 64 .....hello world
Le format du bloc PKCS#1 est évident ici. S'il avait été
créé avec encrypt/decrypt, le bloc aurrait été de
type 2 (le deuxième octet) et des données de remplissage
aléatoires auraient été utilisées à la
place des octets 0xff.
Il est possible d'analyser la signature de certificats en utilisant cet
utilitaire avec
asn1parse. Par exemple avec un certificat
auto-signé certs/pca-cert.pem, exécuter
asn1parse
produit :
openssl asn1parse -in pca-cert.pem
0:d=0 hl=4 l= 742 cons: SEQUENCE
4:d=1 hl=4 l= 591 cons: SEQUENCE
8:d=2 hl=2 l= 3 cons: cont [ 0 ]
10:d=3 hl=2 l= 1 prim: INTEGER :02
13:d=2 hl=2 l= 1 prim: INTEGER :00
16:d=2 hl=2 l= 13 cons: SEQUENCE
18:d=3 hl=2 l= 9 prim: OBJECT :md5WithRSAEncryption
29:d=3 hl=2 l= 0 prim: NULL
31:d=2 hl=2 l= 92 cons: SEQUENCE
33:d=3 hl=2 l= 11 cons: SET
35:d=4 hl=2 l= 9 cons: SEQUENCE
37:d=5 hl=2 l= 3 prim: OBJECT :countryName
42:d=5 hl=2 l= 2 prim: PRINTABLESTRING :AU
....
599:d=1 hl=2 l= 13 cons: SEQUENCE
601:d=2 hl=2 l= 9 prim: OBJECT :md5WithRSAEncryption
612:d=2 hl=2 l= 0 prim: NULL
614:d=1 hl=3 l= 129 prim: BIT STRING
Le « BIT STRING » final contient la signature. Elle
peut être extraite de cette façon :
openssl asn1parse -in pca-cert.pem -out sig -noout -strparse 614
La clé public du certificat peut être extraite avec :
openssl x509 -in test/testx509.pem -pubkey -noout >pubkey.pem
La signature peut être analysée avec :
openssl rsautl -in sig -verify -asn1parse -inkey pubkey.pem -pubin
0:d=0 hl=2 l= 32 cons: SEQUENCE
2:d=1 hl=2 l= 12 cons: SEQUENCE
4:d=2 hl=2 l= 8 prim: OBJECT :md5
14:d=2 hl=2 l= 0 prim: NULL
16:d=1 hl=2 l= 16 prim: OCTET STRING
0000 - f3 46 9e aa 1a 4a 73 c9-37 ea 93 00 48 25 08 b5 .F...Js.7...H%..
Il s'agit de la version lisible de la structure ASN1 DigestInfo. On peut voir
que l'algorithme de hachage utilisé était md5. La partie du
certificat qui a été signée peut être extraite
avec :
openssl asn1parse -in pca-cert.pem -out tbs -noout -strparse 4
Et son condensé peut être calculé avec :
openssl md5 -c tbs
MD5(tbs)= f3:46:9e:aa:1a:4a:73:c9:37:ea:93:00:48:25:08:b5
qui, on peut le voir, est cohérent avec la valeur
récupérée ci-dessus.
VOIR AUSSI¶
dgst(1),
rsa(1),
genrsa(1)
TRADUCTION¶
La traduction de cette page de manuel est maintenue par les membres de la liste
<debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler
toute erreur de traduction par un rapport de bogue sur le paquet
manpages-fr-extra.