Versioni i parë i implementimit të protokollit TLS 1.3 në Java me algoritme GOST në përputhje me RFC 9367

Modul kripto-gost-tls13 përmban zbatimin TLS 1.3 (RFC 8446 + RFC 9367) me kriptografi GOST. Ky version është versioni fillestar i bibliotekës dhe është gati për përdorim të brendshëm.

Një veçori unike e bibliotekës është implementimi i saj i pastër në Java. Të gjitha operacionet kriptografike kryhen duke përdorur mjetet e integruara të bibliotekës, pa varësi të jashtme.

Ky është një nga implementimet e para me burim të hapur të TLS 1.3 me GOST në Java, kështu që testimi i ndërveprimit është bërë në masën minimale të mundshme.

Më poshtë janë aftësitë e bibliotekës.

  1. Protokollet:
  • ShtrĂ«ngim duarsh: i plotĂ« (klient/server), i shkurtĂ«r (PSK), i ndĂ«rsjellĂ« (mTLS).
  • ALPN (RFC 7301) - Negocimi i Protokollit tĂ« ShtresĂ«s sĂ« Aplikacionit (HTTP/2, HTTP/1.1).
  • SNI (RFC 6066) - Treguesi i Emrit server pĂ«r vendosjet me shumĂ« qiramarrĂ«s.
  • KeyUpdate (RFC 8446 §4.6.3) – pĂ«rditĂ«simi i çelĂ«save tĂ« enkriptimit tĂ« trafikut.
  • Kompletet e shifrave: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
  • ECDHE: CryptoPro-A (256-bit), CryptoPro-B (512-bit)
  • Ri-çelĂ«simi TLSTREE pĂ«r çdo regjistrim — ndryshimi i çelĂ«sit tĂ« enkriptimit pĂ«r çdo regjistrim TLS.
  • Fragmentimi dhe rimontimi i shtrĂ«ngimeve tĂ« duarve dhe i tĂ« dhĂ«nave (RFC 8446 §5.1).
  • Rifillimi i sesionit: PSK nĂ«pĂ«rmjet NewSessionTicket (PskStore nĂ« memorie, pĂ«r pĂ«rdorim tĂ« vetĂ«m).
  • Kapja OCSP: server shton pĂ«rgjigjen OCSP nĂ« certifikatĂ«.
  • Mesazhe pas shtrĂ«ngimit tĂ« dorĂ«s: NewSessionTicket (ruaj pĂ«r PSK).
  1. Kriptografia:
  • Grafiku kryesor: HKDF-Streebog (RFC 5869) mbi TLS 1.3 (RFC 8446 §7.1).
  • Mbrojtja e regjistrimit: MGM-AEAD (Kuznyechik) me nonce sipas RFC 8446 §5.3.
  • ÇelĂ«sat e shkurtĂ«r fshihen pas pĂ«rdorimit.
  1. Certifikatat:
  • Analiza X.509v3 (GOST R 34.10-2012) — analizues DER i integruar.
  • Zinxhiri i validimit: nĂ«nshkrimet, DN (lĂ«shuesi → subjekti), Kufizimet BazĂ«, PĂ«rdorimi i ÇelĂ«sit, PĂ«rdorimi i ÇelĂ«sit tĂ« Zgjeruar * (serverAuth / clientAuth), pathLen.
  • Kontrolli i emrit tĂ« hostit: dNSName + iPAddress (RFC 6125).
  • Verifikimi i pĂ«rgjigjeve OCSP (RFC 6960).

