Search
Duplicate

TLS / SSL Handshake

์ƒ์„ฑ์ผ
2023/03/25 01:05
ํƒœ๊ทธ
Network

TLS / SSL Handshake

ย SSL ์ด๋ž€?

โ€ข
SSL์€ ์›น์‚ฌ์ดํŠธ์™€ ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์ด์—์„œ ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ์„ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ๊ธฐ์ˆ ์ด๋‹ค.
โ€ข
์ด๋ฅผ ํ†ตํ•ด, ๊ฐœ์ธ ๋ฐ์ดํ„ฐ๋‚˜ ๊ธˆ์œต ๋ฐ์ดํ„ฐ ๋“ฑ์˜ ์ „์†ก๋˜๋Š” ์ •๋ณด๋ฅผ ๋ณด๊ฑฐ๋‚˜ ํ›”์น˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•œ๋‹ค.

ย TLS ๋ž€?

โ€ข
TLS (์ „์†ก ๊ณ„์ธต ๋ณด์•ˆ)๋Š” SSL์˜ ๋ฐœ์ „๋œ ๋ฒ„์ „์ด๋‹ค.
โ€ข
์ฆ‰, ์ธํ„ฐ๋„ท ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ์œ„ํ•œ ๊ฐœ์ธ ์ •๋ณด์™€ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.
SSL์ด ๋” ์ผ๋ฐ˜์ ์ธ ์šฉ์–ด์ด๊ณ , ๋ณด์ธ ์ธ์ฆ์„œ๋Š” ์—ฌ์ „ํžˆ SSL์ด๋ผ๊ณ  ํ•œ๋‹ค.

ย TLS / SSL Handshake

โ€ข
TLS ์—ฐ๊ฒฐ์„ ํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €(์‚ฌ์šฉ์ž)์™€ ์›น์„œ๋ฒ„๊ฐ€ ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ณผ์ •.
โ€ข
์ฆ‰, ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๊ฐ€ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ์ผ๋ จ์˜ ํ˜‘์ƒ ๊ณผ์ •์ด๋‹ค.
โ€ข
์ด ํ˜‘์ƒ๊ณผ์ •์—๋Š” ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ๋“ค์ด ํฌํ•จ๋œ๋‹ค.
โ—ฆ
SSL ์ธ์ฆ์„œ ์ „๋‹ฌ
โ—ฆ
๋Œ€์นญํ‚ค ์ „๋‹ฌ
โ—ฆ
์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฒฐ์ •
โ—ฆ
TLS / SSL ํ”„๋กœํ† ์ฝœ ๊ฒฐ์ •
SSL(๋ณด์•ˆ ์†Œ์ผ“ ๊ณ„์ธต) ์ธ์ฆ์„œ๋Š” ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ์‚ฌ์ด์˜ ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฆฝํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

ย ๊ณผ์ •

1.
Client Hello : Client๊ฐ€ Server์— ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•˜๋ฉฐ ์ „์†กํ•˜๋Š” ํŒจํ‚ท์ด๋‹ค.
โ€ข
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์„ธ์…˜ ID, SSL ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „, Random Byte ๋“ฑ ์ „๋‹ฌ
2.
Server Hello : Client๊ฐ€ ๋ณด๋‚ด์˜จ Client Hello ํŒจํ‚ท์„ ๋ฐ›๊ณ , ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•ด์„œ Client์—๊ฒŒ ์•Œ๋ฆฐ๋‹ค.
โ€ข
์ž์‹ ์˜ SSL ํ”„๋กœํ† ์ฝœ๋„ ๊ฐ™์ด ๋ณด๋‚ธ๋‹ค.
3.
Certificate : Server๊ฐ€ CA ์˜ ๊ฐœ์ธํ‚ค๋กœ ์•”ํ˜ธํ™”๋œ ์ž์‹ ์˜ SSL ์ธ์ฆ์„œ๋ฅผ Client์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.
โ€ข
์ธ์ฆ์„œ ๋‚ด๋ถ€์— Server๊ฐ€ ๋ฐœํ–‰ํ•œ ๊ณต๊ฐœํ‚ค๊ฐ€ ๋“ค์–ด์žˆ๋‹ค.
โ€ข
Client๋Š” CA ์˜ ๊ณต๊ฐœํ‚ค๋กœ ๋ณตํ˜ธํ™˜ํ•œ๋‹ค โ†’ ์„ฑ๊ณตํ•˜๋ฉด ์ด SSL ์ธ์ฆ์„œ๋Š” CA ๊ฐ€ ์„œ๋ช…ํ•œ ๊ฒƒ ํ™•์ธ
4.
Server Key Exchange / ServerHello Done : Server์˜ ๊ณต๊ฐœํ‚ค๊ฐ€ SSL ์ธ์ฆ์„œ์— ์—†๋Š” ๊ฒฝ์šฐ, Server๊ฐ€ ์ง์ ‘ ์ „๋‹ฌํ•œ๋‹ค(์žˆ์œผ๋ฉด ์ƒ๋žต), ๊ทธ๋ฆฌ๊ณ  Server๊ฐ€ ํ–‰๋™์„ ๋งˆ์ณค์Œ์„ ์ „๋‹ฌํ•œ๋‹ค.
5.
Client Key Exchange : ๋Œ€์นญํ‚ค๋ฅผ Client๊ฐ€ ์ƒ์„ฑํ•ด์„œ ์œ„์—์„œ ์–ป์€ Server์˜ ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•ด์„œ ์ „๋‹ฌํ•œ๋‹ค.
โ€ข
์—ฌ๊ธฐ์„œ ์ „๋‹ฌํ•œ ๋Œ€์นญํ‚ค๊ฐ€ TLS/SSL Handshake ์˜ ๋ชฉ์ ์ด๋‹ค.
โ€ข
์ดํ›„ ์ด ๋Œ€์นญํ‚ค๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ ๊ตํ™˜ํ•œ๋‹ค.
6.
ChangeCipherSpec / Finished : ํŒจํ‚ท์œผ๋กœ ๊ตํ™˜ํ•  ์ •๋ณด๋ฅผ ๋ชจ๋‘ ๊ตํ™˜ํ•œ ๋’ค, ํ†ต์‹ ํ•  ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๊ณ  ์•Œ๋ฆฐ๋‹ค.
*CA - ์ธ์ฆ์„œ์˜ ์ง„/๊ฐ€๋ฅผ ๋ณด์žฅํ•ด์ฃผ๋Š” ๊ณต์ธ๋œ ์ธ์ฆ ๊ธฐ๊ด€

ref)