Provided by: manpages-fr-extra_20151231_all 

NOM
SSL_CTX_set_tmp_rsa_callback, SSL_CTX_set_tmp_rsa, SSL_CTX_need_tmp_rsa, SSL_set_tmp_rsa_callback,
SSL_set_tmp_rsa, SSL_need_tmp_rsa - Gérer les clefs RSA pour l’échange de clefs éphémères
SYNOPSIS
#include <openssl/ssl.h>
void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx,
RSA *(*tmp_rsa_callback)(SSL *ssl, int is_export,
int taille_clef));
long SSL_CTX_set_tmp_rsa(SSL_CTX *ctx, RSA *rsa);
long SSL_CTX_need_tmp_rsa(SSL_CTX *ctx);
void SSL_set_tmp_rsa_callback(SSL_CTX *ctx,
RSA *(*tmp_rsa_callback)(SSL *ssl, int is_export,
int taille_clef));
long SSL_set_tmp_rsa(SSL *ssl, RSA *rsa)
long SSL_need_tmp_rsa(SSL *ssl)
RSA *(*tmp_rsa_callback)(SSL *ssl, int is_export,
int taille_clef);
DESCRIPTION
SSL_CTX_set_tmp_rsa_callback() définit la fonction de rappel pour ctx à utiliser quand une clef RSA
temporaire ou éphémère est nécessaire pour tmp_rsa_callback. Tous les objets SSL nouvellement créés à
partir de ctx avec SSL_new(3) héritent du rappel. Les objets SSL déjà créés ne sont pas affectés.
SSL_CTX_set_tmp_rsa() définit une clef RSA temporaire/éphémère à utiliser pour rsa. Tous les objets SSL
nouvellement créés à partir de ctx avec SSL_new(3) héritent de la clef. Les objets SSL déjà créés ne sont
pas affectés.
SSL_CTX_need_tmp_rsa() renvoie 1, si une clef RSA temporaire/éphémère est nécessaire pour les suites de
chiffrement — « exportables », de force limitée, basées sur RSA — parce qu’une longueur de clef
supérieure à 512 bits est en place.
SSL_set_tmp_rsa_callback() définit le rappel seulement pour ssl.
SSL_set_tmp_rsa3() définit la clef seulement pour ssl.
SSL_need_tmp_rsa() renvoie 1, si une clef RSA temporaire/éphémère est nécessaire pour les suites de
chiffrement — « exportables », de force limitée, basées sur RSA — parce qu’une longueur de clef
supérieure à 512 bits est en place.
Ces fonctions sont applicables aux serveurs SSL/TLS uniquement.
NOTES
Lors de l’utilisation d’un algorithme de chiffrement avec authentification RSA, un échange de clefs
éphémères DH peut survenir. Dans ce cas, les données de session sont négociées en utilisant une clef
éphémère/temporaire RSA et la clef fournie et authentifiée par la chaîne de certificats est utilisée
uniquement pour la signature.
Sous de précédentes restrictions d’export, des chiffrements avec des clefs plus courtes (512 octets) que
la longueur habituelle de 1024 octets ont été créés. Pour utiliser ces chiffrements, un échange de clefs
éphémères doit être réalisé, puisque la clef normale (authentifiée) ne peut être directement utilisée.
L’usage de clef éphémère RSA rend la confidentialité persistante, car la connexion ne peut être
déchiffrée que lorsque la clef RSA est connue. En créant une clef RSA temporaire 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 la clef normale (authentifiée), puisque la clef n’a été utilisée que pour
la signature. L’inconvénient est que la génération d’une clef RSA est coûteuse en calculs.
En outre, l’utilisation d’échange de clefs éphémères est seulement permise par la norme TLS, quand la
clef RSA peut être utilisée seulement pour signer, c’est-à-dire pour les chiffrements exportés.
L’utilisation de l’échange de clefs RSA éphémères pour d’autres buts transgresse la norme et peut rompre
l’interopérabilité entre clients. Donc, il est fortement recommandé de ne pas utiliser l’échange de clefs
éphémères RSA et d’utiliser DHE (Diffie-Hellman éphémère) pour permettre la confidentialité persistante
(consultez SSL_CTX_set_tmp_dh_callback(3)).
Une application peut soit indiquer la clef directement ou la fournir par une fonction de rappel. La
méthode par le rappel a l’avantage que le rappel peut générer la clef que lorsque nécessaire. Comme cette
génération est coûteuse, la durée de procédure de connexion augmentera de manière significative. Un autre
avantage de la fonction de rappel est qu’elle peut fournir des clefs de différentes longueurs, tandis que
le réglage direct de la clef est seulement utile pour des longueurs de clef de 512 bits pour les
algorithmes de chiffrement limité pour l’export et qui ne communiquent pas la longueur de clef si une
clef plus importante est autorisée.
tmp_rsa_callback est appelée avec la taille_clef désirée et l’information is_export. L’attribut is_export
est activé lorsque l’échange de clefs éphémères RSA est réalisé avec un algorithme de chiffrement pour
l’export.
EXEMPLES
Générer des clefs RSA temporaires pour préparer un échange de clefs éphémères. Comme cette génération
coûte beaucoup de temps de calcul, elles sont stockées pour une utilisation ultérieure. À des fins de
démonstrations, deux clefs pour 512 bits et 1024 bits respectivement sont créées.
...
/* Définir ce qui concerne RSA éphémère */
RSA *rsa_512 = NULL;
RSA *rsa_1024 = NULL;
rsa_512 = RSA_generate_key(512,RSA_F4,NULL,NULL);
if (rsa_512 == NULL)
evaluate_error_queue();
rsa_1024 = RSA_generate_key(1024,RSA_F4,NULL,NULL);
if (rsa_1024 == NULL)
evaluate_error_queue();
...
RSA *tmp_rsa_callback(SSL *s, int is_export, int taille_clef)
{
RSA *rsa_tmp=NULL;
switch (taille_clef) {
case 512:
if (rsa_512)
rsa_tmp = rsa_512;
else { /* générer à la volée, ce qui n’est
pas le cas dans cet exemple */
rsa_tmp = RSA_generate_key(taille_clef,RSA_F4,NULL,NULL);
rsa_512 = rsa_tmp; /* mémorisation pour un usage ultérieur */
}
break;
case 1024:
if (rsa_1024)
rsa_tmp=rsa_1024;
else
should_not_happen_in_this_example();
break;
default:
/* générer une clef à la volée est très coûteux,
aussi utilisez ceci */
if (rsa_1024)
rsa_tmp=rsa_1024;
else
rsa_tmp=rsa_512; /* utiliser au moins une clef plus courte */
}
return(rsa_tmp);
}
VALEURS DE RETOUR
SSL_CTX_set_tmp_rsa_callback() et SSL_set_tmp_rsa_callback() ne renvoient pas de sortie de diagnostic.
SSL_CTX_set_tmp_rsa() et SSL_set_tmp_rsa() doivent renvoyer 1 lors d’une réussite et 0 pour un échec.
Consultez la file d’erreurs pour trouver la raison de l’échec.
SSL_CTX_need_tmp_rsa() et SSL_need_tmp_rsa() renvoient 1 si une clef est nécessaire et 0 autrement.
VOIR AUSSI
ssl(3), SSL_CTX_set_cipher_list(3), SSL_CTX_set_options(3), SSL_CTX_set_tmp_dh_callback(3), SSL_new(3),
ciphers(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.
1.0.2a 1.0.2c 2015-12-31 fr::ssl::SSL_CTX_set_tmp_rsa_callback(3SSL)