Scroll to navigation

fr::ssl::ssl(3SSL) OpenSSL fr::ssl::ssl(3SSL)

NOM

SSL - Bibliothèque SSL/TLS OpenSSL

SYNOPSIS

DESCRIPTION

La bibliothèque ssl OpenSSL implémente les protocoles « Secure Sockets Layer » (SSL v2/v3) et « Transport Layer Security » (TLS v1). Elle fournit une interface de programmation applicative (API) riche qui est documentée ici.

Tout d'abord, la bibliothèque doit être initialisée ; consultez SSL_library_init(3).

Ensuite un objet SSL_CTX est créé en tant que cadre pour établir des connexions utilisant TLS/SSL (consultez SSL_CTX_new(3)). Différentes options concernant les certificats, algorithmes, etc. peuvent être définies pour cet objet.

Une fois une connexion réseau créée, elle peut être attribuée à un objet SSL. Après la création de l'objet SSL avec SSL_new(3), SSL_set_fd(3) ou SSL_set_bio(3) peuvent être utilisés pour associer la connexion réseau avec l'objet.

Ensuite la poignée de main TLS/SSL est effectuée en utilisant respectivement SSL_accept(3) ou SSL_connect(3). SSL_read(3) et SSL_write(3) sont utilisés pour lire et écrire les données dans la connexion TLS/SSL. SSL_shutdown(3) peut être utilisé pour éteindre la connexion TLS/SSL.

STRUCTURES DE DONNÉES

Actuellement, les fonctions de la bibliothèque ssl OpenSSL traitent des structures de données suivantes.

C'est une structure de distribution décrivant les méthodes et fonctions internes de la bibliothèque ssl qui implémentent les différentes versions des protocoles (SSLv1, SSLv2 et TLSv1). C'est un acquis préalable à la création d'un SSL_CTX.
Cette structure contient les informations de l'algorithme pour un chiffrement particulier qui sont au centre du protocole SSL/TLS. Les chiffrements disponibles sont configurés dans un cadre SSL_CTX et ceux effectivement utilisés font alors partie de SSL_SESSION.
C'est la structure globale de contexte qui est créée par un serveur ou un client une fois par durée de vie du programme et qui contient principalement les valeurs par défaut pour les structures SSL qui sont ensuite créées pour les connexions.
C'est la structure contenant les détails de la session TLS/SSL courante pour une connexion : les SSL_CIPHER, les certificats client et serveur, les clés, etc.
C'est la structure SSL/TLS principale qui est créée par un serveur ou client pour chaque connexion établie. Il s'agit en fait de la structure centrale de l'API SSL. Lors de l'exécution l'application traite majoritairement avec cette structure qui a des liens vers quasiment toutes les autres structures.

FICHIERS D'EN-TÊTE

Actuellement, la bibliothèque ssl OpenSSL fournit les fichiers d'en-tête C suivants contenant les prototypes pour les structures de données et les fonctions suivantes.

C'est le fichier d'en-tête commun pour l'API SSL/TLS. Incluez-le dans votre programme pour rendre l'API de la bibliothèque ssl disponible. Il inclut en interne à la fois des fichiers d'en-tête privés SSL et d'en-tête de la bibliothèque crypto. À chaque fois que vous avez besoin de détails précis sur les entrailles de l'API SSL, regardez à l'intérieur de ce fichier d'en-tête.
C'est le sous-fichier d'en-tête qui traite seulement du protocole SSLv2. En principe vous n'avez pas besoin de l'inclure explicitement parce qu'il est déjà inclus par ssl.h
C'est le sous-fichier d'en-tête qui traite seulement du protocole SSLv3. En principe vous n'avez pas besoin de l'inclure explicitement parce qu'il est déjà inclus par ssl.h
C'est le sous-fichier d'en-tête qui traite de la combinaison des protocoles SSLv2 et SSLv3. En principe vous n'avez pas besoin de l'inclure explicitement parce qu'il est déjà inclus par ssl.h
C'est le sous-fichier d'en-tête qui traite seulement du protocole TLSv1. En principe vous n'avez pas besoin de l'inclure explicitement parce qu'il est déjà inclus par ssl.h

FONCTIONS DE L'API

Actuellement, la bibliothèque ssl OpenSSL exporte 214 fonctions d'API. Elles sont documentées ci-dessous.

TRAITEMENT DES MÉTHODES DE PROTOCOLE

Voici une documentation des fonctions d'API qui traitent des méthodes des protocoles SSL/TLS définies dans des structures SSL_METHOD.

Constructeur pour la structure SSL_METHOD de SSLv2 pour un client uniquement.
Constructeur pour la structure SSL_METHOD de SSLv2 pour un serveur uniquement.
Constructeur pour la structure SSL_METHOD de SSLv2 pour client et serveur combinés.
Constructeur pour la structure SSL_METHOD de SSLv3 pour un client uniquement.
Constructeur pour la structure SSL_METHOD de SSLv3 pour un serveur uniquement.
Constructeur pour la structure SSL_METHOD de SSLv3 pour client et serveur combinés.
Constructeur pour la structure SSL_METHOD de TLSv1 pour un client uniquement.
Constructeur pour la structure SSL_METHOD de TLSv1 pour un serveur uniquement.
Constructeur pour la structure SSL_METHOD de TLSv1 pour client et serveur combinés.

TRAITEMENTS DES CHIFFREMENTS

