TLS/SSL handshake

TLS/SSL HandShake ๋ž€?

HTTPS์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ„ ํ†ต์‹ ํ•˜๊ธฐ ์ „, 
SSL ์ธ์ฆ์„œ๋กœ ์‹ ๋ขฐ์„ฑ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹

๋ชจ๋“  SSL/TLS ์—ฐ๊ฒฐ์€ 'HandShake' ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค.

  • 'HandShake' ๊ณผ์ •์€

    • ํ†ต์‹ ์„ ์•”ํ˜ธํ™”ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•  ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ํ‚ค ๊ฒฐ์ •

    • ์„œ๋ฒ„ ํ™•์ธ

    • ์‹ค์ œ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „ ๋ณด์•ˆ ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์กŒ๋Š”์ง€ ํ™•์ธ

์ด๋Ÿฌํ•œ ์—ฐ๊ฒฐ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๊ณผ์ •์ด handshake ์ด๋‹ค.

TLS/SSL ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ํ†ต์‹  ๋‹จ๊ณ„

1. ์‚ฌ์šฉํ•  ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „์— ๋™์˜
2. ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ
3. ๋””์ง€ํ„ธ ์ธ์ฆ์„œ ๊ตํ™˜ํ•˜๊ณ  ์œ ํšจ์„ฑ ๊ฒ€์‚ฌํ•˜์—ฌ ์„œ๋กœ ์ธ์ฆ
4. ๋น„๋Œ€์นญ ์•”ํ˜ธํ™” ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต์œ ํ‚ค ์ƒ์„ฑ
5. SSL/TLS ๋Š” ๊ณต์œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€์นญ ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์„ธ์ง€ ์•”ํ˜ธํ™”

handshake ์ž์ฒด๋Š” ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. (๊ณต๊ฐœํ‚ค์™€ ๊ฐœ์ธํ‚ค ๋ณ„๋„ ์‚ฌ์šฉ) ํ•˜์ง€๋งŒ, ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋†’์•„ ๋ชจ๋“  ๋ณด์•ˆ ๊ณผ์ •์—์„œ ์‚ฌ์šฉํ•  ์ˆœ ์—†๋‹ค.

๊ทธ๋ž˜์„œ ๊ณต๊ฐœํ‚ค๋Š” ์•”ํ˜ธ ํ•ด๋…์„ ์œ„ํ•œ ์•”ํ˜ธํ™” ๋ฐ ๊ฐœ์ธํ‚ค๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ๊ฐ ์ƒˆ๋กœ ์ƒ์„ฑํ•œ ๊ณต์œ ํ‚ค๋ฅผ ์„ค์ •ํ•˜๊ณ  ๊ตํ™˜ํ•˜๊ฒŒ ํ•œ๋‹ค. ์„ธ์…˜ ์ž์ฒด๋Š” ๊ณต์œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€์นญ ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ์—ฐ๊ฒฐ์—์„œ ์˜ค๋ฒ„ ํ—ค๋“œ๊ฐ€ ์ค„์–ด๋“ ๋‹ค.

์ง„ํ–‰ ์ˆœ์„œ

