Veröffentlichung der kryptografischen Bibliotheken OpenSSL 3.4, LibreSSL 4.0, Botan 3.6 und Rustls 0.23.15

Es wurden mehrere neue Versionen von Kryptographiebibliotheken veröffentlicht:

Die Veröffentlichung der OpenSSL-Bibliothek 3.4.0 mit der Implementierung der SSL/TLS-Protokolle und verschiedener Verschlüsselungsalgorithmen. Die Unterstützung für OpenSSL 3.4 wird bis Oktober 2025 gewährt. Die Unterstützung für frühere Versionen OpenSSL 3.3, 3.2, 3.1 und 3.0 LTS wird bis April 2026, November 2025, März 2025 und September 2026 respectively fortgesetzt. Der Code des Projekts wird unter der Apache 2.0-Lizenz verbreitet. Die wichtigsten Neuerungen:

  • Die Unterstützung für den Cipher-Suite für TLSv1.3 wurde hinzugefügt, die durch Funktionen zur Datenintegritätsprüfung (RFC 9150) eingeschränkt ist und die Algorithmen TLS_SHA256_SHA256 und TLS_SHA384_SHA384 umfasst.
  • Es wurde eine optionale Möglichkeit hinzugefügt, im Zufallszahlengenerator eine zusätzliche Entropiequelle auf Basis von Jitter (jitter), implementiert mit der Bibliothek jitterentropy, zu verwenden. Die Entropie wird durch die Messung der Unterschiede in der Zeit bei der wiederholten Ausführung eines bestimmten Satzes von Anweisungen auf der CPU erzeugt, die von vielen internen Faktoren abhängt und ohne physikalische Kontrolle über die CPU unvorhersehbar ist.
  • Die anfängliche Unterstützung für Attributzertifikate (AC — Attribute Certificate, RFC 5755) wurde hinzugefügt, die Informationen über Zugriffsrechte, Befugnisse und Attribute des Zertifikatsinhabers enthalten, die die Berechtigung für bestimmte Handlungen belegen. Zum Beispiel kann ein AC-Zertifikat das Recht definieren, sich mit einem bestimmten Dienst zu verbinden.
  • Die Unterstützung für X.509v3-Erweiterungen im Zusammenhang mit Attributzertifikaten wurde hinzugefügt.
  • Im FIPS-Anbieter wurde die Unterstützung für die FIPS 140-3 Indicator API implementiert, die es ermöglicht zu bestimmen, ob eine bestimmte Operation in einem genehmigten Dienst durchgeführt wurde oder nicht.
  • Die Verarbeitung der Eingabe im Base64-Format wurde in der API BIO (Basic Input/Output) verbessert.
  • Die Unterstützung für den Bau des openssl-Werkzeugs im PIE-Modus (Position Independent Executable) wurde hinzugefügt, was die Nutzung der Adressraumrandomisierung (ASLR) ermöglicht.
  • Die Unterstützung für direkt extrahierbare kombinierte Algorithmen zur digitalen Signatur, wie RSA-SHA2-256, wurde hinzugefügt.
  • Im PKCS#12 wurde die Unterstützung für PBMAC 1 (Password-Based Message Authentication Code 1, RFC 9579) hinzugefügt.
  • Die Optionen '-not_before' und '-not_after' wurden dem openssl-Werkzeug hinzugefügt, um den Beginn und das Ende der Gültigkeit des Zertifikats explizit anzugeben.
  • Die Möglichkeit zur Verwendung vorab berechneter Werte bei der Initialisierung von kryptografischen Algorithmen auf Basis elliptischer Kurven P-256 wurde bereitgestellt.
  • Die Funktionen TS_VERIFY_CTX_set_* wurden als veraltet erklärt, ihre Nachfolger sind die Funktionen TS_VERIFY_CTX_set0_*, die mit verbesserter Semantik ausgestattet sind.
  • Die Funktionen SSL_SESSION_get_time(), SSL_SESSION_set_time() und SSL_CTX_flush_sessions() wurden ebenfalls als veraltet erklärt. Stattdessen sollten SSL_SESSION_get_time_ex(), SSL_SESSION_set_time_ex() und SSL_CTX_flush_sessions_ex() verwendet werden, die das Problem des Jahres 2038 umgangen haben.
  • Die in OpenSSL 3.4 erwartete Unterstützung des QIUC-Protokolls auf der Serverseite сервера wurde auf die nächste Version verschoben.

