Модуль крипто-гост-tls13 ишке ашырууну камтыйт TLS 1.3 (RFC 8446 + RFC 9367) ГОСТ криптографиясы менен. Бул чыгарылыш китепкананын баштапкы версиясы жана ички колдонууга даяр.
Китепкананын уникалдуу өзгөчөлүгү - анын таза Java реализациясы. Бардык криптографиялык операциялар китепкананын орнотулган куралдарын колдонуу менен, тышкы көз карандылыктарсыз аткарылат.
Бул Java тилиндеги GOST менен TLS 1.3тин биринчи ачык булактуу ишке ашырууларынын бири, андыктан өз ара аракеттенүү тестирлөөсү мүмкүн болушунча минималдуу деңгээлде жүргүзүлдү.
Төмөндө китепкананын мүмкүнчүлүктөрү келтирилген.
- Протоколдор:
- Кол алышуу: толук (кардар/сервер), кыска (PSK), өз ара (mTLS).
- ALPN (RFC 7301) - Колдонмо катмарынын протоколун сүйлөшүү (HTTP/2, HTTP/1.1).
- SNI (RFC 6066) - Аты-жөнүн көрсөтүү сервер көп ижарачылуу жайгаштыруулар үчүн.
- KeyUpdate (RFC 8446 §4.6.3) – трафикти шифрлөө ачкычтарын жаңыртуу.
- Шифр топтому: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
- ECDHE: CryptoPro-A (256-бит), CryptoPro-B (512-бит)
- Ар бир жазуу үчүн TLSTREE кайра ачкычтоо — ар бир TLS жазуусу үчүн шифрлөө ачкычын өзгөртүү.
- Кол алышууларды жана жазууларды фрагментациялоо жана кайра чогултуу (RFC 8446 §5.1).
- Сессияны кайра баштоо: NewSessionTicket аркылуу PSK (PskStore эс тутумунда, бир жолу колдонулат).
- OCSP степлерлөө: Server сертификатка OCSP жообун тиркейт.
- Кол алышуудан кийинки билдирүүлөр: NewSessionTicket (PSK үчүн сактоо).
- Криптография:
- Негизги график: TLS 1.3 (RFC 8446 §7.1) аркылуу HKDF-Streebog (RFC 5869).
- Жазууларды коргоо: RFC 8446 §5.3 ылайык, MGM-AEAD (Кузнечик) нонсенс менен.
- Убактылуу ачкычтар колдонулгандан кийин өчүрүлөт.
- Тастыктамалар:
- X.509v3 талдоо (ГОСТ Р 34.10-2012) — орнотулган DER талдоочусу.
- Текшерүү чынжыры: кол тамгалар, DN (эмитент → субъект), Негизги чектөөлөр, Ачкычты колдонуу, Кеңейтилген Ачкычты * колдонуу (serverAuth / clientAuth), pathLen.
- Хост атын текшерүү: dNSName + iPAddress (RFC 6125).
- OCSP жоопторун текшерүү (RFC 6960).
4.Transport:
- TlsTransport - интерфейси.
- InMemoryTlsTransport - тесттер жана бир процесстүү сценарийлер үчүн (эс тутумдагы кезек).
- SocketTlsTransport — java.net.Socket аркылуу киргизүү/чыгарууну бөгөттөө.
- ChannelTlsTransport - NIO SocketКаналга негизделген транспорт (блоктоо режими, үзгүлтүккө учуратуу).
- Кол алышуу этап-этабы менен:
- TlsHandshakeEngine - кол алышуу үчүн абал машинасы (киргизүү/чыгаруудан ажыратылган). Ал TlsSessionду оркестратор катары колдонот жана JSSE (SSLEngine) менен интеграциялоого ылайыктуу.
- ByteBuffer API:
- TlsRecord.protect/unprotect — NIO менен нөлдүк көчүрмө менен интеграциялоо үчүн ByteBuffer ашыкча жүктөйт. Ачкычтар жүктөлүүдө:
- Pkcs12Loader — PBKDF2-HMAC-SHA256 + AES-256-CBC менен PFX (PKCS#12) окуу.
- Сессиянын аягы:
- close_notify - протоколго ылайык туура жабуу.
- Жабууда же ката кетирүүдө негизги материалды сүртүү.
- Колдонуу боюнча эскертүү: өлүмгө алып келет - дароо жабылуу + өчүрүү.
- Ишке ашыруу коопсуздугу:
- verify_data жана PSK байланыштыргычтары үчүн туруктуу убакытты салыштыруу (убакыт чабуулдарынан коргоо)
- Негизги материалды өчүрүү: ачкычтары бар бардык объектилерде (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext) destroy() функциясы, жабылганда, өлүмгө алып келүүчү эскертүү, кол алышууда өзгөчө учур
- DoS коргоосу: сертификат чынжырынын узундугуна (10), кол алышуудан кийинки билдирүүлөргө, жазуунун өлчөмүнө чектөөлөр.
- MGM nonce: Биринчи байттын MSBси ICN үчүн тазаланган (RFC 9058 §3, RFC 9367 §3.3).
- ECDHE жашыруун ачкычы жана кол алышуу стенограммасы кол алышуу аяктагандан кийин жок кылынат.
- HMAC ачкыч материалы колдонулгандан кийин өчүрүлөт (HkdfStreebog, KdfGostR3411_2012_256).
- чектөөлөр:
- PSK кайра улантуу үчүн гана (0-RTT жана тышкы PSK колдоого алынбайт).
- psk_dhe_ke гана (ECDHEсиз таза PSK колдоого алынбайт).
- HelloRetryRequest (RFC 8446 §4.1.4) колдоого алынбайт - бир гана аталган топ колдонулат (демейки шартта GC256A).
- ГОСТ гана (ГОСТ эмес шифр топтомдору колдоого алынбайт).
- Сыноо:
- Китепканада RFC 9367 А.1 тиркемесинен алынган белгилүү жооп тесттери (L жана S варианттары) — толук ачкыч графиги, TLSTREE, AEAD жана ECDHE камтылган. Ошондой эле, ал KAT тесттеринин толук спектринен өтөт.
- Чыныгы TCP сокеттери аркылуу 4 интеграциялык тест (өзүн-өзү интероперациялоо).
- Парсерлер үчүн Fuzz тесттери: коопсуздукту камсыз кылуу жана парсерлерге чабуул векторун азайтуу үчүн TlsMessageParser (8 ыкма), TlsDerParser (3 ыкма), TlsOcspVerifier (1 ыкма).
- Архитектуралык чечимдер:
- TlsHandshakeEngine - абал машинасы I/Oдон ажыратылган (келечектеги JSSE модулу үчүн).
- NIO/JSSE үчүн TlsRecord.protect/unprotect файлынын ByteBuffer ашыкча жүктөлүшү.
- TLSTREE кэши (TlsTreeCache) - өзгөртүлгөн деңгээлдерди гана кайра эсептөө (RFC 9367).
- InMemoryTlsTransport.Pair – бул тесттер жана бир процесстүү байланыш үчүн эки багыттуу жуп.
Китепкана акысыз лицензиянын негизинде таратылат.
Source: linux.org.ru
