RFC 9367์— ๋”ฐ๋ผ GOST ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” Java ๊ธฐ๋ฐ˜ TLS 1.3 ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„์˜ ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค์ž…๋‹ˆ๋‹ค.

๊ธฐ์ค€ ์น˜์ˆ˜ ํฌ๋ฆฝํ† -๊ณ ์ŠคํŠธ-tls13 ๊ตฌํ˜„ ๋‚ด์šฉ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. TLS 1.3 (RFC 8446 + RFC 9367) GOST ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๋ฆด๋ฆฌ์Šค๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ดˆ๊ธฐ ๋ฒ„์ „์ด๋ฉฐ ๋‚ด๋ถ€ ์‚ฌ์šฉ์„ ์œ„ํ•ด ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋…ํŠนํ•œ ํŠน์ง•์€ ์ˆœ์ˆ˜ ์ž๋ฐ”๋กœ ๊ตฌํ˜„๋˜์—ˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์•”ํ˜ธํ™” ์ž‘์—…์€ ์™ธ๋ถ€ ์ข…์†์„ฑ ์—†์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋‚ด์žฅ๋œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ Java๋กœ ๊ตฌํ˜„๋œ GOST ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜๋Š” TLS 1.3์˜ ์ตœ์ดˆ ์˜คํ”ˆ ์†Œ์Šค ๊ตฌํ˜„ ์ค‘ ํ•˜๋‚˜์ด๋ฏ€๋กœ, ์ƒํ˜ธ ์šด์šฉ์„ฑ ํ…Œ์ŠคํŠธ๋Š” ์ตœ์†Œํ•œ์˜ ๋ฒ”์œ„ ๋‚ด์—์„œ๋งŒ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

  1. ํ”„๋กœํ† ์ฝœ:
  • ํ•ธ๋“œ์…ฐ์ดํฌ: ์ „์ฒด(ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„), ๊ฐ„๋žตํ•œ(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).
  • ์„ธ์…˜ ์žฌ๊ฐœ: NewSessionTicket์„ ํ†ตํ•œ PSK(๋ฉ”๋ชจ๋ฆฌ ๋‚ด PskStore, ์ผํšŒ์šฉ).
  • OCSP ์Šคํ…Œ์ดํ”Œ๋ง: ์„œ๋ฒ„ ะฟั€ะธะบะปะฐะดั‹ะฒะฐะตั‚ OCSP-ะพั‚ะฒะตั‚ ะบ ัะตั€ั‚ะธั„ะธะบะฐั‚ัƒ.
  • ํ•ธ๋“œ์…ฐ์ดํฌ ํ›„ ๋ฉ”์‹œ์ง€: NewSessionTicket (PSK ์ €์žฅ์šฉ).
  1. ์•”ํ˜ธํ•™:
  • ์ฃผ์š” ์ผ์ •: TLS 1.3(RFC 8446 ยง7.1)์„ ํ†ตํ•œ HKDF-Streebog(RFC 5869).
  • ๊ธฐ๋ก ๋ณดํ˜ธ: RFC 8446 ยง5.3์— ๋”ฐ๋ฅธ nonce๋ฅผ ์‚ฌ์šฉํ•˜๋Š” MGM-AEAD(Kuznyechik).
  • ์ž„์‹œ ํ‚ค๋Š” ์‚ฌ์šฉ ํ›„ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.
  1. ์ธ์ฆ์„œ:
  • X.509v3 ๊ตฌ๋ฌธ ๋ถ„์„(GOST R 34.10-2012) โ€” ๋‚ด์žฅ DER ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ.
  • ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์ฒด์ธ: ์„œ๋ช…, DN(๋ฐœ๊ธ‰์ž โ†’ ์ฃผ์ฒด), ๊ธฐ๋ณธ ์ œ์•ฝ ์กฐ๊ฑด, ํ‚ค ์‚ฌ์šฉ, ํ™•์žฅ ํ‚ค ์‚ฌ์šฉ(์„œ๋ฒ„ ์ธ์ฆ/ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ), ๊ฒฝ๋กœ ๊ธธ์ด.
  • ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ํ™•์ธ: dNSName + IP ์ฃผ์†Œ(RFC 6125).
  • OCSP ์‘๋‹ต ๊ฒ€์ฆ(RFC 6960).

