ื”ืžื”ื“ื•ืจื” ื”ืจืืฉื•ื ื” ืฉืœ ื™ื™ืฉื•ื ืคืจื•ื˜ื•ืงื•ืœ TLS 1.3 ื‘-Java ืขื ืืœื’ื•ืจื™ืชืžื™ GOST ื‘ื”ืชืื ืœ-RFC 9367

ะœะพะดัƒะปัŒ ืงืจื™ืคื˜ื•-ื’ื•ืกื˜-tls13 ืžื›ื™ืœ ืืช ื”ืžื™ืžื•ืฉ TLS 1.3 (RFC 8446 + RFC 9367) ืขื ืงืจื™ืคื˜ื•ื’ืจืคื™ื” GOST. ืžื”ื“ื•ืจื” ื–ื• ื”ื™ื ื”ื’ืจืกื” ื”ืจืืฉื•ื ื™ืช ืฉืœ ื”ืกืคืจื™ื™ื” ื•ื”ื™ื ืžื•ื›ื ื” ืœืฉื™ืžื•ืฉ ืคื ื™ืžื™.

ืžืืคื™ื™ืŸ ื™ื™ื—ื•ื“ื™ ืฉืœ ื”ืกืคืจื™ื™ื” ื”ื•ื ื™ื™ืฉื•ื ื’'ืื•ื•ื” ื˜ื”ื•ืจ ืฉืœื”. ื›ืœ ืคืขื•ืœื•ืช ื”ืงืจื™ืคื˜ื•ื’ืจืคื™ื” ืžื‘ื•ืฆืขื•ืช ื‘ืืžืฆืขื•ืช ื”ื›ืœื™ื ื”ืžื•ื‘ื ื™ื ืฉืœ ื”ืกืคืจื™ื™ื”, ืœืœื ืชืœื•ืช ื—ื™ืฆื•ื ื™ืช.

ื–ื”ื• ืื—ื“ ืžื”ืžื™ืžื•ืฉื™ื ื”ืจืืฉื•ื ื™ื ื‘ืงื•ื“ ืคืชื•ื— ืฉืœ TLS 1.3 ืขื GOST ื‘-Java, ื›ืš ืฉื‘ื“ื™ืงื•ืช ืื™ื ื˜ืจื•ืค ื‘ื•ืฆืขื• ื‘ืžื™ื“ื” ื”ืžื™ื ื™ืžืœื™ืช ื”ืืคืฉืจื™ืช.

