๐Ÿ”’ 14. SSL, TLS (์ „์†ก๊ณ„์ธต ๋ณด์•ˆ)

๊น€์ง€์œคยท2023๋…„ 12์›” 12์ผ

๋ณด์•ˆ

๋ชฉ๋ก ๋ณด๊ธฐ
13/15

< ์ „์†ก๊ณ„์ธต์˜ ๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ >
์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์˜ ์ธ์ฆ, ๊ธฐ๋ฐ€์„ฑ, ๋ฌด๊ฒฐ์„ฑ


๐Ÿ”’ SSL (Secure Socket Layer)

  • ์†Œ์ผ“์ธต ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ

  • ์‘์šฉ์ธต์—์„œ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์•ˆํ•˜๊ณ  ์••์ถ•ํ•˜๋Š” ์„œ๋น„์Šค ์ œ๊ณต

  • ์‘์šฉ์ธต -> SSL -> TCP ๊ณ„์ธต

  • http:// โž” https:// ๋ฐ”๋€œ

  • ํ‚ค ๊ตํ™˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— 6๊ฐœ์˜ ํ‚ค๊ฐ€ ํ•„์š”

    • NULL(ํ‚ค์—†์Œ), RSA, Anonymous Diffie-Hellman(๋ณด์•ˆ์„ฑ ์—†์–ด ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ์— ์ทจ์•ฝ), Ephemeral Diffie-Hellman(RSA or DSS ์ธ์ฆ์„œ ๊ตํ™˜), Fixed Diffie-Hellman, Fortezza
  • ์•”/๋ณตํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ :

    • NULL(์•Œ๊ณ ๋ฆฌ์ฆ˜ ์—†์Œ), ์ŠคํŠธ๋ฆผ RC, ๋ธ”๋ก RC, DES, IDEA, Fortezza
  • ๋ฉ”์‹œ์ง€ ๋ฌด๊ฒฐ์„ฑ ํ•ด์‰ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ :

    • NULL, MD5, SHA-1
  • ์„ธ์…˜ :

    • ์„ธ์…˜์€ ์—ฐ๊ฒฐ๊ณผ ๋‹ค๋ฅธ ๋œป์„ ๊ฐ€์ง„๋‹ค.
    • ์„ธ์…˜์€ ํ•œ์ชฝ์€ ํด๋ผ์ด์–ธํŠธ์˜ ์—ญํ• ์ด ๋˜๊ณ , ๋‚˜๋จธ์ง€ ํ•œ์ชฝ์€ ์„œ๋ฒ„์˜ ์—ญํ• ์ด ๋œ๋‹ค.
    • ์„ธ์…˜์ด ํ™•๋ฆฝ๋˜๋ฉด ์–‘์ชฝ์€ ํ†ต์‹ ์— ํ•„์š”ํ•œ ๊ณตํ†ต ์ •๋ณด๋ฅผ ๊ฐ–๊ฒŒ๋œ๋‹ค.
  • SSL์˜ 4๊ฐœ์˜ ํ”„๋กœํ† ์ฝœ :

    • Handshake ํ”„๋กœํ† ์ฝœ : ์•”ํ˜ธ ๊ทธ๋ฃน ํ˜‘์˜, ์ธ์ฆ, ๋น„๋ฐ€ ํ™•๋ฆฝ

    • ChangeCipherSpec ํ”„๋กœํ† ์ฝœ : ๋งค๊ฐœ๋ณ€์ˆ˜ ๋น„๋ฐ€๋“ค์„ ์–ธ์ œ ์‚ฌ์šฉํ• ์ง€ ๋Œ€๊ธฐ, ํ™œ์„ฑ ์ƒํƒœ ๊ณผ์ •์„ ์ฒ˜๋ฆฌ

    • Alert ํ”„๋กœํ† ์ฝœ : ์˜ค๋ฅ˜์™€ ๋น„์ •์ƒ ์ƒํƒœ๋ฅผ ์•Œ๋ฆผ

    • Record ํ”„๋กœํ† ์ฝœ : ํ™œ์„ฑ์ƒํƒœ์ผ๋•Œ, ์œ„์˜ ๊ณ„์ธต์—์„œ ๋ฐ›์€ ๋ฉ”์‹œ์ง€๋ฅผ ์บก์Аํ™”ํ•˜์—ฌ ์ „์†ก๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค. ๋ฉ”์‹œ์ง€ ๋‹จํŽธํ™”, ์••์ถ• ๋“ฑ ์ˆ˜ํ–‰ (์ˆœ์„œ : ๋‹จํŽธํ™” โž” ์••์ถ• โž” MAC์ฒจ๋ถ€ โž” ์•”ํ˜ธํ™” โž” SSL ๋ ˆ์ฝ”๋“œ ํ—ค๋” ๋ถ™์ด๊ธฐ)

    • HelloRequest ๋ฉ”์‹œ์ง€ : ์„ธ์…˜์ด ์ž˜๋ชป๋˜์—ˆ๊ฑฐ๋‚˜, ์ƒˆ๋กœ์šด ์„ธ์…˜์ด ํ•„์š”ํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”๊ตฌํ•œ๋‹ค.

    • ClientHello ๋ฉ”์‹œ์ง€ : Handshaking์—์„œ ์ฒซ ๋ฒˆ์งธ๋กœ ๊ตํ™˜๋˜๋Š” ๋ฉ”์‹œ์ง€. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋ƒ„

    • ServerHello ๋ฉ”์‹œ์ง€ : ClientHello์— ๋Œ€ํ•œ ์„œ๋ฒ„์˜ ์‘๋‹ต ๋ฉ”์‹œ์ง€

    • Certificate ๋ฉ”์‹œ์ง€ : ๊ณต๊ฐœํ‚ค ์ธ์ฆ์„œ ์ฒด์ธ๋ชฉ๋ก์„ ๋ณด๋‚ด๋Š” ๋ฉ”์‹œ์ง€

    • ServerKeyExchange ๋ฉ”์‹œ์ง€ : ์„œ๋ฒ„์— ์˜ํ•ด ์ƒ์„ฑ๋œ ํ‚ค๋ฅผ ๋ณด๋‚ด๋Š” ๋ฉ”์‹œ์ง€

    • CertificateRequest ๋ฉ”์‹œ์ง€ : ์„œ๋ฒ„์˜ ์ธ์ฆ์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”์ฒญํ•˜๋Š” ๋ฉ”์‹œ์ง€

    • ServerHelloDone ๋ฉ”์‹œ์ง€ : Handshaking์˜ ๋งˆ์ง€๋ง‰ ๋ฉ”์‹œ์ง€

    • CertificateVerify ๋ฉ”์‹œ์ง€ : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ณต๊ฐœํ‚ค์™€ ๊ด€๋ จ๋œ ์ž์‹ ์˜ ๊ฐœ์ธํ‚ค๋ฅผ ์ธ์ฆํ•˜๋Š” ๋ฉ”์‹œ์ง€

    • ClientKeyExchange ๋ฉ”์‹œ์ง€ : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ‚ค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์‹œ์ง€

    • Finished ๋ฉ”์‹œ์ง€ : ํ˜‘์˜๊ฐ€ ๋๋‚ฌ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฉ”์‹œ์ง€




๐Ÿ”’ TLS (Transport Layer Security)

  • SSL์˜ IETF ํ‘œ์ค€ ๋ฒ„์ „

  • ์ „์†ก ๊ณ„์ธต ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ

  • SSL๊ณผ ๋‹ค๋ฅธ์ 

    • Fortezza๊ฐ€ ์ง€์›๋˜์ง€ ์•Š๋Š”๋‹ค.

    • SSL๋ณด๋‹ค ๋ณต์žกํ•˜๋‹ค. (HMAC๊ณผ PRF ์˜์‚ฌ๋‚œ์ˆ˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค)



โš ๏ธ SSL/TLS๋Š” TCP๋งŒ ๋ณดํ˜ธํ•˜๊ณ , UDP๋Š” ๋ณดํ˜ธํ•˜์ง€ ์•Š๋Š”๋‹ค!

profile
๊พธ์ค€ํ•˜๊ฒŒ ๊ณต๋ถ€ํ•˜๊ณ  ๊ธฐ๋กํ•˜๋Š” ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€