Moduli crypto-gost-tls13 përmban implementim TLS 1.3 (RFC 8446 + RFC 9367) me kriptografi GOST. Ky publikim është versioni fillestar i bibliotekës dhe është i gatshëm për përdorim të brendshëm.
Veçori e bibliotekës është realizimi në Java të pastër. Të gjitha operacionet kriptografike kryhen nga mjetet e brendshme të bibliotekës - pa varësi të jashtme.
Në vetë të drejtën e vet, kjo është një nga realizimet e para të hapura të TLS 1.3 me GOST në Java, prandaj testimi i ndërveprueshmërisë është kryer në përmasat minimale të disponueshme.
Më poshtë janë mundësitë e bibliotekës.
- Protokollet:
- Handshaku: 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) - caktimi i emrit serverë për ndërtimet multi-tenant.
- KeyUpdate (RFC 8446 §4.6.3) - rinovimi i çelisë për enkriptimin e trafikut.
- Cipher suites: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
- ECDHE: CryptoPro-A (256-bit), CryptoPro-B (512-bit)
- Per-record TLSTREE re-keying - ndërrimi i çelisë së enkriptimit për çdo rekord TLS.
- Fragmentimi dhe mbledhja e dorëzimeve dhe rekordeve (RFC 8446 §5.1).
- Rikthimi i sesionit: PSK përmes NewSessionTicket (PskStore in-memory, përdorim i vetëm).
- OCSP stapling: server prikon përgjigjen OCSP me certifikatin.
- Mesazhet post-handshake: NewSessionTicket (ruajtja për PSK).
- Kriptografia:
- ĂelĂ«si i planit: HKDF-Streebog (RFC 5869) sipas pĂ«rshkrimit TLS 1.3 (RFC 8446 §7.1).
- Mbrojtja e rekordeve: MGM-AEAD (Kuznyechik) me nonce sipas RFC 8446 §5.3.
- ĂelĂ«sat efemer fshihen pas pĂ«rdorimit.
- Certifikatat:
- Parsimimi i X.509v3 (GOST R 34.10-2012) - parser i brendshëm DER.
- Validimi i zinxhirit: nĂ«nshkrime, DN (marrĂ«si â subjekti), Kufizimet thelbĂ«sore, PĂ«rdorimi i çelĂ«sit, PĂ«rdorimi i çelĂ«sit tĂ« zgjeruar * (serverAuth/clientAuth), pathLen.
- Kontrolli i hostname: dNSName + iPAddress (RFC 6125).
- Verifikimi i përgjigjeve OCSP (RFC 6960).
4.Transporti:
- TlsTransport - ndërfaqja.
- InMemoryTlsTransport - për prova dhe skenarë me një proces (kuadri në memorie).
- SocketTlsTransport - I/O blocking përmes java.net.Socket.
- ChannelTlsTransport - transport i bazuar në NIO SocketChannel (mode blocking, ndërprerës).
- Hendeku hap pas hapi:
- TlsHandshakeEngine - makine e shtetit për handshaku (e ndarë nga I/O). Përdoret TlsSession si orkestrues; e përshtatshme për integrim me JSSE (SSLEngine).
- ByteBuffer API:
- TlsRecord.protect/unprotect - ngarkesa 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.
- Përfundimi i sesionit:
- close_notify - mbyllje e duhur sipas protokollit.
- Fshihja e materialeve të çelësit gjatë mbylljes ose një gabimi.
- Trajtimi i alert: fatal - mbyllje e menjëhershme + fshihje.
- Siguria e implementimit:
- Krahasimi në kohë konstante për verify_data dhe PSK binders (mbrojtje nga sulmet nga koha)
- Izbrazhimi materialet kyç: destroy() në të gjitha objektet me çelësa (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), gjatë close, fatal alert, exception në handshake
- Mbrojtja nga DoS: kufizime në gjatësi e zinxhirëve të certifikatave (10), mesazhe post-handshake, madhësia e regjistrimeve.
- MGM nonce: MSB i bajtit të parë pastruar 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 pastruar pas përdorimit (HkdfStreebog, KdfGostR3411_2012_256).
- Kufizimet:
- Vetëm PSK i rifillimit (0-RTT dhe PSK të jashtme 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 (cifrat jo-GOST nuk mbështeten).
- Testimi:
- Biblioteka pĂ«rmban Teste tĂ« Njohura tĂ« PĂ«gjigjeve nga RFC 9367 Shtojca A.1 (L dhe S variante) â plan tĂ« plotĂ« kyç, TLSTREE, AEAD, ECDHE. Dhe kalon njĂ« gamĂ« tĂ« plotĂ« testesh KAT.
- 4 teste integrimi (self-interop) përmes soketeve reale TCP.
- Testet e fuzzing për parserët: TlsMessageParser (8 metoda), TlsDerParser (3 metoda), TlsOcspVerifier (1 metodë), për të siguruar sigurinë dhe për të reduktuar vektorët e sulmeve ndaj parserëve.
- Zgjidhjet arkitekturore:
- TlsHandshakeEngine â makinĂ« gjendje, e shkĂ«putur nga I/O (pĂ«r modul tĂ« ardhshĂ«m JSSE).
- Overloads e ByteBuffer për TlsRecord.protect/unprotect për NIO/JSSE.
- Caches TLSTREE (TlsTreeCache) â rinumrimi vetĂ«m i niveleve tĂ« ndryshuara (RFC 9367).
- InMemoryTlsTransport.Pair â njĂ« çift dyanshĂ«m pĂ«r teste dhe ndĂ«rveprime tĂ« njĂ« procesi.
Biblioteka shpërndahet nën një licencë të lirë.
Burimi: linux.org.ru