ืœื”ืœืŸ ื™ื›ื•ืœื•ืช ื”ืกืคืจื™ื™ื”.

  1. ืคืจื•ื˜ื•ืงื•ืœื™ื:
  • ืœื—ื™ืฆืช ื™ื“: ืžืœืื” (ืœืงื•ื—/ืฉืจืช), ืงืฆืจื” (PSK), ื”ื“ื“ื™ืช (mTLS).
  • ALPN (RFC 7301) - ืžืฉื ื•ืžืชืŸ ืขืœ ืคืจื•ื˜ื•ืงื•ืœ ืฉื›ื‘ืช ื”ื™ื™ืฉื•ืžื™ื (HTTP/2, HTTP/1.1).
  • SNI (RFC 6066) - ืฆื™ื•ืŸ ืฉื ืฉืจืช ืขื‘ื•ืจ ืคืจื™ืกื•ืช ืžืจื•ื‘ื•ืช ื“ื™ื™ืจื™ื.
  • ืขื“ื›ื•ืŸ ืžืคืชื—ื•ืช (RFC 8446 ยง4.6.3) โ€“ ืขื“ื›ื•ืŸ ืžืคืชื—ื•ืช ื”ืฆืคื ืช ืชืขื‘ื•ืจื”.
  • ืกื•ื•ื™ื˜ื•ืช ืฆื•ืคืŸ: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
  • ECDHE: CryptoPro-A (256 ืกื™ื‘ื™ื•ืช), CryptoPro-B (512 ืกื™ื‘ื™ื•ืช)
  • ืžืงื“ื—ื•ืช ืžื—ื“ืฉ ืฉืœ TLS ืœื›ืœ ืจืฉื•ืžื” - ืฉื™ื ื•ื™ ืžืคืชื— ื”ื”ืฆืคื ื” ืขื‘ื•ืจ ื›ืœ ืจืฉื•ืžืช TLS.
  • ืคื™ืฆื•ืœ ื•ื”ืจื›ื‘ื” ืžื—ื“ืฉ ืฉืœ ืœื—ื™ืฆื•ืช ื™ื“ ื•ืจืฉื•ืžื•ืช (RFC 8446 ยง5.1).
  • ื—ื™ื“ื•ืฉ ืกืฉืŸ: PSK ื“ืจืš NewSessionTicket (PskStore ื‘ื–ื™ื›ืจื•ืŸ, ืœืฉื™ืžื•ืฉ ื—ื“ ืคืขืžื™).
  • ื”ื™ื“ื•ืง OCSP: ืฉืจืช ืžืฆืจืฃ ืืช ืชื’ื•ื‘ืช ื”-OCSP ืœืชืขื•ื“ื”.
  • ื”ื•ื“ืขื•ืช ืœืื—ืจ ืœื—ื™ืฆืช ื™ื“: NewSessionTicket (ืฉืžื•ืจ ืขื‘ื•ืจ PSK).
  1. ืงืจื™ืคื˜ื•ื’ืจืคื™ื”:
  • ืœื•ื— ื–ืžื ื™ื ืžืจื›ื–ื™: HKDF-Streebog (RFC 5869) ืžืขืœ TLS 1.3 (RFC 8446 ยง7.1).
  • ื”ื’ื ืช ืจืฉื•ืžื”: MGM-AEAD (Kuznyechik) ืขื nonce ืœืคื™ RFC 8446 ยง5.3.
  • ืžืคืชื—ื•ืช ืืจืขื™ื™ื ื ืžื—ืงื™ื ืœืื—ืจ ื”ืฉื™ืžื•ืฉ.
  1. ืชืขื•ื“ื•ืช:
  • ื ื™ืชื•ื— X.509v3 (GOST R 34.10-2012) - ืžื ืชื— DER ืžื•ื‘ื ื”.
  • ืฉืจืฉืจืช ืื™ืžื•ืช: ื—ืชื™ืžื•ืช, DN (ืžื ืคื™ืง โ†’ ื ื•ืฉื), ืื™ืœื•ืฆื™ื ื‘ืกื™ืกื™ื™ื, ืฉื™ืžื•ืฉ ื‘ืžืคืชื—, ืฉื™ืžื•ืฉ ืžื•ืจื—ื‘ ื‘ืžืคืชื— * (serverAuth / clientAuth), pathLen.
  • ื‘ื“ื™ืงืช ืฉื ืžืืจื—: dNSName + iPAddress (RFC 6125).
  • ืื™ืžื•ืช ืชื’ื•ื‘ื•ืช OCSP (RFC 6960).

