OpenSSL est une bibliothèque logicielle permettant aux applications de sécuriser les communications sur les réseaux informatiques contre l'écoute clandestine et d'identifier l'expéditeur. Elle est largement utilisée par les serveurs Internet , notamment par la majorité des sites web HTTPS .
OpenSSL contient une implémentation open source des protocoles SSL et TLS . La bibliothèque principale , écrite en langage C , implémente les fonctions cryptographiques de base et fournit diverses fonctions utilitaires. Des interfaces permettant d'utiliser la bibliothèque OpenSSL dans différents langages informatiques sont disponibles.
La Fondation OpenSSL (OSF) représente le projet OpenSSL dans la plupart des domaines juridiques, notamment les accords de licence des contributeurs, la gestion des dons, etc. OpenSSL Software Services (OSS) représente également le projet OpenSSL pour les contrats de support.
OpenSSL est disponible pour la plupart des systèmes d'exploitation de type Unix (y compris Linux , macOS et BSD ), Microsoft Windows et OpenVMS .
SSLeay, créée par Eric Andrew Young et Tim Hudson, dont le développement a été officieusement interrompu le 17 décembre 1998, lorsque Young et Hudson ont rejoint RSA Security . Les membres fondateurs étaient Mark Cox, Ralf Engelschall, Stephen Henson, Ben Laurie et Paul Sutton.En 2018, la numérotation des versions d'OpenSSL est passée directement de 1.1.1 à 3.0.0, en omettant le chiffre 2 comme numéro de version majeure afin d'éviter un conflit avec l'un des modules d'OpenSSL. La version 3.0.0 a été la première à utiliser la licence Apache .
Akamai .
Sorties de versions majeures
| Version | Date de sortie originale | Soutien jusqu'à | Commentaire | Dernière version mineure | |
|---|---|---|---|---|---|
| SCTP | 1.0.1u ( Sélection automatique de courbe elliptique (EC) TLS | 1.0.2u ( BLAKE2 | 1.1.0l ( LTS )( 2023-09-11 ) |
| 1.1.1w (11 septembre 2023) |
| licence Apache 2.0 | Développement en cours | ||||
| Conformité à la norme FIPS 140-3 | 3.1.8 (11 février 2025) | ||||
| QUIC côté client | 3.2.6 (30 septembre 2025) | ||||
Chiffres ( La confidentialité persistante parfaite est prise en charge à l'aide de Diffie-Hellman sur courbe elliptique depuis la version 1.0. ) Validation FIPS 140La norme FIPS 140 est un programme fédéral américain de test et de certification des modules cryptographiques. Un certificat FIPS 140-1 initial pour le module FOM 1.0 d'OpenSSL a été révoqué en juillet 2006 « suite à des interrogations concernant l'interaction du module validé avec des logiciels externes ». Le module a été recertifié en février 2007 avant d'être remplacé par la norme FIPS 140-2. OpenSSL 1.0.2 prenait en charge l'utilisation du module objet FIPS (FOM) d'OpenSSL, conçu pour exécuter des algorithmes conformes aux normes FIPS dans un environnement validé FIPS 140-2. OpenSSL a pris la décision controversée de classer l'architecture 1.0.2 comme « en fin de vie » (EOL) à compter du 31 décembre 2019, malgré les objections selon lesquelles il s'agissait de la seule version d'OpenSSL disponible prenant en charge le mode FIPS. En raison de la fin de vie, de nombreux utilisateurs n'ont pas pu déployer correctement le FOM 2.0 et sont devenus non conformes car ils n'ont pas obtenu de support étendu pour l'architecture 1.0.2, bien que le FOM lui-même soit resté validé pendant huit mois supplémentaires. Le module objet FIPS 2.0 a conservé sa validation FIPS 140-2 sous plusieurs formats jusqu'au 1er septembre 2020, date à laquelle le NIST a déprécié l'utilisation de la norme FIPS 186-2 pour les signatures numériques et a classé tous les modules non conformes comme « historiques ». Cette désignation inclut une mise en garde à l'intention des agences fédérales : elles ne doivent pas inclure ce module dans leurs nouveaux marchés publics. Les trois validations OpenSSL ont été concernées par cette dépréciation : le module objet FIPS OpenSSL (certificat n° 1747) , le module objet FIPS OpenSSL SE (certificat n° 2398) et le module objet FIPS OpenSSL RE (certificat n° 2473). De nombreuses validations et clones OpenSSL « en marque privée » créés par des consultants ont également été déplacés vers la liste historique, bien que certains modules validés FIPS avec une compatibilité de remplacement aient évité la dépréciation, tels que BoringCrypto de Google et CryptoComply de SafeLogic. Le comité de gestion d'OpenSSL a annoncé un changement dans le système de numérotation des versions. En raison de cette modification, le numéro de version majeure de la version suivante aurait doublé, car le module FIPS d'OpenSSL occupait déjà ce numéro. Par conséquent, il a été décidé de passer directement à OpenSSL 3.0, sans passer par la version 2.0. OpenSSL 3.0 a rétabli le mode FIPS et a subi des tests FIPS 140-2, mais avec des retards importants : l’effort a été lancé en 2016 avec le soutien de SafeLogic et un soutien supplémentaire d’Oracle en 2017, mais le processus a été difficile. Le 20 octobre 2020, le fournisseur OpenSSL FIPS 3.0 a été ajouté à la liste des implémentations en cours de test du CMVP, ce qui reflétait un engagement officiel auprès d'un laboratoire de test en vue de procéder à une validation FIPS 140-2. Cela a entraîné une série de certifications dans les mois suivants. LicenceOpenSSL était distribué sous une double licence, à la fois la licence OpenSSL et la licence SSLeay, ce qui signifie que les termes de l'une ou l'autre licence pouvaient être utilisés. La licence OpenSSL est une licence Apache 1.0 et la licence SSLeay présente certaines similitudes avec une licence BSD à quatre clauses . Étant donné qu'il s'agissait d' une licence Apache 1.0 et non d'une licence Apache 2.0, la mention « Ce produit inclut un logiciel développé par le projet OpenSSL pour être utilisé dans la boîte à outils OpenSSL » devait figurer dans les supports publicitaires et toute redistribution (articles 3 et 6 de la licence OpenSSL). De ce fait, les licences OpenSSL et Apache 1.0 sont incompatibles avec la licence GNU GPL . Certains développeurs sous licence GPL ont ajouté une exception OpenSSL à leurs licences, autorisant spécifiquement l'utilisation d'OpenSSL avec leur système. GNU Wget et climm utilisent tous deux de telles exceptions. Certains paquets (comme Deluge ) modifient explicitement la licence GPL en ajoutant une section supplémentaire au début de la licence documentant l'exception. D'autres paquets utilisent GnuTLS ( sous licence LGPL) , Botan (sous licence BSD ) ou NSS ( sous licence MPL) , qui remplissent la même fonction. OpenSSL a annoncé en août 2015 qu'il exigerait de la plupart des contributeurs qu'ils signent un accord de licence de contributeur (CLA) et qu'OpenSSL serait finalement redistribué sous les termes de la licence Apache 2.0 . Ce processus a commencé en mars 2017, et s'est achevé en 2018. Le 7 septembre 2021, OpenSSL 3.0.0 a été publié sous la licence Apache 2.0. Vulnérabilités notablesAttaque par déni de service (DoS) : analyse ASN.1OpenSSL 0.9.6k présentait un bogue, découvert le 4 novembre 2003, qui provoquait un grand nombre de récursions sur les machines Windows lors de l'exécution de certaines séquences ASN.1. Windows ne pouvant gérer correctement ces récursions importantes, OpenSSL se bloquait. L'envoi d'un nombre arbitrairement élevé de séquences ASN.1 entraînait donc le plantage d'OpenSSL. vulnérabilité d'agrafage OCSPLors de l'établissement d'une liaison, le client pouvait envoyer un message ClientHello mal formaté, ce qui entraînait l'analyse par OpenSSL d'une partie du message au-delà de sa fin. Référencée 2011-0014 par le projet CVE, cette vulnérabilité affectait toutes les versions d'OpenSSL de 0.9.8h à 0.9.8q et de 1.0.0 à 1.0.0c. L'analyse erronée pouvant conduire à la lecture d'une adresse mémoire incorrecte, un attaquant pouvait provoquer un déni de service (DoS) . De plus, certaines applications pouvaient exposer le contenu des extensions OCSP analysées , permettant ainsi à un attaquant de lire le contenu de la mémoire suivant le ClientHello. Vulnérabilité ASN.1 BIOLors de l'utilisation des fonctions d'entrée/sortie de base (BIO) ou des fonctions basées sur des fichiers pour lire des données au format DER non fiables , OpenSSL est vulnérable. Cette vulnérabilité a été découverte le 19 avril 2012 et a reçu l'identifiant 2012-2110 . Bien qu'elle n'affecte pas directement le code SSL/TLS d'OpenSSL, aucune application utilisant des fonctions ASN.1 (en particulier d2i_X509 et d2i_PKCS12) n'est concernée. 2013-0169 .Le générateur de nombres pseudo-aléatoires d'OpenSSL acquiert de l'entropie grâce à des méthodes de programmation complexes. Afin d'éviter que l' outil d'analyse Valgrind n'émette d'avertissements, un mainteneur de la distribution Debian a appliqué un correctif à la version Debian de la suite OpenSSL, ce qui a involontairement compromis le générateur de nombres aléatoires en limitant à 32 768 le nombre total de clés privées qu'il pouvait générer. La version défectueuse a été incluse dans la version Debian du 17 septembre 2006 (version 0.9.8c-1), compromettant également d'autres distributions basées sur Debian, comme Ubuntu . Des exploits prêts à l'emploi sont facilement disponibles. L'erreur a été signalée par Debian le 13 mai 2008. Sur la distribution Debian 4.0 (etch), ces problèmes ont été corrigés dans la version 0.9.8c-4etch3, tandis que les correctifs pour la distribution Debian 5.0 (lenny) ont été fournis dans la version 0.9.8g-9.
| |||||