Sakin farko na aiwatar da yarjejeniyar TLS 1.3 a Java tare da algorithms na GOST daidai da RFC 9367

Module crypto-gost-tls13 ya ƙunshi aiwatarwa TLS 1.3 (RFC 8446 + RFC 9367) tare da GOST cryptography. Wannan fitowar ita ce sigar farko ta ɗakin karatu kuma a shirye take don amfani a ciki.

Wani abu na musamman na ɗakin karatu shine aiwatar da Java ɗinsa. Ana yin duk ayyukan ɓoye bayanai ta amfani da kayan aikin da aka gina a cikin ɗakin karatu, ba tare da dogaro da waje ba.

Wannan shine ɗayan farkon aiwatar da TLS 1.3 na bude tushen aiki tare da GOST a Java, don haka an yi gwajin interop gwargwadon iyawa.

Ga iyawar ɗakin karatu a ƙasa.

  1. Yarjejeniyoyi:
  • Mu'amala da hannu: cikakken (abokin ciniki/sabar), gajere (PSK), mu'amala (mTLS).
  • ALPN (RFC 7301) - Tattaunawar Yarjejeniyar Tsarin Aikace-aikace (HTTP/2, HTTP/1.1).
  • SNI (RFC 6066) - Alamar Suna uwar garke don tura masu haya da yawa.
  • KeyUpdate (RFC 8446 §4.6.3) – sabunta maɓallan ɓoye zirga-zirga.
  • Cipher suites: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
  • ECDHE: CryptoPro-A (256-bit), CryptoPro-B (512-bit)
  • Sake kunna maɓallan TLSTREE a kowane rikodin - canza maɓallin ɓoyewa don kowane rikodin TLS.
  • Rarrabuwa da sake haɗa musabaha da bayanai (RFC 8446 §5.1).
  • Dawowar zaman: PSK ta hanyar NewSessionTicket (PskStore a cikin ƙwaƙwalwar ajiya, amfani sau ɗaya).
  • Tsarin OCSP: sabar yana ƙara amsar OCSP zuwa takardar shaidar.
  • Saƙonnin bayan musafi: NewSessionTicket (ajiye don PSK).
  1. Rubutun ɓoye sirri:
  • Jadawalin mahimmanci: HKDF-Streebog (RFC 5869) sama da TLS 1.3 (RFC 8446 §7.1).
  • Kariyar rikodi: MGM-AEAD (Kuznyechik) tare da nonce bisa ga RFC 8446 §5.3.
  • Ana goge maɓallan ephemeral bayan amfani.
  1. Takaddun shaida:
  • Binciken X.509v3 (GOST R 34.10-2012) — mai nazarin DER da aka gina a ciki.
  • Sarkar tabbatarwa: sa hannu, DN (mai bayarwa → batun), Takamaiman Asali, Amfani da Maɓalli, Maɓallin Fadada * Amfani (serverAuth / clientAuth), pathLen.
  • Duba sunan mai masauki: dNSName + iPAAddress (RFC 6125).
  • Tabbatar da amsoshin OCSP (RFC 6960).

4.Kai:

  • TlsTransport - hanyar sadarwa.
  • InMemoryTlsTransport - don gwaje-gwaje da yanayin aiki ɗaya (layin cikin ƙwaƙwalwa).
  • SocketTlsTransport — toshe I/O akan java.net.Socket.
  • ChannelTlsTransport - Sufuri bisa tushen NIO SocketChannel (yanayin toshewa, mai katsewa).
  1. Musa hannu mataki-mataki:
  • TlsHandshakeEngine injin ne na jihar don musa hannu (wanda aka cire shi daga I/O). Yana amfani da TlsSession a matsayin mai tsara waƙoƙi kuma ya dace da haɗawa da JSSE (SSLEngine).
  1. API ɗin ByteBuffer:
  • TlsRecord.protect/unprotect — ByteBuffer yana ɗaukar nauyin kaya don haɗa sifili da NIO. Maɓallan lodawa:
  • Pkcs12Loader — yana karanta PFX (PKCS#12) tare da PBKDF2-HMAC-SHA256 + AES-256-CBC.
  1. Ƙarshen zaman:
  • close_notify - rufewa daidai bisa ga ka'idar.
  • Goge muhimman kayan aiki yayin rufewa ko yin kuskure.
  • Sanarwa ta sarrafawa: mutuwa - rufewa nan take + gogewa.
  1. Tsaron aiwatarwa:
  • Kwatanta lokaci-lokaci don verify_data da PSK binders (kariya daga hare-haren lokaci)
  • Goge maɓalli abu: destroy() akan duk abubuwa da maɓallai (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), a kusa, faɗakarwa mai kisa, banda musabaha
  • Kariyar DoS: iyakoki akan tsawon sarkar takardar shaida (10), saƙonnin bayan musabaha, girman rikodi.
  • MGM nonce: An share MSB na byte na farko don ICN (RFC 9058 §3, RFC 9367 §3.3).
  • Ana lalata maɓallin sirri na ECDHE da rubutun musabaha bayan an gama musabaha.
  • Ana goge kayan maɓallan HMAC bayan amfani (HkdfStreebog, KdfGostR3411_2012_256).
  1. Ƙuntatawa:
  • PSK na ci gaba kawai (0-RTT da PSK na waje ba a goyan bayan su ba).
  • Kawai psk_dhe_ke (tsarkakken PSK ba tare da ECDHE ba ​​ba a goyan bayansa ba).
  • Ba a tallafawa HelloRetryRequest (RFC 8446 §4.1.4) ba - rukuni ɗaya ne kawai ake amfani da shi (GC256A ta tsohuwa).
  • GOST kawai (ba a tallafawa suites na ɓoye bayanai na GOST ba).
  1. Gwaji:
  • Laburaren ya ƙunshi Gwaje-gwajen Amsoshi da Aka Sani daga RFC 9367 Appendix A.1 (nau'ikan L da S)—jaddamar cikakken maɓalli, TLSTREE, AEAD, da ECDHE. Hakanan ya wuce dukkan gwaje-gwajen KAT.
  • Gwaje-gwajen haɗin kai guda 4 (kai-da-kai) ta hanyar ainihin soket ɗin TCP.
  • Gwaje-gwajen Fuzz ga masu nazarin: TlsMessageParser (hanyoyi 8), TlsDerParser (hanyoyi 3), TlsOcspVerifier (hanyoyi 1), don tabbatar da tsaro da rage tasirin harin akan masu nazarin.
  1. Mafita na gine-gine:
  • TlsHandshakeEngine - na'urar da aka cire daga I/O (don tsarin JSSE na gaba).
  • Yawan TlsRecord.protect/unprotect da ByteBuffer ya yi wa NIO/JSSE.
  • TLSTREE cache (TlsTreeCache) - sake lissafin matakan da aka canza kawai (RFC 9367).
  • InMemoryTlsTransport.Pair nau'i ne na gwaji da sadarwa ta tsari ɗaya.

Ana rarraba ɗakin karatu a ƙarƙashin lasisin kyauta.

source: linux.org.ru

Sayi amintaccen masauki don shafuka tare da kariyar DDoS, sabar VPS VDS 🔥 Sayi ingantaccen masaukin yanar gizo tare da kariyar DDoS, sabar VPS VDS | ProHoster