A’ chiad fhoillseachadh de chur an gnìomh pròtacal TLS 1.3 ann an Java le algairidhean GOST a rèir RFC 9367

Modal crypto-gost-tls13 anns a bheil an cur an gnìomh TLS 1.3 (RFC 8446 + RFC 9367) le crioptagrafaireachd GOST. Is e seo a’ chiad dreach den leabharlann agus tha e deiseil airson a chleachdadh a-staigh.

Is e feart sònraichte den leabharlann a bhith ga chur an gnìomh ann an Java gu tur. Thèid a h-uile gnìomhachd crioptagrafach a dhèanamh le bhith a’ cleachdadh innealan togte na leabharlainn, gun eisimeileachd sam bith bhon taobh a-muigh.

Is e seo aon de na ciad chur an gnÏomh stòr fosgailte de TLS 1.3 le GOST ann an Java, agus mar sin chaidh deuchainnean eadar-obrachaidh a dhèanamh cho beag 's as urrainn.

Seo na comasan a tha aig an leabharlainn.

  1. Pròtacalan:
  • Crith-lĂ imhe: lĂ n (neach-dèiligidh/frithealaiche), goirid (PSK), co-phĂ irteach (mTLS).
  • ALPN (RFC 7301) - Co-rèiteachadh Pròtacal Sreath Iarrtais (HTTP/2, HTTP/1.1).
  • SNI (RFC 6066) - Comharrachadh Ainm frithealaiche airson cleachdadh ioma-neach-gabhail.
  • KeyUpdate (RFC 8446 §4.6.3) – ag Ăšrachadh iuchraichean crioptachaidh trafaic.
  • Seòmraichean Cipher: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
  • ECDHE: CryptoPro-A (256-bit), CryptoPro-B (512-bit)
  • Ath-iuchrachadh TLSTREE gach clĂ r — ag atharrachadh an iuchair crioptachaidh airson gach clĂ r TLS.
  • Sgoltadh is ath-chruinneachadh chrathadh-lĂ imhe is chlĂ ran (RFC 8446 §5.1).
  • Ath-thòiseachadh seisean: PSK tro NewSessionTicket (PskStore sa chuimhne, aon-chleachdadh).
  • Staplachadh OCSP: frithealaiche a’ cur freagairt OCSP ris an teisteanas.
  • Teachdaireachdan Ă s dèidh crathadh-lĂ imhe: NewSessionTicket (sĂ bhail airson PSK).
  1. Crioptagrafachd:
  • PrĂŹomh chlĂ r-ama: HKDF-Streebog (RFC 5869) thairis air TLS 1.3 (RFC 8446 §7.1).
  • DĂŹon chlĂ ran: MGM-AEAD (Kuznyechik) le nonce a rèir RFC 8446 §5.3.
  • Thèid iuchraichean sealach a dhubhadh Ă s Ă s dèidh an cleachdadh.
  1. Teisteanasan:
  • Parsadh X.509v3 (GOST R 34.10-2012) — parsair DER togte a-steach.
  • Slabhraidh dearbhaidh: ainmean-sgrĂŹobhte, DN (foillsichear → cuspair), Cuingealachaidhean Bunasach, Cleachdadh Iuchrach, Cleachdadh Iuchrach Leudaichte * (serverAuth / clientAuth), pathLen.
  • SgrĂšdadh ainm-aoigheachd: dNSName + iPAddress (RFC 6125).
  • Dearbhadh fhreagairtean OCSP (RFC 6960).

