A LibreSSL egy olyan TLS/kriptográfiai (TLS/crypto) megoldás, amely az OpenSSL-ből történt leágazás (fork) eredményeként jött létre 2014-ben. A projekt elsődleges célja a kódbázis korszerűsítése, a biztonság növelése, valamint a legjobb fejlesztési gyakorlatok alkalmazása. A fejlesztés főként az OpenBSD forrásfájljain belül történik, azzal a gondos odafigyeléssel, amelyről a projekt ismert. Rendszeresen újracsomagolják a kódot, hogy más operációs rendszereken is hordozható (portable) legyen, például Linux-on, FreeBSD-n vagy Windows-on.
Változások a hordozhatóság terén
- Támogatás bevezetése az Emscripten számára a CMake buildjeiben.
- A timegm() kompatibilitási réteg eltávolítása, mivel minden hívást az OPENSSL_timegm() váltott fel.
- A mips32 platform támogatása megszűnt.
- Javították a Windows támogatását a 2038 utáni dátumokra vonatkozóan.
Belső fejlesztések
- A conf könyvtár bizonyos részeinek átdolgozása, logikai egyszerűsítések és memória szivárgások javítása.
- Az X509_check_trust() belső működésének egyszerűsítése az olvashatóság érdekében.
- A gmtime() és a timegm() belső használatának megszüntetése, helyettük a BoringSSL POSIX időkonverziós API használata.
- Az összeszerelő függvények eltávolítása a nyilvános API-ból, ezek most C függvényekkel vannak körülvéve.
- A TLS kiterjesztések feldolgozása és elemzése szétválasztásra került, biztosítva, hogy a kiterjesztési visszahívások előre meghatározott sorrendben történjenek.
Új funkciók
- A CRLfile opció hozzáadása az openssl(1) CMS parancsához, amely lehetővé teszi további CRL-ek használatát az ellenőrzés során.
Dokumentációs fejlesztések
- A már nem létező API-k dokumentációjának eltávolítása.
- Az ENGINE paraméterek leírásának egységesítése, amely sok függvényben megmaradt, és mindig NULL értékűnek kell lennie.
Tesztelés és proaktív biztonság
- Az utolsó tesztek új tanúsítványokkal történő futtatása.
Kompatibilitási változások
- A libtls protokoll-elemzése megváltozott. Az elavult TLSv1.1 és TLSv1.0 protokollokat figyelmen kívül hagyják, és többé nem befolyásolják a TLSv1.2 engedélyezését vagy tiltását.
- Az EVP_PKEY*_check(3) család veszélyes függvényei eltávolításra kerültek.
- A statikus puffer visszaadásának támogatása megszűnt több egy lépéses hash-függvénynél, mint például az MD4(), MD5(), RIPEMD160(), SHA1() és minden SHA-2 függvénynél.
- A Whirlpool támogatása megszűnt. Azoknak az alkalmazásoknak, amelyek még mindig használják ezt, az OPENSSL_NO_WHIRLPOOL makrót kell tiszteletben tartaniuk.
Hibajavítások
- Az ASN1_TIME_set_string() és az ASN1_TIME_set_string_X509() dokumentációnak megfelelő működése, amelyek mindig egy RFC 5280-nak megfelelő időt állítanak be.
- Az RSA kulcscsere konstans időben történő megvalósítása. Ez azáltal valósult meg, hogy az RSA_NO_PADDING használatával dekódolták, majd a paddinget konstans időben ellenőrizték a libssl-ben.
A LibreSSL projekt továbbra is törekszik a modern és biztonságos programozási gyakorlatok követésére. Köszönjük minden közreműködőnek, aki hozzájárult ehhez a kiadáshoz!
A LibreSSL 4.0-s verziójának letöltése és további részletei elérhetők a LibreSSL.org oldalon.