4.ื”ืชื— you

  • TlsTransport - ืžืžืฉืง.
  • InMemoryTlsTransport - ืขื‘ื•ืจ ื‘ื“ื™ืงื•ืช ื•ืชืจื—ื™ืฉื™ื ืฉืœ ืชื”ืœื™ืš ื™ื—ื™ื“ (ืชื•ืจ ื‘ื–ื™ื›ืจื•ืŸ).
  • SocketTlsTransport โ€” ื—ืกื™ืžืช ืงืœื˜/ืคืœื˜ ื“ืจืš java.net.Socket.
  • ChannelTlsTransport - NIO Socketโ€ ืชืขื‘ื•ืจื” ืžื‘ื•ืกืกืช ืขืจื•ืฅ (ืžืฆื‘ ื—ืกื™ืžื”, ื ื™ืชืŸ ืœื”ืคืกืงื”).
  1. ืœื—ื™ืฆืช ื™ื“ ืฉืœื‘ ืื—ืจ ืฉืœื‘:
  • TlsHandshakeEngine ื”ื™ื ืžื›ื•ื ืช ืžืฆื‘ื™ื ืœืœื—ื™ืฆืช ื™ื“ (ืžื ื•ืชืงืช ืžืงืœื˜/ืคืœื˜). ื”ื™ื ืžืฉืชืžืฉืช ื‘-TlsSession ื›ืžืชื–ืžืจ ื•ืžืชืื™ืžื” ืœืฉื™ืœื•ื‘ ืขื JSSE (SSLEngine).
  1. ืžืžืฉืง API ืฉืœ ByteBuffer:
  • TlsRecord.protect/unprotect โ€” ืขื•ืžืก ื™ืชืจ ืฉืœ ByteBuffer ืœืฆื•ืจืš ืฉื™ืœื•ื‘ ืœืœื ื”ืขืชืงื” ืขื NIO. ื˜ื•ืขืŸ ืžืคืชื—ื•ืช:
  • Pkcs12Loader โ€” ืงืจื™ืืช PFX โ€(PKCS#12) ืขื PBKDF2-HMAC-SHA256 + AES-256-CBC.
  1. ืกื•ืฃ ื”ืžื•ืฉื‘:
  • close_notify - ืกื’ื™ืจื” ื ื›ื•ื ื” ืœืคื™ ื”ืคืจื•ื˜ื•ืงื•ืœ.
  • ื ื™ื’ื•ื‘ ืฉืœ ื—ื•ืžืจ ืžืคืชื— ื‘ืขืช ืกื’ื™ืจื” ืื• ื‘ื™ืฆื•ืข ื˜ืขื•ืช.
  • ื”ืชืจืืช ื˜ื™ืคื•ืœ: ื—ืžื•ืจื” - ืกื’ื™ืจื” ืžื™ื™ื“ื™ืช + ืžื—ื™ืงื”.
  1. ืื‘ื˜ื—ืช ื™ื™ืฉื•ื:
  • ื”ืฉื•ื•ืื•ืช ื‘ื–ืžืŸ ืงื‘ื•ืข ืขื‘ื•ืจ ืงืœืกืจื™ื verify_data ื•-PSK (ื”ื’ื ื” ืžืคื ื™ ื”ืชืงืคื•ืช ืชื–ืžื•ืŸ)
  • ืžื—ื™ืงืช ื—ื•ืžืจ ืžืคืชื—: destroy() ืขืœ ื›ืœ ื”ืื•ื‘ื™ื™ืงื˜ื™ื ืขื ืžืคืชื—ื•ืช (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), ื‘ืกื’ื™ืจื”, ื”ืชืจืื” ื—ืžื•ืจื”, ื—ืจื™ื’ื” ื‘ืœื—ื™ืฆืช ื™ื“
  • ื”ื’ื ืช DoS: ืžื’ื‘ืœื•ืช ืขืœ ืื•ืจืš ืฉืจืฉืจืช ืื™ืฉื•ืจื™ื (10), ื”ื•ื“ืขื•ืช ืœืื—ืจ ืœื—ื™ืฆืช ื™ื“, ื’ื•ื“ืœ ืจืฉื•ืžื”.
  • MGM nonce: ื”-MSB ืฉืœ ื”ื‘ื™ื™ื˜ ื”ืจืืฉื•ืŸ ืžื ื•ืงื” ืขื‘ื•ืจ ICN (RFC 9058 ยง3, RFC 9367 ยง3.3).
  • ื”ืžืคืชื— ื”ืคืจื˜ื™ ืฉืœ ECDHE ื•ืชืžืœื™ืœ ืœื—ื™ืฆืช ื”ื™ื“ ืžื•ืฉืžื“ื™ื ืœืื—ืจ ื”ืฉืœืžืช ืœื—ื™ืฆืช ื”ื™ื“.
  • ื—ื•ืžืจ ืžืคืชื— HMAC ื ืžื—ืง ืœืื—ืจ ื”ืฉื™ืžื•ืฉ (HkdfStreebog, KdfGostR3411_2012_256).
  1. ืžื’ื‘ืœื•ืช:
  • ื—ื™ื“ื•ืฉ PSK ื‘ืœื‘ื“ (0-RTT ื•-PSK ื—ื™ืฆื•ื ื™ ืื™ื ื ื ืชืžื›ื™ื).
  • ืจืง psk_dhe_ke (PSK ื˜ื”ื•ืจ ืœืœื ECDHE ืื™ื ื• ื ืชืžืš).
  • HelloRetryRequest โ€(RFC 8446 ยง4.1.4) ืื™ื ื• ื ืชืžืš - ืจืง ืงื‘ื•ืฆื” ื‘ืขืœืช ืฉื ืื—ืช ื ืžืฆืืช ื‘ืฉื™ืžื•ืฉ (GC256A ื›ื‘ืจื™ืจืช ืžื—ื“ืœ).
  • GOST ื‘ืœื‘ื“ (ืกื•ื•ื™ื˜ื•ืช ืฆื•ืคืŸ ืฉืื™ื ืŸ GOST ืื™ื ืŸ ื ืชืžื›ื•ืช).
  1. ื‘ื“ื™ืงื”:
  • ื”ืกืคืจื™ื™ื” ืžื›ื™ืœื” ืžื‘ื—ื ื™ ืชืฉื•ื‘ื•ืช ื™ื“ื•ืขื•ืช ืžื ืกืคื— A.1 ืฉืœ RFC 9367 (ื•ืจื™ืื ื˜ื™ื L ื•-S) - ืœื•ื— ื”ืžืคืชื—ื•ืช ื”ืžืœื, TLSTREE, AEAD ื•-ECDHE. ื”ื™ื ื’ื ืขื•ื‘ืจืช ืืช ืžืœื•ื ืžื’ื•ื•ืŸ ืžื‘ื—ื ื™ KAT.
  • 4 ื‘ื“ื™ืงื•ืช ืื™ื ื˜ื’ืจืฆื™ื” (ืื™ื ื˜ืจื•ืค ืขืฆืžื™) ื“ืจืš ืฉืงืขื™ TCP ืืžื™ืชื™ื™ื.
  • ืžื‘ื—ื ื™ Fuzz ืขื‘ื•ืจ ืžื ืชื—ื™ื: TlsMessageParser (8 ืฉื™ื˜ื•ืช), TlsDerParser (3 ืฉื™ื˜ื•ืช), TlsOcspVerifier (ืฉื™ื˜ื” ืื—ืช), ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืื‘ื˜ื—ื” ื•ืœื”ืคื—ื™ืช ืืช ื•ืงื˜ื•ืจ ื”ืชืงื™ืคื” ืขืœ ืžื ืชื—ื™ื.
  1. ืคืชืจื•ื ื•ืช ืื“ืจื™ื›ืœื™ื™ื:
  • TlsHandshakeEngine - ืžื›ื•ื ืช ืžืฆื‘ื™ื ืžื ื•ืชืงืช ืžืงืœื˜/ืคืœื˜ (ืขื‘ื•ืจ ืžื•ื“ื•ืœ JSSE ืขืชื™ื“ื™).
  • ืขื•ืžืกื™ ByteBuffer ืฉืœ TlsRecord.protect/unprotect ืขื‘ื•ืจ NIO/JSSE.
  • ืžื˜ืžื•ืŸ TLSTREE โ€(TlsTreeCache) - ื—ื™ืฉื•ื‘ ืžื—ื“ืฉ ืฉืœ ืจืžื•ืช ืฉื”ืฉืชื ื• ื‘ืœื‘ื“ (RFC 9367).
  • InMemoryTlsTransport.Pair ื”ื•ื ื–ื•ื’ ื“ื•-ื›ื™ื•ื•ื ื™ ืขื‘ื•ืจ ื‘ื“ื™ืงื•ืช ื•ืชืงืฉื•ืจืช ื‘ื™ืŸ ืชื”ืœื™ืš ื™ื—ื™ื“.

ื”ืกืคืจื™ื™ื” ืžื•ืคืฆืช ืชื—ืช ืจื™ืฉื™ื•ืŸ ื—ื•ืคืฉื™.

ืžืงื•ืจ: linux.org.ru

ืงื ื” ืื™ืจื•ื— ืืžื™ืŸ ืœืืชืจื™ื ืขื ื”ื’ื ืช DDoS, ืฉืจืชื™ VPS VDS ๐Ÿ”ฅ ืงื ื” ืื—ืกื•ืŸ ืืชืจื™ื ืืžื™ืŸ ืขื ื”ื’ื ืช DDoS, ืฉืจืชื™ VPS VDS | ProHoster