4.Còmhdhail:

  • Còmhdhail Tls - eadar-aghaidh.
  • InMemoryTlsTransport - airson deuchainnean agus suidheachaidhean aon-phròiseas (ciudha in-chuimhne).
  • SocketTlsTransport — a’ bacadh I/O thairis air java.net.Socket.
  • ChannelTlsTransport - Còmhdhail stèidhichte air seanail (modh bacadh, so-bhriseadh).
  1. Crith-lĂ imhe ceum air cheum:
  • ’S e inneal stĂ ite airson crathadh-lĂ imhe a th’ ann an TlsHandshakeEngine (air a sgaradh bho I/O). Bidh e a’ cleachdadh TlsSession mar orchestrator agus tha e freagarrach airson amalachadh le JSSE (SSLEngine).
  1. API Bufair-bhĂ ta:
  • TlsRecord.protect/unprotect — Cus luchdan de ByteBuffer airson amalachadh gun leth-bhreac le NIO. A’ luchdachadh iuchraichean:
  • Pkcs12Loader — a’ leughadh PFX (PKCS#12) le PBKDF2-HMAC-SHA256 + AES-256-CBC.
  1. Deireadh na seisein:
  • close_notify - dĂšnadh ceart a rèir a’ phròtacail.
  • A’ sguabadh stuth cudromach nuair a thathar a’ dĂšnadh no a’ dèanamh mearachd.
  • Rabhadh lĂ imhseachaidh: marbhtach - dĂšnadh sa bhad + sguabadh Ă s.
  1. Tèarainteachd cur an gnÏomh:
  • Coimeasan Ăšine-sheasmhach airson luchd-ceangail verify_data agus PSK (dĂŹon an aghaidh ionnsaighean tĂŹm)
  • A’ sguabadh Ă s stuth iuchair: destroy() air gach nĂŹ le iuchraichean (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), nuair a tha e dĂšinte, rabhadh marbhtach, eisgeachd ann an crathadh-lĂ imhe
  • DĂŹon DoS: crĂŹochan air fad slabhraidh teisteanas (10), teachdaireachdan Ă s dèidh crathadh-lĂ imhe, meud chlĂ ran.
  • MGM nonce: Tha MSB a’ chiad bhaidht air a ghlanadh airson ICN (RFC 9058 §3, RFC 9367 §3.3).
  • Thèid an iuchair phrĂŹobhaideach ECDHE agus an tar-sgrĂŹobhadh crathadh-lĂ imhe a sgrios Ă s dèidh don chrathadh-lĂ imhe a bhith deiseil.
  • Thèid stuth iuchair HMAC a dhubhadh Ă s dèidh a chleachdadh (HkdfStreebog, KdfGostR3411_2012_256).
  1. CrĂŹochan:
  • PSK ath-thòiseachadh a-mhĂ in (chan eil taic ri 0-RTT agus PSK taobh a-muigh).
  • Chan eil taic ri psk_dhe_ke a-mhĂ in (PSK fĂŹor-ghlan Ă s aonais ECDHE).
  • Chan eil taic ri HelloRetryRequest (RFC 8446 §4.1.4) - chan eil ach aon bhuidheann ainmichte air a chleachdadh (GC256A gu gnĂ thach).
  • GOST a-mhĂ in (chan eil taic ri sreathan-cifaire nach eil ann an GOST).
  1. Deuchainn:
  • Tha deuchainnean Freagairtean Aithnichte bho RFC 9367 Appendix A.1 (caochlaidhean L agus S) anns an leabharlann—an clĂ r-ama iuchrach slĂ n, TLSTREE, AEAD, agus ECDHE. Bidh e cuideachd a’ dol seachad air lĂ n raon dheuchainnean KAT.
  • 4 deuchainnean amalachaidh (fèin-eadar-obrachadh) tro socaidean TCP fĂŹor.
  • Deuchainnean fuzz airson parsairean: TlsMessageParser (8 dòighean), TlsDerParser (3 dòighean), TlsOcspVerifier (1 dòigh), gus tèarainteachd a dhèanamh cinnteach agus an vectar ionnsaigh air parsairean a lughdachadh.
  1. Fuasglaidhean ailtireachd:
  • TlsHandshakeEngine - inneal stĂ ite air a dhĂŹ-cheangal bho I/O (airson modĂşl JSSE san Ă m ri teachd).
  • Cus luchdan ByteBuffer de TlsRecord.protect/unprotect airson NIO/JSSE.
  • Tasglann TLSTREE (TlsTreeCache) - ath-Ă ireamhachadh nan ĂŹrean a chaidh atharrachadh a-mhĂ in (RFC 9367).
  • 'S e paidhir dĂ -shligheach a th' ann an InMemoryTlsTransport.Pair airson deuchainnean agus conaltradh aon-phròiseas.

Tha an leabharlann air a sgaoileadh fo cheadachas an-asgaidh.

Source: linux.org.ru

Ceannaich aoigheachd earbsach airson làraich le dìon DDoS, frithealaichean VPS VDS 🔥 Ceannaich aoigheachd làrach-lìn earbsach le dìon DDoS, frithealaichean VPS VDS | ProHoster