.\" 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 \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 . Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.