image

  1. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—๊ฒŒ client hello ๋ฉ”์‹œ์ง€๋ฅผ ๋‹ด์•„ ์„œ๋ฒ„๋กœ ๋ณด๋‚ธ๋‹ค. ์ด๋•Œ ์•”ํ˜ธํ™”๋œ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ๋‹ด๋Š”๋ฐ, ๋ฒ„์ „, ์•”ํ˜ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์••์ถ• ๋ฐฉ์‹ ๋“ฑ์„ ๋‹ด๋Š”๋‹ค.

  2. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์•”ํ˜ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์••์ถ• ๋ฐฉ์‹์„ ๋ฐ›๊ณ , ์„ธ์…˜ ID์™€ CA ๊ณต๊ฐœ ์ธ์ฆ์„œ๋ฅผ server hello ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ๋‹ด์•„ ์‘๋‹ตํ•œ๋‹ค. ์ด CA ์ธ์ฆ์„œ์—๋Š” ์•ž์œผ๋กœ ํ†ต์‹  ์ดํ›„ ์‚ฌ์šฉํ•  ๋Œ€์นญํ‚ค๊ฐ€ ์ƒ์„ฑ๋˜๊ธฐ ์ „, ํด๋ผ์ด์–ธํŠธ์—์„œ handshake ๊ณผ์ • ์† ์•”ํ˜ธํ™”์— ์‚ฌ์šฉํ•  ๊ณต๊ฐœํ‚ค๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.

  3. ํด๋ผ์ด์–ธํŠธ ์ธก์€ ์„œ๋ฒ„์—์„œ ๋ณด๋‚ธ CA ์ธ์ฆ์„œ์— ๋Œ€ํ•ด ์œ ํšจํ•œ ์ง€ CA ๋ชฉ๋ก์—์„œ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์„ ์ง„ํ–‰ํ•œ๋‹ค.

  4. CA ์ธ์ฆ์„œ์— ๋Œ€ํ•œ ์‹ ๋ขฐ์„ฑ์ด ํ™•๋ณด๋˜์—ˆ๋‹ค๋ฉด, ํด๋ผ์ด์–ธํŠธ๋Š” ๋‚œ์ˆ˜ ๋ฐ”์ดํŠธ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์„œ๋ฒ„์˜ ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•œ๋‹ค. ์ด ๋‚œ์ˆ˜ ๋ฐ”์ดํŠธ๋Š” ๋Œ€์นญํ‚ค๋ฅผ ์ •ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ์ด ๋˜๊ณ , ์•ž์œผ๋กœ ์„œ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ํ†ต์‹ ํ•  ๋•Œ ์•”ํ˜ธํ™”ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

  5. ๋งŒ์•ฝ 2๋ฒˆ ๋‹จ๊ณ„์—์„œ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ๋ฅผ ํ•จ๊ป˜ ์š”๊ตฌํ–ˆ๋‹ค๋ฉด, ํด๋ผ์ด์–ธํŠธ์˜ ์ธ์ฆ์„œ์™€ ์„œ๋ฒ„์˜ ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•œ ๋‚œ์ˆ˜ ๋ฐ”์ดํŠธ๋ฅผ ํ•จ๊ป˜ ๋ณด๋‚ด์ค€๋‹ค.

  6. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ธ์ฆ์„œ๋ฅผ ํ™•์ธ ํ›„, ๋‚œ์ˆ˜ ๋ฐ”์ดํŠธ๋ฅผ ์ž์‹ ์˜ ๊ฐœ์ธํ‚ค๋กœ ๋ณตํ˜ธํ™” ํ›„ ๋Œ€์นญ ๋งˆ์Šคํ„ฐ ํ‚ค ์ƒ์„ฑ์— ํ™œ์šฉํ•œ๋‹ค.

  7. ํด๋ผ์ด์–ธํŠธ๋Š” handshake ๊ณผ์ •์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” finished ๋ฉ”์‹œ์ง€๋ฅผ ์„œ๋ฒ„์— ๋ณด๋‚ด๋ฉด์„œ, ์ง€๊ธˆ๊นŒ์ง€ ๋ณด๋‚ธ ๊ตํ™˜ ๋‚ด์—ญ๋“ค์„ ํ•ด์‹ฑ ํ›„ ๊ทธ ๊ฐ’์„ ๋Œ€์นญํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•˜์—ฌ ๊ฐ™์ด ๋‹ด์•„ ๋ณด๋‚ด์ค€๋‹ค.

  8. ์„œ๋ฒ„๋„ ๋™์ผํ•˜๊ฒŒ ๊ตํ™˜ ๋‚ด์šฉ๋“ค์„ ํ•ด์‹ฑํ•œ ๋’ค ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ณด๋‚ด์ค€ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š” ์ง€ ํ™•์ธํ•œ๋‹ค. ์ผ์น˜ํ•˜๋ฉด ์„œ๋ฒ„๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ finished ๋ฉ”์‹œ์ง€๋ฅผ ์ด๋ฒˆ์— ๋งŒ๋“  ๋Œ€์นญํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•˜์—ฌ ๋ณด๋‚ธ๋‹ค.

  9. ํด๋ผ์ด์–ธํŠธ๋Š” ํ•ด๋‹น ๋ฉ”์‹œ์ง€๋ฅผ ๋Œ€์นญํ‚ค๋กœ ๋ณตํ˜ธํ™”ํ•˜์—ฌ ์„œ๋กœ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ ์‹ ๋ขฐ๋ฐ›์€ ์‚ฌ์šฉ์ž๋ž€ ๊ฑธ ์ธ์ง€ํ•˜๊ณ , ์•ž์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ํ•ด๋‹น ๋Œ€์นญํ‚ค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

Last updated