рдореЙрдбреНрдпреВрд▓ рдХреНрд░рд┐рдкреНрдЯреЛ-рдЧреЛрд╕реНрдЯ-рдЯреАрдПрд▓рдПрд╕резрей рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ TLS 1.3 (RFC 8446 + RFC 9367) GOST рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреАрд╕рд╣. рд╣реА рдЖрд╡реГрддреНрддреА рд▓рд╛рдпрдмреНрд░рд░реАрдЪреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрд╡реГрддреНрддреА рдЕрд╕реВрди рдЕрдВрддрд░реНрдЧрдд рд╡рд╛рдкрд░рд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдЖрд╣реЗ.
рдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрдЪреЗ рдПрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдореНрд╣рдгрдЬреЗ рддрд┐рдЪреА рд╢реБрджреНрдз рдЬрд╛рд╡рд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА. рд╕рд░реНрд╡ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдХреНрд░рд┐рдпрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдмрд╛рд╣реНрдп рдЕрд╡рд▓рдВрдмрдирд╛рд╢рд┐рд╡рд╛рдп, рд▓рд╛рдпрдмреНрд░рд░реАрдЪреНрдпрд╛ рдЕрдВрдЧрднреВрдд рд╕рд╛рдзрдирд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.
рдЬрд╛рд╡рд╛рдордзреАрд▓ GOST рд╕рд╣ TLS 1.3 рдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдВрдкреИрдХреА рд╣реА рдПрдХ рдЖрд╣реЗ, рддреНрдпрд╛рдореБрд│реЗ рдЗрдВрдЯрд░рдСрдк рдЪрд╛рдЪрдгреА рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рдХрдореА рдкреНрд░рдорд╛рдгрд╛рдд рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ.
рд▓рд╛рдпрдмреНрд░рд░реАрдЪреНрдпрд╛ рдХреНрд╖рдорддрд╛ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗрдд.
- рдкреНрд░реЛрдЯреЛрдХреЙрд▓:
- рд╣рдБрдбрд╢реЗрдХ: рдкреВрд░реНрдг (рдХреНрд▓рд╛рдпрдВрдЯ/рд╕рд░реНрд╡реНрд╣рд░), рд╕рдВрдХреНрд╖рд┐рдкреНрдд (PSK), рдкрд░рд╕реНрдкрд░ (mTLS).
- ALPN (RFC 7301) - рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЗрдпрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдиреЗрдЧреЛрд╢рд┐рдПрд╢рди (HTTP/2, HTTP/1.1).
- рдПрд╕рдПрдирдЖрдп (рдЖрд░рдПрдлрд╕реА ремрежремрем) - рдирд╛рд╡ рд╕рдВрдХреЗрдд рд╕рд░реНрд╡реНрд╣рд░ рдорд▓реНрдЯреА-рдЯреЗрдирдВрдЯ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯрд╕рд╛рдареА.
- KeyUpdate (RFC 8446 ┬з4.6.3) тАУ рдЯреНрд░реЕрдлрд┐рдХ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреА рдЕрджреНрдпрдпрд╛рд╡рдд рдХрд░рдгреЗ.
- рд╕рд┐рдлрд░ рд╕реВрдЯ: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
- ECDHE: рдХреНрд░рд┐рдкреНрдЯреЛрдкреНрд░реЛ-рдП (реирелрем-рдмрд┐рдЯ), рдХреНрд░рд┐рдкреНрдЯреЛрдкреНрд░реЛ-рдмреА (релрезреи-рдмрд┐рдЯ)
- рдкреНрд░рддрд┐-рд░реЗрдХреЙрд░реНрдб TLSTREE рд░реА-рдХреАрдЗрдВрдЧ тАФ рдкреНрд░рддреНрдпреЗрдХ TLS рд░реЗрдХреЙрд░реНрдбрд╕рд╛рдареА рдПрдирдХреНрд░рд┐рдкреНрд╢рди рдХреА рдмрджрд▓рдгреЗ.
- рд╣рд╕реНрддрд╛рдВрджреЛрд▓рди рдЖрдгрд┐ рдиреЛрдВрджреАрдВрдЪреЗ рд╡рд┐рдЦрдВрдбрди рдЖрдгрд┐ рдкреБрдирд░реНрд╕рдВрдпреЛрдЬрди (RFC 8446 ┬з5.1).
- рд╕рддреНрд░ рдкреБрдиреНрд╣рд╛ рд╕реБрд░реВ рдХрд░рдгреЗ: NewSessionTicket рджреНрд╡рд╛рд░реЗ PSK (PskStore рдЗрди-рдореЗрдорд░реА, рдПрдХрд▓-рд╡рд╛рдкрд░).
- рдУрд╕реАрдПрд╕рдкреА рд╕реНрдЯреЗрдкрд▓рд┐рдВрдЧ: рд╕рд░реНрд╡реНрд╣рд░ ╨┐╤А╨╕╨║╨╗╨░╨┤╤Л╨▓╨░╨╡╤В OCSP-╨╛╤В╨▓╨╡╤В ╨║ ╤Б╨╡╤А╤В╨╕╤Д╨╕╨║╨░╤В╤Г.
- рд╣рдБрдбрд╢реЗрдХрдирдВрддрд░рдЪреЗ рд╕рдВрджреЗрд╢: NewSessionTicket (PSK рд╡рдЧрд│реВрди).
- рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА:
- рдореБрдЦреНрдп рд╡реЗрд│рд╛рдкрддреНрд░рдХ: TLS 1.3 (RFC 8446 ┬з7.1) рд╡рд░ HKDF-Streebog (RFC 5869).
- рд░реЗрдХреЙрд░реНрдб рд╕рдВрд░рдХреНрд╖рдг: RFC 8446 ┬з5.3 рдиреБрд╕рд╛рд░ рдиреЙрдирд╕рд╕рд╣ MGM-AEAD (рдХреБрдЭрдиреАрдЪрд┐рдХ).
- рдХреНрд╖рдгрд┐рдХ рдХреА рд╡рд╛рдкрд░рд╛рдирдВрддрд░ рдкреБрд╕рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.
- рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ:
- X.509v3 рдкрд╛рд░реНрд╕рд┐рдВрдЧ (GOST R 34.10-2012) тАФ рдЕрдВрдЧрднреВрдд DER рдкрд╛рд░реНрд╕рд░.
- рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рд╛рдЦрд│реА: рд╕реНрд╡рд╛рдХреНрд╖рд░реА, DN (рдЬрд╛рд░реАрдХрд░реНрддрд╛ тЖТ рд╡рд┐рд╖рдп), рдореВрд▓рднреВрдд рдорд░реНрдпрд╛рджрд╛, рдХреА рд╡рд╛рдкрд░, рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХреА рд╡рд╛рдкрд░ (рд╕рд░реНрд╡реНрд╣рд░ рдСрде / рдХреНрд▓рд╛рдпрдВрдЯ рдСрде), рдкрд╛рдерд▓реЗрди.
- рд╣реЛрд╕реНрдЯрдиреЗрдо рддрдкрд╛рд╕рдгреА: dNSName + iPAddress (RFC 6125).
- OCSP рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдВрдЪреА рдкрдбрддрд╛рд│рдгреА (RFC 6960).
4.рд╡рд╛рд╣рддреВрдХ:
- TlsTransport - рдЗрдВрдЯрд░рдлреЗрд╕.
- InMemoryTlsTransport - рдЪрд╛рдЪрдгреНрдпрд╛ рдЖрдгрд┐ рдПрдХрд▓-рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрд╕рд╛рдареА (рдЗрди-рдореЗрдорд░реА рд░рд╛рдВрдЧ).
- SocketTlsTransport тАФ java.net.Socket рд╡рд░ рдЕрд╡рд░реЛрдзрд┐рдд I/O.
- ChannelTlsTransport - NIO рд╕реЙрдХреЗрдЯрдЪреЕрдирд▓-рдЖрдзрд╛рд░рд┐рдд рдЯреНрд░рд╛рдиреНрд╕рдкреЛрд░реНрдЯ (рдмреНрд▓реЙрдХрд┐рдВрдЧ рдореЛрдб, рд╡реНрдпрддреНрдпрдп рдЖрдгрддрд╛ рдпреЗрдгреНрдпрд╛рдЬреЛрдЧрд╛).
- рдЯрдкреНрдкреНрдпрд╛рдЯрдкреНрдкреНрдпрд╛рдиреЗ рд╣рд╕реНрддрд╛рдВрджреЛрд▓рди:
- TlsHandshakeEngine рд╣реЗ рд╣рдБрдбрд╢реЗрдХрд╕рд╛рдареА рдПрдХ рд╕реНрдЯреЗрдЯ рдорд╢реАрди рдЖрд╣реЗ (рдЬреЗ I/O рдкрд╛рд╕реВрди рд╡рд┐рд▓рдЧ рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ). рддреЗ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдореНрд╣рдгреВрди TlsSession рд╡рд╛рдкрд░рддреЗ рдЖрдгрд┐ JSSE (SSLEngine) рд╕реЛрдмрдд рдПрдХреАрдХрд░рдгрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдЖрд╣реЗ.
- рдмрд╛рдЗрдЯрдмрдлрд░ рдПрдкреАрдЖрдп:
- TlsRecord.protect/unprotect тАФ NIO рд╕рд╣ рдЭрд┐рд░реЛ-рдХреЙрдкреА рдЗрдВрдЯрд┐рдЧреНрд░реЗрд╢рдирд╕рд╛рдареА рдмрд╛рдЗрдЯрдмрдлрд░ рдУрд╡реНрд╣рд░рд▓реЛрдбреНрд╕. рдХреАрдЬ рд▓реЛрдб рдХрд░рдд рдЖрд╣реЗ:
- Pkcs12Loader тАФ PBKDF2-HMAC-SHA256 + AES-256-CBC рд╕рд╣ PFX (PKCS#12) рд╡рд╛рдЪрдгреЗ.
- рд╕рддреНрд░рд╛рдЪрд╛ рд╢реЗрд╡рдЯ:
- close_notify - рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдиреБрд╕рд╛рд░ рдпреЛрдЧреНрдп рдкреНрд░рдХрд╛рд░реЗ рдмрдВрдж рдХрд░рдгреЗ.
- рдмрдВрдж рдХрд░рддрд╛рдирд╛ рдХрд┐рдВрд╡рд╛ рдЪреВрдХ рдХрд░рддрд╛рдирд╛ рдХреА рдордЯреЗрд░рд┐рдпрд▓ рдкреБрд╕рд▓реЗ рдЬрд╛рдгреЗ.
- рд╕реВрдЪрдирд╛ рд╣рд╛рддрд╛рд│рдгреА: рдЧрдВрднреАрд░ - рддрд╛рддреНрдХрд╛рд│ рдмрдВрдж рдХрд░рдд рдЖрд╣реЗ рдЖрдгрд┐ рдорд┐рдЯрд╡рдд рдЖрд╣реЗ.
- рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реБрд░рдХреНрд╖рд╛:
- verify_data рдЖрдгрд┐ PSK рдмрд╛рдЗрдВрдбрд░рд╕рд╛рдареА рд╕реНрдерд┐рд░-рд╡реЗрд│ рддреБрд▓рдирд╛ (рдЯрд╛рдпрдорд┐рдВрдЧ рдЕрдЯреЕрдХрдкрд╛рд╕реВрди рд╕рдВрд░рдХреНрд╖рдг)
- рдХреА рдордЯреЗрд░рд┐рдпрд▓ рдкреБрд╕рдгреЗ: рдмрдВрдж рдХрд░рддрд╛рдирд╛ (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext) рдпрд╛ рдХреА рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рд╡рд░ destroy() рдХрд░рдгреЗ, рдЧрдВрднреАрд░ рд╕реВрдЪрдирд╛, рд╣рдБрдбрд╢реЗрдХрдордзреНрдпреЗ рдЕрдкрд╡рд╛рдж.
- DoS рд╕рдВрд░рдХреНрд╖рдг: рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рд╛рдЦрд│реА рд▓рд╛рдВрдмреА (10), рдкреЛрд╕реНрдЯ-рд╣рдБрдбрд╢реЗрдХ рд╕рдВрджреЗрд╢, рд░реЗрдХреЙрд░реНрдб рдЖрдХрд╛рд░ рдпрд╛рд╡рд░ рдорд░реНрдпрд╛рджрд╛.
- MGM рдиреЙрдиреНрд╕: рдкрд╣рд┐рд▓реНрдпрд╛ рдмрд╛рдЗрдЯрдЪрд╛ MSB рд╣рд╛ ICN рд╕рд╛рдареА рдХреНрд▓рд┐рдЕрд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ (RFC 9058 ┬з3, RFC 9367 ┬з3.3).
- рд╣рдБрдбрд╢реЗрдХ рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рд╡рд░ ECDHE рдкреНрд░рд╛рдпрд╡реНрд╣реЗрдЯ рдХреА рдЖрдгрд┐ рд╣рдБрдбрд╢реЗрдХ рдЯреНрд░рд╛рдиреНрд╕рдХреНрд░рд┐рдкреНрдЯ рдирд╖реНрдЯ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.
- рд╡рд╛рдкрд░рд╛рдирдВрддрд░ HMAC рдХреА рдордЯреЗрд░рд┐рдпрд▓ рдкреБрд╕рд▓реЗ рдЬрд╛рддреЗ (HkdfStreebog, KdfGostR3411_2012_256).
- рдорд░реНрдпрд╛рджрд╛
- рдлрдХреНрдд рд░рд┐рдЭрдореНрдкреНрд╢рди рдкреАрдПрд╕рдХреЗ (0-RTT рдЖрдгрд┐ рдмрд╛рд╣реНрдп рдкреАрдПрд╕рдХреЗ рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реАрдд).
- рдлрдХреНрдд psk_dhe_ke (ECDHE рд╢рд┐рд╡рд╛рдп рд╢реБрджреНрдз PSK рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реА).
- HelloRetryRequest (RFC 8446 ┬з4.1.4) рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реА - рдлрдХреНрдд рдПрдХрдЪ рдирд╛рдорд┐рдд рдЧрдЯ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ (рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ GC256A).
- рдлрдХреНрдд GOST (GOST рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд рдЗрддрд░ рд╕рд╛рдпрдлрд░ рд╕реВрдЯ рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реАрдд).
- рдЪрд╛рдЪрдгреА:
- рдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ RFC 9367 рдкрд░рд┐рд╢рд┐рд╖реНрдЯ A.1 (L рдЖрдгрд┐ S рд╡реНрд╣реЗрд░рд┐рдПрдВрдЯреНрд╕) рдордзреАрд▓ рдЬреНрдЮрд╛рдд рдЙрддреНрддрд░ рдЪрд╛рдЪрдгреНрдпрд╛ (Known Answer Tests) рдЖрд╣реЗрддтАФрдЬрд╕реЗ рдХреА рд╕рдВрдкреВрд░реНрдг рдХреА рд╢реЗрдбреНрдпреВрд▓, TLSTREE, AEAD, рдЖрдгрд┐ ECDHE. рддрд╕реЗрдЪ, рддреА рд╕рд░реНрд╡ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ KAT рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ рдЙрддреНрддреАрд░реНрдг рд╣реЛрддреЗ.
- рд╡рд╛рд╕реНрддрд╡рд┐рдХ TCP рд╕реЙрдХреЗрдЯреНрд╕рджреНрд╡рд╛рд░реЗ рек рдПрдХреАрдХрд░рдг рдЪрд╛рдЪрдгреНрдпрд╛ (рд╕реЗрд▓реНрдл-рдЗрдВрдЯрд░рдСрдк).
- рдкрд╛рд░реНрд╕рд░реНрд╕рд╕рд╛рдареА рдлрдЭ рдЯреЗрд╕реНрдЯреНрд╕: TlsMessageParser (8 рдореЗрдердбреНрд╕), TlsDerParser (3 рдореЗрдердбреНрд╕), TlsOcspVerifier (1 рдореЗрдердб), рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдкрд╛рд░реНрд╕рд░реНрд╕рд╡рд░реАрд▓ рд╣рд▓реНрд▓реНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдХрдореА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.
- рд╡рд╛рд╕реНрддреБрд╢рд╛рд╕реНрддреНрд░реАрдп рдЙрдкрд╛рдп:
- TlsHandshakeEngine - I/O рдкрд╛рд╕реВрди рд╡рд┐рднрдХреНрдд рдХреЗрд▓реЗрд▓реЗ рд╕реНрдЯреЗрдЯ рдорд╢реАрди (рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ JSSE рдореЙрдбреНрдпреВрд▓рд╕рд╛рдареА).
- NIO/JSSE рд╕рд╛рдареА TlsRecord.protect/unprotect рдЪреЗ ByteBuffer рдУрд╡реНрд╣рд░рд▓реЛрдбреНрд╕.
- TLSTREE рдХреЕрд╢реЗ (TlsTreeCache) - рдлрдХреНрдд рдмрджрд▓рд▓реЗрд▓реНрдпрд╛ рд╕реНрддрд░рд╛рдВрдЪреА рдкреБрдирд░реНрдЧрдгрдирд╛ (RFC 9367).
- InMemoryTlsTransport.Pair рд╣реА рдЪрд╛рдЪрдгреНрдпрд╛ рдЖрдгрд┐ рдПрдХрд▓-рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдВрдкреНрд░реЗрд╖рдгрд╛рд╕рд╛рдареА рдПрдХ рджреНрд╡рд┐рджрд┐рд╢рд╛рддреНрдордХ рдЬреЛрдбреА рдЖрд╣реЗ.
рд╣реА рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд┐рдирд╛рдореВрд▓реНрдп рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ.
рд╕реНрддреНрд░реЛрдд: linux.org.ru
