.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
.    if \nF \{
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\" ========================================================================
.\"
.IX Title "fr::ssl::SSL_CTX_set_tmp_dh_callback 3SSL"
.TH fr::ssl::SSL_CTX_set_tmp_dh_callback 3SSL "2015-12-31" "1.0.2a 1.0.2c" "OpenSSL"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NOM"
.IX Header "NOM"
SSL_CTX_set_tmp_dh_callback, SSL_CTX_set_tmp_dh, SSL_set_tmp_dh_callback,
SSL_set_tmp_dh \- Gérer les clefs \s-1DH\s0 pour l’échange de clefs éphémères
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
\&\fB #include <openssl/ssl.h>\fR
.PP
\&\fB void SSL_CTX_set_tmp_dh_callback(\s-1SSL_CTX\s0 *\fR\fIctx\fR\fB,\fR
            \fB\s-1DH\s0 *(*\fR\fItmp_dh_callback\fR\fB)(\s-1SSL\s0 *\fR\fIssl\fR\fB, int\fR \fIis_export\fR\fB,\fR
                                   \fBint\fR \fItaille_clef\fR\fB);\fR
 \fBlong SSL_CTX_set_tmp_dh(\s-1SSL_CTX\s0 *\fR\fIctx\fR\fB, \s-1DH\s0 *\fR\fIdh\fR\fB);\fR
.PP
\&\fB void SSL_set_tmp_dh_callback(\s-1SSL\s0 *\fR\fIctx\fR\fB,\fR
            \fB\s-1DH\s0 *(*\fR\fItmp_dh_callback\fR\fB)(\s-1SSL\s0 *\fR\fIssl\fR\fB, int\fR \fIis_export\fR\fB,\fR
                                   \fBint\fR \fItaille_clef\fR\fB));\fR
 \fBlong SSL_set_tmp_dh(\s-1SSL\s0 *\fR\fIssl\fR\fB, \s-1DH\s0 *\fR\fIdh\fR\fB)\fR
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBSSL_CTX_set_tmp_dh_callback\fR() définit la fonction de rappel à utiliser
pour \fIctx\fR lorsqu’un paramètre \s-1DH\s0 est nécessaire pour
\&\fItmp_dh_callback\fR. Tous les objets \fIssl\fR créés à partir de \fIctx\fR héritent
du rappel.
.PP
\&\fBSSL_CTX_set_tmp_dh\fR() définit les paramètres \s-1DH\s0 à utiliser à \fIdh\fR. Tous
les objets \fIssl\fR créés à partir de \fIctx\fR héritent de la clef.
.PP
\&\fBSSL_set_tmp_dh_callback\fR() définit le rappel seulement pour \fIssl\fR.
.PP
\&\fBSSL_set_tmp_dh\fR() définit les paramètres seulement pour \fIssl\fR.
.PP
Ces fonctions sont applicables aux serveurs \s-1SSL/TLS\s0 uniquement.
.SH "NOTES"
.IX Header "NOTES"
Lors de l’utilisation d’un algorithme de chiffrement avec authentification
\&\s-1RSA,\s0 un échange de clefs éphémères \s-1DH\s0 peut survenir. Les algorithmes avec
clefs \s-1DSA\s0 utilisent toujours des clefs éphémères \s-1DH.\s0 Dans ces cas, les
données de session sont négociées en utilisant une clef éphémère/temporaire
\&\s-1DH\s0 et la clef fournie et authentifiée par la chaîne de certificats est
utilisée uniquement pour la signature. Les algorithmes anonymes (sans
serveur permanent de clefs) utilisent aussi les clefs éphémères \s-1DH.\s0
.PP
L’usage de clef éphémère \s-1DH\s0 rend la confidentialité persistante, car la
connexion ne peut être déchiffrée que lorsque la clef \s-1DH\s0 est connue. En
créant une clef \s-1DH\s0 éphémère uniquement pendant la durée de la mise en œuvre
du serveur, un attaquant ne peut absolument pas déchiffrer des sessions
terminées même s’il se procure une clef conforme (certifiée), puisque la
clef n’a été utilisée que pour la signature.
.PP
Pour réaliser l’échange de clefs \s-1DH,\s0 le serveur doit utiliser un ensemble \s-1DH
\&\s0(paramètres \s-1DH\s0) et créer une clef \s-1DH.\s0 Durant la négociation, le serveur
générera toujours une nouvelle clef \s-1DH\s0 si les paramètres \s-1DH\s0 sont fournis à
l’aide du rappel ou si l’option \fB\s-1SSL_OP_SINGLE_DH_USE\s0\fR de
\&\fBSSL_CTX_set_options\fR(3) est définie (ou les deux). Le serveur créera
immédiatement une clef \s-1DH\s0 si les paramètres \s-1DH\s0 sont fournis à l’aide de
\&\fBSSL_CTX_set_tmp_dh\fR() et que \fB\s-1SSL_OP_SINGLE_DH_USE\s0\fR n’est pas
définie. Dans ce cas, une clef peut être créée lors d’une initialisation et
n’être jamais nécessaire, quoique d’un autre coté, le temps de calcul
pendant la négociation est économisé.
.PP
Si des nombres premiers « forts » sont utilisés pour générer les paramètres
\&\s-1DH,\s0 créer une nouvelle clef n’est pas strictement nécessaire à chaque
initialisation de connexion mais cela améliore la confidentialité
persistante. Si l’utilisation de nombres premiers « forts » n’est pas sûre,
\&\fB\s-1SSL_OP_SINGLE_DH_USE\s0\fR doit être utilisée pour empêcher les attaques par
sous-groupes. L’utilisation de \fB\s-1SSL_OP_SINGLE_DH_USE\s0\fR a toujours des
incidences sur le temps de calcul nécessaire à la négociation, mais ce n’est
pas très important et les créateurs ou utilisateurs devraient toujours
activer cette option. Cette option est nécessaire pour mettre en œuvre une
confidentialité persistante parfaite (\s-1PFS\s0).
.PP
Comme le temps pour générer les paramètres \s-1DH\s0 est extrêmement long, les
applications ne devraient pas les créer à la volée mais les fournir. Ces
paramètres \s-1DH\s0 peuvent être réutilisés puisque la clef effective est
fraichement créée durant la négociation. Le risque de la réutilisation est
qu’un attaquant pourrait se focaliser sur un groupe \s-1DH\s0 très souvent
utilisé. Les applications devraient donc créer leurs propres paramètres \s-1DH\s0
durant le processus d’installation en utilisant la fonction d’OpenSSL
\&\fBdhparam\fR(1). Cette fonction garantit que des nombres
premiers « forts » sont utilisés.
.PP
Les fichiers \fIdh2048.pem\fR et \fIdh4096.pem\fR dans le répertoire « apps » de
l’actuelle distribution d’OpenSSL contiennent les paramètres \s-1DH\s0 « \s-1SKIP\s0 »,
ceux-ci utilisant des nombres premiers sûrs, et, d’une manière vérifiable,
générés de manière pseudo\-aléatoire. Ces fichiers peuvent être convertis en
code C avec l’option \fB\-C\fR de la fonction \fBdhparam\fR(1). La
création de paramètres \s-1DH\s0 personnalisés lors de l’installation devrait
toujours être préférée pour arrêter un attaquant se focalisant sur un groupe
fréquemment utilisé. Les fichiers dh1024.pem et dh512.pem contiennent de
vieux paramètres et ne doivent pas être utilisés.
.PP
Une application peut soit indiquer les paramètres \s-1DH,\s0 soit les fournir avec
une fonction de rappel.
.PP
Les précédentes versions de rappel utilisaient les paramètres  \fBis_export\fR
et \fBkeylength\fR pour contrôler la création de paramètres pour les suites de
chiffrement destinées à l’export ou non. Les serveurs d’aujourd’hui qui ne
prennent pas en charge les suites de chiffrement destinées à l’export serait
avisés de soit utiliser \fBSSL_CTX_set_tmp_dh\fR() avec
\&\fB\s-1SSL_OP_SINGLE_DH_USE\s0\fR, soit utiliser le rappel en ignorant \fBkeylength\fR et
\&\fBis_export\fR, et en fournissant simplement au moins des paramètres 2048 bits
dans le rappel.
.SH "EXEMPLES"
.IX Header "EXEMPLES"
Définition des paramètres \s-1DH\s0 avec une longueur de clef de 2048 bits. (La
gestion des erreurs est délaissée).
.PP
.Vb 2
\& Création des paramètres en ligne de commande :
\& $ openssl dhparam \-out dh_param_2048.pem 2048
\&
\& Code pour établir les paramètres durant l’initialisation du serveur :
\&
\& ...
\& SSL_CTX ctx = SSL_CTX_new();
\& ...
\&
\& /* Définitions des paramètres DH éphémères. */
\& DH *dh_2048 = NULL;
\& FILE *fich_param;
\& fich_param = fopen("dh_param_2048.pem", "r");
\& if (fich_param) {
\&   dh_2048 = PEM_read_DHparams(fich_param, NULL, NULL, NULL);
\&   fclose(fich_param);
\& } else {
\&   /* Error. */
\& }
\& if (dh_2048 == NULL) {
\&  /* Error. */
\& }
\& if (SSL_CTX_set_tmp_dh(ctx, dh_2048) != 1) {
\&   /* Error. */
\& }
\& SSL_CTX_set_options(ctx, SSL_OP_SINGLE_DH_USE);
\& ...
.Ve
.SH "VALEURS DE RETOUR"
.IX Header "VALEURS DE RETOUR"
\&\fBSSL_CTX_set_tmp_dh_callback\fR() et \fBSSL_set_tmp_dh_callback\fR() ne
renvoient pas d’information de diagnostic.
.PP
\&\fBSSL_CTX_set_tmp_dh\fR() et \fBSSL_set_tmp_dh\fR() renvoient \fB1\fR en cas de
réussite et \fB0\fR en cas d’échec.
.SH "VOIR AUSSI"
.IX Header "VOIR AUSSI"
\&\fBssl\fR(3),
\&\fBSSL_CTX_set_cipher_list\fR(3),
\&\fBSSL_CTX_set_tmp_rsa_callback\fR(3),
\&\fBSSL_CTX_set_options\fR(3),
\&\fBciphers\fR(1), \fBdhparam\fR(1)
.SH "TRADUCTION"
.IX Header "TRADUCTION"
La traduction de cette page de manuel est maintenue par
les membres de la liste <debian\-l10n\-french \s-1AT\s0 lists \s-1DOT\s0 debian \s-1DOT\s0 org>.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur
le paquet manpages-fr-extra.