Er zijn verschillende nieuwe versies van cryptografische bibliotheken gepubliceerd:
De release van de OpenSSL-bibliotheek 3.4.0 met implementatie van de SSL/TLS-protocollen en verschillende encryptie-algoritmen. De ondersteuning voor OpenSSL 3.4 zal worden voortgezet tot oktober 2025. De ondersteuning voor eerdere versies OpenSSL 3.3, 3.2, 3.1 en 3.0 LTS zal respectievelijk doorgaan tot april 2026, november 2025, maart 2025 en september 2026. De projectcode is verspreid onder de Apache 2.0-licentie. Belangrijkste vernieuwingen:
- Ondersteuning toegevoegd voor een cipher suite voor TLSv1.3, beperkt tot de functies voor gegevensintegriteit (RFC 9150) en inclusief de algoritmen TLS_SHA256_SHA256 en TLS_SHA384_SHA384.
- Optionele mogelijkheid toegevoegd om een extra entropiebron op basis van jitter te gebruiken in de pseudorandom generator, geïmplementeerd met behulp van de jitterentropy-bibliotheek. De entropie wordt gegenereerd door de tijdsverschillen te meten van het opnieuw uitvoeren van een bepaalde set instructies op de CPU, afhankelijk van vele interne factoren en niet voorspelbaar zonder fysieke controle over de CPU.
- Basissteun toegevoegd voor attribuutcertificaten (AC — Attribute Certificate, RFC 5755), die informatie bevatten over toegangrechten, bevoegdheden en eigenschappen van de certificaathouder, die de mogelijkheid om bepaalde acties uit te voeren, bevestigen. Bijvoorbeeld, een AC-certificaat kan recht geven op toegang tot een bepaalde service.
- Ondersteuning toegevoegd voor X.509v3-extensies die met attribuutcertificaten zijn gerelateerd.
- In de FIPS-provider is ondersteuning geïmplementeerd voor de FIPS 140-3 Indicator API, waarmee kan worden bepaald of een bepaalde operatie in een goedgekeurde service is uitgevoerd of niet.
- De invoer van het API BIO (Basic Input/Output) is verbeterd voor Base64-indeling.
- Ondersteuning toegevoegd voor het bouwen van de openssl-tool in PIE-modus (Position Independent Executable), waardoor adresruimte-randomisatie (ASLR) kan worden gebruikt.
- Ondersteuning toegevoegd voor direct extraherende gecombineerde digitale handtekeningalgoritmen, zoals RSA-SHA2-256.
- Ondersteuning toegevoegd voor PBMAC 1 (Password-Based Message Authentication Code 1, RFC 9579) in PKCS#12.
- Opties ‘-not_before’ en ‘-not_after’ toegevoegd aan de openssl-tool voor het expliciet opgeven van de begin- en eindtijd van de geldigheid van het certificaat.
- De mogelijkheid is geboden om vooraf berekende waarden te gebruiken bij de initialisatie van cryptografische algoritmen op basis van elliptische krommen P-256.
- De functies TS_VERIFY_CTX_set_* zijn als verouderd verklaard, ter vervanging zijn de functies TS_VERIFY_CTX_set0_* gekomen met verbeterde semantiek.
- De functies SSL_SESSION_get_time(), SSL_SESSION_set_time() en SSL_CTX_flush_sessions() zijn als verouderd verklaard en dienen vervangen te worden door SSL_SESSION_get_time_ex(), SSL_SESSION_set_time_ex() en SSL_CTX_flush_sessions_ex(), die de probleem van het jaar 2038 hebben opgelost.
- De verwachte ondersteuning voor het QIUC-protocol in OpenSSL 3.4 de server is uitgesteld tot de volgende uitgave.
De release van het LibreSSL-project 4.0.0, een fork van OpenSSL gericht op het bieden van een hoger niveau van beveiliging en kwalitatieve ondersteuning voor SSL/TLS-protocollen door overbodige functionaliteit te verwijderen, extra beschermingsmiddelen toe te voegen en aanzienlijke opruimingen en herstructureringen van de codebase uit te voeren. De aanzienlijke versienummerwijziging is gerelateerd aan het gebruik van decimale nummering (na 3.9 volgt versie 4.0). De meest opvallende wijzigingen zijn:
- Beginondersteuning voor het bouwen met Emscripten, een compiler van C/C++ naar WebAssembly, is toegevoegd.
- De optie CRLfile is toegevoegd aan het commando 'openssl cms' om aanvullende lijsten van ingetrokken certificaten (CRL) aan te geven die worden gebruikt bij de verificatie.
- De ondersteuning voor de mips32-architectuur is beëindigd.
- De toegang tot functies geschreven in assemblytaal via de publieke API is stopgezet (dergelijke functies zijn nu alleen beschikbaar via C-wrapperfuncties). De assemblyimplementaties van verouderde coderingen voor verouderde architecturen zijn verwijderd.
- De code voor het cachen van de geldigheid van certificaten, die na prestatieoptimalisatie zijn nut had verloren, is verwijderd.
- De implementatie van X.509v3-extensies is verbeterd, de methoden voor X.509v3 zijn verenigd en de gerelateerde X.509v3 API is opgezuiverd.
- De implementatie van het type CRYPTO_EX_DATA is volledig herschreven.
- In libcrypto zijn de functies atoi() en strtol() vervangen door strtonum().
- Een headerbestand crypto_arch.h is toegevoegd, waarin code die specifiek is voor hardware-architecturen is ondergebracht.
- De implementatie van het DES-algoritme is herzien en geoptimaliseerd.
- De headerbestanden pem2.h, ssl2.h, ssl23.h en ui_compat.h zijn verwijderd.
- De ondersteuning voor het hash-algoritme Whirlpool is verwijderd.
- De functies HMAC_Init(), OPENSSL_load_builtin_modules(), X509_REQ_{get,set}_extension_nids() en X509_check_trust() zijn verwijderd.
- De types PEM_USER, PEM_CTX, COMP_CTX, COMP_METHOD, X509_CRL_METHOD, STORE, STORE_METHOD en SSL_AEAD_CTX zijn verwijderd.
- Functies SSL_CTX_set1_cert_store() en SSL_CIPHER_get_handshake_digest() zijn toegevoegd aan libssl.
De cryptografische bibliotheek Botan 3.6.0 is beschikbaar, gebruikt in het NeoPG-project, een fork van GnuPG 2. De bibliotheek biedt een grote verzameling kant-en-klare elementen die worden gebruikt in het TLS-protocol, X.509-certificaten, AEAD-cijfers, TPM-modules, PKCS#11, wachtwoordhashing en post-kwantumcryptografie (hashgebaseerde handtekeningen en key agreement gebaseerd op McEliece). De bibliotheek is geschreven in C++ en wordt geleverd onder de BSD-licentie. In de nieuwe versie:
- Een nieuwe bibliotheek met cryptografische algoritmen op basis van elliptische krommen is geïntegreerd, waarvan de operaties op basis van standaard krommen 2-3 keer sneller worden uitgevoerd. Ook is er een nieuwe API aangeboden voor low-level manipulatie met elliptische krommen.
- Ondersteuning is toegevoegd voor recent gestandaardiseerde NIST-algoritmen voor post-kwantum encryptie: FIPS 203 ML-KEM (Kyber), FIPS 204 ML-DSA (Dilithium) en FIPS 205 SLH-DSA (SPHINCS+).
- Ondersteuning voor TPM2-chips is toegevoegd.
- Het gebruik van constant-time uitvoeringsberekeningen is uitgebreid om te beschermen tegen zijkanaalaanvallen.
- Er is ondersteuning voor het genereren van extra entropie via de jitterentropy-bibliotheek toegevoegd.
- De prestaties van gegevensverwerking in hexadecimale indeling en Base64-codering zijn verbeterd.
- Ondersteuning voor de CPU-extensies AVX2-VAES en GFNI-AVX2 is toegevoegd.
- Het is nu mogelijk om de CPU-capaciteiten voor armv7, aarch64 en ppc64 op het OpenBSD-platform te detecteren.
- Een bouwoptie is toegevoegd voor het uitschakelen van alle inline assembly-instructies.
De release van het Rustls-project 0.23.15, dat de client- en serverimplementatie van de TLS1.2- en TLS1.3-protocollen voor projecten in de Rust-taal ontwikkelt. Rustls biedt geen eigen implementatie van cryptografische elementen, maar gebruikt geïnjecteerde cryptografische functionaliteitsproviders (ondersteunt ECDSA, Ed25519, RSA, ChaCha20-Poly1305, AES128-GCM en AES256-GCM). Standaard wordt in Rustls een cryptografieprovider op basis van de aws-lc-rs-bibliotheek gebruikt, die wordt ontwikkeld door Amazon en gebaseerd is op de C++-code van AWS-LC, die is afgeleid van het BoringSSL-project (dat wordt beheerd door een fork van OpenSSL). Ook kan de ring-bibliotheek als cryptografieprovider worden gebruikt, die gedeeltelijk is gebaseerd op BoringSSL en code in assembly, C++ en Rust combineert.
De nieuwe versie is opmerkelijk vanwege aanzienlijke prestatieverbeteringen. Het wordt beweerd dat de Rustls-bibliotheek, bij gebruik van cryptografische primitieve aws-lc-rs, nu voorloopt op de bibliotheken OpenSSL en BoringSSL in tests die de doorvoersnelheid en de snelheid van het onderhandelen/herstarten van de verbinding meten.

Bron: opennet.ru