Voici une documentation des fonctions d'API qui traitent des chiffrements SSL/TLS définis dans des structures SSL_CIPHER.

Écrit une chaîne dans tampon (avec une taille maximum de taille) contenant une description lisible par les humains de chiffrement. Renvoie tampon.
Détermine le nombre de bits pour le chiffrement. À cause de l'export de chiffrements endommagés il y a deux bits : les bits que l'algorithme gère en général (conservés dans alg_bits) et les bits qui sont effectivement utilisés (la valeur renvoyée).
Renvoie le nom interne du chiffrement en tant que chaîne de caractères. Ce sont les différentes chaînes définies par les définitions SSL2_TXT_xxx, SSL3_TXT_xxx et TLS1_TXT_xxx dans les fichiers d'en-tête.
Renvoie une chaîne du style ""TLSv1/SSLv3"" ou ""SSLv2"" qui indique la version du protocole SSL/TLS auquel le chiffrement appartient (c'est-à-dire où elle a été définie dans les spécifications pour la première fois).

TRAITEMENT DES CONTEXTES DE PROTOCOLE

Voici une documentation des fonctions d'API qui traitent du contexte des protocoles SSL/TLS défini dans la structure SSL_CTX.

long SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx, RSA *(*cb)(SSL *ssl, int export, int taille_clé));

Définit la fonction de rappel qui sera appelée quand une clé privée temporaire est requise. Le paramètre export sera défini si la raison de l'obtention d'une clé temporaire est l'utilisation d'un export d'une suite de chiffrement. Dans ce cas, taille_clé contiendra la longueur requise de la clé en bits. Générez une clé de la taille appropriée et renvoyez-là.

long SSL_set_tmp_rsa_callback(SSL *ssl, RSA *(*cb)(SSL *ssl, int export, int taille_clé));

Identique à SSL_CTX_set_tmp_rsa_callback, à la différence qu'il opère sur une session SSL au lieu d'un contexte.

TRAITEMENTS DES SESSIONS

Voici une documentation des fonctions d'API qui traitent des sessions SSL/TLS définies dans des structures SSL_SESSION.

TRAITEMENTS DES CONNEXIONS

Voici une documentation des fonctions d'API qui traitent de la connexion SSL/TLS définie dans la structure SSL.

VOIR AUSSI

openssl(1), crypto(3), SSL_accept(3), SSL_clear(3), SSL_connect(3), SSL_CIPHER_get_name(3), SSL_COMP_add_compression_method(3), SSL_CTX_add_extra_chain_cert(3), SSL_CTX_add_session(3), SSL_CTX_ctrl(3), SSL_CTX_flush_sessions(3), SSL_CTX_get_ex_new_index(3), SSL_CTX_get_verify_mode(3), SSL_CTX_load_verify_locations(3) SSL_CTX_new(3), SSL_CTX_sess_number(3), SSL_CTX_sess_set_cache_size(3), SSL_CTX_sess_set_get_cb(3), SSL_CTX_sessions(3), SSL_CTX_set_cert_store(3), SSL_CTX_set_cert_verify_callback(3), SSL_CTX_set_cipher_list(3), SSL_CTX_set_client_CA_list(3), SSL_CTX_set_client_cert_cb(3), SSL_CTX_set_default_passwd_cb(3), SSL_CTX_set_generate_session_id(3), SSL_CTX_set_info_callback(3), SSL_CTX_set_max_cert_list(3), SSL_CTX_set_mode(3), SSL_CTX_set_msg_callback(3), SSL_CTX_set_options(3), SSL_CTX_set_quiet_shutdown(3), SSL_CTX_set_read_ahead(3), SSL_CTX_set_session_cache_mode(3), SSL_CTX_set_session_id_context(3), SSL_CTX_set_ssl_version(3), SSL_CTX_set_timeout(3), SSL_CTX_set_tmp_rsa_callback(3), SSL_CTX_set_tmp_dh_callback(3), SSL_CTX_set_verify(3), SSL_CTX_use_certificate(3), SSL_alert_type_string(3), SSL_do_handshake(3), SSL_get_SSL_CTX(3), SSL_get_ciphers(3), SSL_get_client_CA_list(3), SSL_get_default_timeout(3), SSL_get_error(3), SSL_get_ex_data_X509_STORE_CTX_idx(3), SSL_get_ex_new_index(3), SSL_get_fd(3), SSL_get_peer_cert_chain(3), SSL_get_rbio(3), SSL_get_session(3), SSL_get_verify_result(3), SSL_get_version(3), SSL_library_init(3), SSL_load_client_CA_file(3), SSL_new(3), SSL_pending(3), SSL_read(3), SSL_rstate_string(3), SSL_session_reused(3), SSL_set_bio(3), SSL_set_connect_state(3), SSL_set_fd(3), SSL_set_session(3), SSL_set_shutdown(3), SSL_shutdown(3), SSL_state_string(3), SSL_want(3), SSL_write(3), SSL_SESSION_free(3), SSL_SESSION_get_ex_new_index(3), SSL_SESSION_get_time(3), d2i_SSL_SESSION(3), SSL_CTX_set_psk_client_callback(3), SSL_CTX_use_psk_identity_hint(3), SSL_get_psk_identity(3)

HISTORIQUE

Le document ssl(3) est apparu dans OpenSSL 0.9.2

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.

2015-12-31 1.0.2a 1.0.2c