Modulua kripto-gost-tls13 inplementazioa dauka. TLS 1.3 (RFC 8446 + RFC 9367) GOST kriptografiarekin. Bertsio hau liburutegiaren hasierako bertsioa da eta barne erabilerarako prest dago.
Liburutegiaren ezaugarri berezi bat Java inplementazio hutsa da. Eragiketa kriptografiko guztiak liburutegiaren tresna integratuak erabiliz egiten dira, kanpoko menpekotasunik gabe.
Hau da TLS 1.3-ren GOST-ekin Java-n egindako lehenengo kode irekiko inplementazioetako bat, beraz, interoperabilitate probak ahalik eta gutxien egin dira.
Jarraian liburutegiaren gaitasunak daude.
- Protokoloak:
- Esku-ematea: osoa (bezeroa/zerbitzaria), laburra (PSK), elkarrekikoa (mTLS).
- ALPN (RFC 7301) - Aplikazio Geruzako Protokolo Negoziazioa (HTTP/2, HTTP/1.1).
- SNI (RFC 6066) - Izenaren Adierazpena zerbitzaria maizter anitzeko inplementazioetarako.
- KeyUpdate (RFC 8446 §4.6.3) – trafikoaren enkriptazio-gakoak eguneratzea.
- Zifratu multzoak: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
- ECDHE: CryptoPro-A (256 bitekoa), CryptoPro-B (512 bitekoa)
- TLSTREE erregistro bakoitzeko berriro gakotzea — TLS erregistro bakoitzerako enkriptazio-gakoa aldatzea.
- Esku-emateen eta erregistroen zatikatzea eta berriro muntatzea (RFC 8446 §5.1).
- Saioaren berrabiarazpena: PSK NewSessionTicket bidez (PskStore memorian, erabilera bakarrekoa).
- OCSP grapaketa: zerbitzaria прикладывает OCSP-ответ к сертификату.
- Esku-emate osteko mezuak: SaioTxartel Berria (PSKrako gordeta).
- Kriptografia:
- Giltza-egutegia: HKDF-Streebog (RFC 5869) TLS 1.3 bidez (RFC 8446 §7.1).
- Erregistroen babesa: MGM-AEAD (Kuznyechik) RFC 8446 §5.3 araberako noncearekin.
- Giltza iragankorrak erabili ondoren ezabatzen dira.
- Ziurtagiriak:
- X.509v3 parsing-a (GOST R 34.10-2012) — DER parser integratua.
- Balidazio-katea: sinadurak, DN (jaulkitzailea → gaia), Oinarrizko murrizketak, Gakoen erabilera, Gako hedatuaren * erabilera (zerbitzariaAuth / bezeroaAuth), bidearen luzera.
- Hostname egiaztapena: dNSName + iPAddress (RFC 6125).
- OCSP erantzunen egiaztapena (RFC 6960).
4.Garraioa:
- TlsTransport - interfazea.
- InMemoryTlsTransport - probetarako eta prozesu bakarreko eszenatokietarako (memoria barruko ilara).
- SocketTlsTransport — java.net.Socket-en bidez S/I blokeatzen.
- ChannelTlsTransport - NIO SocketKanaletan oinarritutako garraioa (blokeatze modua, eten daitekeena).
- Esku-ematea pausoz pauso:
- TlsHandshakeEngine esku-emateetarako egoera-makina bat da (S/I-tik deskonektatuta). TlsSession orkestratzaile gisa erabiltzen du eta JSSE-rekin (SSLEngine) integratzeko egokia da.
- ByteBuffer APIa:
- TlsRecord.protect/unprotect — ByteBuffer gainkargak NIOrekin zero kopiako integraziorako. Giltzak kargatzen:
- Pkcs12Loader — PFX (PKCS#12) irakurtzen PBKDF2-HMAC-SHA256 + AES-256-CBC-rekin.
- Saioaren amaiera:
- close_notify - protokoloaren araberako itxiera zuzena.
- Ixtean edo akats bat egitean giltza-materiala ezabatzea.
- Kudeaketa alerta: hilgarria - berehala ixtea + ezabatzea.
- Inplementazio segurtasuna:
- Denbora konstanteko konparaketak verify_data eta PSK lokailuen artean (denbora-erasoen aurkako babesa)
- Gakoen materiala ezabatzen: destroy() giltzak dituzten objektu guztietan (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), ixtean, alerta hilgarria, esku-ematean salbuespena
- DoS babesa: ziurtagiri-katearen luzeraren mugak (10), esku-emate osteko mezuak, erregistroaren tamaina.
- MGM nonce: Lehenengo bytearen MSB-a ICNrako garbitu da (RFC 9058 §3, RFC 9367 §3.3).
- ECDHEren gako pribatua eta esku-ematearen transkripzioa suntsitzen dira esku-ematea amaitu ondoren.
- HMAC gako materiala erabili ondoren ezabatzen da (HkdfStreebog, KdfGostR3411_2012_256).
- murrizketak:
- PSK berrabiaraztea bakarrik (0-RTT eta kanpoko PSK ez dira onartzen).
- psk_dhe_ke bakarrik (ECDHE gabeko PSK hutsa ez da onartzen).
- HelloRetryRequest (RFC 8446 §4.1.4) ez da onartzen - talde izendatu bakarra erabiltzen da (GC256A lehenespenez).
- GOST bakarrik (GOST ez diren zifratze multzoak ez dira onartzen).
- Probak:
- Liburutegiak RFC 9367 A.1 eranskineko (L eta S aldaerak) Erantzun Ezagunen Probak ditu: gakoen ordutegi osoa, TLSTREE, AEAD eta ECDHE. KAT proba guztiak ere gainditzen ditu.
- 4 integrazio proba (autoelkarreragingarriak) benetako TCP socketen bidez.
- Parserrentzako fuzz probak: TlsMessageParser (8 metodo), TlsDerParser (3 metodo), TlsOcspVerifier (metodo 1), segurtasuna bermatzeko eta parserren aurkako eraso bektorea murrizteko.
- Arkitektura-irtenbideak:
- TlsHandshakeEngine - egoera-makina S/I-tik desakoplatuta (etorkizuneko JSSE modulurako).
- TlsRecord.protect/unprotect-en ByteBuffer gainkargak NIO/JSSErako.
- TLSTREE katxea (TlsTreeCache) - aldatutako mailen birkalkulua soilik (RFC 9367).
- InMemoryTlsTransport.Pair probak egiteko eta prozesu bakarreko komunikaziorako bikote bidirekzionala da.
Liburutegia lizentzia libre baten pean banatzen da.
Iturria: linux.org.ru
