Lëshimi i parë i zbatimit të protokollit TLS 1.3 në Java me algoritme GOST sipas RFC 9367

Moduli crypto-gost-tls13 përmban një implementim TLS 1.3 (RFC 8446 + RFC 9367) me kriptografi GOST. Ky version është një version fillestar i bibliotekës dhe është i gatshëm për përdorim të brendshëm.

Karakteristika e bibliotekĂ«s Ă«shtĂ« implementimi nĂ« Java tĂ« pastĂ«r. TĂ« gjitha operacionet kriptografike kryhen nga mjetet e integruara tĂ« bibliotekĂ«s — pa varĂ«si tĂ« jashtme.

Kjo është një nga implementimet e para të hapura të TLS 1.3 me GOST në Java, prandaj testimi i interoperabilitetit është realizuar në një shkallë minimale të disponueshme.

Më poshtë janë mundësitë e bibliotekës.

  1. Protokollat:
  • Handshake: i plotĂ« (client/server), i shkurtuar (PSK), i ndĂ«rsjellĂ« (mTLS).
  • ALPN (RFC 7301) — negociimi i protokollit tĂ« nivelit aplikativ (HTTP/2, HTTP/1.1).
  • SNI (RFC 6066) — pĂ«rcaktimi i emrit server pĂ«r implementimet multi-tenant.
  • KeyUpdate (RFC 8446 §4.6.3) — pĂ«rditĂ«simi i çelĂ«save tĂ« enkriptimit tĂ« trafikut.
  • Cipher suites: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
  • ECDHE: CryptoPro-A (256-bit), CryptoPro-B (512-bit)
  • Per-record TLSTREE re-keying — ndryshimi i çelĂ«sit tĂ« enkriptimit pĂ«r çdo regjistrim TLS.
  • Fraktimi dhe grumbullimi i dorĂ«heqjeve dhe regjistrimeve (RFC 8446 §5.1).
  • Rikthimi i seancĂ«s: PSK pĂ«rmes NewSessionTicket (PskStore nĂ« memorie, pĂ«rdorim tĂ« vetĂ«m).
  • OCSP stapling: server bashkĂ«ngjit pĂ«rgjigjen OCSP nĂ« certifikat.
  • Post-handshake messages: NewSessionTicket (ruajtja pĂ«r PSK).
  1. Kriptografia:
  • Plani i çelĂ«sit: HKDF-Streebog (RFC 5869) sipas skemĂ«s TLS 1.3 (RFC 8446 §7.1).
  • Mbrojtja e tĂ« dhĂ«nave: MGM-AEAD (Kuznyechik) me nonce sipas RFC 8446 §5.3.
  • ÇelĂ«sat efemer fshihen pas pĂ«rdorimit.
  1. Certifikatat:
  • Analiza X.509v3 (GOST R 34.10-2012) — parser DER i integruar.
  • Validimi i zinxhirit: nĂ«nshkrimet, DN (emitues → subjekt), Kufizimet Bazike, PĂ«rdorimi i ÇelĂ«sit, PĂ«rdorimi i Zgjeruar tĂ« ÇelĂ«sit (serverAuth / clientAuth), pathLen.
  • Kontrolli i hostname: dNSName + iPAddress (RFC 6125).
  • Verifikimi i pĂ«rgjigjeve OCSP (RFC 6960).

