Криптографийн сангуудын хэд хэдэн шинэ хувилбарууд хэвлэгдсэн:
SSL/TLS протоколууд болон янз бүрийн шифрлэлтийн алгоритмуудыг хэрэгжүүлсэн OpenSSL 3.4.0 номын санг гаргасан. OpenSSL 3.4 нь 2025 оны 3.3-р сар хүртэл дэмжигдэх болно. OpenSSL 3.2, 3.1, 3.0 болон 2026 LTS-ийн өмнөх салбаруудын дэмжлэг 2025 оны 2025-р сар, 2026 оны 2.0-р сар, XNUMX оны XNUMX-р сар, XNUMX оны XNUMX-р сар хүртэл үргэлжилнэ. Төслийн кодыг Apache XNUMX лицензийн дагуу түгээдэг. Гол инноваци:
- TLSv1.3-д зориулсан өгөгдлийн бүрэн бүтэн байдлыг шалгах (RFC 9150) болон TLS_SHA256_SHA256 болон TLS_SHA384_SHA384 алгоритмуудыг багтаасан шифрийн багц дэмжлэгийг нэмсэн.
- Житрентропийн номын санг ашиглан псевдорентропийн тоо үүсгэгч дэх жийргэвч дээр суурилсан нэмэлт энтропийн эх үүсвэрийг ашиглах нэмэлт боломжийг нэмсэн. Энтропи нь CPU дээрх тодорхой багц зааврыг дахин гүйцэтгэх хугацааны зөрүүг хэмжих замаар үүсдэг бөгөөд энэ нь олон дотоод хүчин зүйлээс хамаардаг бөгөөд CPU-ийн физик хяналтгүйгээр урьдчилан таамаглах боломжгүй юм.
- Зөвшөөрлийн гэрчилгээнд анхан шатны дэмжлэг (AC - Attribute Certificate, RFC 5755) нэмэгдсэн бөгөөд үүнд гэрчилгээ эзэмшигчийн нэвтрэх эрх, эрх мэдэл, шинж чанаруудын талаарх мэдээллийг багтаасан бөгөөд энэ нь тодорхой үйлдлийг гүйцэтгэх чадварыг гэрчилдэг. Жишээлбэл, АС гэрчилгээ нь зарим үйлчилгээнд холбогдох эрхийг тодорхойлж чадна.
- Зөвшөөрлийн гэрчилгээтэй холбоотой X.509v3 өргөтгөлүүдийн дэмжлэгийг нэмсэн.
- FIPS үйлчилгээ үзүүлэгч нь FIPS 140-3 Indicator API-ийн дэмжлэгийг хэрэгжүүлдэг бөгөөд энэ нь тодорхой үйлдлийг батлагдсан үйлчилгээнд ашигласан эсэхийг тодорхойлох боломжийг олгодог.
- BIO (Үндсэн оролт/Гаралт) API нь Base64 оролтын боловсруулалтыг сайжруулсан.
- Хаягийн орон зайн санамсаргүй хуваарилалтыг (ASLR) ашиглах боломжийг олгодог PIE (Position Independent Executable) горимд openssl хэрэгслийг бүтээх дэмжлэг нэмэгдсэн.
- RSA-SHA2-256 гэх мэт шууд олборлох боломжтой хосолсон тоон гарын үсгийн алгоритмуудын дэмжлэгийг нэмсэн.
- PKCS#12 нь PBMAC 1 (Нууц үгэнд суурилсан мессежийн баталгаажуулалтын код 1, RFC 9579)-ийн дэмжлэгийг нэмдэг.
- Сертификат эхлэх болон дуусах цагийг тодорхой зааж өгөхийн тулд openssl хэрэгсэлд '- not_fore' ба '-not_after' сонголтуудыг нэмсэн.
- P-256 эллипс муруй дээр суурилсан криптограф алгоритмыг эхлүүлэхдээ урьдчилан тооцоолсон утгыг ашиглах боломжтой.
- TS_VERIFY_CTX_set_* функцуудыг хуучирсан гэж зарлаж, сайжруулсан семантик бүхий TS_VERIFY_CTX_set0_* функцээр сольсон.
- SSL_SESSION_get_time(), SSL_SESSION_set_time() болон SSL_CTX_flush_sessions() функцууд хуучирсан бөгөөд SSL_SESSION_get_time_ex(), SSL_SESSION_set_time_ex() болон SSL_CTX_flush_ex2038-р асуудлыг арилгадаг SSL_CTX_flush_ex() функцууд хуучирсан байна.
- OpenSSL 3.4 дээр хүлээгдэж байсан QIUC протоколыг хажуу талаас нь дэмжих сервер дараагийн дугаар хүртэл хойшлуулав.
Шаардлагагүй функцуудыг устгаж, нэмэлт хамгаалалтын функцуудыг нэмж, ихээхэн цэвэрлэгээ, боловсруулалт хийх замаар SSL/TLS протоколуудад илүү өндөр түвшний аюулгүй байдал, өндөр чанартай дэмжлэг үзүүлэх зорилготой OpenSSL-ийн салаа хөгжүүлэх LibreSSL 4.0.0 төслийг гаргасан. кодын суурь. Хувилбарын дугаарт мэдэгдэхүйц өөрчлөлт гарсан нь аравтын бутархай дугаарлалтын хэрэглээтэй холбоотой (3.9-ийн дараа 4.0 хувилбар ирдэг). Хамгийн мэдэгдэхүйц өөрчлөлтүүд:
- C/C++-ийн WebAssembly хөрвүүлэгч Emscripten ашиглан бүтээх анхны дэмжлэгийг нэмсэн.
- "openssl cms" тушаалд CRLfile сонголтыг нэмсэн бөгөөд баталгаажуулалтын явцад ашиглах нэмэлт гэрчилгээ хүчингүй болгох жагсаалтыг (CRLs) зааж өгөх болно.
- mips32 платформыг дэмжихээ больсон.
- Бид нийтийн API-ээр дамжуулан ассемблер хэлээр бичигдсэн функцүүдэд хандах боломжийг олгохоо больсон (ийм функцуудыг одоо зөвхөн C хэл дээрх боодлын функцээр хангадаг). Хуучин архитектурт зориулсан хуучин шифрүүдийн ассемблер хэлний хэрэгжилтийг устгасан.
- Гүйцэтгэлийг оновчтой болгосны дараа утгагүй болсон гэрчилгээний хүчинтэй кэшийн кодыг устгасан.
- X.509v3 өргөтгөлүүдийн хэрэгжилтийг сайжруулж, X.509v3 аргуудыг нэгтгэж, X.509v3-тэй холбоотой API-уудыг цэвэрлэв.
- CRYPTO_EX_DATA төрлийн хэрэгжилтийг бүрэн дахин бичсэн.
- Libcrypto-д atoi() болон strtol() функцуудыг strtonum() функцээр сольсон.
- Техник хангамжийн архитектурт зориулсан код агуулсан crypto_arch.h толгой файлыг нэмсэн.
- DES алгоритмын хэрэгжилтийг дахин боловсруулж, оновчтой болгосон.
- pem2.h, ssl2.h, ssl23.h болон ui_compat.h толгой файлуудыг устгасан.
- Whirlpool хэш алгоритмын дэмжлэгийг хассан.
- HMAC_Init(), OPENSSL_load_builtin_modules(), X509_REQ_{get,set}_extension_nids(), X509_check_trust() функцуудыг устгасан.
- PEM_USER, PEM_CTX, COMP_CTX, COMP_METHOD, X509_CRL_METHOD, STORE, STORE_METHOD болон SSL_AEAD_CTX төрлүүдийг устгасан.
- SSL_CTX_set1_cert_store() болон SSL_CIPHER_get_handshake_digest() функцуудыг libssl-д нэмсэн.
Botan 3.6.0 криптографийн номын санг GnuPG 2-ын салаа NeoPG төсөлд ашиглах боломжтой боллоо. Номын сан нь TLS протокол, X.509 сертификат, AEAD шифр, TPM модулиудад ашигласан бэлэн командуудын томоохон цуглуулгатай. , PKCS#11, нууц үгийг хэшлэх ба квантын дараах криптограф (хэш дээр суурилсан гарын үсэг болон McEliece-д суурилсан түлхүүрийн гэрээ). Номын сан нь C++ хэл дээр бичигдсэн бөгөөд BSD лицензийн дагуу түгээгддэг. Шинэ хувилбарт:
- Шинэ номын сан нь зууван муруй дээр суурилсан криптоалгоритмуудтай нэгдсэн бөгөөд стандарт муруй дээр суурилсан үйлдлүүд нь 2-3 дахин хурдан хийгддэг. Зууван муруйтай доод түвшний ажилд зориулсан шинэ API-г мөн санал болгож байна.
- Саяхан стандартчилагдсан NIST-ийн дараах квант шифрлэлтийн алгоритмуудын дэмжлэгийг нэмсэн: FIPS 203 ML-KEM (Kyber), FIPS 204 ML-DSA (Dilithium) болон FIPS 205 SLH-DSA (SPHINCS+).
- TPM2 чипийн дэмжлэгийг нэмсэн.
- Хажуугийн сувгийн халдлагаас хамгаалахын тулд тогтмол цагийн тооцооллын хэрэглээг өргөжүүлсэн.
- Житрентропийн номын санг ашиглан нэмэлт энтропи үүсгэсэн.
- Аравтын тоот формат болон base64 кодчилолд өгөгдөл боловсруулах гүйцэтгэл сайжирсан.
- AVX2-VAES болон GFNI-AVX2 процессорын өргөтгөлүүдийн дэмжлэгийг нэмсэн.
- OpenBSD платформ дээр armv7, aarch64 болон ppc64 CPU-ийн чадавхийг илрүүлсэн.
- Ассемблерийн бүх оруулгыг идэвхгүй болгох угсралтын сонголтыг нэмсэн.
Rust хэл дээрх төслүүдийн TLS0.23.15 ба TLS1.2 протоколуудын клиент болон серверийн хэрэгжилтийг хөгжүүлдэг Rustls 1.3 төслийг гаргасан. Rustls нь криптограф командын өөрийн хэрэгжилтийг хангадаггүй боловч залгагддаг криптограф функц нийлүүлэгчдийг ашигладаг (ECDSA, Ed25519, RSA, ChaCha20-Poly1305, AES128-GCM болон AES256-GCM алгоритмуудыг дэмждэг). Анхдагч байдлаар, Rustls нь Amazon-ийн хөгжүүлсэн aws-lc-rs номын сан дээр суурилсан крипто үйлчилгээ үзүүлэгчийг ашигладаг бөгөөд BoringSSL төслийн салаа болох AWS-LC C++ код дээр суурилдаг (Google-ээс хадгалдаг OpenSSL-ийн салаа). Хэсэгчлэн BoringSSL дээр суурилсан, C++ болон Rust угсралтын кодыг нэгтгэсэн бөгж номын санг крипто үйлчилгээ үзүүлэгч болгон ашиглаж болно.
Шинэ хувилбар нь гүйцэтгэлийн оновчлолын хувьд мэдэгдэхүйц юм. aws-lc-rs крипто командуудыг ашигласнаар Rustls нь дамжуулах чадвар, холболтын хэлэлцээр/сэргээх хурдыг хэмждэг жишиг үзүүлэлтээрээ OpenSSL болон BoringSSL-ээс илүү гарсан гэж мэдэгджээ.

Эх сурвалж: opennet.ru
