Module crypto-gost-tls13 aia ka hoʻokō ʻana TLS 1.3 (RFC 8446 + RFC 9367) me ka cryptography GOST. ʻO kēia hoʻokuʻu ka mana mua o ka waihona puke a ua mākaukau no ka hoʻohana kūloko.
ʻO kahi hiʻohiʻona kūikawā o ka waihona puke ʻo ia ka hoʻokō ʻana o Java maʻemaʻe. Hana ʻia nā hana cryptographic āpau me ka hoʻohana ʻana i nā mea hana i kūkulu ʻia o ka waihona puke, me ka ʻole o nā hilinaʻi o waho.
ʻO kēia kekahi o nā hoʻokō kumu wehe mua o TLS 1.3 me GOST ma Java, no laila ua hana ʻia ka hoʻāʻo interop i ka palena iki loa.
Aia ma lalo nā hiki o ka waihona puke.
- Nā Kūlana:
- Lūlū lima: piha (mea kūʻai aku/kikowaena), pōkole (PSK), like (mTLS).
- ALPN (RFC 7301) - Kūkākūkā ʻana o ka Protocol Papa Noi (HTTP/2, HTTP/1.1).
- SNI (RFC 6066) - Hōʻike inoa kikowaena pūnaewele no nā hoʻolaha ʻana he nui nā mea hoʻolimalima.
- KeyUpdate (RFC 8446 §4.6.3) – ke hōʻano hou nei i nā kī hoʻopāʻālua kalepa.
- Nā hui kīpē: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
- ECDHE: CryptoPro-A (256-bit), CryptoPro-B (512-bit)
- Ke hoʻololi hou ʻana o TLSTREE no kēlā me kēia moʻolelo — ke hoʻololi nei i ke kī hoʻopāʻālua no kēlā me kēia moʻolelo TLS.
- Ka ʻāpana ʻana a me ka hoʻākoakoa hou ʻana o nā lulu lima a me nā moʻolelo (RFC 8446 §5.1).
- Hoʻomaka hou ʻana o ka hālāwai: PSK ma o NewSessionTicket (PskStore i loko o ka hoʻomanaʻo, hoʻohana hoʻokahi).
- Ke kāpili ʻana o OCSP: kikowaena hoʻohui i ka pane OCSP i ka palapala hōʻoia.
- Nā leka ma hope o ke kuʻikahi lima: NewSessionTicket (koe wale no PSK).
- Ka hoʻopunipuni:
- Papa kuhikuhi koʻikoʻi: HKDF-Streebog (RFC 5869) ma luna o TLS 1.3 (RFC 8446 §7.1).
- Ka palekana moʻolelo: MGM-AEAD (Kuznyechik) me ka nonce e like me RFC 8446 §5.3.
- Holoi ʻia nā kī ephemeral ma hope o ka hoʻohana ʻana.
- Palapala:
- X.509v3 parsing (GOST R 34.10-2012) — mea parser DER i kūkulu ʻia.
- Kaulahao hōʻoia: nā pūlima, DN (mea hoʻopuka → kumuhana), Nā Palena Kumu, Hoʻohana Kī, Hoʻonui Kī * Hoʻohana (serverAuth / clientAuth), pathLen.
- Nānā inoa kikowaena: dNSName + iPAddress (RFC 6125).
- Ka hōʻoia ʻana o nā pane OCSP (RFC 6960).
4.Kahua:
- ʻO TlsTransport - ka pilina.
- InMemoryTlsTransport - no nā hoʻāʻo a me nā hiʻohiʻona hana hoʻokahi (laina i loko o ka hoʻomanaʻo).
- SocketTlsTransport — ke ālai nei i ka I/O ma luna o java.net.Socket.
- ChannelTlsTransport - NIO SocketChannel-based transport (ʻano ālai, hiki ke hoʻopilikia ʻia).
- Lūlū lima ʻanuʻu:
- He mīkini mokuʻāina ʻo TlsHandshakeEngine no ka handshake (hoʻokaʻawale ʻia mai I/O). Hoʻohana ia iā TlsSession ma ke ʻano he orchestrator a kūpono no ka hoʻohui ʻana me JSSE (SSLEngine).
- API ByteBuffer:
- TlsRecord.protect/unprotect — Hoʻouka nui ʻo ByteBuffer no ka hoʻohui kope ʻole me NIO. Ke hoʻouka nei i nā kī:
- Pkcs12Loader — ke heluhelu nei iā PFX (PKCS#12) me PBKDF2-HMAC-SHA256 + AES-256-CBC.
- Pau ka hālāwai:
- close_notify - hoʻoponopono i ka pani ʻana e like me ke kaʻina hana.
- Ka holoi ʻana i nā mea koʻikoʻi i ka wā e pani ai a hana hewa paha.
- Makaʻala lawelawe: make - pani koke + holoi ʻana.
- Palekana hoʻokō:
- Nā hoʻohālikelike manawa mau no nā mea hoʻopaʻa verify_data a me PSK (pale ʻana mai nā hoʻouka kaua manawa)
- Ke holoi nei i nā mea kī: destroy() ma nā mea āpau me nā kī (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), ma kahi kokoke, makaʻala make, ʻokoʻa i ka hoʻoluliluli lima
- Ka palekana DoS: nā palena ma ka lōʻihi o ke kaulahao palapala hōʻoia (10), nā leka ma hope o ka lulu lima ʻana, ka nui o ka moʻolelo.
- MGM nonce: Ua hoʻomaʻemaʻe ʻia ka MSB o ka byte mua no ICN (RFC 9058 §3, RFC 9367 §3.3).
- Ua luku ʻia ke kī pilikino ECDHE a me ka palapala hoʻokuʻi lima ma hope o ka pau ʻana o ke kuʻi lima.
- Holoi ʻia nā mea koʻikoʻi HMAC ma hope o ka hoʻohana ʻana (HkdfStreebog, KdfGostR3411_2012_256).
- Nā palena:
- Hoʻomaka hou ʻana i ka PSK wale nō (ʻaʻole kākoʻo ʻia ʻo 0-RTT a me PSK waho).
- ʻO psk_dhe_ke wale nō (ʻaʻole kākoʻo ʻia ka PSK maʻemaʻe me ka ʻole o ECDHE).
- ʻAʻole kākoʻo ʻia ʻo HelloRetryRequest (RFC 8446 §4.1.4) - hoʻokahi wale nō hui i kapa ʻia i hoʻohana ʻia (GC256A ma ka paʻamau).
- ʻO GOST wale nō (ʻaʻole kākoʻo ʻia nā suites cipher ʻaʻole GOST).
- hoʻāʻo:
- Aia i loko o ka waihona puke nā Hoʻāʻo Pane i ʻIke ʻia mai RFC 9367 Appendix A.1 (nā ʻano L a me S)—ka papa kuhikuhi kī piha, TLSTREE, AEAD, a me ECDHE. Ua hala pū ia i nā ʻano hoʻāʻo KAT āpau.
- 4 mau hoʻāʻo hoʻohui (self-interop) ma o nā sockets TCP maoli.
- Nā hoʻāʻo Fuzz no nā parser: TlsMessageParser (8 mau ʻano), TlsDerParser (3 mau ʻano), TlsOcspVerifier (1 ʻano), e hōʻoia i ka palekana a hoʻemi i ka vector hoʻouka ma nā parser.
- Nā hoʻonā hoʻolālā hale:
- ʻO TlsHandshakeEngine - ua hoʻokaʻawale ʻia ka mīkini mokuʻāina mai I/O (no ka module JSSE e hiki mai ana).
- Hoʻouka nui ʻo ByteBuffer iā TlsRecord.protect/unprotect no NIO/JSSE.
- TLSTREE cache (TlsTreeCache) - ka helu hou ʻana o nā pae i hoʻololi wale ʻia (RFC 9367).
- He pālua bidirectional ʻo InMemoryTlsTransport.Pair no nā hoʻāʻo a me ke kamaʻilio kaʻina hana hoʻokahi.
Hoʻolaha ʻia ka waihona puke ma lalo o kahi laikini manuahi.
Source: linux.org.ru
