Modûl krîpto-gost-tls13 pêkanîna dihewîne TLS 1.3 (RFC 8446 + RFC 9367) bi şîfrekirina GOST. Ev guherto guhertoya destpêkê ya pirtûkxaneyê ye û ji bo karanîna navxweyî amade ye.
Taybetmendiyeke bêhempa ya pirtûkxaneyê pêkanîna wê ya saf Java ye. Hemû operasyonên krîptografîk bi karanîna amûrên çêkirî yên pirtûkxaneyê têne kirin, bêyî ku girêdayîbûnên derveyî hebin.
Ev yek ji pêkanînên çavkaniya vekirî yên pêşîn ên TLS 1.3 bi GOST re di Java de ye, ji ber vê yekê ceribandina navbeynkariyê bi qasî ku pêkan e hatiye kirin.
Li jêr kapasîteyên pirtûkxaneyê hene.
- Protokol:
- Hezkirin: tam (muwekîl/server), kurt (PSK), hevbeş (mTLS).
- ALPN (RFC 7301) - Danûstandina Protokola Qata Serlêdanê (HTTP/2, HTTP/1.1).
- SNI (RFC 6066) - Nîşana Navî server ji bo bicihkirinên pir-kirêdar.
- KeyUpdate (RFC 8446 §4.6.3) – mifteyên şîfrekirina trafîkê nû dike.
- Komikên şîfreyê: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
- ECDHE: CryptoPro-A (256-bit), CryptoPro-B (512-bit)
- Ji nû ve mifteya TLSTREE-ê li gorî her tomarê - guhertina mifteya şîfrekirinê ji bo her tomarê TLS.
- Parçekirin û ji nû ve komkirina destdan û tomaran (RFC 8446 §5.1).
- Ji nû ve destpêkirina danişînê: PSK bi rêya NewSessionTicket (PskStore di bîrê de, ji bo yekcarî bikaranînê).
- Staplinga OCSP: server bersiva OCSP li sertîfîkayê zêde dike.
- Peyamên piştî desthevdanê: NewSessionTicket (ji bo PSK-ê bihêlin).
- Krîptografî:
- Bernameya sereke: HKDF-Streebog (RFC 5869) li ser TLS 1.3 (RFC 8446 §7.1).
- Parastina tomarê: MGM-AEAD (Kuznyechik) bi nonce li gorî RFC 8446 §5.3.
- Bişkokên demkî piştî karanînê tên jêbirin.
- Sertîfîkayên:
- Parskirina X.509v3 (GOST R 34.10-2012) — parsera DER-ê ya çêkirî.
- Zincîra pejirandinê: îmze, DN (derxêr → mijar), Astengiyên bingehîn, Bikaranîna Mifteyê, Bikaranîna Mifteya Berfirehkirî * (serverAuth / clientAuth), pathLen.
- Kontrolkirina navê mêvandar: dNSName + iPAddress (RFC 6125).
- Verastkirina bersivên OCSP (RFC 6960).
4.Transport:
- TlsTransport - navrû.
- InMemoryTlsTransport - ji bo ceribandin û senaryoyên yek-pêvajoyê (rêza di-bîrê de).
- SocketTlsTransport — astengkirina I/O li ser java.net.Socket.
- ChannelTlsTransport - Veguhestina NIO SocketChannel-based (moda astengkirinê, navberdayî).
- Destgirtinê gav bi gav:
- TlsHandshakeEngine makîneyeke rewşê ye ji bo handshake (ji I/O veqetandî). Ew TlsSession wekî orkestratorek bikar tîne û ji bo entegrasyonê bi JSSE (SSLEngine) re guncaw e.
- API-ya ByteBuffer:
- TlsRecord.protect/unprotect — ByteBuffer ji bo entegrasyona sifir-kopî bi NIO re zêde bar dike. Mifteyan tê barkirin:
- Pkcs12Loader — xwendina PFX (PKCS#12) bi PBKDF2-HMAC-SHA256 + AES-256-CBC.
- Dawiya rûniştinê:
- close_notify - girtina rast li gorî protokolê.
- Paqijkirina materyalên mifteyê dema girtin an jî çêkirina xeletiyekê.
- Hişyariya destgirtinê: kujer - girtina tavilê + jêbirin.
- Ewlekariya pêkanînê:
- Berawirdkirinên dem-sabît ji bo bindersên verifiy_data û PSK (parastina li dijî êrîşên demjimêrkirinê)
- Paqijkirina materyalê mifteyê: destroy() li ser hemî tiştên bi mifteyan (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), li ser nêzîkbûnê, hişyariya kujer, îstîsna di handshake de
- Parastina DoS: sînorkirinên li ser dirêjahiya zincîra sertîfîkayê (10), peyamên piştî desthevdanê, mezinahiya tomarê.
- MGM nonce: MSB ya byte ya yekem ji bo ICN tê paqijkirin (RFC 9058 §3, RFC 9367 §3.3).
- Mifteya taybet a ECDHE û nivîsa destdanê piştî ku destdan qediya tê tunekirin.
- Materyalê mifteya HMAC piştî karanînê tê jêbirin (HkdfStreebog, KdfGostR3411_2012_256).
- Sînor
- Tenê PSK-ya ji nû ve destpêkirinê (0-RTT û PSK-ya derveyî nayên piştgirî kirin).
- Tenê psk_dhe_ke (PSK-ya saf bêyî ECDHE nayê piştgirîkirin).
- HelloRetryRequest (RFC 8446 §4.1.4) nayê piştgirîkirin - tenê yek komeke bi nav tê bikaranîn (bi xwerû GC256A).
- Tenê GOST (kûtên şîfreyên ne-GOST nayên piştgirîkirin).
- Testkirin:
- Pirtûkxane Testên Bersivên Known ji RFC 9367 Appendix A.1 (guhertoyên L û S) - bernameya mifteya tevahî, TLSTREE, AEAD, û ECDHE - dihewîne. Ew her weha rêza tevahî ya testên KAT derbas dike.
- 4 testên entegrasyonê (xwe-hevkarî) bi rêya soketên TCP yên rastîn.
- Testên fuzz ji bo parseran: TlsMessageParser (8 rêbaz), TlsDerParser (3 rêbaz), TlsOcspVerifier (1 rêbaz), ji bo misogerkirina ewlehiyê û kêmkirina vektora êrîşê li ser parseran.
- Çareseriyên mîmarî:
- TlsHandshakeEngine - makîneya rewşê ji I/O veqetandî (ji bo modula JSSE ya pêşerojê).
- Ji bo NIO/JSSE, ByteBuffer TlsRecord.protect/unprotect zêde bar dike.
- Keşeya TLSTREE (TlsTreeCache) - ji nû ve hesabkirina tenê astên guhertî (RFC 9367).
- InMemoryTlsTransport.Pair cotek dualî ye ji bo ceribandin û ragihandina yek-pêvajoyê.
Pirtûkxane bi lîsansek belaş tê belavkirin.
Source: linux.org.ru
