рдореЛрдбреНрдпреБрд▓ рдХреНрд░рд┐рдкреНрдЯреЛ-рдЧреЛрд╕реНрдЯ-рдЯреАрдПрд▓рдПрд╕резрей рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ TLS рез.рей (RFC реорекрекрем + RFC репрейремрен) GOST рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рд╕рд╣рд┐рддред рдпреЛ рд░рд┐рд▓реАрдЬ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛ рд░ рдЖрдиреНрддрд░рд┐рдХ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░ рдЫред
рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдПрдЙрдЯрд╛ рдЕрджреНрд╡рд┐рддреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рднрдиреЗрдХреЛ рдпрд╕рдХреЛ рд╢реБрджреНрдз рдЬрд╛рднрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛред рд╕рдмреИ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдХрд╛рд░реНрдпрд╣рд░реВ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдирд┐рд░реНрдорд┐рдд рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЧрд░рд┐рдиреНрдЫ, рдХреБрдиреИ рдмрд╛рд╣реНрдп рдирд┐рд░реНрднрд░рддрд╛ рдмрд┐рдирд╛ред
рдпреЛ рдЬрд╛рднрд╛рдорд╛ GOST рд╕рдБрдЧ TLS рез.рей рдХреЛ рдкрд╣рд┐рд▓реЛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рд╣реЛ, рддреНрдпрд╕реИрд▓реЗ рдЗрдиреНрдЯрд░рдЕрдк рдкрд░реАрдХреНрд╖рдг рд╕рдореНрднрд╡ рднрдПрд╕рдореНрдо рдиреНрдпреВрдирддрдо рдЧрд░рд┐рдПрдХреЛ рдЫред
рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдХреНрд╖рдорддрд╛рд╣рд░реВ рддрд▓ рджрд┐рдЗрдПрдХрд╛ рдЫрдиреНред
- рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВ:
- рд╣рд╛рдд рдорд┐рд▓рд╛рдЙрдиреЗ: рдкреВрд░реНрдг (рдХреНрд▓рд╛рдЗрдиреНрдЯ/рд╕рд░реНрднрд░), рдЫреЛрдЯреЛ (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: рдХреНрд░рд┐рдкреНрдЯреЛрдкреНрд░реЛ-рдП (реирелрем-рдмрд┐рдЯ), рдХреНрд░рд┐рдкреНрдЯреЛрдкреНрд░реЛ-рдмреА (релрезреи-рдмрд┐рдЯ)
- рдкреНрд░рддрд┐-рд░реЗрдХрд░реНрдб TLSTREE рдкреБрди: рдХреБрдЮреНрдЬреА рдмрдирд╛рдЙрдиреЗ тАФ рдкреНрд░рддреНрдпреЗрдХ TLS рд░реЗрдХрд░реНрдбрдХреЛ рд▓рд╛рдЧрд┐ рдЗрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдЮреНрдЬреА рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗред
- рд╣рд╛рдд рдорд┐рд▓рд╛рдЙрдиреЗ рд░ рд░реЗрдХрд░реНрдбрд╣рд░реВрдХреЛ рдЦрдгреНрдбреАрдХрд░рдг рд░ рдкреБрди: рд╕рдВрдпреЛрдЬрди (RFC 8446 ┬з5.1)ред
- рд╕рддреНрд░ рдкреБрди: рд╕реБрд░реБрд╡рд╛рдд: NewSessionTicket рдорд╛рд░реНрдлрдд PSK (PskStore рдЗрди-рдореЗрдореЛрд░реА, рдПрдХрд▓-рдкреНрд░рдпреЛрдЧ)ред
- OCSP рд╕реНрдЯреЗрдкрд▓рд┐рдЩ: рд╕рд░реНрднрд░ ╨┐╤А╨╕╨║╨╗╨░╨┤╤Л╨▓╨░╨╡╤В OCSP-╨╛╤В╨▓╨╡╤В ╨║ ╤Б╨╡╤А╤В╨╕╤Д╨╕╨║╨░╤В╤Г.
- рд╣рд╛рдд рдорд┐рд▓рд╛рдЗрд╕рдХреЗрдкрдЫрд┐рдХрд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ: NewSessionTicket (PSK рдХреЛ рд▓рд╛рдЧрд┐ рдмрд╛рд╣реЗрдХ)ред
- рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА:
- рдореБрдЦреНрдп рддрд╛рд▓рд┐рдХрд╛: TLS рез.рей (RFC реорекрекрем ┬зрен.рез) рдорд╛рдерд┐ HKDF-Streebog (RFC релреоремреп)ред
- рд░реЗрдХрд░реНрдб рд╕реБрд░рдХреНрд╖рд╛: RFC 8446 ┬з5.3 рдЕрдиреБрд╕рд╛рд░ рдЧреИрд░-рдЕрдиреБрдорддрд┐ рд╕рд╣рд┐рдд MGM-AEAD (Kuznyechik)ред
- рдкреНрд░рдпреЛрдЧ рдкрдЫрд┐ рдХреНрд╖рдгрд┐рдХ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдореЗрдЯрд╛рдЗрдиреНрдЫред
- рдкреНрд░рдорд╛рдгрдкрддреНрд░:
- 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 SocketChannel-рдЖрдзрд╛рд░рд┐рдд рдпрд╛рддрд╛рдпрд╛рдд (рдмреНрд▓рдХрд┐рдЩ рдореЛрдб, рдЕрд╡рд░реЛрдзрдпреЛрдЧреНрдп)ред
- рдЪрд░рдгрдмрджреНрдз рд░реВрдкрдорд╛ рд╣рд╛рдд рдорд┐рд▓рд╛рдЙрдиреЗ:
- TlsHandshakeEngine рд╣реНрдпрд╛рдиреНрдбрд╢реЗрдХрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд╕реНрдЯреЗрдЯ рдореЗрд╕рд┐рди рд╣реЛ (I/O рдмрд╛рдЯ рдЕрд▓рдЧ рдЧрд░рд┐рдПрдХреЛ)ред рдпрд╕рд▓реЗ TlsSession рд▓рд╛рдИ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ рд░ JSSE (SSLEngine) рд╕рдБрдЧ рдПрдХреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдЫред
- рдмрд╛рдЗрдЯрдмрдлрд░ рдПрдкреАрдЖрдИ:
- TlsRecord.protect/unprotect тАФ NIO рд╕рдБрдЧ рд╢реВрдиреНрдп-рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдПрдХреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ ByteBuffer рд▓реЗ рдУрднрд░рд▓реЛрдб рдЧрд░реНрдЫред рдХреБрдЮреНрдЬреАрд╣рд░реВ рд▓реЛрдб рдЧрд░реНрджреИ:
- Pkcs12Loader тАФ PBKDF2-HMAC-SHA256 + AES-256-CBC рд╕рдБрдЧ PFX (PKCS#12) рдкрдвреНрджреИред
- рд╕рддреНрд░рдХреЛ рдЕрдиреНрддреНрдп:
- close_notify - рдкреНрд░реЛрдЯреЛрдХрд▓ рдЕрдиреБрд╕рд╛рд░ рд╕рд╣реА рдмрдиреНрдж рдЧрд░реНрдиреБрд╣реЛрд╕реНред
- рдмрдиреНрдж рдЧрд░реНрджрд╛ рд╡рд╛ рддреНрд░реБрдЯрд┐ рдЧрд░реНрджрд╛ рдХреБрдЮреНрдЬреА рд╕рд╛рдордЧреНрд░реА рдкреБрдЫреНрдиреЗред
- рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдВрдЧ рдЕрд▓рд░реНрдЯ: рдШрд╛рддрдХ - рддреБрд░реБрдиреНрддреИ рдмрдиреНрдж + рдореЗрдЯрд╛рдЙрдиреЗред
- рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реБрд░рдХреНрд╖рд╛:
- verify_data рд░ PSK рдмрд╛рдЗрдиреНрдбрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдерд┐рд░-рд╕рдордп рддреБрд▓рдирд╛рд╣рд░реВ (рд╕рдордп рдЖрдХреНрд░рдордгрд╣рд░реВ рд╡рд┐рд░реБрджреНрдз рд╕реБрд░рдХреНрд╖рд╛)
- рдХреБрдЮреНрдЬреА рд╕рд╛рдордЧреНрд░реА рд╡рд╛рдЗрдк рдЧрд░реНрджреИ: рдХреБрдЮреНрдЬреАрд╣рд░реВ рднрдПрдХрд╛ рд╕рдмреИ рд╡рд╕реНрддреБрд╣рд░реВрдорд╛ destroy() (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), рдмрдиреНрдж рд╣реБрдБрджрд╛, рдШрд╛рддрдХ рд╕рддрд░реНрдХрддрд╛, рд╣реНрдпрд╛рдиреНрдбрд╢реЗрдХрдорд╛ рдЕрдкрд╡рд╛рдж
- DoS рд╕реБрд░рдХреНрд╖рд╛: рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд▓рдореНрдмрд╛рдЗрдорд╛ рд╕реАрдорд╛ (резреж), рд╣рд╛рдд рдорд┐рд▓рд╛рдЗрдкрдЫрд┐рдХрд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ, рд░реЗрдХрд░реНрдб рдЖрдХрд╛рд░ред
- MGM рдирдиреНрд╕: рдкрд╣рд┐рд▓реЛ рдмрд╛рдЗрдЯрдХреЛ MSB ICN (RFC 9058 ┬з3, RFC 9367 ┬з3.3) рдХреЛ рд▓рд╛рдЧрд┐ рдЦрд╛рд▓реА рдЧрд░рд┐рдПрдХреЛ рдЫред
- рд╣рд╛рдд рдорд┐рд▓рд╛рдЙрдиреЗ рдХрд╛рдо рдкреВрд░рд╛ рднрдПрдкрдЫрд┐ ECDHE рдирд┐рдЬреА рдХреБрдЮреНрдЬреА рд░ рд╣рд╛рдд рдорд┐рд▓рд╛рдЙрдиреЗ рдЯреНрд░рд╛рдиреНрд╕рдХреНрд░рд┐рдкреНрдЯ рдирд╖реНрдЯ рдЧрд░рд┐рдиреНрдЫред
- рдкреНрд░рдпреЛрдЧ рдкрдЫрд┐ HMAC рдХреБрдЮреНрдЬреА рд╕рд╛рдордЧреНрд░реА рдореЗрдЯрд╛рдЗрдиреНрдЫ (HkdfStreebog, KdfGostR3411_2012_256)ред
- рд╕реАрдорд╛рд╣рд░реВ:
- рдкреБрди: рд╕реБрд░реБрд╡рд╛рдд PSK рдорд╛рддреНрд░ (реж-RTT рд░ рдмрд╛рд╣реНрдп PSK рд╕рдорд░реНрдерд┐рдд рдЫреИрдирдиреН)ред
- рдХреЗрд╡рд▓ psk_dhe_ke (ECDHE рдмрд┐рдирд╛рдХреЛ рд╢реБрджреНрдз PSK рд╕рдорд░реНрдерд┐рдд рдЫреИрди)ред
- HelloRetryRequest (RFC 8446 ┬з4.1.4) рд╕рдорд░реНрдерд┐рдд рдЫреИрди - рдХреЗрд╡рд▓ рдПрдЙрдЯрд╛ рдирд╛рдо рджрд┐рдЗрдПрдХреЛ рд╕рдореВрд╣ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ (рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ GC256A)ред
- GOST рдорд╛рддреНрд░ (GOST рдирднрдПрдХрд╛ рд╕рд╛рдЗрдлрд░ рд╕реБрдЗрдЯрд╣рд░реВ рд╕рдорд░реНрдерд┐рдд рдЫреИрдирдиреН)ред
- рдкрд░реАрдХреНрд╖рдг:
- рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ RFC 9367 рдкрд░рд┐рд╢рд┐рд╖реНрдЯ A.1 (L рд░ S рднреЗрд░рд┐рдпрдиреНрдЯрд╣рд░реВ) рдмрд╛рдЯ рдЬреНрдЮрд╛рдд рдЙрддреНрддрд░ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЫрдиреН - рдкреВрд░реНрдг рдХреБрдЮреНрдЬреА рддрд╛рд▓рд┐рдХрд╛, TLSTREE, AEAD, рд░ ECDHEред рдпрд╕рд▓реЗ KAT рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдХреЛ рдкреВрд░реНрдг рджрд╛рдпрд░рд╛ рдкрдирд┐ рдкрд╛рд╕ рдЧрд░реНрджрдЫред
- рд╡рд╛рд╕реНрддрд╡рд┐рдХ TCP рд╕рдХреЗрдЯрд╣рд░реВ рдорд╛рд░реНрдлрдд рек рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ (рд╕реНрд╡-рдЗрдиреНрдЯрд░рдк)ред
- рдкрд╛рд░реНрд╕рд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдлрдЬ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ: TlsMessageParser (рео рд╡рд┐рдзрд┐рд╣рд░реВ), TlsDerParser (рей рд╡рд┐рдзрд┐рд╣рд░реВ), TlsOcspVerifier (рез рд╡рд┐рдзрд┐), рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рд░ рдкрд╛рд░реНрд╕рд░рд╣рд░реВрдорд╛ рдЖрдХреНрд░рдордг рднреЗрдХреНрдЯрд░ рдХрдо рдЧрд░реНрдиред
- рд╡рд╛рд╕реНрддреБ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ:
- TlsHandshakeEngine - I/O рдмрд╛рдЯ рдЕрд▓рдЧ рдЧрд░рд┐рдПрдХреЛ рд╕реНрдЯреЗрдЯ рдореЗрд╕рд┐рди (рднрд╡рд┐рд╖реНрдпрдХреЛ JSSE рдореЛрдбреНрдпреБрд▓рдХреЛ рд▓рд╛рдЧрд┐)ред
- NIO/JSSE рдХреЛ рд▓рд╛рдЧрд┐ ByteBuffer рд▓реЗ TlsRecord.protect/unprotect рдХреЛ рдУрднрд░рд▓реЛрдб рдЧрд░реНрдЫред
- TLSTREE рдХреНрдпрд╛рд╕ (TlsTreeCache) - рдХреЗрд╡рд▓ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХрд╛ рд╕реНрддрд░рд╣рд░реВрдХреЛ рдкреБрди: рдЧрдгрдирд╛ (RFC 9367)ред
- InMemoryTlsTransport.Pair рдкрд░реАрдХреНрд╖рдг рд░ рдПрдХрд▓-рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдЮреНрдЪрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рджреНрд╡рд┐рджрд┐рд╢рд╛рддреНрдордХ рдЬреЛрдбреА рд╣реЛред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд┐:рд╢реБрд▓реНрдХ рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред
рд╕реНрд░реЛрдд: linux.org.ru
