Esimene rakendus TLS 1.3 protokollist Java keeles, koos ГОСб algoritmidega vastavalt RFC 9367-le.

Modul crypto-gost-tls13 sisaldab rakendust TLS 1.3 (RFC 8446 + RFC 9367) GOST-krĂŒptograafiaga. See versioon on raamatukogu esialgne versioon ning valmis sisemiseks kasutamiseks.

Raamatukogu eripĂ€ra on see, et see on rakendatud puhtas Java-s. KĂ”ik krĂŒptograafilised operatsioonid teostatakse raamatukogu sisseehitatud vahenditega — ilma vĂ€listest sĂ”ltuvustest.

See on omaala ĂŒks esimesi avatud rakendusi TLS 1.3 GOST-iga Java-s, mistĂ”ttu interop-testimine on teostatud minimaalse kĂ€tetöö mahus.

Allpool on raamatukogu vÔimalused.

  1. Protokollid:
  • Handshake: tĂ€ielik (client/server), lĂŒhendatud (PSK), vastastikune (mTLS).
  • ALPN (RFC 7301) — rakendustasandi protokolli kokkulepe (HTTP/2, HTTP/1.1).
  • SNI (RFC 6066) — nime mÀÀramine serverid multi-tenant rakenduste puhul.
  • KeyUpdate (RFC 8446 §4.6.3) — krĂŒpto vĂ”tmete uuendamine.
  • Cipher suites: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
  • ECDHE: CryptoPro-A (256-bit), CryptoPro-B (512-bit)
  • Per-record TLSTREE uuendamine — vĂ”tme vahetamine iga TLS-kirje jaoks.
  • KĂ€epigistuste ja kĂ€skude fraktsioonimine ja kogumine (RFC 8446 §5.1).
  • Sessiooni taasalustamine: PSK kaudu NewSessionTicket (PskStore mĂ€lu, ĂŒhekorra kasutamine).
  • OCSP stapling: server kinnitades OCSP-vastuse sertifikaadi kĂŒlge.
  • Post-handshake sĂ”numid: NewSessionTicket (salvestamine PSK jaoks).
  1. KrĂŒptograafia:
  • PĂ”hjaĂŒlevaade: HKDF-Streebog (RFC 5869) TLS 1.3 (RFC 8446 §7.1) skeemi jĂ€rgi.
  • Salvestuste kaitse: MGM-AEAD (Kuznyechik) nonce'i abil vastavalt RFC 8446 §5.3.
  • Ephemeraalsetest vĂ”tmetest vabanetakse pĂ€rast kasutamist.
  1. Certificates:
  • X.509v3 (GOST R 34.10-2012) analĂŒĂŒs — sisseehitatud DER-analĂŒsaator.
  • Ahelate valideerimine: allkirjad, DN (issuer → subject), pĂ”hitingimused, vĂ”tme kasutamine, pikendatud vĂ”tme * kasutamine (serverAuth / clientAuth), pathLen.
  • Hostname'i kontroll: dNSName + iPAddress (RFC 6125).
  • OCSP vastuste verifitseerimine (RFC 6960).

4.Transport:

  • TlsTransport — liides.
  • InMemoryTlsTransport — testide ja ĂŒhe protsessi stsenaariumite jaoks (mĂ€lus jĂ€rjekord).
  • SocketTlsTransport — blocking I/O kaudu java.net.Socket.
  • ChannelTlsTransport — NIO SocketChannel-baasil transport (blokeerimisreĆŸiim, katkestatav).
  1. Samm-sammuline handshake:
  • TlsHandshakeEngine — oleku masin handshake'i jaoks (I/O-st eraldatud). Kasutab TlsSession'i orkestreerimiseks; sobib JSSE (SSLEngine) integreerimiseks.
  1. ByteBuffer API:
  • TlsRecord.protect/unprotect — ByteBuffer ĂŒlekanded zero-copy NIO integreerimiseks. VĂ”tmete laadimine:
  • Pkcs12Loader — PFX (PKCS#12) lugemine PBKDF2-HMAC-SHA256 + AES-256-CBC abil.
  1. Seansi lÔpetamine:
  • close_notify — korrektne sulgemine protokolli jĂ€rgi.
  • VĂ”tmematerjali hĂ€vitamine sulgemisel vĂ”i vea korral.
  • Alertide töötlemine: fatal — kohene sulgemine + hĂ€vitamine.
  1. Teostuse turvalisus:
  • Constant-time vĂ”rdlemine verify_data ja PSK binders'i jaoks (kaitse timing rĂŒnnakute eest).
  • Kraytava peamaterjali: destroy() kĂ”igis objektides, kus on vĂ”tmed (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), sulgemisel, surmav teade, erand kĂ€esolevas kĂ€imises
  • DoS-i kaitse: sertifikaatide ahela pikkuse piirangud (10), post-kĂ€imise sĂ”numid, kirje suurus.
  • MGM nonce: esimese bait'i MSB puhastatakse ICN jaoks (RFC 9058 §3, RFC 9367 §3.3).
  • ECDHE privaatvĂ”ti ja kĂ€imiste transkriptsioon hĂ€vitatakse pĂ€rast kĂ€imise lĂ”petamist.
  • HMAC-i vĂ”tme materjal puhastatakse pĂ€rast kasutamist (HkdfStreebog, KdfGostR3411_2012_256).
  1. Piirangud:
  • Ainult jĂ€tkamine PSK (0-RTT ja vĂ€line PSK ei ole toetatud).
  • Ainult psk_dhe_ke (puht PSK ilma ECDHE-ta ei ole toetatud).
  • HelloRetryRequest (RFC 8446 §4.1.4) ei ole toetatud - kasutatakse ainult ĂŒhte nimetatud gruppi (GC256A vaikesĂ€tetena).
  • Ainult GOST (non-GOST ĆĄifri komplektid ei ole toetatud).
  1. Testimine:
  • Raamatukogu sisaldab tuntud vastuse teste RFC 9367 lisa A.1 (L ja S variandid) - tĂ€ielik vĂ”tme ajakava, TLSTREE, AEAD, ECDHE. Ja lĂ€bib tĂ€ieliku KAT testide sageduse.
  • 4 integreerimistesti (self-interop) lĂ€bi reaalsed TCP-pesad.
  • Fuzzing-testid parserite jaoks: TlsMessageParser (8 meetodit), TlsDerParser (3 meetodit), TlsOcspVerifier (1 meetod), et tagada turvalisus ja vĂ€hendada rĂŒnnakute vektoreid parseritele.
  1. Arhitektuurilised lahendused:
  • TlsHandshakeEngine - oleku masin, mis on vĂ”rgu I/O-st eraldatud (tulevase JSSE mooduli jaoks).
  • ByteBufferi ĂŒlekoormused TlsRecord.protect/unprotect NIO/JSSE jaoks.
  • TLSTREE vahemĂ€lu (TlsTreeCache) — ainult muudetud tasemete ĂŒmberarvutamine (RFC 9367).
  • InMemoryTlsTransport.Pair — kahepoolne paar testide ja ĂŒhes protsessis suhtlemise jaoks.

Teek on vabalt kasutatav litsentsi all.

Allikas: linux.org.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster