Modyul crypto-gost-tls13 naglakip sa implementasyon TLS 1.3 (RFC 8446 + RFC 9367) gamit ang GOST cryptography. Kini nga pagpagawas mao ang inisyal nga bersyon sa librarya ug andam na alang sa internal nga paggamit.
Usa ka talagsaon nga bahin sa librarya mao ang puro nga implementasyon sa Java. Ang tanan nga mga operasyon sa kriptograpiko gihimo gamit ang built-in nga mga himan sa librarya, nga walay mga eksternal nga dependency.
Usa kini sa mga unang open source nga implementasyon sa TLS 1.3 nga adunay GOST sa Java, busa ang interop testing gihimo sa pinakagamay nga mahimo.
Sa ubos mao ang mga kapabilidad sa librarya.
- Mga Protokol:
- Paglamano: bug-os (kliyente/serbidor), mubo (PSK), usag usa (mTLS).
- ALPN (RFC 7301) - Negosasyon sa Protokol sa Layer sa Aplikasyon (HTTP/2, HTTP/1.1).
- SNI (RFC 6066) - Indikasyon sa Ngalan server para sa mga multi-tenant deployment.
- KeyUpdate (RFC 8446 §4.6.3) – pag-update sa mga yawe sa pag-encrypt sa trapiko.
- Mga cipher suite: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
- ECDHE: CryptoPro-A (256-bit), CryptoPro-B (512-bit)
- Pag-usab sa TLSTREE kada rekord — pag-ilis sa encryption key para sa matag TLS record.
- Pagbahin-bahin ug pag-assemble pag-usab sa mga handshake ug mga rekord (RFC 8446 §5.1).
- Pagpadayon sa sesyon: PSK pinaagi sa NewSessionTicket (PskStore in-memory, single-use).
- Pag-staple sa OCSP: server прикладывает OCSP-ответ к сертификату.
- Mga mensahe human sa paglamano: NewSessionTicket (gawas sa PSK).
- Kriptograpiya:
- Iskedyul sa mga importanteng buluhaton: HKDF-Streebog (RFC 5869) gamit ang TLS 1.3 (RFC 8446 §7.1).
- Proteksyon sa rekord: MGM-AEAD (Kuznyechik) nga adunay nonce sumala sa RFC 8446 §5.3.
- Ang mga ephemeral key gipapas human magamit.
- Mga sertipiko:
- X.509v3 parsing (GOST R 34.10-2012) — built-in nga DER parser.
- Kadena sa pag-validate: mga pirma, DN (tig-isyu → hilisgutan), Mga Pangunang Limitasyon, Paggamit sa Yawe, Gipalapdang Paggamit sa Yawe * (serverAuth / clientAuth), pathLen.
- Pagsusi sa ngalan sa host: dNSName + iPAddress (RFC 6125).
- Pagpamatuod sa mga tubag sa OCSP (RFC 6960).
4.Pag-transport:
- TlsTransport - interface.
- InMemoryTlsTransport - para sa mga pagsulay ug mga senaryo sa usa ka proseso (in-memory queue).
- SocketTlsTransport — nagbabag sa I/O pinaagi sa java.net.Socket.
- ChannelTlsTransport - NIO SocketChannel-based transport (blocking mode, interruptible).
- Sunod-sunod nga paglamano:
- Ang TlsHandshakeEngine usa ka state machine para sa handshake (gi-decouple gikan sa I/O). Gigamit niini ang TlsSession isip orchestrator ug angayan para sa integrasyon sa JSSE (SSLEngine).
- ByteBuffer API:
- TlsRecord.protect/unprotect — Ang ByteBuffer mo-overload para sa zero-copy integration uban sa NIO. Nagkarga nga mga yawe:
- Pkcs12Loader — nagbasa sa PFX (PKCS#12) gamit ang PBKDF2-HMAC-SHA256 + AES-256-CBC.
- Katapusan sa sesyon:
- close_notify - husto nga pagsira sumala sa protocol.
- Pagpahid sa importanteng materyal kon magsira o makahimo og sayop.
- Alerto sa pagdumala: makamatay - hinanaling pagsira + pagpapas.
- Seguridad sa pagpatuman:
- Mga pagtandi sa kanunay nga oras para sa verify_data ug PSK binders (proteksyon batok sa mga pag-atake sa oras)
- Pagpahid sa yawing materyal: destroy() sa tanang butang nga adunay mga yawe (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), sa duol, makamatay nga alerto, eksepsiyon sa handshake
- Proteksyon sa DoS: mga limitasyon sa gitas-on sa kadena sa sertipiko (10), mga mensahe human sa paglamano, gidak-on sa rekord.
- MGM nonce: Ang MSB sa unang byte gi-clear para sa ICN (RFC 9058 §3, RFC 9367 §3.3).
- Ang pribadong yawe sa ECDHE ug ang transcript sa handshake malaglag human makompleto ang handshake.
- Ang HMAC key material mapapas human magamit (HkdfStreebog, KdfGostR3411_2012_256).
- Mga limitasyon:
- Pagpadayon sa PSK lamang (ang 0-RTT ug external PSK dili gisuportahan).
- Ang psk_dhe_ke lang (ang puro nga PSK nga walay ECDHE dili gisuportahan).
- Ang HelloRetryRequest (RFC 8446 §4.1.4) dili gisuportahan - usa ra ka ginganlan nga grupo ang gigamit (GC256A isip default).
- GOST lamang (dili gisuportahan ang mga non-GOST cipher suite).
- Pagsulay:
- Ang librarya adunay mga Known Answer Tests gikan sa RFC 9367 Appendix A.1 (L ug S variants)—ang kompletong key schedule, TLSTREE, AEAD, ug ECDHE. Nakapasar usab kini sa kompletong range sa KAT tests.
- 4 ka integration tests (self-interop) pinaagi sa tinuod nga TCP sockets.
- Mga pagsulay sa fuzz para sa mga parser: TlsMessageParser (8 ka pamaagi), TlsDerParser (3 ka pamaagi), TlsOcspVerifier (1 ka pamaagi), aron masiguro ang seguridad ug makunhuran ang vector sa pag-atake sa mga parser.
- Mga solusyon sa arkitektura:
- TlsHandshakeEngine - state machine nga gi-decouple gikan sa I/O (para sa umaabot nga JSSE module).
- Ang ByteBuffer nag-overload sa TlsRecord.protect/unprotect para sa NIO/JSSE.
- TLSTREE cache (TlsTreeCache) - pagkalkula pag-usab sa mga giusab nga lebel lamang (RFC 9367).
- Ang InMemoryTlsTransport.Pair usa ka bidirectional pair para sa mga pagsulay ug single-process nga komunikasyon.
Ang librarya giapod-apod ubos sa usa ka libre nga lisensya.
Source: linux.org.ru
