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 - ์ธ์ฆ์์ ์ง/๊ฐ๋ฅผ ๋ณด์ฅํด์ฃผ๋ ๊ณต์ธ๋ ์ธ์ฆ ๊ธฐ๊ด