4.ํ‰๊ฐ€ :

  • TlsTransport - ์ธํ„ฐํŽ˜์ด์Šค.
  • InMemoryTlsTransport - ํ…Œ์ŠคํŠธ ๋ฐ ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค ์‹œ๋‚˜๋ฆฌ์˜ค์šฉ(์ธ๋ฉ”๋ชจ๋ฆฌ ํ).
  • SocketTlsTransport โ€” java.net.Socket์„ ํ†ตํ•œ ๋ธ”๋กœํ‚น I/O.
  • ChannelTlsTransport - NIO SocketChannel ๊ธฐ๋ฐ˜ ์ „์†ก(๋ธ”๋กœํ‚น ๋ชจ๋“œ, ์ธํ„ฐ๋ŸฝํŠธ ๊ฐ€๋Šฅ).
  1. ์•…์ˆ˜ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋‹จ๊ณ„๋ณ„ ์„ค๋ช…:
  • TlsHandshakeEngine์€ ํ•ธ๋“œ์…ฐ์ดํฌ๋ฅผ ์œ„ํ•œ ์ƒํƒœ ๋จธ์‹ ์ž…๋‹ˆ๋‹ค(I/O์™€ ๋ถ„๋ฆฌ๋จ). TlsSession์„ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ JSSE(SSLEngine)์™€์˜ ํ†ตํ•ฉ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  1. ByteBuffer API:
  • TlsRecord.protect/unprotect โ€” NIO์™€์˜ ์ œ๋กœ ์นดํ”ผ ํ†ตํ•ฉ์„ ์œ„ํ•œ ByteBuffer ์˜ค๋ฒ„๋กœ๋“œ. ํ‚ค ๋กœ๋”ฉ:
  • Pkcs12Loader โ€” PBKDF2-HMAC-SHA256 + AES-256-CBC๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PFX(PKCS#12) ํŒŒ์ผ์„ ์ฝ์Šต๋‹ˆ๋‹ค.
  1. ์„ธ์…˜ ์ข…๋ฃŒ:
  • close_notify - ํ”„๋กœํ† ์ฝœ์— ๋”ฐ๋ผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ซ๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ฃผ์š” ์ž๋ฃŒ๋ฅผ ๋‹ฆ์•„๋‚ด๋Š” ํ–‰์œ„.
  • ์ฒ˜๋ฆฌ ๊ฒฝ๊ณ : ์น˜๋ช…์  - ์ฆ‰์‹œ ์ข…๋ฃŒ ๋ฐ ์‚ญ์ œ.
  1. ๊ตฌํ˜„ ๋ณด์•ˆ:
  • 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).
  1. ์ œํ•œ ์‚ฌํ•ญ :
  • ์žฌ๊ฐœ PSK๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค(0-RTT ๋ฐ ์™ธ๋ถ€ PSK๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).
  • psk_dhe_ke๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค(ECDHE๊ฐ€ ์—†๋Š” ์ˆœ์ˆ˜ PSK๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).
  • HelloRetryRequest(RFC 8446 ยง4.1.4)๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ช…๋ช…๋œ ๊ทธ๋ฃน์€ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ๊ฐ’์€ GC256A).
  • GOST ์•”ํ˜ธํ™” ์Šค์œ„ํŠธ๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค(GOST ์ด์™ธ์˜ ์•”ํ˜ธํ™” ์Šค์œ„ํŠธ๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).
  1. ํ…Œ์ŠคํŠธ:
  • ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” RFC 9367 ๋ถ€๋ก A.1(L ๋ฐ S ๋ณ€ํ˜•)์˜ ์•Œ๋ ค์ง„ ๋‹ต๋ณ€ ํ…Œ์ŠคํŠธ(KAT)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์ „์ฒด ํ‚ค ์Šค์ผ€์ค„, TLSTREE, AEAD ๋ฐ ECDHE๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  KAT ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•ฉ๋‹ˆ๋‹ค.
  • ์‹ค์ œ TCP ์†Œ์ผ“์„ ํ†ตํ•œ 4๊ฐ€์ง€ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ(์ž์ฒด ์ƒํ˜ธ ์šด์šฉ์„ฑ).
  • ํŒŒ์„œ์— ๋Œ€ํ•œ ํผ์ฆˆ ํ…Œ์ŠคํŠธ: TlsMessageParser(8๊ฐœ ๋ฉ”์„œ๋“œ), TlsDerParser(3๊ฐœ ๋ฉ”์„œ๋“œ), TlsOcspVerifier(1๊ฐœ ๋ฉ”์„œ๋“œ)๋ฅผ ํ†ตํ•ด ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ณ  ํŒŒ์„œ์— ๋Œ€ํ•œ ๊ณต๊ฒฉ ๋ฒกํ„ฐ๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.
  1. ๊ฑด์ถ• ์†”๋ฃจ์…˜:
  • TlsHandshakeEngine - I/O์™€ ๋ถ„๋ฆฌ๋œ ์ƒํƒœ ๋จธ์‹  (ํ–ฅํ›„ JSSE ๋ชจ๋“ˆ์šฉ).
  • NIO/JSSE์šฉ TlsRecord.protect/unprotect์˜ ByteBuffer ์˜ค๋ฒ„๋กœ๋“œ์ž…๋‹ˆ๋‹ค.
  • TLSTREE ์บ์‹œ(TlsTreeCache) - ๋ณ€๊ฒฝ๋œ ๋ ˆ๋ฒจ๋งŒ ์žฌ๊ณ„์‚ฐ(RFC 9367).
  • InMemoryTlsTransport.Pair๋Š” ํ…Œ์ŠคํŠธ ๋ฐ ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค ํ†ต์‹ ์„ ์œ„ํ•œ ์–‘๋ฐฉํ–ฅ ์Œ์ž…๋‹ˆ๋‹ค.

์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฌด๋ฃŒ ๋ผ์ด์„ ์Šค ํ•˜์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : linux.org.ru

DDoS ๋ณดํ˜ธ, VPS VDS ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ํ˜ธ์ŠคํŒ… ๊ตฌ์ž… ๐Ÿ”ฅ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋œ ์•ˆ์ •์ ์ธ ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, VPS ๋ฐ VDS ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š” | ProHoster