LibreSSL és una implementació de codi obert del protocol Transport Layer Security (TLS). La implementació rep el nom de Secure Sockets Layer (SSL), el predecessor obsolet de TLS, per al qual es va eliminar el suport a la versió 2.3.0. El projecte OpenBSD va bifurcar LibreSSL a partir d'OpenSSL 1.0.1g l'abril de 2014 com a resposta a la vulnerabilitat de seguretat Heartbleed, amb els objectius de modernitzar la base de codi, millorar la seguretat i aplicar les millors pràctiques de desenvolupament.
Història Després que es descobrís la vulnerabilitat de seguretat Heartbleed a OpenSSL, l'equip d'OpenBSD va auditar la base de codi i va decidir que era necessari bifurcar OpenSSL per eliminar el codi perillós. El domini libressl.org es va registrar l'11 d'abril de 2014; el projecte va anunciar el nom el 22 d'abril de 2014. Durant la primera setmana de desenvolupament, es van eliminar més de 90.000 línies de codi C. Es va eliminar el codi no utilitzat i es va eliminar la compatibilitat amb sistemes operatius obsolets (Mac OS clàssic, NetWare, OS/2, Windows de 16 bits) i alguns sistemes operatius més antics (OpenVMS).
Inicialment, LibreSSL es va desenvolupar com a substitut previst d'OpenSSL a OpenBSD 5.6, i es va portar a altres plataformes un cop una versió simplificada de la biblioteca va ser estable. , el projecte buscava un "compromís estable" de finançament extern. El 17 de maig de 2014, Bob Beck va presentar "LibreSSL: Els primers 30 dies i què ens depara el futur" durant la conferència BSDCan de 2014, en què va descriure el progrés aconseguit durant el primer mes. El 5 de juny de 2014, es van fer públics diversos errors d'OpenSSL. Tot i que diversos projectes van ser notificats amb antelació, LibreSSL no ho va ser; Theo de Raadt va acusar els desenvolupadors d'OpenSSL de retenir intencionadament aquesta informació a OpenBSD i LibreSSL.
El 20 de juny de 2014, Google va crear una altra bifurcació d'OpenSSL anomenada BoringSSL i va prometre intercanviar correccions amb LibreSSL. Google ja ha tornat a llicenciar algunes de les seves contribucions sota la llicència ISC, tal com ho van sol·licitar els desenvolupadors de LibreSSL. El 21 de juny de 2014, Theo de Raadt va donar la benvinguda a BoringSSL i va exposar els plans per a LibreSSL-portable. A partir del 8 de juliol, va començar la migració de codi per a macOS i Solaris, mentre que la migració inicial a Linux va començar el 20 de juny.
A partir del 2021, OpenBSD utilitza LibreSSL com a biblioteca TLS principal. Alpine Linux va donar suport a LibreSSL com a biblioteca TLS principal durant tres anys, fins al llançament 3.9.0 el gener de 2019. Gentoo va donar suport a LibreSSL fins al febrer de 2021. Python 3.10 va abandonar LibreSSL després de ser compatible des de Python 3.4.3 (2015).
Canvis Funcions afegides La versió inicial de LibreSSL va afegir diverses funcions: l'algoritme ChaCha i Poly1305, les corbes el·líptiques Brainpool i ANSSI, i els modes AEAD AES-GCM i ChaCha20-Poly1305.
Les versions posteriors van afegir el següent:
2.1.0: Claus EC efímeres automàtiques. 2.1.2: Implementació integrada d'arc4random a macOS i FreeBSD. 2.1.2: S'ha reelaborat el suport del conjunt de xifratge GOST. 2.1.3: Suport d'ALPN. 2.1.3: Suport per a conjunts de xifratge SHA-256 i Camellia. 2.1.4: Suport del costat del servidor per a TLS_FALLBACK_SCSV. 2.1.4: certhash com a substitut de l'script c_rehash. 2.1.4: API X509_STORE_load_mem per carregar certificats des de la memòria (millora la compatibilitat amb chroot). 2.1.4: Binaris experimentals de Windows. 2.1.5: Actualització menor principalment per millorar el suport de Windows, primers binaris de 32 i 64 bits que funcionen. 2.1.6: declarat estable i habilitat per defecte. 2.2.0: Suport per a AIX i Cygwin. 2.2.1: Addició d'EC_curve_nid2nist i EC_curve_nist2nid des d'OpenSSL, suport inicial per a Windows XP /2003. 2.2.2: Defineix LIBRESSL_VERSION_NUMBER, s'han afegit els mètodes TLS_* com a substitut de les crides al mètode SSLv23_*, i s'ha implementat la compilació cmake.
Eliminació de codi La versió inicial de LibreSSL ha eliminat diverses característiques que es consideraven insegures, innecessàries o obsoletes com a part de l'OpenBSD 5.6.
En resposta a Heartbleed, la funcionalitat del batec del cor va ser una de les primeres característiques que es va eliminar. S'ha eliminat el suport per a plataformes obsoletes (Mac OS clàssic, NetWare, OS/2, Windows de 16 bits). S'ha eliminat el suport per a algunes plataformes més antigues (OpenVMS). Suport per a plataformes que no existeixen, com ara big-endian i386 i amd64. Suport per a compiladors antics. Els motors IBM 4758, Broadcom ubsec, Sureware, Nuron, GOST, GMP, CSwift, CHIL, CAPI, Atalla i AEP es van eliminar per la irrellevància del maquinari o la dependència de biblioteques no lliures. L'OpenSSL PRNG s'ha eliminat (i s'ha substituït per una implementació d'arc4random basada en ChaCha20). Macros de preprocessador que s'han considerat innecessàries o insegures o que ja havien estat obsoletes a OpenSSL durant molt de temps (per exemple, des_old.h). Fitxers antics i innecessaris per al llenguatge assemblador, C i Perl (per exemple, Entropy Gathering Daemon). MD2, funcionalitat SEED. SSL 3.0, SHA-0, DTLS1_BAD_VER
Referències
Categoria:Programari Categoria:Criptografia