Moodul krĂŒpto-gost-tls13 sisaldab teostust TLS 1.3 (RFC 8446 + RFC 9367) GOST-krĂŒptograafiaga. See vĂ€ljaanne on teegi algversioon ja on sisemiseks kasutamiseks valmis.
Selle teegi ainulaadne omadus on selle puhas Java implementatsioon. KĂ”ik krĂŒptograafilised toimingud teostatakse teeki sisseehitatud tööriistade abil, ilma vĂ€liste sĂ”ltuvusteta.
See on ĂŒks esimesi avatud lĂ€htekoodiga TLS 1.3 implementatsioone GOST-iga Javas, seega on koostalitlusvĂ”ime testimine tehtud minimaalselt.
Allpool on loetletud raamatukogu vÔimalused.
- Protokollid:
- KĂ€epigistus: tĂ€ielik (klient/server), lĂŒhike (PSK), vastastikune (mTLS).
- ALPN (RFC 7301) - rakenduskihi protokolli lÀbirÀÀkimised (HTTP/2, HTTP/1.1).
- SNI (RFC 6066) - nime tĂ€his server mitme ĂŒĂŒrnikuga juurutuste jaoks.
- KeyUpdate (RFC 8446 §4.6.3) â liikluse krĂŒpteerimisvĂ”tmete uuendamine.
- Ć ifreerimiskomplektid: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
- ECDHE: CryptoPro-A (256-bitine), CryptoPro-B (512-bitine)
- KirjepĂ”hine TLSTREE ĂŒmberkodeerimine â iga TLS-kirje krĂŒpteerimisvĂ”tme muutmine.
- KÀepigistuste ja dokumentide fragmenteerimine ja uuesti kokkupanek (RFC 8446 §5.1).
- Seansi jĂ€tkamine: PSK NewSessionTicketi kaudu (PskStore mĂ€lus, ĂŒhekordselt kasutatav).
- OCSP klammerdamine: server lisab sertifikaadile OCSP vastuse.
- KÀepigistuse jÀrgsed sÔnumid: NewSessionTicket (salvesta PSK jaoks).
- KrĂŒptograafia:
- PĂ”hiskeem: HKDF-Streebog (RFC 5869) ĂŒle TLS 1.3 (RFC 8446 §7.1).
- Kirjekaitse: MGM-AEAD (Kuznyechik) nonss-mÀrgisega vastavalt RFC 8446 §5.3.
- Ajutised vÔtmed kustutatakse pÀrast kasutamist.
- Sertifikaadid:
- X.509v3 parsimine (GOST R 34.10-2012) â sisseehitatud DER-parser.
- Valideerimisahel: allkirjad, DN (vĂ€ljastaja â subjekt), pĂ”hipiirangud, vĂ”tme kasutamine, laiendatud vĂ”tme * kasutus (serverAuth / clientAuth), pathLen.
- Hostinime kontroll: dNSName + iPAddress (RFC 6125).
- OCSP vastuste kontrollimine (RFC 6960).
4.Transport:
- TlsTransport - liides.
- InMemoryTlsTransport â testide ja ĂŒheprotsessiliste stsenaariumide jaoks (mĂ€lusisene jĂ€rjekord).
- SocketTlsTransport â sisend-/vĂ€ljundi blokeerimine java.net.Socketi kaudu.
- ChannelTlsTransport - NIO Socket Channel-pĂ”hine transport (blokeerimisreĆŸiim, katkestatav).
- Samm-sammult kÀepigistus:
- TlsHandshakeEngine on kÀepigistuse olekumasin (eraldi sisend-/vÀljundoperatsioonidest). See kasutab orkestraatorina TlsSessioni ja sobib integreerimiseks JSSE-ga (SSLEngine).
- ByteBufferi API:
- TlsRecord.protect/unprotect â ByteBufferi ĂŒlekoormamine NIO-ga nullkopeerimise integreerimiseks. VĂ”tmete laadimine:
- Pkcs12Loader â PFX-i (PKCS#12) lugemine PBKDF2-HMAC-SHA256 + AES-256-CBC abil.
- Sessiooni lÔpp:
- close_notify - korrektne sulgemine vastavalt protokollile.
- VĂ”tmematerjali pĂŒhkimine sulgemisel vĂ”i vea tegemisel.
- KĂ€itlemise hoiatus: saatuslik - kohene sulgemine + kustutamine.
- Rakendamise turvalisus:
- Konstantse aja vĂ”rdlused verify_data ja PSK sideainete jaoks (kaitse ajastusrĂŒnnakute eest)
- VĂ”tmematerjali pĂŒhkimine: destroy() kĂ”ikidel objektidel, millel on vĂ”tmed (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), sulgemisel, saatuslik hoiatus, kĂ€epigistuse erand
- DoS-kaitse: piirangud sertifikaadiahela pikkusele (10), kÀepigistusjÀrgsetele sÔnumitele, kirje suurusele.
- MGM nonce: Esimese baiti MSB tĂŒhjendatakse ICN-i jaoks (RFC 9058 §3, RFC 9367 §3.3).
- ECDHE privaatvÔti ja kÀepigistuse transkript hÀvitatakse pÀrast kÀepigistuse lÔppu.
- HMAC-vÔtme materjal kustutatakse pÀrast kasutamist (HkdfStreebog, KdfGostR3411_2012_256).
- Piirangud:
- Ainult jÀtkamise PSK (0-RTT ja vÀlist PSK-d ei toetata).
- Ainult psk_dhe_ke (puhas PSK ilma ECDHE-ta pole toetatud).
- HelloRetryRequest (RFC 8446 §4.1.4) ei ole toetatud â kasutatakse ainult ĂŒhte nimega gruppi (vaikimisi GC256A).
- Ainult GOST (mitte-GOST ĆĄifrikomplekte ei toetata).
- Testimine:
- Teek sisaldab RFC 9367 lisa A.1 teadaolevate vastuste teste (L- ja S-variandid) â tĂ€ielikku vĂ”tmegraafikut, TLSTREE-d, AEAD-d ja ECDHE-d. See lĂ€bib ka kĂ”ik KAT-testid.
- 4 integratsioonitesti (enese interop) pÀris TCP soklite kaudu.
- Parserite hĂ€gustestid: TlsMessageParser (8 meetodit), TlsDerParser (3 meetodit), TlsOcspVerifier (1 meetod), turvalisuse tagamiseks ja parserite rĂŒnnakuvektori vĂ€hendamiseks.
- Arhitektuurilised lahendused:
- TlsHandshakeEngine - olekumasin, mis on I/O-st lahutatud (tulevase JSSE mooduli jaoks).
- ByteBufferi ĂŒlekoormus TlsRecord.protect/unprotect failis NIO/JSSE puhul.
- TLSTREE vahemĂ€lu (TlsTreeCache) - ainult muudetud tasemete ĂŒmberarvutamine (RFC 9367).
- InMemoryTlsTransport.Pair on kahesuunaline paar testide ja ĂŒheprotsessilise suhtluse jaoks.
Raamatukogu levitatakse tasuta litsentsi alusel.
Allikas: linux.org.ru
