Esimene vĂ€ljaanne TLS 1.3 protokolli rakendusest Java keeles koos ГОСб algoritmidega vastavalt RFC 9367-le.

Moodul crypto-gost-tls13 sisaldab ellu viimistlemist TLS 1.3 (RFC 8446 + RFC 9367) GOST-krĂŒptograafiaga. See vĂ€ljaanne on raamatukogu algversioon ja valmis sisemiseks kasutamiseks.

Raamatukogu eripĂ€ra on puhta Java teostus. KĂ”ik krĂŒptograafilised operatsioonid viiakse lĂ€bi raamatukogu sisseehitatud vahenditega - vĂ€liste sĂ”ltuvusteta.

See on omaette ĂŒks esimesi avatud TLS 1.3 GOST rakendusi Java-s, seetĂ”ttu on interop-testimine teostatud minimaalsetes tingimustes.

Allpool on vÀlja toodud raamatukogu vÔimalused.

  1. Protokollid:
  • Handshake: tĂ€ielik (client/server), lĂŒhendatud (PSK), vastastikune (mTLS).
  • ALPN (RFC 7301) - rakenduste tasandi protokolli lĂ€birÀÀkimine (HTTP/2, HTTP/1.1).
  • SNI (RFC 6066) - nime mÀÀramine serverilt multi-tenant rakenduste jaoks.
  • KeyUpdate (RFC 8446 §4.6.3) - krĂŒptimise vĂ”tmete vĂ€rskendamine.
  • Cipher suites: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
  • ECDHE: CryptoPro-A (256-bit), CryptoPro-B (512-bit)
  • Per-record TLSTREE re-keying - krĂŒpteerimisse vĂ”tme vahetamine iga TLS-kirje kohta.
  • KĂ€epigistuste ja kirjete fragmentimine ja koostamine (RFC 8446 §5.1).
  • Seansi taastamine: PSK lĂ€bi NewSessionTicket (PskStore in-memory, ĂŒhekordne kasutamine).
  • OCSP stapling: server kinnitab OCSP-vastuse sertifikaadile.
  • Post-handshake sĂ”numid: NewSessionTicket (salvestamine PSK jaoks).
  1. KrĂŒptograafia:
  • Key schedule: HKDF-Streebog (RFC 5869) TLS 1.3 skeemi jĂ€rgi (RFC 8446 §7.1).
  • Kirjete kaitse: MGM-AEAD (Kuznyechik) nonce'i abil vastavalt RFC 8446 §5.3.
  • Efkefeerilised vĂ”tmed kustutatakse pĂ€rast kasutamist.
  1. Sertifikaadid:
  • X.509v3 analĂŒĂŒs (GOST R 34.10-2012) - sisse ehitatud DER-parser.
  • Ahelate valideerimine: allkirjad, DN (vĂ€ljaandja → subjekt), pĂ”hi piirangud, vĂ”tme kasutamine, laiendatud vĂ”tme * kasutamine (serverAuth / clientAuth), pathLen.
  • Hostname'i kontroll: dNSName + iPAddress (RFC 6125).
  • OCSP-vastuste valideerimine (RFC 6960).

4.Transport:

  • TlsTransport - liides.
  • InMemoryTlsTransport - testide ja ĂŒhes protsessis stsenaariumide jaoks (in-memory jĂ€rjekord).
  • SocketTlsTransport - blokeeriv I/O kaudu java.net.Socket.
  • ChannelTlsTransport - NIO SocketChannel-pĂ”hine transport (blokeerimise reĆŸiim, katkestatav).
  1. Samm-sammult handshake:
  • TlsHandshakeEngine - olekumasin handshake'i jaoks (I/O-st lahti seotud). Kasutatakse TlsSession'it orkestrina; sobib JSSE (SSLEngine) integreerimiseks.
  1. ByteBuffer API:
  • TlsRecord.protect/unprotect - ByteBuffer'i ĂŒlekanded zero-copy integreerimiseks NIO-iga. VĂ”tmete laadimine:
  • Pkcs12Loader - PFX (PKCS#12) lugemine PBKDF2-HMAC-SHA256 + AES-256-CBC abil.
  1. Seansi lÔpuleviimine:
  • close_notify - korrektne sulgemine protokolli jĂ€rgi.
  • VĂ”tme materjali kustutamine sulgemisel vĂ”i vea korral.
  • Alertide töötlemine: fatal - kohene sulgemine + kustutamine.
  1. Rakenduse turvalisus:
  • Constant-time vĂ”rdlemine verify_data ja PSK binders (aeg-haavatavuste kaitse)
  • Kriitilise materjali kustutamine: destroy() kĂ”igis objektides, millel on vĂ”tmed (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), kui sulgeda, fatali hĂ€ire, erand kĂ€epideme ajal.
  • DoS kaitse: sertifikaatide ahela pikkuse piirangud (10), post-handshake sĂ”numid, salvestuste suurus.
  • MGM nonce: ICN-i esimese byte'i MSB puhastatakse (RFC 9058 §3, RFC 9367 §3.3).
  • ECDHE privaatvĂ”ti ja kĂ€epideme transkriptsioon hĂ€vitatakse pĂ€rast kĂ€epideme lĂ”petamist.
  • HMAC vĂ”tmematerjal puhastatakse pĂ€rast kasutamist (HkdfStreebog, KdfGostR3411_2012_256).
  1. Piirangud:
  • Ainult jĂ€tkamis PSK (0-RTT ja vĂ€line PSK ei ole toetatud).
  • Ainult psk_dhe_ke (puht PSK ilma ECDHE ei ole toetatud).
  • HelloRetryRequest (RFC 8446 §4.1.4) ei ole toetatud — kasutatakse ainult ĂŒht named group'i (GC256A vaikimisi).
  • Ainult GOST (non-GOST krĂŒptosĂŒsteemide komplekte ei toetata).
  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Ă€ielikku KAT testide spektrit.
  • 4 integreerimistesti (self-interop) reaalse TCP-soketi kaudu.
  • Fuzzing-testid parserite jaoks: TlsMessageParser (8 meetodit), TlsDerParser (3 meetodit), TlsOcspVerifier (1 meetod), et tagada turvalisus ja vĂ€hendada rĂŒnnakuvĂ”imalusi parserite suhtes.
  1. Arhitektuursed lahendused:
  • TlsHandshakeEngine - oleku masin, mis on lahutatud I/O-st (tulevast JSSE moodulit silmas pidades).
  • ByteBuffer ĂŒlekoormus TlsRecord.protect/unprotect NIO/JSSE jaoks.
  • TLSTREE cache (TlsTreeCache) - ĂŒmberarvutamine ainult muudetud tasanditele (RFC 9367).
  • InMemoryTlsTransport.Pair - kahepoolne paar testide ja ĂŒheprotsessilise suhtluse jaoks.

Raamatukogu on vabakutselise litsentsi alusel.

Allikas: linux.org.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster