Bibliothèques TLS pour les principaux langages de programmation#
OpenSSL pour C/C++#
- Bibliothèque open source largement utilisée pour implémenter SSL/TLS
- Fournit des fonctions pour la gestion des certificats, la négociation des protocoles et la manipulation des clés
- Installation sous Linux:
apt-get install libssl-dev
- Documentation officielle: https://www.openssl.org/docs/
- Commandes OpenSSL utiles:
- Générer une clé privée:
openssl genrsa -out private_key.pem 2048
- Créer une demande de certificat (CSR):
openssl req -new -key private_key.pem -out csr.pem
- Auto-signer un certificat:
openssl x509 -req -days 365 -in csr.pem -signkey private_key.pem -out certificate.pem
- Générer une clé privée:
- Exemple de code C
- pour établir une connexion TLS côté serveur en C: https://wiki.openssl.org/index.php/Simple_TLS_Client
- pour établir une connexion TLS côté client en C: https://wiki.openssl.org/index.php/Simple_TLS_Server
LibreSSL pour C/C++#
- Un fork d'OpenSSL développé par l'équipe OpenBSD
- Met l'accent sur la propreté du code, la simplicité et la sécurité
- Installation sous Linux:
apt-get install libressl-dev
- API similaire à OpenSSL, mais avec certaines améliorations et différences
- Documentation officielle: https://www.libressl.org/docs.html
- Exemple de code C pour établir une connexion TLS: https://github.com/libressl-portable/portable/blob/master/src/apps/openssl/s_client.c
JSSE (Java Secure Socket Extension) pour Java#
- Extension standard de Java pour la prise en charge de SSL/TLS
- Fournit une API pour la gestion des connexions sécurisées, la vérification des certificats et l'authentification des clients
- Documentation officielle: https://docs.oracle.com/en/java/javase/11/security/java-secure-socket-extension-jsse-reference-guide.html
- Exemple de code Java
- pour établir une connexion TLS côté client en Java: https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/samples/ssl/SSLSocketClient.java
- pour établir une connexion TLS côté serveur en Java: https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/samples/ssl/SSLSocketServer.java
- Utilisation de la classe SSLSocketFactory pour gérer les connexions TLS
Python SSL#
- Module Python standard pour implémenter SSL/TLS
- Basé sur OpenSSL, offrant une API Pythonique pour la gestion des connexions sécurisées
- Documentation officielle: https://docs.python.org/3/library/ssl.html
- Exemple de code
- pour établir une connexion TLS côté client en Python: https://docs.python.org/3/library/ssl.html#client-side-operation
- pour établir une connexion TLS côté serveur en Python: https://docs.python.org/3/library/ssl.html#server-side-operation
- Utilisation des classes
ssl.SSLContext
etssl.wrap_socket
pour gérer les connexions TLS - Création et gestion de certificats en Python avec le module cryptography: https://cryptography.io/en/latest/x509/tutorial.html