4.Transport:

  • TlsTransport - ndĂ«rfaqe.
  • InMemoryTlsTransport - pĂ«r teste dhe skenarĂ« me njĂ« proces tĂ« vetĂ«m (radhĂ« nĂ« memorie).
  • SocketTlsTransport — bllokimi i hyrjeve/daljeve mbi java.net.Socket.
  • ChannelTlsTransport - Transporti i bazuar nĂ« NIO SocketChannel (modaliteti i bllokimit, i ndĂ«rprerĂ«).
  1. Shtrëngim duarsh hap pas hapi:
  • TlsHandshakeEngine Ă«shtĂ« njĂ« makinĂ« gjendjeje pĂ«r handshake (e shkĂ«putur nga I/O). PĂ«rdor TlsSession si orkestrues dhe Ă«shtĂ« i pĂ«rshtatshĂ«m pĂ«r integrim me JSSE (SSLEngine).
  1. API-ja e ByteBuffer:
  • TlsRecord.protect/unprotect — ByteBuffer mbingarkon pĂ«r integrimin zero-kopje me NIO. Ngarkimi i çelĂ«save:
  • Pkcs12Loader — leximi i PFX (PKCS#12) me PBKDF2-HMAC-SHA256 + AES-256-CBC.
  1. Fundi i seancës:
  • close_notify - mbyllje e saktĂ« sipas protokollit.
  • Fshirja e materialit tĂ« çelĂ«sit gjatĂ« mbylljes ose gjatĂ« bĂ«rjes sĂ« njĂ« gabimi.
  • Alarm trajtimi: fatal - mbyllje e menjĂ«hershme + fshirje.
  1. Siguria e implementimit:
  • Krahasime nĂ« kohĂ« konstante pĂ«r lidhĂ«sit verify_data dhe PSK (mbrojtje kundĂ«r sulmeve tĂ« kohĂ«s)
  • Fshirja e materialit tĂ« çelĂ«sit: destroy() nĂ« tĂ« gjitha objektet me çelĂ«sa (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), nĂ« mbyllje, alarm fatal, pĂ«rjashtim nĂ« handshake
  • Mbrojtja DoS: kufizime nĂ« gjatĂ«sinĂ« e zinxhirit tĂ« certifikatave (10), mesazhet pas shtrĂ«ngimit tĂ« dorĂ«s, madhĂ«sia e regjistrimit.
  • MGM nonce: MSB e bajtit tĂ« parĂ« pastrohet pĂ«r ICN (RFC 9058 §3, RFC 9367 §3.3).
  • ÇelĂ«si privat ECDHE dhe transkripti i shtrĂ«ngimit tĂ« dorĂ«s shkatĂ«rrohen pasi tĂ« pĂ«rfundojĂ« shtrĂ«ngimi i dorĂ«s.
  • Materiali i çelĂ«sit HMAC fshihet pas pĂ«rdorimit (HkdfStreebog, KdfGostR3411_2012_256).
  1. kufizimet:
  • VetĂ«m rifillimi i PSK (0-RTT dhe PSK i jashtĂ«m nuk mbĂ«shteten).
  • VetĂ«m psk_dhe_ke (PSK i pastĂ«r pa ECDHE nuk mbĂ«shtetet).
  • HelloRetryRequest (RFC 8446 §4.1.4) nuk mbĂ«shtetet - pĂ«rdoret vetĂ«m njĂ« grup i emĂ«ruar (GC256A si parazgjedhje).
  • VetĂ«m GOST (paketat e shifrave jo-GOST nuk mbĂ«shteten).
  1. Duke testuar:
  • Biblioteka pĂ«rmban Teste me PĂ«rgjigje tĂ« Njohura nga Shtojca A.1 e RFC 9367 (variantet L dhe S) - skema e plotĂ« e çelĂ«save, TLSTREE, AEAD dhe ECDHE. Gjithashtu kalon gamĂ«n e plotĂ« tĂ« testeve KAT.
  • 4 teste integrimi (vetĂ«-ndĂ«rveprim) nĂ«pĂ«rmjet soketave reale TCP.
  • Teste fuzz pĂ«r analizuesit: TlsMessageParser (8 metoda), TlsDerParser (3 metoda), TlsOcspVerifier (1 metodĂ«), pĂ«r tĂ« siguruar sigurinĂ« dhe pĂ«r tĂ« zvogĂ«luar vektorin e sulmit mbi analizuesit.
  1. Zgjidhje arkitekturore:
  • TlsHandshakeEngine - makineri gjendjesh e shkĂ«putur nga I/O (pĂ«r modulin e ardhshĂ«m JSSE).
  • Mbingarkesa tĂ« ByteBuffer tĂ« TlsRecord.protect/unprotect pĂ«r NIO/JSSE.
  • Memoria e pĂ«rkohshme TLSTREE (TlsTreeCache) - rillogaritja vetĂ«m e niveleve tĂ« ndryshuara (RFC 9367).
  • InMemoryTlsTransport.Pair Ă«shtĂ« njĂ« çift dypalĂ«sh pĂ«r teste dhe komunikim me njĂ« proces tĂ« vetĂ«m.

Biblioteka shpërndahet sipas një licence falas.

Burimi: linux.org.ru

Bleni njĂ« host tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, serverĂ« VPS VDS đŸ”„ Bleni hosting tĂ« besueshĂ«m tĂ« faqeve tĂ« internetit me mbrojtje DDoS, servera VPS VDS | ProHoster