Provided by: manpages-fr-extra_20151231_all 

NOM
ts - Outil d’autorité d’horodatage (client et serveur)
SYNOPSIS
openssl ts -query [-rand fichier:fichier...] [-config fichier_conf] [-data fichier_à_hacher] [-digest
octets_sign] [-md2|-md4|-md5|-sha|-sha1|-mdc2|-ripemd160|...] [-policy id_objet] [-no_nonce] [-cert] [-in
demande.tsq] [-out demande.tsq] [-text]
openssl ts -reply [-config fichier_conf] [section section_tsa] [-queryfile demande.tsq] [-passin
src_mot_de_passe] [-signer tsa_cert.pem] [-inkey privée.pem] [-chain fichier_certs.pem] [-policy
id_objet] [-in réponse.tsr] [-token_in] [-out response.tsr] [-token_out] [-text] [-engine id]
openssl ts -verify [-data fichier_à_hacher] [-digest octets_sign] [-queryfile demande.tsq] [-in
réponse.tsr] [-token_in] [-CApath chemin_cert_confiance] [-CAfile certs_confiance.pem] [-untrusted
fichier_cert.pem]
DESCRIPTION
La commande ts est une application client et serveur d’autorité d’horodatage (« Time Stamping
Authority », TSA) conforme à la RFC 3161 (protocole d'horodatage, « Time-Stamp Protocol » TSP). Une TSA
peut faire partie d'un déploiement de PKI et son rôle est de fournir des preuves à long terme de
l'existence d'une certaine donnée avant un moment donné. Voici une brève description du protocole.
1. Le client TSA calcule une valeur de hachage à sens unique pour un fichier de données et envoie le
hachage à la TSA.
2. La TSA attache la date et l'heure à la valeur de hachage reçue, les signe et envoie le jeton
d’horodatage au client. En créant ce jeton, la TSA certifie l'existence du fichier original de
données au moment où la réponse est créée.
3. Le client TSA reçoit le jeton d'horodatage et en vérifie la signature. Il vérifie également si le
jeton contient la même valeur de hachage qu'il avait envoyé à la TSA.
Une unité de données de protocole encodée DER est définie pour le transport d'une demande d'horodatage à
la TSA et une autre pour l'envoi de la réponse d'horodatage au client. La commande ts a trois fonctions
principales : créer une demande d'horodatage à partir d'un fichier de données, créer une réponse
d'horodatage à partir d'une demande et vérifier si une réponse correspond à une demande particulière ou à
un fichier de données.
Aucune prise en charge n’existe encore pour l’envoi de demandes et réponses automatiquement par HTTP ou
TCP comme suggéré dans la RFC 3161. Les utilisateurs doivent envoyer les demandes par FTP ou courrier
électronique.
OPTIONS
Création de demande d’horodatage
L’option -query peut être utilisée pour créer et afficher une demande d'horodatage avec les options
suivantes :
-rand fichier:fichier...
Les fichiers contenant des données aléatoires utilisées pour initialiser le générateur de nombres
pseudoaléatoires. Plusieurs fichiers peuvent être indiqués en utilisant le séparateur du système
d'exploitation : « ; » pour Windows, « , » pour OpenVMS et « : » pour tous les autres. (Facultatif)
-config fichier_conf
Le fichier de configuration à utiliser, cette option remplace la variable d'environnement
OPENSSL_CONF. Seule la section OID du fichier de configuration est utilisée avec la commande -query.
(Facultatif)
-data fichier_à_hacher
Le fichier de données pour lequel la demande d'horodatage doit être créée. L’entrée standard est la
valeur par défaut si aucune des options -data ou -digest n’est indiquée. (Facultatif)
-digest octets_sign
Indiquer explicitement l’empreinte du message est possible sans le fichier de données. L’empreinte
doit être indiquée au format hexadécimal, deux caractères par octet, les octets éventuellement
séparés par des deux-points (par exemple 1A:F6:01:... ou 1AF601...). Le nombre d’octets doit
correspondre à l’algorithme de signature de message utilisé. (Facultatif)
-md2|-md4|-md5|-sha|-sha1|-mdc2|-ripemd160|...
La signature de message à appliquer au fichier de données, tous les algorithmes de signature de
message pris en charge par la commande openssl dgst sont utilisables. La valeur par défaut est SHA-1.
(Facultatif)
policy id_objet
La politique attendue par le client de la TSA à utiliser pour créer le jeton d'horodatage. Soit la
notation OID avec points, soit les noms d’OID définis dans le fichier de configuration peuvent être
utilisés. Si aucune politique n’est demandée, la TSA utilisera sa propre politique par défaut.
(Facultatif)
-no_nonce
Aucun nonce n’est indiqué dans la demande si cette option est donnée. Sinon, un nonce pseudoaléatoire
de 64 bits est inclus dans la demande. Utiliser nonce est recommandé pour se protéger contre les
attaques par rejeu. (Facultatif)
-cert
La TSA devrait inclure son certificat de signature dans la réponse. (Facultatif)
-in demande.tsq
Cette option indique une demande d'horodatage précédemment créée au format DER qui sera envoyée dans
le fichier de sortie. Utile pour examiner le contenu d'une demande au format lisible. (Facultatif)
-out demande.tsq
Nom du fichier de sortie où la demande doit être écrite. La sortie standard par défaut. (Facultatif)
-text
Si cette option est indiquée, la sortie est au format texte lisible au lieu de DER. (Facultatif)
Création de réponse d’horodatage
Une réponse d’horodatage (TimeStampResp) se compose d'un état de réponse et du jeton d'horodatage
lui-même (ContentInfo), si la création du jeton a réussi. La commande -reply permet de créer une réponse
d'horodatage ou un jeton d'horodatage suivant la demande et l’affichage de la réponse ou du jeton dans un
format lisible. Si -token_out n'est pas indiqué, la sortie est toujours une réponse d'horodatage
(TimeStampResp), sinon c'est un jeton d'horodatage (ContentInfo).
-config fichier_conf
Le fichier de configuration à utiliser, cette option remplace la variable d'environnement
OPENSSL_CONF. Consultez OPTIONS DU FICHIER DE CONFIGURATION pour les variables configurables.
(Facultatif)
-spksect section
Le nom de la section du fichier de configuration contenant les paramètres pour la création de la
réponse. S'il n'est pas indiqué, la section TSA par défaut est utilisée, consultez OPTIONS DU FICHIER
DE CONFIGURATION pour plus de précisions. (Facultatif)
-queryfile demande.tsq
Le nom du fichier contenant une demande d’horodatage encodée en DER. (Facultatif)
-passin src_mot_de_passe
Indiquer la source pour la clef privée de la TSA. Consultez la section PARAMÈTRES DE PHRASE SECRÈTE
d'openssl(1).
-signer tsa_cert.pem
Le certificat de signataire de la TSA au format PEM. Le certificat de signature TSA doit avoir
exactement une utilisation de clef étendue attribuée : timeStamping. L'utilisation de la clef étendue
doit aussi être critique, sinon le certificat sera refusé. Cela remplace la variable signer_cert du
fichier de configuration. (Facultatif)
-inkey privée.pem
La clef privée du signataire de la TSA au format PEM. Cela remplace l'option signer_key du fichier de
configuration. (Facultatif)
-chain fichier_certs.pem
L’ensemble des certificats au format PEM qui seront tous inclus dans la réponse en plus du certificat
de signataire si l'option -cert a été utilisée pour la demande. Ce fichier est censé contenir la
chaîne de certificats pour le certificat de signataire à partir de ses émetteurs. La commande -reply
ne construit pas de chaîne de certificats automatiquement. (Facultatif)
policy id_objet
La politique par défaut à utiliser pour la réponse à moins que le client ne demande explicitement une
politique TSA particulière. L'OID peut être indiqué en utilisant une notation avec points ou par son
nom. Cela remplace l'option default_policy du fichier de configuration. (Facultatif)
-in réponse.tsr
Indiquer une réponse d'horodatage créée précédemment ou un jeton d'horodatage (si -token_in est
également indiquée) au format DER qui sera écrit dans le fichier de sortie. Cette option ne nécessite
pas de demande, elle est par exemple utile pour examiner le contenu d'une réponse ou d'un jeton ou
pour extraire le jeton d'horodatage d'une réponse. Si l'entrée est un jeton et la sortie une réponse
d'horodatage, une information d’état accordée (« granted ») par défaut est ajoutée au jeton.
(Facultatif)
-token_in
Cet indicateur peut être utilisé avec l'option -in et indique que l'entrée est un jeton d'horodatage
encodé DER (ContentInfo) au lieu d'une réponse d'horodatage (TimeStampResp). (Facultatif)
-out réponse.tsr
La réponse est écrite dans ce fichier. Le format et le contenu du fichier dépendent d'autres options
(consultez -text, -token_out). La valeur par défaut est la sortie standard. (Facultatif)
-token_out
La sortie est un jeton d'horodatage (ContentInfo) au lieu d’une réponse d’horodatage (TimeStampResp).
(Facultatif)
-text
Si cette option est indiquée, la sortie est au format texte lisible au lieu de DER. (Facultatif)
-engine id
Indiquer un moteur (en utilisant son identifiant unique id) forcera ts à essayer d'obtenir une
référence fonctionnelle pour le moteur indiqué et l'initialiser si nécessaire. Le moteur sera ensuite
utilisé par défaut pour tous les algorithmes disponibles. La valeur par défaut est « builtin ».
(Faclutatif)
Vérification de réponse d’horodatage
La commande -verify sert à vérifier si une réponse d'horodatage ou un jeton d'horodatage est valable et
correspond à une demande d'horodatage ou un fichier de données particuliers. La commande -verify
n'utilise pas le fichier de configuration.
-data fichier_à_hacher
La réponse ou le jeton doivent être vérifiés par rapport à fichier_à_hacher. Le fichier est haché
avec l’algorithme de signature de message indiqué dans le jeton. Les options -digest et -queryfile ne
doivent pas être indiquées avec cette option. (Facultatif)
-digest octets_sign
La réponse ou le jeton doivent être vérifiés par rapport à la signature de message indiquée par cette
option. Le nombre d'octets doit correspondre à l’algorithme de signature de message indiqué dans le
jeton. Les options -data et -queryfile ne doivent pas être indiquées avec cette option. (Facultatif)
-queryfile demande.tsq
La demande originale d’horodatage au format DER. Les options -data et -queryfile ne doivent pas être
indiquées avec cette option. (Facultatif)
-in réponse.tsr
La réponse d'horodatage à vérifier au format DER. (Obligatoire)
-token_in
Cet indicateur peut être utilisé avec l'option -in et indique que l'entrée est un jeton d'horodatage
encodé DER (ContentInfo) au lieu d'une réponse d'horodatage (TimeStampResp). (Facultatif)
-CApath chemin_cert_confiance
Le nom du répertoire contenant les certificats de l’autorité de confiance du client. Consultez
l'option similaire de verify(1) pour plus de précisions. Soit cette option, soit -CAfile doit être
indiquée. (Facultatif)
-CAfile certs_confiance.pem
Le nom du fichier contenant un ensemble de certificats autosignés de l’autorité de confiance au
format PEM. Consultez l'option similaire de verify(1) pour plus de précisions. Soit cette option,
soit -CApath doit être indiquée. (Facultatif)
-untrusted fichier_cert.pem
Ensemble de certificats supplémentaires qui ne sont pas de confiance au format PEM pouvant être
nécessaires lors de la construction de la chaîne de certificats d'un certificat de signature de la
TSA. Ce fichier doit contenir le certificat de signature TSA et tous les certificats d’autorité
intermédiaires sauf si la réponse les inclut. (Facultatif)
OPTIONS DU FICHIER DE CONFIGURATION
Les commandes -query et -reply utilisent un fichier de configuration défini par la variable
d'environnement OPENSSL_CONF. Consultez config(5) pour une description générale de la syntaxe du fichier
de configuration. La commande -query n’utilise que la section des noms symboliques d’OID et peut
fonctionner sans elle. Cependant, la commande -reply a besoin du fichier de configuration pour
fonctionner.
Quand une option de ligne de commande est équivalente à une variable, l'option est toujours prioritaire
sur les paramètres du fichier de configuration.
Section tsa, default_tsa
C’est la section principale, qui indique le nom d’une autre section contenant toutes les options pour
la commande -reply. Cette section par défaut peut être remplacée par l’option -section en ligne de
commande. (Facultatif)
oid_file
Consultez ca(1) pour la description. (Facultatif)
oid_section
Consultez ca(1) pour la description. (Facultatif)
RANDFILE
Consultez ca(1) pour la description. (Facultatif)
serial
Le nom du fichier contenant le numéro de série hexadécimal de la dernière réponse d’horodatage créée.
Ce nombre est incrémenté de 1 pour chaque réponse. Si le fichier n'existe pas au moment de la
création de réponse d'un nouveau fichier, un nouveau est créé avec le numéro de série 1.
(Obligatoire)
crypto_device
Indiquer le moteur OpenSSL qui sera défini par défaut pour tous les algorithmes disponibles. La
valeur par défaut est « builtin », vous pouvez indiquer d'autres moteurs pris en charge par OpenSSL
(par exemple, utiliser chil pour le HSM nCipher). (Facultatif)
signer_cert
Certificat de signature TSA au format PEM. Identique à l'option -signer en ligne de commande.
(Facultatif)
certs
Un fichier contenant un ensemble de certificats encodés PEM qui doivent être inclus dans la réponse.
Identique à l'option -chain en ligne de commande. (Facultatif)
signer_key
La clef privée de la TSA au format PEM. Identique à l'option -inkey en ligne de commande.
(Facultatif)
default_policy
La politique par défaut à utiliser quand la demande n'exige pas de politique. Identique à -policy en
ligne de commande. (Facultatif)
other_policies
Liste des politiques, séparées par des virgules, qui sont aussi acceptables par la TSA et utilisées
seulement si la demande indique explicitement l'une d’entre elles. (Facultatif)
digests
La liste des algorithmes de signature de message que la TSA accepte. Au moins un algorithme doit être
indiqué. (Obligatoire)
accuracy
La précision de la source de temps de la TSA en seconde, milliseconde et microseconde. Par exemple
secs:1, millisecs:500, microsecs:100. Si l'un des composants est manquant, ce champ est supposé nul.
(Facultatif)
clock_precision_digits
Indiquer le nombre maximal de chiffres pour représenter la fraction de seconde qui doit être incluse
dans champ temporel. Les zéros finaux doivent être supprimés, donc moins de chiffres pourraient être
présents ou aucune fraction de seconde du tout. Pris en charge uniquement sur les plate-formes UNIX.
La valeur maximale est 6, la valeur par défaut est 0. (Facultatif)
ordering
Si cette option est « yes », les réponses créées par cette TSA peuvent toujours être ordonnées, même
si la différence de temps entre deux réponses est inférieure à la somme de leurs précisions. « no »
par défaut. (Facultatif)
tsa_name
Si cette option est « yes », le nom d'objet de la TSA doit être inclus dans le champ de noms TSA de
la réponse. « no » par défaut. (Facultatif)
ess_cert_id_chain
Les objets SignedData créés par la TSA contiennent toujours l'identifiant de certificat du certificat
de signature dans un attribut signé (consultez la RFC 2634, « Enhanced Security Services »). Si cette
option est « yes » et que soit la variable certs, soit l'option -chain est indiquée, les identifiants
de certificat de la chaîne seront également inclus dans l’attribut SigningCertificate signé. Si cette
variable est « no », seul l'identifiant de certificat de signature est inclus. « no » par défaut.
(Facultatif)
VARIABLES D'ENVIRONNEMENT
OPENSSL_CONF contient l'emplacement du fichier de configuration et peut être modifiée par l'option
-config en ligne de commande.
EXEMPLES
Tous les exemples ci-dessous supposent que OPENSSL_CONF est défini vers un fichier de configuration
approprié, comme dans le fichier d'exemple de configuration openssl/apps/openssl.cnf.
Demande d’horodatage
Pour créer une demande d'horodatage pour design1.txt avec SHA-1 sans nonce, avec la politique et sans
certificat nécessaire dans la réponse :
openssl ts -query -data design1.txt -no_nonce \
-out design1.tsq
Pour créer une demande d'horodatage similaire en indiquant explicitement l’empreinte du message :
openssl ts -query -digest b7e5d3f93198b38379852f2c04e78d73abdd0f4b \
-no_nonce -out design1.tsq
Pour afficher le contenu de la requête précédente en format lisible :
openssl ts -query -in design1.tsq -text
Pour créer une demande d'horodatage qui comprend la signature MD-5 de design2.txt, demande le certificat
du signataire et nonce, indique un identifiant de politique (en supposant que le nom tsa_policy1 est
défini dans la section OID du fichier de configuration) :
openssl ts -query -data design2.txt -md5 \
-policy tsa_policy1 -cert -out design2.tsq
Réponse d’horodatage
Avant de créer une réponse, un certificat de signature doit être créé pour la TSA qui contient
l'extension d’utilisation de clef étendue critique timeStamping sans aucune autre extension d'utilisation
de clef. Vous pouvez ajouter la ligne « extendedKeyUsage = critical,timeStamping » à la section de
certificat utilisateur du fichier de configuration pour créer un certificat approprié. Consultez req(1),
ca(1) et x509(1) pour les instructions. Les exemples ci-dessous supposent que cacert.pem contient le
certificat de l’autorité de certification, tsacert.pem est le certificat de signature émis par cacert.pem
et tsakey.pem est la clef privée de la TSA.
Pour créer une réponse d'horodatage pour une requête :
openssl ts -reply -queryfile design1.tsq -inkey tsakey.pem \
-signer tsacert.pem -out design1.tsr
Pour utiliser les paramètres du fichier de configuration :
openssl ts -reply -queryfile design1.tsq -out design1.tsr
Pour afficher une réponse d’horodatage sur la sortie standard sous forme lisible :
openssl ts -reply -in design1.tsr -text
Pour créer un jeton d'horodatage au lieu d’une réponse d'horodatage :
openssl ts -reply -queryfile design1.tsq -out design1_token.der \
-token_out
Pour afficher un jeton d’horodatage sur la sortie standard sous forme lisible :
openssl ts -reply -in design1_token.der -token_in -text -token_out
Pour extraire le jeton d'horodatage d'une réponse :
openssl ts -reply -in design1.tsr -out design1_token.der -token_out
Pour ajouter l’information d’état « granted » (accordé) à un jeton d'horodatage créant ainsi une réponse
valable :
openssl ts -reply -in design1_token.der -token_in -out design1.tsr
Vérification d’horodatage
Pour vérifier une réponse d’horodatage par rapport à une demande :
openssl ts -verify -queryfile design1.tsq -in design1.tsr \
-CAfile cacert.pem -untrusted tsacert.pem
Pour vérifier une réponse d’horodatage qui comprend la chaîne de certificats :
openssl ts -verify -queryfile design2.tsq -in design2.tsr \
-CAfile cacert.pem
Pour vérifier un jeton d'horodatage par rapport au fichier de données d'origine :
openssl ts -verify -data design2.txt -in design2.tsr \
-CAfile cacert.pem
Pour vérifier un jeton d'horodatage par rapport à une empreinte de message :
openssl ts -verify -digest b7e5d3f93198b38379852f2c04e78d73abdd0f4b \
-in design2.tsr -CAfile cacert.pem
D’autres exemples sont aussi disponibles dans le répertoire test.
BOGUES
Les bogues et suggestions peuvent être envoyés à Zoltan Glozik <zglozik@opentsa.org>. Une liste des
problèmes connus suit.
— Pas de prise en charge d’horodatages par SMTP, mais c’est assez facile de mettre en œuvre une TSA
automatique à base de courriers électroniques avec procmail(1) et perl(1). La prise en charge du serveur
HTTP est fournie sous forme d'un module Apache séparé. La prise en charge de client HTTP est assurée par
tsget(1). Le protocole TCP/IP pur n'est pas pris en charge.
— Le fichier contenant le dernier numéro de série de la TSA n'est pas verrouillé lorsqu'il est lu ou
écrit. C’est un problème si plusieurs instances d’openssl(1) tentent de créer une réponse d'horodatage en
même temps. Ce n'est pas un problème si le module de serveur Apache est utilisé : il fait un verrouillage
correct.
— Recherchez le mot « FIXME » dans les fichiers source.
— Le code source devrait vraiment être examiné par quelqu'un d'autre.
— Plus de tests sont nécessaires, seuls quelques tests de base ont été effectués (consultez
test/testtsa).
AUTEUR
Zoltan Glozik <zglozik@opentsa.org>, projet OpenTSA (<http://www.opentsa.org>)
VOIR AUSSI
tsget(1), openssl(1), req(1), x509(1), ca(1), genrsa(1), config(5)
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.
1.0.2a 1.0.2c 2015-12-31 TS(1SSL)