RSAUTL(1SSL)

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.