4.Transporti:

  • TlsTransport — ndĂ«rfaqe.
  • InMemoryTlsTransport — pĂ«r teste dhe skenarĂ« njĂ«procesorĂ« (kuotĂ« nĂ« memorie).
  • SocketTlsTransport — bllokim I/O pĂ«rmes java.net.Socket.
  • ChannelTlsTransport — transport i bazuar nĂ« NIO SocketChannel (modalitet bllokimi, ndĂ«rprerĂ«s).
  1. Handshake hap pas hapi:
  • TlsHandshakeEngine — makinĂ« gjendjeje pĂ«r handshake (e ndarĂ« nga I/O). PĂ«rdoret TlsSession si orkestrues; e pĂ«rshtatshme pĂ«r integrim me JSSE (SSLEngine).
  1. API ByteBuffer:
  • TlsRecord.protect/unprotect — mbipĂ«rcaktimet e ByteBuffer pĂ«r integrim zero-copy me NIO. Ngarkimi i çelĂ«save:
  • Pkcs12Loader — leximi i PFX (PKCS#12) me PBKDF2-HMAC-SHA256 + AES-256-CBC.
  1. Përfundimi i seancës:
  • close_notify — mbyllje korrekte sipas protokollit.
  • Fshirja e materialit tĂ« çelĂ«sit gjatĂ« mbylljes ose gabimit.
  • Trajtimi i alertit: fatal — mbyllje e menjĂ«hershme + fshirje.
  1. Siguria e implementimit:
  • Krahasime me kohĂ« konstante pĂ«r verify_data dhe PSK binders (mbrojtje nga sulmet e kohĂ«s)
  • ShkĂ«putja e materialit kryesor: destroy() nĂ« tĂ« gjitha objektet me çelĂ«sa (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), nĂ« close, alarmin fatal, pĂ«rjashtim nĂ« handshake
  • Mbrojtja nga DoS: kufizime mbi gjatĂ«si e zinxhirit tĂ« certifikatave (10), mesazhet post-handshake, madhĂ«sia e tĂ« dhĂ«nave.
  • MGM nonce: MSB i byte-it tĂ« parĂ« blihet pĂ«r ICN (RFC 9058 §3, RFC 9367 §3.3).
  • ÇelĂ«si privat ECDHE dhe transkripti i handshake shkatĂ«rrohen pas pĂ«rfundimit tĂ« handshake.
  • Materiali i çelĂ«sit HMAC fshihet pas pĂ«rdorimit (HkdfStreebog, KdfGostR3411_2012_256).
  1. Kufizime:
  • VetĂ«m resumption PSK (0-RTT dhe PSK tĂ« jashtĂ«zakonshme nuk mbĂ«shteten).
  • VetĂ«m psk_dhe_ke (pure PSK pa ECDHE nuk mbĂ«shtetet).
  • HelloRetryRequest (RFC 8446 §4.1.4) nuk mbĂ«shtetet - pĂ«rdoret vetĂ«m njĂ« grup i emĂ«rtuar (GC256A si parazgjedhje).
  • VetĂ«m GOST (pazgjidhjet jo-GOST nuk mbĂ«shteten).
  1. Testimi:
  • Biblioteka pĂ«rmban Testet e Njohura tĂ« PĂ«rgjigjes nga RFC 9367 Prandah A.1 (varianti L dhe S) - plani i plotĂ« i çelĂ«sit, TLSTREE, AEAD, ECDHE. Dhe kalon njĂ« gamĂ« tĂ« plotĂ« testesh KAT.
  • 4 teste integrimi (self-interop) pĂ«rmes soketeve reale TCP.
  • Teste fuzzing pĂ«r parserĂ«t: TlsMessageParser (8 metoda), TlsDerParser (3 metoda), TlsOcspVerifier (1 metodĂ«), pĂ«r tĂ« siguruar sigurinĂ« dhe pĂ«r tĂ« zvogĂ«luar vektorin e sulmeve nĂ« parserĂ«t.
  1. Zgjidhjet arkitekturore:
  • TlsHandshakeEngine - makinĂ« gjendjeje, e çliruar nga I/O (pĂ«r modul tĂ« ardhshĂ«m JSSE).
  • ByteBuffer-ngarkesat TlsRecord.protect/unprotect pĂ«r NIO/JSSE.
  • TLSTREE cache (TlsTreeCache) — ri-kalkulimi vetĂ«m i niveleve tĂ« ndryshuara (RFC 9367).
  • InMemoryTlsTransport.Pair — çift dypĂ«rdorimshĂ«m pĂ«r teste dhe ndĂ«rveprim tĂ« njĂ« procesi.

Biblioteka shpërndahet nën një licencë të lirë.

Burimi: linux.org.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster