ΠΠΎΠ΄ΡΠ» ΠΊΡΠΈΠΏΡΠΎ-Π³ΠΎΡΡ-ΡΠ»Ρ13 ΡΡΠ΄ΡΡΠΆΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° TLS 1.3 (RFC 8446 + RFC 9367) Ρ GOST ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ. Π’Π°Π·ΠΈ Π²Π΅ΡΡΠΈΡ Π΅ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΈ Π΅ Π³ΠΎΡΠΎΠ²Π° Π·Π° Π²ΡΡΡΠ΅ΡΠ½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°.
Π£Π½ΠΈΠΊΠ°Π»Π½Π° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π΅ Π½Π΅ΠΉΠ½Π°ΡΠ° ΡΠΈΡΡΠ° Java ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. ΠΡΠΈΡΠΊΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°, Π±Π΅Π· Π²ΡΠ½ΡΠ½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
Π’ΠΎΠ²Π° Π΅ Π΅Π΄Π½Π° ΠΎΡ ΠΏΡΡΠ²ΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π½Π° TLS 1.3 Ρ GOST Π² Java, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠ° ΡΠ²Π΅Π΄Π΅Π½ΠΈ Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ.
ΠΠΎ-Π΄ΠΎΠ»Ρ ΡΠ° ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°.
- ΠΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ:
- Π ΡΠΊΠΎΡΡΠΈΡΠΊΠ°Π½Π΅: ΠΏΡΠ»Π½ΠΎ (ΠΊΠ»ΠΈΠ΅Π½Ρ/ΡΡΡΠ²ΡΡ), ΠΊΡΠ°ΡΠΊΠΎ (PSK), Π²Π·Π°ΠΈΠΌΠ½ΠΎ (mTLS).
- ALPN (RFC 7301) - ΠΠΎΠ³ΠΎΠ²Π°ΡΡΠ½Π΅ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ½ΠΈΡ ΡΠ»ΠΎΠΉ (HTTP/2, HTTP/1.1).
- SNI (RFC 6066) - ΠΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΠΈΠΌΠ΅ ΡΡΡΠ²ΡΡ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½ΠΈΡ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π°Π΅ΠΌΠ°ΡΠ΅Π»ΠΈ.
- KeyUpdate (RFC 8446 Β§4.6.3) β Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ°.
- ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΈ Π·Π° ΡΠΈΡΡΠΎΠ²Π°Π½Π΅: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
- ECDHE: CryptoPro-A (256-Π±ΠΈΡΠΎΠ²), CryptoPro-B (512-Π±ΠΈΡΠΎΠ²)
- TLSTREE ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ Π·Π°ΠΏΠΈΡ β ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΊΠ»ΡΡΠ° Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π·Π° Π²ΡΠ΅ΠΊΠΈ TLS Π·Π°ΠΏΠΈΡ.
- Π€ΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠΊΠΎΡΡΠΈΡΠΊΠ°Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ (RFC 8446 Β§5.1).
- ΠΡΠ·ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΠΈΡΡΠ°: PSK ΡΡΠ΅Π· NewSessionTicket (PskStore in-memory, Π΅Π΄Π½ΠΎΠΊΡΠ°ΡΠ½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°).
- OCSP ΡΠ΅Π»Π±ΠΎΠ΄ΠΈΡΠ°Π½Π΅: ΡΡΡΠ²ΡΡ Π΄ΠΎΠ±Π°Π²Ρ OCSP ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ° ΠΊΡΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°.
- Π‘ΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ ΡΡΠΊΠΎΡΡΠΈΡΠΊΠ°Π½Π΅: NewSessionTicket (Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π·Π° PSK).
- ΠΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ:
- ΠΠ»ΡΡΠΎΠ² Π³ΡΠ°ΡΠΈΠΊ: HKDF-Streebog (RFC 5869) ΠΏΡΠ΅Π· TLS 1.3 (RFC 8446 Β§7.1).
- ΠΠ°ΡΠΈΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΠ°: MGM-AEAD (Kuznyechik) Ρ nonce ΡΡΠ³Π»Π°ΡΠ½ΠΎ RFC 8446 Β§5.3.
- ΠΡΠΈΠΌΠ΅ΡΠ½ΠΈΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅ ΡΠ΅ ΠΈΠ·ΡΡΠΈΠ²Π°Ρ ΡΠ»Π΅Π΄ ΡΠΏΠΎΡΡΠ΅Π±Π°.
- Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ:
- X.509v3 ΠΏΠ°ΡΡΠΈΠ½Π³ (ΠΠΠ‘Π’ Π 34.10-2012) β Π²Π³ΡΠ°Π΄Π΅Π½ DER ΠΏΠ°ΡΡΠ΅Ρ.
- ΠΠ΅ΡΠΈΠ³Π° Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅: ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, DN (ΠΈΠ·Π΄Π°ΡΠ΅Π» β ΡΠ΅ΠΌΠ°), ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡ, ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡ (serverAuth / clientAuth), pathLen.
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΈΠΌΠ΅ΡΠΎ Π½Π° Ρ ΠΎΡΡΠ°: dNSName + iPAddress (RFC 6125).
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° OCSP ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ (RFC 6960).
4.ΡΡΠ°Π½ΡΠΏΠΎΡΡ:
- TlsTransport - ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
- InMemoryTlsTransport - Π·Π° ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Ρ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅Ρ (ΠΎΠΏΠ°ΡΠΊΠ° Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°).
- SocketTlsTransport β Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° Π²Ρ ΠΎΠ΄Π½ΠΎ/ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠ΅Π· java.net.Socket.
- ChannelTlsTransport - Π’ΡΠ°Π½ΡΠΏΠΎΡΡ, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° NIO SocketChannel (Π±Π»ΠΎΠΊΠΈΡΠ°Ρ ΡΠ΅ΠΆΠΈΠΌ, ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π΅ΠΌ).
- Π ΡΠΊΠΎΡΡΠΈΡΠΊΠ°Π½Π΅ ΡΡΡΠΏΠΊΠ° ΠΏΠΎ ΡΡΡΠΏΠΊΠ°:
- TlsHandshakeEngine Π΅ ΠΌΠ°ΡΠΈΠ½Π° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΡΡΠ° Π·Π° ΡΡΠΊΠΎΡΡΠΈΡΠΊΠ°Π½Π΅ (ΠΎΡΠ΄Π΅Π»Π΅Π½Π° ΠΎΡ I/O). Π’Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° TlsSession ΠΊΠ°ΡΠΎ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡ ΠΈ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ JSSE (SSLEngine).
- API Π½Π° ByteBuffer:
- TlsRecord.protect/unprotect β ΠΡΠ΅ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ Π½Π° ByteBuffer Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Π½ΡΠ»Π΅Π²ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Ρ NIO. ΠΠ°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅:
- Pkcs12Loader β ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° PFX (PKCS#12) Ρ PBKDF2-HMAC-SHA256 + AES-256-CBC.
- ΠΡΠ°ΠΉ Π½Π° ΡΠ΅ΡΠΈΡΡΠ°:
- close_notify - ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π·Π°ΡΠ²Π°ΡΡΠ½Π΅ ΡΡΠ³Π»Π°ΡΠ½ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°.
- ΠΠ·Π±ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΠΎΠ² ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΡΠΈ Π·Π°ΡΠ²Π°ΡΡΠ½Π΅ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΡΡΠΊΠ°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠ°.
- Π’ΡΠ΅Π²ΠΎΠ³Π° ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°: ΡΠ°ΡΠ°Π»Π½Π° - Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π·Π°ΡΠ²Π°ΡΡΠ½Π΅ + ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅.
- Π‘ΠΈΠ³ΡΡΠ½ΠΎΡΡ Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ:
- Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° verify_data ΠΈ PSK ΡΠ²ΡΡΠ·Π²Π°ΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ Π°ΡΠ°ΠΊΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ)
- ΠΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΠΎΠ² ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»: destroy() Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ Ρ ΠΊΠ»ΡΡΠΎΠ²Π΅ (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), ΠΏΡΠΈ Π·Π°ΡΠ²Π°ΡΡΠ½Π΅, ΡΠ°ΡΠ°Π»Π½ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ handshake
- DoS Π·Π°ΡΠΈΡΠ°: ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π·Π° Π΄ΡΠ»ΠΆΠΈΠ½Π°ΡΠ° Π½Π° Π²Π΅ΡΠΈΠ³Π°ΡΠ° ΠΎΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ (10), ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ ΡΡΠΊΠΎΡΡΠΈΡΠΊΠ°Π½Π΅, ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π·Π°ΠΏΠΈΡΠ°.
- MGM nonce: 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 ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅).
- Π‘Π°ΠΌΠΎ ΠΏΠΎ ΠΠΠ‘Π’ (Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΠΏΠΎ ΠΠΠ‘Π’).
- Π’Π΅ΡΡΠ²Π°Π½Π΅:
- ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΡΠ΄ΡΡΠΆΠ° ΡΠ΅ΡΡΠΎΠ²Π΅ Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ ΠΎΡ RFC 9367 ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ A.1 (L ΠΈ S Π²Π°ΡΠΈΠ°Π½ΡΠΈ) - ΠΏΡΠ»Π½ΠΈΡΡ ΡΠΏΠΈΡΡΠΊ Ρ ΠΊΠ»ΡΡΠΎΠ²Π΅, TLSTREE, AEAD ΠΈ ECDHE. Π’Ρ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡΠ΅Π· ΠΏΡΠ»Π½ΠΈΡ Π½Π°Π±ΠΎΡ ΠΎΡ KAT ΡΠ΅ΡΡΠΎΠ²Π΅.
- 4 ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ΅ΡΡΠ° (ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅) ΡΡΠ΅Π· ΡΠ΅Π°Π»Π½ΠΈ TCP ΡΠΎΠΊΠ΅ΡΠΈ.
- Fuzz ΡΠ΅ΡΡΠΎΠ²Π΅ Π·Π° ΠΏΠ°ΡΡΠ΅ΡΠΈ: TlsMessageParser (8 ΠΌΠ΅ΡΠΎΠ΄Π°), TlsDerParser (3 ΠΌΠ΅ΡΠΎΠ΄Π°), TlsOcspVerifier (1 ΠΌΠ΅ΡΠΎΠ΄), Π·Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π²Π΅ΠΊΡΠΎΡΠ° Π½Π° Π°ΡΠ°ΠΊΠ° Π²ΡΡΡ Ρ ΠΏΠ°ΡΡΠ΅ΡΠΈΡΠ΅.
- ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
- TlsHandshakeEngine - ΠΌΠ°ΡΠΈΠ½Π° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΡΡΠ°, ΠΎΡΠ΄Π΅Π»Π΅Π½Π° ΠΎΡ I/O (Π·Π° Π±ΡΠ΄Π΅Ρ JSSE ΠΌΠΎΠ΄ΡΠ»).
- ΠΡΠ΅ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ Π½Π° ByteBuffer Π½Π° TlsRecord.protect/unprotect Π·Π° NIO/JSSE.
- ΠΠ΅Ρ Π½Π° TLSTREE (TlsTreeCache) - ΠΏΡΠ΅ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΈ Π½ΠΈΠ²Π° (RFC 9367).
- InMemoryTlsTransport.Pair Π΅ Π΄Π²ΡΠΏΠΎΡΠΎΡΠ½Π° Π΄Π²ΠΎΠΉΠΊΠ° Π·Π° ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΈ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ ΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ Π»ΠΈΡΠ΅Π½Π·.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
