.\" 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_options 3SSL" .TH fr::ssl::SSL_CTX_set_options 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_options, SSL_set_options, SSL_CTX_clear_options, SSL_clear_options, SSL_CTX_get_options, SSL_get_options, SSL_get_secure_renegotiation_support \- Manipuler des options \s-1SSL\s0 .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fB #include \fR .PP \&\fB long SSL_CTX_set_options(\s-1SSL_CTX\s0 *\fR\fIctx\fR\fB, long\fR \fIoptions\fR\fB);\fR \fBlong SSL_set_options(\s-1SSL\s0 *\fR\fIssl\fR\fB, long\fR \fIoptions\fR\fB);\fR .PP \&\fB long SSL_CTX_clear_options(\s-1SSL_CTX\s0 *\fR\fIctx\fR\fB, long\fR \fIoptions\fR\fB);\fR \fBlong SSL_clear_options(\s-1SSL\s0 *\fR\fIssl\fR\fB, long\fR \fIoptions\fR\fB);\fR .PP \&\fB long SSL_CTX_get_options(\s-1SSL_CTX\s0 *\fR\fIctx\fR\fB);\fR \fBlong SSL_get_options(\s-1SSL\s0 *\fR\fIssl\fR\fB);\fR .PP \&\fB long SSL_get_secure_renegotiation_support(\s-1SSL\s0 *\fR\fIssl\fR\fB);\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" Note : toutes ces fonctions sont implémentées en utilisant des macros. .PP \&\fBSSL_CTX_set_options\fR() ajoute les options, définies à l’aide d’un masquage dans \fIoptions\fR, à \fIctx\fR. Les options déjà définies ne sont pas effacées ! .PP \&\fBSSL_set_options\fR() ajoute les options, définies à l’aide d’un masquage dans \fIoptions\fR, à \fIctx\fR. Les options déjà définies ne sont pas effacées ! .PP \&\fBSSL_CTX_clear_options\fR() efface les options, définies à l’aide d’un masquage dans \fIoptions\fR, de \fIctx\fR. .PP \&\fBSSL_clear_options\fR() efface les options, définies à l’aide d’un masquage dans \fIoptions\fR, de \fIssl\fR. .PP \&\fBSSL_CTX_get_options\fR() renvoie les options définies pour \fIctx\fR. .PP \&\fBSSL_get_options\fR() renvoie les options définies pour \fIssl\fR. .PP \&\fBSSL_get_secure_renegotiation_support\fR() signale si le pair gère les renégociations sécurisées. .SH "NOTES" .IX Header "NOTES" Le comportement de la bibliothèque \s-1SSL\s0 peut être modifié en réglant plusieurs options. Les options sont codées comme des masquages et peuvent être associées avec une opération logique \fBou\fR (|). .PP \&\fBSSL_CTX_set_options\fR() et \fBSSL_set_options\fR() affectent le comportement de protocole (externe) de la bibliothèque \s-1SSL.\s0 Le comportement (interne) de l’API peut être changé en utilisant les fonctions similaires \&\fBSSL_CTX_set_mode\fR(3) et \fBSSL_set_mode\fR(). .PP Pendant une initialisation de connexion, les réglages d’options de l’objet \&\s-1SSL\s0 sont utilisés. Quand un nouvel objet \s-1SSL\s0 est créé à partir d’un contexte en utilisant \fBSSL_new\fR(), les réglages d’option sont copiés. Les modifications à \fIctx\fR n’agissent sur les objets \s-1SSL\s0 déjà créés. \fBSSL_clear\fR() ne modifie pas les réglages. .PP Les options suivantes de palliatif de bogue sont disponibles : .IP "\s-1SSL_OP_MICROSOFT_SESS_ID_BUG\s0" 4 .IX Item "SSL_OP_MICROSOFT_SESS_ID_BUG" www.microsoft.com — avec SSLv2, si une réutilisation de l’identifiant de session est faite, l’identifiant transmis dans le message quand le serveur a terminé est différent de celui décidé pour SSLv2. .IP "\s-1SSL_OP_NETSCAPE_CHALLENGE_BUG\s0" 4 .IX Item "SSL_OP_NETSCAPE_CHALLENGE_BUG" Netscape\-Commerce/1.12, avec SSLv2, accepte une demande d’accès en 32 octets mais il semble seulement utiliser 16 octets lors de la production de la clef de chiffrement. Utiliser 16 octets est correct, mais 32 octets le serait aussi. D’après les spécifications SSLv3, 32 octets devraient être utilisés lors d’une demande dans le mode de compatibilité SSLv2/v3, mais comme mentionné ci-dessus, cela casse le serveur et 16 octets est la méthode à utiliser. .IP "\s-1SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG\s0" 4 .IX Item "SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG" Comme dans OpenSSL 0.9.8q et 1.0.0c, cette option n’a pas d’effet. .IP "\s-1SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG\s0" 4 .IX Item "SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG" \&... .IP "\s-1SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER\s0" 4 .IX Item "SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER" \&... .IP "\s-1SSL_OP_SAFARI_ECDHE_ECDSA_BUG\s0" 4 .IX Item "SSL_OP_SAFARI_ECDHE_ECDSA_BUG" Ne choisissez pas les signatures ECDHE-ECDSA si le client apparait être Safari sur \s-1OS X. OS X 10.8..10.8.3\s0 ne prennent plus en charge les signatures ECDHE-ECDSA. .IP "\s-1SSL_OP_SSLEAY_080_CLIENT_DH_BUG\s0" 4 .IX Item "SSL_OP_SSLEAY_080_CLIENT_DH_BUG" \&... .IP "\s-1SSL_OP_TLS_D5_BUG\s0" 4 .IX Item "SSL_OP_TLS_D5_BUG" \&... .IP "\s-1SSL_OP_TLS_BLOCK_PADDING_BUG\s0" 4 .IX Item "SSL_OP_TLS_BLOCK_PADDING_BUG" \&... .IP "\s-1SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS\s0" 4 .IX Item "SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS" Désactiver les contre-mesures sur une vulnérabilité du protocole \&\s-1SSL 3.0/TLS 1.0\s0 affectant les chiffrements \s-1CBC,\s0 qui ne peut être gérée par quelques implémentations cassées de \s-1SSL.\s0 Cette option n’a aucun effet sur les connexions utilisant d’autres signatures. .IP "\s-1SSL_OP_TLSEXT_PADDING\s0" 4 .IX Item "SSL_OP_TLSEXT_PADDING" Ajouter une extension d’emplissage pour garantir que la taille de ClientHello ne soit jamais comprise entre 256 et 512 octets. Cela est nécessaire comme palliatif pour quelques implémentations. .IP "\s-1SSL_OP_ALL\s0" 4 .IX Item "SSL_OP_ALL" Tous les palliatifs pour les bogues ci-dessus. .PP Utiliser \fB\s-1SSL_OP_ALL\s0\fR est généralement sans danger pour activer les options de palliatif de bogue si la compatibilité avec quelques implémentations légèrement non conformes est désirée. .PP Les options \fBmodificatrices\fR suivantes sont disponibles. .IP "\s-1SSL_OP_TLS_ROLLBACK_BUG\s0" 4 .IX Item "SSL_OP_TLS_ROLLBACK_BUG" Désactiver la détection de la variante attaque par annulation. .Sp Pendant l’échange de clefs, le client doit envoyer la même information sur les niveaux acceptables de protocole \s-1SSL/TLS\s0 comme pendant le premier hello. Certains clients enfreignent cette règle en s’adaptant à la réponse du serveur. (Exemple : le client envoie un hello SSLv2 et accepte jusqu’à SSLv3.1=TLSv1, le serveur comprend jusqu’à SSLv3. Dans ce cas, le client doit encore utiliser la même annonce SSLv3.1=TLSv1. Certains clients se rabattent sur SSLv3 en accord avec la réponse du serveur et enfreignent la variante protection contre annulation.) .IP "\s-1SSL_OP_SINGLE_DH_USE\s0" 4 .IX Item "SSL_OP_SINGLE_DH_USE" Toujours créer une nouvelle clef lors de l’utilisation de paramètres \s-1DH\s0 temporaires ou éphémères (consultez \&\fBSSL_CTX_set_tmp_dh_callback\fR(3)). Cette option doit être utilisée en prévention des attaques par petits sous-groupes, si les paramètres \s-1DH\s0 n’étaient pas créés avec des nombres premiers « forts » (par exemple lors de l’utilisation de paramètres \s-1DSA,\s0 consultez \fBdhparam\fR(1)). Si des nombres premiers « forts » sont utilisés, créer une nouvelle clef \s-1DH\s0 à chaque initialisation de connexion n’est pas strictement nécessaire mais recommandé. \fB\s-1SSL_OP_SINGLE_DH_USE\s0\fR devrait par conséquent être activé chaque fois que des paramètres temporaires ou éphémères sont utilisés. .IP "\s-1SSL_OP_EPHEMERAL_RSA\s0" 4 .IX Item "SSL_OP_EPHEMERAL_RSA" Cette option n’est plus effective, elle est ignorée. .IP "\s-1SSL_OP_CIPHER_SERVER_PREFERENCE\s0" 4 .IX Item "SSL_OP_CIPHER_SERVER_PREFERENCE" Lors du choix d’une signature, utiliser les préférences du serveur plutôt que celles du client. Sans ce réglage, le serveur \s-1SSL\s0 suivra toujours les préférences du client. Avec ce réglage, le serveur SSLv3/TLSv1 choisira de suivre ses propres préférences. À cause de la différence de protocole, pour SSLv2 le serveur enverra sa liste de préférences au client et celui-ci choisira. .IP "\s-1SSL_OP_PKCS1_CHECK_1\s0" 4 .IX Item "SSL_OP_PKCS1_CHECK_1" \&... .IP "\s-1SSL_OP_PKCS1_CHECK_2\s0" 4 .IX Item "SSL_OP_PKCS1_CHECK_2" \&... .IP "\s-1SSL_OP_NETSCAPE_CA_DN_BUG\s0" 4 .IX Item "SSL_OP_NETSCAPE_CA_DN_BUG" Si une connexion Netscape est acceptée, demande un certificat client, possède un \s-1CA\s0 non auto\-signé n’ayant pas son \s-1CA\s0 dans Netscape, et que le navigateur a un certificat, cela provoquera un plantage ou un blocage. Valable pour 3.x et 4.xbeta. .IP "\s-1SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG\s0" 4 .IX Item "SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG" \&... .IP "SSL_OP_NO_SSLv2" 4 .IX Item "SSL_OP_NO_SSLv2" Ne pas utiliser le protocole SSLv2. .IP "SSL_OP_NO_SSLv3" 4 .IX Item "SSL_OP_NO_SSLv3" Ne pas utiliser le protocole SSLv3. .IP "SSL_OP_NO_TLSv1" 4 .IX Item "SSL_OP_NO_TLSv1" Ne pas utiliser le protocole TLSv1. .IP "\s-1SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION\s0" 4 .IX Item "SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION" Lors d’une renégociation par un serveur, toujours démarrer une nouvelle session (c’est\-à\-dire, une requête de reprise de session est seulement acceptée au cours de l’initiation initiale de connexion). Cette option n’est pas nécessaire pour les clients. .IP "\s-1SSL_OP_NO_TICKET\s0" 4 .IX Item "SSL_OP_NO_TICKET" Normalement les clients et serveurs, où c’est possible, font usage de certificats RFC4507bis de manière transparente pour la reprise d’une session sans état. .Sp Si cette option est activée, cette fonctionnalité est désactivée et les certificats ne seront pas utilisés par les clients ou serveurs. .IP "\s-1SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\s0" 4 .IX Item "SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION" Autoriser les anciennes renégociations non sécurisées entre OpenSSL et les clients ou serveurs non protégés. Consultez la section \fBRENÉGOCIATION SÉCURISÉE\fR pour plus de détails. .IP "\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0" 4 .IX Item "SSL_OP_LEGACY_SERVER_CONNECT" Autoriser les anciennes renégociations non sécurisées entre OpenSSL et les serveurs non protégés \fBuniquement\fR. Cette option est actuellement établie par défaut. Consultez la section \fBRENÉGOCIATION SÉCURISÉE\fR pour plus de détails. .SH "RENÉGOCIATION SÉCURISÉE" .IX Header "RENÉGOCIATION SÉCURISÉE" OpenSSL 0.9.8m et ses versions postérieures essayent d’utiliser les renégociations sécurisées comme décrites dans la \s-1RFC5746.\s0 Cela contre l’attaque par préfixe décrite entre autres dans \s-1CVE\-2009\-3555.\s0 .PP Le protocole SSLv2, déprécié et couramment transgressé, ne gère absolument pas les renégociations ; son usage est très \fBfortement\fR déconseillé. .PP Cette attaque est de grande portée et les développeurs d’application devrait en tenir compte. Dans la description qui suit, une implémentation gérant une renégociation sécurisée est qualifiée de \fIprotégée\fR. Un serveur ne prenant pas en charge les renégociations sécurisées est qualifié de \fInon protégé\fR. .PP Les sections suivantes décrivent les opérations permises par les implémentations de renégociation sécurisée. .SS "Client et serveur protégés" .IX Subsection "Client et serveur protégés" Les connexions et renégociations sont toujours autorisées par les implémentations d’OpenSSL. .SS "Client non protégé et serveur OpenSSL protégé" .IX Subsection "Client non protégé et serveur OpenSSL protégé" La connexion initiale réussit mais la renégociation du client est refusée par le serveur avec un message d’avertissement \fBno_renegotiation\fR si \&\s-1TLS\s0 v1.0 utilisé, ou un message fatal \fBhandshake_failure\fR si c’est \&\s-1SSL\s0 v3.0. .PP Si le serveur OpenSSL protégé essaie de renégocier, un message fatal \&\fBhandshake_failure\fR est envoyé. Cela est dû à l’ignorance par le serveur de la nature non protégée du client. .PP Si l’option \fB\s-1SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\s0\fR est validée, alors la renégociation réussira \fBtoujours\fR. .PP \&\fBRemarque\fR : un bogue dans les clients OpenSSL antérieurs à 0.9.8m (aucun d’entre eux n’est protégé) conduira à un blocage de la connexion si un message \fBno_renegotiation\fR est reçu. Les versions 0.9.8m et ultérieures d’OpenSSL considéreront un message \fBno_renegotiation\fR comme fatal et répondront par un message fatal \fBhandshake_failure\fR. C’est parce qu’actuellement l’API d’OpenSSL n’a aucun moyen d’indiquer à une application qu’un essai est refusé. .SS "Client OpenSSL protégé et serveur non protégé." .IX Subsection "Client OpenSSL protégé et serveur non protégé." Si l’option \fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR ou \&\fB\s-1SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\s0\fR est établie, les connexions et les renégociations entre les clients OpenSSL et les serveurs non protégés réussiront. Si aucune option n’est établie, alors les connexions initiales vers les serveurs non protégés échoueront. .PP L’option \fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR est actuellement établie par défaut même si elle a des implications sur la sécurité : sans quoi il serait impossible de se connecter sur des serveurs non protégés (c’est\-à\-dire initialement tous) et cela n’est clairement pas acceptable. La renégociation est autorisée parce que cela n’ajoute aucun problème de sécurité : pendant une attaque, les clients ne voient de toute façon aucune renégociation. .PP Comme de plus en plus de serveurs deviennent protégés, l’option \&\fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR ne sera \fBpas\fR active par défaut dans une future version de OpenSSL. .PP Les applications clientes d’OpenSSL voulant être sûres de se connecter à des serveurs non protégés devrait toujours \fBactiver\fR \&\fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR. .PP Les applications clientes d’OpenSSL voulant être sûres de ne \fBpas\fR se connecter à des serveurs non protégés (et donc éviter tout problème de sécurité) devraient toujours \fBdésactiver\fR \fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR en utilisant \fBSSL_CTX_clear_options\fR() ou \fBSSL_clear_options\fR(). .PP La différence entre les options \fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR et \&\fB\s-1SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\s0\fR est que \&\fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR autorise les connections initiales et renégociation sécurisée entre des clients OpenSSL et \fBseulement\fR des serveurs non protégés, quand \fB\s-1SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\s0\fR autorise des connexions initiales et renégociation sécurisée entre OpenSSL et des clients ou serveurs non protégés. .SH "VALEURS DE RETOUR" .IX Header "VALEURS DE RETOUR" \&\fBSSL_CTX_set_options\fR() et \fBSSL_set_options\fR() renvoient les nouveaux masquages d’options après l’ajout d’\fBoptions\fR. .PP \&\fBSSL_CTX_clear_options\fR() et \fBSSL_clear_options\fR() renvoient les nouveaux masquages d’options après effacement d’\fBoptions\fR. .PP \&\fBSSL_CTX_get_options\fR() et \fBSSL_get_options\fR() renvoient l’actuel masquage. .PP \&\fBSSL_get_secure_renegotiation_support\fR() renvoie \fB1\fR si le pair prend en charge les renégociations sécurisées et \fB0\fR dans le cas contraire. .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fBssl\fR(3), \fBSSL_new\fR(3), \&\fBSSL_clear\fR(3), \&\fBSSL_CTX_set_tmp_dh_callback\fR(3), \&\fBSSL_CTX_set_tmp_rsa_callback\fR(3), \&\fBdhparam\fR(1) .SH "HISTORIQUE" .IX Header "HISTORIQUE" \&\fB\s-1SSL_OP_CIPHER_SERVER_PREFERENCE\s0\fR et \&\fB\s-1SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION\s0\fR ont été ajoutées dans OpenSSL 0.9.7. .PP \&\fB\s-1SSL_OP_TLS_ROLLBACK_BUG\s0\fR a été ajoutée dans OpenSSL 0.9.6 et était automatiquement activée avec \fB\s-1SSL_OP_ALL\s0\fR. À partir de 0.9.7, elle n’est plus incluse dans \fB\s-1SSL_OP_ALL\s0\fR et doit être clairement indiquée. .PP \&\fB\s-1SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS\s0\fR a été ajoutée dans OpenSSL 0.9.6e. Les versions jusqu’à OpenSSL 0.9.6c n’incluent pas de contre-mesure qui puisse être désactivée avec cette option (dans OpenSSL 0.9.6d, elle était toujours active). .PP \&\fBSSL_CTX_clear_options\fR() et \fBSSL_clear_options\fR() ont été ajoutées la première fois dans OpenSSL 0.9.8m. .PP \&\fB\s-1SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\s0\fR, \fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR et la fonction \fBSSL_get_secure_renegotiation_support\fR() ont été ajoutées la première fois dans OpenSSL 0.9.8m. .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.