Der Release des Projekts LibreSSL 4.0.0, einem Fork von OpenSSL, der darauf abzielt, ein höheres Maß an Sicherheit und qualitativ hochwertige Unterstützung der SSL/TLS-Protokolle zu bieten, während überflüssige Funktionen entfernt, zusätzliche Sicherheitsmaßnahmen hinzugefügt und erhebliche Bereinigungen sowie Umgestaltungen des Codes durchgeführt werden. Die signifikante Versionsnummernänderung ist auf die Verwendung einer Dezimalnummerierung zurückzuführen (nach 3.9 folgt Version 4.0). Die bemerkenswertesten Änderungen:

  • Erste Unterstützung für die Erstellung mit Emscripten, einem Compiler, der C/C++ in WebAssembly übersetzt, wurde hinzugefügt.
  • Der Befehl «openssl cms» wurde um die Option CRLfile erweitert, um zusätzliche Zertifikatwiderrufslisten (CRL) anzugeben, die bei der Verifizierung verwendet werden.
  • Die Unterstützung für die mips32-Plattform wurde eingestellt.
  • Der Zugriff auf Funktionen, die in Assembler geschrieben sind, über die öffentliche API wurde eingestellt (solche Funktionen werden nun nur noch über C-Wrap-Funktionen bereitgestellt). Assembler-Implementierungen veralteter Verschlüsselungen für veraltete Architekturen wurden entfernt.
  • Der Code zum Caching der Validität von Zertifikaten wurde entfernt, da er nach der Leistungsoptimierung nicht mehr sinnvoll war.
  • Die Implementierung der X.509v3-Erweiterungen wurde verbessert, die X.509v3-Methoden wurden vereinheitlicht, und die zugehörigen X.509v3-APIs wurden bereinigt.
  • Die Implementierung des Typs CRYPTO_EX_DATA wurde vollständig neu geschrieben.
  • In libcrypto wurden die Funktionen atoi() und strtol() durch strtonum() ersetzt.
  • Eine Header-Datei crypto_arch.h wurde hinzugefügt, in der der architekturspezifische Code ausgegliedert wurde.
  • Die Implementierung des DES-Algorithmus wurde überarbeitet und optimiert.
  • Die Header-Dateien pem2.h, ssl2.h, ssl23.h und ui_compat.h wurden entfernt.
  • Die Unterstützung für den Whirlpool-Hash-Algorithmus wurde entfernt.
  • Die Funktionen HMAC_Init(), OPENSSL_load_builtin_modules(), X509_REQ_{get,set}_extension_nids() und X509_check_trust() wurden entfernt.
  • Die Typen PEM_USER, PEM_CTX, COMP_CTX, COMP_METHOD, X509_CRL_METHOD, STORE, STORE_METHOD und SSL_AEAD_CTX wurden entfernt.
  • Die Funktionen SSL_CTX_set1_cert_store() und SSL_CIPHER_get_handshake_digest() wurden in libssl hinzugefügt.

Die Version der Kryptographiebibliothek Botan 3.6.0 steht zur Verfügung und wird im Projekt NeoPG, einem Fork von GnuPG 2, verwendet. Die Bibliothek bietet eine große Sammlung von verfügbaren Primitiven, die in den TLS-Protokollen, X.509-Zertifikaten, AEAD-Verschlüsselungen, TPM-Modulen, PKCS#11, Passwort-Hashing und post-quanten Kryptographie (Hash-basierte Signaturen und Schlüsselvereinbarungen basierend auf McEliece) verwendet werden. Die Bibliothek ist in C++ geschrieben und wird unter der BSD-Lizenz bereitgestellt. In der neuen Version:

  • Eine neue Bibliothek mit kryptographischen Algorithmen, die auf elliptischen Kurven basieren, wurde integriert; Operationen auf Basis typischer Kurven werden 2-3 Mal schneller ausgeführt. Zudem wird eine neue API für die Low-Level-Arbeit mit elliptischen Kurven angeboten.
  • Unterstützung für die kürzlich bei NIST standardisierten Algorithmen für post-quanten Verschlüsselung hinzugefügt: FIPS 203 ML-KEM (Kyber), FIPS 204 ML-DSA (Dilithium) und FIPS 205 SLH-DSA (SPHINCS+).
  • Unterstützung für TPM2-Chips hinzugefügt.
  • Die Verwendung von zeitkonstanten Berechnungen zum Schutz vor Seitenkanalangriffen wurde erweitert.
  • Die Generierung zusätzlicher Entropie wurde durch die Bibliothek jitterentropy hinzugefügt.
  • Die Verarbeitung von Daten im hexadezimalen Format und in base64-Codierung wurde verbessert.
  • Unterstützung für die Prozessorerweiterungen AVX2-VAES und GFNI-AVX2 wurde hinzugefügt.
  • Die Fähigkeiten der CPU-Architekturen armv7, aarch64 und ppc64 auf der OpenBSD-Plattform werden nun erkannt.
  • Es wurde eine Build-Option hinzugefügt, um alle Inline-Assembleur-Anweisungen zu deaktivieren.

Veröffentlichung des Projekts Rustls 0.23.15, das die clientseitige und serverseitige Implementierung der Protokolle TLS1.2 und TLS1.3 für Rust-Projekte entwickelt. Rustls liefert keine eigene Implementierung kryptografischer Primitiven, sondern verwendet pluggable Anbieter kryptografischer Funktionen (unterstützte Algorithmen sind ECDSA, Ed25519, RSA, ChaCha20-Poly1305, AES128-GCM und AES256-GCM). Standardmäßig wird in Rustls ein kryptografischer Anbieter auf Basis der Bibliothek aws-lc-rs verwendet, die von Amazon entwickelt wird und auf C++-Code von AWS-LC basiert, der von dem BoringSSL-Projekt abgezweigt wurde (ein von Google gewarteter Fork von OpenSSL). Auch die Bibliothek ring kann als kryptografischer Anbieter verwendet werden, die teilweise auf BoringSSL basiert und Code in Assembler, C++ und Rust kombiniert.

Die neue Version zeichnet sich durch erhebliche Leistungsoptimierungen aus. Es wird behauptet, dass die Rustls-Bibliothek mit der Verwendung von kryptographischen Primitive aws-lc-rs jetzt die OpenSSL- und BoringSSL-Bibliotheken in Tests übertrifft, die die Bandbreite und die Geschwindigkeit der Sitzungsaushandlung/wiederherstellung messen. Veröffentlichung der kryptografischen Bibliotheken OpenSSL 3.4, LibreSSL 4.0, Botan 3.6 und Rustls 0.23.15 Veröffentlichung der kryptografischen Bibliotheken OpenSSL 3.4, LibreSSL 4.0, Botan 3.6 und Rustls 0.23.15

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster