ืืึธืืืืข ืงืจืืคึผืืึธ-ืืึธืกื-ืืืก13 ืื ืืืืื ืื ืืืืคืืขืืขื ืืืฆืืข TLS 1.3 (RFC 8446 + RFC 9367) ืืื GOST ืงืจืืคึผืืึธืืจืึทืคึฟืืข. ืื ืืึธืืืงืข ืืืขืจืกืืข ืืื ืื ืขืจืฉืืข ืืืขืจืกืืข ืคึฟืื ืืขืจ ืืืืืืึธืืขืง ืืื ืืื ืืจืืื ืคึฟืึทืจ ืืื ืขืจืืขืื ืืึทื ืืฅ.
ื ืืืืื ืืขืจืข ืืืืื ืฉืืคื ืคืื ืืขืจ ืืืืืืืืขืง ืืื ืืืจ ืจืืื ืข ืืืฉืืืื ืืืืคืืขืืขื ืืืฆืืข. ืืืข ืงืจืืคืืืืจืืคืืฉืข ืืคืขืจืืฆืืขืก ืืืขืจื ืืืจืืืขืคืืจื ืืื ืื ืืืืืืืืขืง'ืก ืืืื ืืขืืืืืข ืืืฉืืจืื, ืื ืงืืื ืขืงืกืืขืจื ืข ืืคืืขื ืืืงืืืื.
ืืึธืก ืืื ืืืื ืข ืคึฟืื ืื ืขืจืฉืืข ืึธืคึฟื-ืงืืืึทื ืืืืคึผืืขืืขื ืืึทืฆืืขืก ืคึฟืื TLS 1.3 ืืื GOST ืืื ืืืฉืึทืืืึท, ืึทืืื ืืื ืืขืจืึธืคึผ ืืขืกืืื ื ืืื ืืขืืึธื ืืขืืืึธืจื ืฆืื ืืื ืืืึทืื ืืขืืืขืื ืืึธืก.
ืืื ืื ืืขื ืขื ืื ืืขืืืขืืงืืืื ืคืื ืืขืจ ืืืืืืึธืืขืง.
- ืคึผืจืึธืืึธืงืึธืืก:
- ืืึทื ืืฉืขืืง: ืคืื (ืงืืืขื ื/ืกืขืจืืืขืจ), ืงืืจืฅ (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: ืงืจืืคึผืืึธืคึผืจืึธ-ืึท (256-ืืื), ืงืจืืคึผืืึธืคึผืจืึธ-ื (512-ืืื)
- ืคึผืขืจ-ืจืขืงืึธืจื TLSTREE ืจื-ืงืืืื ื โ ืืืืฉื ืืขื ืขื ืงืจืืคึผืฉืึทื ืฉืืืกื ืคึฟืึทืจ ืืขืื TLS ืจืขืงืึธืจื.
- ืคืจืึทืืืขื ืืึทืฆืืข ืืื ืืืืืขืจ-ืฆืืืึทืืขื ืฉืืขืื ืคืื ืืึทื ืืฉืขืืงืขืก ืืื ืจืขืงืึธืจืืก (RFC 8446 ยง5.1).
- ืกืขืกืืข ืืืืืขืจืืึธืืื ื: PSK ืืืจื NewSessionTicket (PskStore ืืื-ืืขืืึธืจื, ืืืื ืืึธื-ื ืืฅ).
- OCSP ืืขืคืื: ืกืขืจืืืขืจ ืืืืื ืฆื ืื OCSP ืขื ืืคืขืจ ืฆืื ืกืขืจืืืคืืงืื.
- ื ืื-ืืื ื-ืฉืืงื ืืขืกืขืืืฉืขืก: NewSessionTicket (ืืคืืืื ืคืืจ PSK).
- ืงืจืืคึผืืึธืืจืึทืคึฟืืข:
- ืฉืืืกื ืคึผืืึทื: HKDF-ืกืืจืืืึธื (RFC 5869) ืืืืขืจ TLS 1.3 (RFC 8446 ยง7.1).
- ืจืขืงืึธืจื ืฉืืฅ: MGM-AEAD (ืงืืื ืืขืืฉืืง) ืืื ื ืึธื ืก ืืืื RFC 8446 ยง5.3.
- ืงืืจืฅ-ืืขืจืืื ืฉืืืกืืขื ืืืขืจื ืืืืกืืขืืขืงื ื ืื ืืื ืืฅ.
- ืกืขืจืืืคืืงืึทืฅ:
- X.509v3 ืคึผืึทืจืกืื ื (GOST R 34.10-2012) โ ืืืื ืืขืืืืืขืจ DER ืคึผืึทืจืกืขืจ.
- ืืืึทืืืืึทืฆืืข ืงืืื: ืืชืืืืช, DN (ืืืืกืืขืืขืจ โ ืกืืืืขืงื), ืืึทืืืฉืข ืืึทืืจืขื ืขืฆืื ืืขื, ืฉืืืกื ืืึทื ืืฅ, ืคืืจืืจืืืืขืจืืข ืฉืืืกื * ืืึทื ืืฅ (serverAuth / clientAuth), pathLen.
- ืืึธืกืื ืึทืืข ืงืึธื ืืจืึธื: dNSName + iPAddress (RFC 6125).
- ืืืขืจืืคืืงืืฆืืข ืคืื โโOCSP ืขื ืืคึฟืขืจืก (RFC 6960).
4.ืืจืึทื ืกืคึผืึธืจืืึทืืืึธื:
- TlsTransport - ืฆืืืื ื.
- InMemoryTlsTransport - ืคึฟืึทืจ ืืขืกืฅ ืืื ืืืื-ืคึผืจืึธืฆืขืก ืกืฆืขื ืึทืจื (ืืื-ืืขืืึธืจื ืงืื).
- SocketTlsTransport โ ืืืึธืงืืจื I/O ืืืืขืจ java.net.Socket.
- ืืฉืึทื ืขื ืืืืก ืืจืึทื ืกืคึผืึธืจื - ื ืืืึธ ืกืึธืงืขื ืืฉืึทื ืขื-ืืึทืืืจื ืืจืึทื ืกืคึผืึธืจื (ืืืึธืงืืจื ืืืง ืืึธืืข, ืื ืืขืจืึทืคึผืืึทืืึทื).
- ืฉืจืื-ืืื-ืฉืจืื ืืึทื ื-ืฉืึธืงืืขื:
- TlsHandshakeEngine ืืื ืึท ืฉืืึทื ืืึทืฉืื ืคึฟืึทืจ ืืขื ืืฉืืืง (ืึธืคึผืืขืืืืื ืคึฟืื I/O). ืขืก ื ืืฆื TlsSession ืืื ืึทื ืึธืจืงืขืกืืจืึทืืึธืจ ืืื ืืื ืคึผืึทืกืืง ืคึฟืึทืจ ืืื ืืขืืจืึทืฆืืข ืืื JSSE (SSLEngine).
- ืืืืืืึทืคืขืจ API:
- TlsRecord.protect/unprotect โ ืืืืืืืคืขืจ ืืืืขืจืืืกื ืคืืจ ื ืื-ืงืืคืืข ืืื ืืขืืจืืฆืืข ืืื NIO. ืืึธืืืื ื ืฉืืืกืืขื:
- Pkcs12Loader โ ืืืืขื ื PFX (PKCS#12) ืืื PBKDF2-HMAC-SHA256 + AES-256-CBC.
- ืกืืฃ ืคืื ืกืขืกืืข:
- ืงืืึธืื_ื ืึธืืืคึฟื - ืจืืืืืงืข ืฉืืืกืื ื ืืืืื ืคึผืจืึธืืึธืงืึธื.
- ืืืืกืืืืฉื ืคืื ืฉืืืกื ืืึทืืขืจืืึทื ืืืื ืคืืจืืืื ืืืขืจ ืืืื ื ืืขืืช.
- ืืึทื ืืืื ื ืึทืืขืจื: ืคืึทืืึทื - ืืึทืืืืงืข ืฉืืืกื + ืืืืกืืขืงื.
- ืืืืคืืขืืขื ืืืฆืืข ืืืืขืจืืืื:
- ืงืื ืกืืื ื-ืฆืืื ืคืืจืืืืืื ืคืืจ verify_data ืืื PSK ืืื ืืขืจืก (ืฉืืฅ ืงืขืื ืฆืืื ืืืืงืขืก)
- ืืืืกืืขืงื ืฉืืืกื ืืึทืืขืจืืึทื: destroy() ืืืืฃ ืึทืืข ืึธืืืขืงืื ืืื ืฉืืืกืืขื (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), ืืื ื ืึธืขื ื, ืคืึทืืึทื ืึทืืขืจื, ืืืืกื ืึทื ืืื ืืึทื ืืฉืขืืง
- DoS ืฉืืฅ: ืืืืืื ืืืืฃ ืกืขืจืืืคืืงืื ืงืืื ืืขื ื (10), ืคึผืึธืกื-ืืขื ืืฉืืืง ืืขืกืขืืืฉืขืก, ืจืขืงืึธืจื ืืจืืืก.
- MGM ื ืึธื ืก: ืื MSB ืคืื ืืขืจ ืขืจืฉืืขืจ ืืืื ืืืขืจื ืืืืกืืขืืขืงื ืคึฟืึทืจ ICN (RFC 9058 ยง3, RFC 9367 ยง3.3).
- ืืขืจ ECDHE ืคึผืจืืืืึทืืขืจ ืฉืืืกื ืืื ืืึทื ืืฉืขืืง ืืจืึทื ืกืงืจืืคึผื ืืืขืจื ืืจืืึฟ ื ืึธืืืขื ืืืึธืก ืืขืจ ืืึทื ืืฉืขืืง ืขื ืืืื ืืื.
- HMAC ืฉืืืกื ืืึทืืขืจืืึทื ืืืขืจื ืืืืกืืขืืขืงื ื ืึธื ืืึทื ืืฅ (HkdfStreebog, KdfGostR3411_2012_256).
- ืืืืืืืืฉืึทื ื:
- ื ืึธืจ ืืืืืขืจ-ืืืืคึฟื ืึทื PSK (0-RTT ืืื ืขืงืกืืขืจื ืข PSK ืืืขืจื ื ืืฉื ืืขืฉืืืฆื).
- ื ืึธืจ psk_dhe_ke (ืจืืื PSK ืึธื ECDHE ืืืขืจื ื ืืฉื ืืขืฉืืืฆื).
- HelloRetryRequest (RFC 8446 ยง4.1.4) ืืืขืจื ื ืืฉื ืืขืฉืืืฆื - ื ืืจ ืืืื ืืจืืคืข ืืืื ื ืืืขื ืืืขืจื ืืขื ืืฆื (GC256A ืืืจื ืืืคืืื).
- ื ืึธืจ GOST (ื ืืฉื-GOST ืฆืืคึฟืขืจ ืกืืืืฅ ืืืขืจื ื ืืฉื ืืขืฉืืืฆื).
- ืืขืกื:
- ืื ืืืืืืึธืืขืง ืื ืืืืื ืืึทืงืึทื ืืข ืขื ืืคึฟืขืจ ืืขืกืื ืคึฟืื RFC 9367 ืึทืคึผืขื ืืืงืก A.1 (L ืืื S ืืืึทืจืืึทื ืื) โ ืืขืจ ืืึทื ืฆืขืจ ืฉืืืกื ืคึผืืึทื, TLSTREE, AEAD, ืืื ECDHE. ืขืก ืืืื ืืืื ืืืจื ืืขื ืืึทื ืฆื ืงืืื ืคึฟืื KAT ืืขืกืื.
- 4 ืืื ืืขืืจืึทืฆืืข ืืขืกืื (ืืขืืืกื-ืืื ืืขืจืึธืคึผ) ืืืจื ืขืืืข TCP ืกืึธืงืขืืก.
- ืคืึทื ืืขืกืื ืคึฟืึทืจ ืคึผืึทืจืกืขืจืก: TlsMessageParser (8 ืืขืืึธืื), TlsDerParser (3 ืืขืืึธืื), TlsOcspVerifier (1 ืืขืืึธื), ืฆื ืขื ืฉืืจ ืืืืขืจืืืื ืืื ืจืขืืืฆืืจื ืืขื ืึทืืึทืง ืืืขืงืืึธืจ ืืืืฃ ืคึผืึทืจืกืขืจืก.
- ืึทืจืืืืขืงืืืจืืฉืข ืืืืืื ืืขื:
- TlsHandshakeEngine - ืฉืืึทื ืืึทืฉืื ืืคืืขืืืืื ืคืื I/O (ืคึฟืึทืจ ืฆืืงืื ืคึฟืืืงื JSSE ืืึธืืื).
- ืืืืืืึทืคืขืจ ืืืืขืจืืึธืืื ืคืื TlsRecord.protect/unprotect ืคึฟืึทืจ NIO/JSSE.
- TLSTREE ืงืขืฉ (TlsTreeCache) - ืืืืขืจืจืขืืขื ืื ื ื ืืจ ืคืื ืืขืขื ืืขืจืืข ืืขืืืขืืก (RFC 9367).
- InMemoryTlsTransport.Pair ืืื ืึท ืืืืืืจืขืงืฉืึทื ืึทื ืคึผืึธืจ ืคึฟืึทืจ ืืขืกืฅ ืืื ืืืื-ืคึผืจืึธืฆืขืก ืงืึธืืื ืืงืึทืฆืืข.
ืื ืืืืืืึธืืขืง ืืืขืจื ืคืึทืจืฉืคึผืจืืื ืืื ืืขืจ ืึท ืคืจืืืขืจ ืืืฆืขื ืฅ.
ืืงืืจ: linux.org.ru
