SSL๊ณผ TLS
๊ณต๊ฐํค(๋น๋์นญํค), ๋น๊ณต๊ฐํค(๋์นญํค)
SSL ๋์๋ฐฉ์
Handshake
SSL(Secure Sockets Layter)์ TLS(Transport Layer Security)์ ๊ฐ์ ๊ฒ์ด๋ผ๊ณ ํ ์ ์๋ค. SSL์ TCP/IP ์ํธํ ํต์ ์์ ์ฌ์ฉ๋๋ ๊ท์ฝ์ด๊ณ SSL 3.0 ๋ฒ์ ์ดํ์๋ IETF์์ TLS 1.0์ผ๋ก ๊ท์ ํ์ต๋๋ค.
์ํธํ๋ ํ ์คํธ๋ฅผ ๋๊ตฌ๋ ์ฝ์ง ๋ชปํ๋๋ก ํ๊ธฐ์ํด์ ์ํธํํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ฉฐ ํค๋ ์ํธํ ๋์์ ๋ณ๊ฒฝํ๋ ๋งค๊ฐ๋ณ์ ์ญํ ์ ํ๋ฉฐ ํค์ ๋ฐ๋ผ์ ์ํธ๊ฐ ๋ฌ๋ผ์ง๋ฏ๋ก ํค๋ฅผ ๋ชจ๋ฅด๋ฉด ๋ณตํธํ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค.
SSL ์ํธํ ๋ฐฉ๋ฒ
- ๋์นญํค
- ๊ณต๊ฐํค
๊ณต๊ฐํค ์ํธํ ๋ฐฉ์์ ๋๊ฐ์ ํค๋ฅผ ์ฌ์ฉํ๋ค. ๋ ํค์ค์์ ํ๋๋ฅผ ๊ฐ์ธํค(private key, ๋น๊ณต๊ฐํค)๋ผ๊ณ ํ๋ฉฐ ๋๋จธ์ง ํ๋๋ฅผ ๊ณต๊ฐํค(public key)๋ผ๊ณ ํ๋ค. ๊ณต๊ฐํค๋ก ์ํธํํ๊ณ ๊ณต๊ฐํค์ ๋งค์นญ๋๋ ๊ฐ์ธํค๋ก๋ง ๋ณตํํ ์ ์์ผ๋ฉฐ, ๊ณต๊ฐํค๋ ๋๊ตฌ๋ ์ง ์์๋ ์๊ด ์๊ณ , ๊ฐ์ธํค๋ ๋ณตํธํํ๋ ์ชฝ๋ง ์ ์ ์๋๋ก ํด์ผ ํ๋ค.
์ฝ๊ฒ ๋งํด์ ์ํธํํ ๋์ ๋ณตํธํํ ๋ ์ด์ฉํ๋ ํค๊ฐ ๋ค๋ฅธ ํค, ๋น๋์นญ์ธ ์ํธํ ๋ฐฉ์์ด ๊ณต๊ฐํค ์ํธํ์ด๋ค.
- RSA
- ElGamal
- ECC(Eliptic Curve Crytosystems)
- Digital Signature(์ ์์๋ช )
๊ณต๊ฐํค ์ํธํ ๋ฐฉ์์ ๋ ํค๋ฅผ ์ฌ์ฉํ๋ค. ๋๋ต์ ์ผ๋ก ๋งํ๋ฉด ์ํธํ(ํ๋ฌธ ์ํธํ)๋ง ํ ์ ์๋ ํค(๊ณต๊ฐํค), ๊ทธ๋ฆฌ๊ณ ๋ณตํธํ(์ํธ๋ฌธ์ ํ๋ฌธ์ผ๋ก)๋ง ํ ์ ์๋ํค(๋น๋ฐํค, ๋น๊ณต๊ฐํค)๋ฅผ ๊ตฌ๋ถํ์ฌ ๊ณตํตํค ์ํธ๋ฐฉ์์ ๋ฌธ์ ์ธ ์ด์ก๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ณต๊ฐํค ์๊ณ ๋ฆฌ์ฆ
1. ํค ์์ฑ ...์ํธํ ํค E(๊ณต๊ฐํค)์ ๋ณตํธํ ํค D(๋น๋ฐํค)๋ฅผ ์ค๋นํ๋ค.
2. ์ํธํ ...์ํธํ ํค E๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ฌธ M์ ์ํธ๋ฌธ C๋ก ๋ณํ ํ ์ ์๋ค.
3. ๋ณตํธํ ...๋ณตํธํ ํค D๋ฅผ ์ฌ์ฉํ์ฌ ์ํธ๋ฌธ C๋ฅผ ํ๋ฌธ M์ผ๋ก ๋ณํํ ์ ์๋ค.
์ ์์๋ช
์ ๋น๋ฐํค๋ ํ๋ฌธ์ ์ฌ์ฉํ์ฌ ์๋ช
ํ๊ธฐ ์ํ ๊ฒ์ด๊ณ , ๊ณต๊ฐํค๋ ์๋ช
์ด ์ฌ๋ฐ๋ฅธ์ง ๊ฒ์ฆํ๋ ๊ฒ์ด๋ค. ์ฆ ๊ณต๊ฐํค ์ํธํ์์์ ๋น๋ฐํค์ ๊ณต๊ฐํค์ ์ญํ ๊ณผ๋ ์ ํ ๋ค๋ฅด๋ค.
1. B๋ CA์๊ฒ ์์ ์ด B์์ ์ฆ๋ช
ํ๊ณ ์์ ์ ๊ณต๊ฐํค๊ฐ B์ ๊ณต๊ฐํค๊ฐ ๋ง์์ ์ธ์ฆํ๋ ์ธ์ฆ์ ๋ฐ๊ธํ๋ค.
2. A์๊ฒ B์ ๊ณต๊ฐํค๊ฐ ํฌํจ๋ ์ด ์ธ์ฆ์๋ฅผ ์ค๋ค.
3. ์ด๋ฅผ ๋ฐ์ A๋ ์์ ์ด ์ ๋ขฐํ ์ ์๋ CA์๊ฒ CA๊ฐ ๋ฐ๊ธํ ์ธ์ฆ์์ธ์ง ํ์ธํ๋ค.
4. ๋ง์ผ๋ฉด ๊ทธ ์ธ์ฆ์์ ํฌํจ๋ B์ ๊ณต๊ฐํค๋ก ๋ฐ์ดํฐ๋ฅผ ์ํธํํด์ B์๊ฒ ์ ๋ฌํ๋ค.
๋น๋์นญํค์๋ ๋ฐ๋๋ก ๋์นญํค๋ผ๊ณ ํ๋ค. a, b์ฌ์ด์ private key 1๊ฐ๋ฅผ ๊ณต์ ํ๊ณ ๊ทธ ํค๋ฅผ ํตํด์ ์ํธํ ๋ณตํธํํ๋ค. ๋ง์ฝ์ "ABCD"๋ผ๋ ํค๋ก ์ํธํ๋ฅผ ํ๋ฉด ๋ณตํธํ์์ "ABCD"๋ฅผ ์ ๋ ฅํด์ผํ๋ค. ๋์นญํค๋ฅผ ๋๊ตฐ๊ฐ ๋์ฒญํ๊ฑฐ๋, ์ ์ถ๋๋ค๋ฉด ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ ์์๋ผ ์ ์๋ค. ๋น๊ณต๊ฐํค์ ํ๋์ ์ข ๋ฅ๋ก ๋ธ๋ก ์ํธ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ค. ๋์นญํค ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์,๋ณตํธํ ์ ๋ฐ์ดํฐ๋ฅผ ๋ธ๋ก ๋จ์๋ก ์ฒ๋ฆฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก SSL/TLS์์ ๋ง์ด ์ฌ์ฉ๋๋ค.
๋์นญํค ์ํธํ๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ๊ฐ์ ํค๋ฅผ ์ฌ์ฉํด์ผ ํ๋ฏ๋ก ํค๋ฅผ ๊ณต์ ํ๋๋ฐ ๋ฌธ์ ๊ฐ ์๊ณ , ๋น๋์นญํค ์ํธํ๋ ๊ณต๊ฐํค๋ฅผ ๋ฐฐํฌํจ์ผ๋ก์จ ํค ๊ณต์ ๋ฌธ์ ๋ ํด๊ฒฐ๋์ง๋ง, ์ฒ๋ฆฌ ์๋๊ฐ ๋๋ฆฐ ๋ฌธ์ ๊ฐ ์๋ค. HTTPS ํต์ ์์ ์ค์ ์ ์ก๋๋ ๋ฐ์ดํฐ์ ์ํธํ์๋ ๋์นญํค ์ํธํ ๋ฐฉ์์ ์ฌ์ฉํ๊ณ , ํค ๊ตํ์๋ ๋น๋์นญํค ์ํธํ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์๋ค.
SSL์ ๋์ ๋ฐฉ์์ ์๊ธฐ ์ํด์๋ ์ธ์ฆ๊ธฐ๊ด์ ๋ํ์ฌ ์์์ผ ํ๋ค.
HTTPS ํต์ ์์๋ ์ 3์ ์ธ์ฆ์ ์ฌ์ฉํ๋ค. ์ธ์ฆ๊ธฐ๊ด CA๋ก๋ถํฐ ๊ณต์ธ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ์์ ์๋ฒ์ ์ค์นํด์ผ ๊ฒฝ๊ณ ์์ด HTTPS ํต์ ์ ํ ์ ์๋ค. ์ธ์ฆ๊ธฐ๊ด์ ์ธ์ฆ์ ๋ฐ์๋ค๋ ๊ฒ์ ์น ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์์ ์๋ฅผ ๋ณด์ฆํด์ค๋ค๋ ์๋ฏธ์ด๋ค. ์์ธํ๋ ์น ์๋น์ค ์ ๊ณต์์ ๊ณต๊ฐํค๊ฐ ํค ์์ ์์ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋ณด์ฆํด์ฃผ๋ ๊ฒ์ด๋ค.
HTTPS๋ก ์น์๋น์ค๋ฅผ ์ ๊ณตํ๋ ค๋ ์ฌ๋์ ์์ ์ ๊ณต๊ฐํค์ ๊ฐ์ธํค๋ฅผ ์์ฑํ๊ณ , ๊ณต๊ฐํค๋ฅผ ์ธ์ฆ๊ธฐ๊ด์ ๋ณด๋ธ๋ค. ์ธ์ฆ๊ธฐ๊ด์์๋ ๋ณด๋ด์จ ๊ณต๊ฐํค, ์ ํจ๊ธฐ๊ฐ, ๋๋ฉ์ธ ๋ฑ์ ์ ๋ณด๋ฅผ ํฌํจํ์ฌ ์ธ์ฆ๊ธฐ๊ด์ ๊ฐ์ธํค๋ก ์ ์์๋ช ํ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ๋ค.
์น์๋น์ค ์ ๊ณต์๋ ๋ฐ๊ธ๋ฐ์ ์ธ์ฆ์์ ์์ ์ ๊ฐ์ธํค๋ฅผ ์น์๋ฒ์ ์ค์ ํ์ฌ HTTPS ํต์ ์ ํ ์ ์๊ฒ ๋๋ค.
ํด๋ผ์ด์ธํธ ์ฆ, ์น ๋ธ๋ผ์ฐ์ ์๋ ์ด๋ฏธ ์ฌ๋ฌ ์ธ์ฆ๊ธฐ๊ด์ ๊ณต๊ฐํค๋ฅผ ํฌํจํ ์ธ์ฆ์๊ฐ ์ด๋ฏธ ์ค์น๋์ด ์๋ค. ๊ทธ๋์ ์น์๋ฒ์ ํต์ ์ ์ธ์ฆ๊ธฐ๊ด์ ๊ฐ์ธํค๋ก ์๋ช ๋ ์ธ์ฆ์๋ฅผ ๋ฐ์์ ๋ ์ด๋ฏธ ์ค์น๋์ด ์๋ ์ธ์ฆ๊ธฐ๊ด์ ๊ณต๊ฐํค๋ก ๋ณตํธํ๊ฐ ๊ฐ๋ฅํ ๊ฒ์ด๋ค.
์ธ์ฆ๊ธฐ๊ด์ผ๋ก๋ถํฐ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ์์ ์น์๋ฒ์ ์ค์นํ๊ณ HTTPS ํต์ ์ด ๊ฐ๋ฅํ ์ํ๋ผ๊ณ ๊ฐ์ ํ๋ค.
- ์ฌ์ฉ์๊ฐ ์น๋ธ๋ผ์ฐ์ ๋ก ์ฌ์ดํธ์ ์ ์ํ๋ฉด ์น์๋ฒ๋ ์ธ์ฆ์๋ฅผ ์น ๋ธ๋ผ์ฐ์ ์๊ฒ ๋ณด๋ธ๋ค. ์ด ์ธ์ฆ์์๋ ์ธ์ฆ๊ธฐ๊ด์ ๊ฐ์ธํค๋ก ์ํธํ๋ ์ฌ์ดํธ์ ์ ๋ณด์ ๊ณต๊ฐํค๊ฐ ๋ค์ด์๋ค.
- ์น ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฏธ ๊ฐ์ง๊ณ ์๋ ์ธ์ฆ๊ธฐ๊ด์ ๊ณต๊ฐํค๋ก ์น ์๋ฒ์์ ๋ฐ์ ์ธ์ฆ์๋ฅผ ๋ณตํธํํด์ ํ์ธํ๋ค.
- ์น ๋ธ๋ผ์ฐ์ ๋ ์ค์ ๋ฐ์ดํฐ์ ์ํธํ์ ์ฌ์ฉ๋ ๋์นญํค๋ฅผ ์์ฑํ๊ณ , ์ธ์ฆ์์์ ๊บผ๋ธ ์น ์๋ฒ ์ธก์ ๊ณต๊ฐํค๋ก ์ํธํํด์ ์น ์๋ฒ๋ก ๋ณด๋ธ๋ค.
- ์น ์๋ฒ๋ ์์ ์ด ๊ฐ์ง๊ณ ์๋ ๊ฐ์ธํค๋ก ์น ๋ธ๋ผ์ฐ์ ๊ฐ ๋ณด๋ด์จ ๋์นญํค๋ฅผ ๋ณตํธํํด์ ์ป์ต๋๋ค. ์ด์ ์ด ๋์นญํค๋ก ๋ฐ์ดํฐ๋ฅผ ์ํธํํด์ ์ฃผ๊ณ ๋ฐ๊ฒ ๋๋ค.
์ค์ ๋ฐ์ดํฐ ์ ์ก์ ์ํด ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ง์ํ๋ ์ํธํ ๋ฐฉ์๊ณผ ์๋ฒ๊ฐ ์ง์ํ๋ ์ํธํํ๋ ๋ฐฉ์๋ค ์ค ๋ ๋ค ์ง์ํ๋ ์ํธํ ๋ฐฉ์์ ์ ํํ๋ ๋ฑ์ ๋ง์ ์์ ์ด ์๊ณ , ํค ๊ตํ๋ ๋ค๋ฅธ ๋ฐฉ์์ด ์์ ์ ์๋ค.
์์ ์ธ๊ธํ ๊ฒ๊ณผ ๊ฐ์ด ๋์นญํค๋ฅผ ๊ณต์ ํ ๋ ์ธ๋ถ๋ก์ ๋ ธ์ถ์ด ๋ฐ์ํ๊ฒ ๋๋ค. ๋ง์ฝ ์ด ํค๋ฅผ ์ค๊ฐ์์ ๊ฐ๋ก์ฑ๋ ์ผ์ด ๋ฐ์ํ๊ฒ ๋๋ฉด ์๋๊ธฐ ๋๋ฌธ์, ์ฐ๋ฆฌ๋ ๋์นญํค ๋์ ์ ๋น๋์นญํค๋ก ์ํธํ ํต์ ์ ํ๋ฉด ๋์ง ์์ ๊ฒ์ธ๊ฐ ์๊ฐํ๋ค. ํ์ง๋ง ๋๋ฌด ๋๋ฆฌ๊ณ ๋นํจ์จ์ ์ด๋ค. ๊ทธ๋์ ์ฒ์์ ๋์นญํค๋ฅผ ๊ตํํ ๋๋ง ๋น๋์นญํค ์ํธ๋ฅผ ์ฌ์ฉํ๋๋ฐ, TLS๊ฐ ๋ฐ๋ก ๊ทธ๋ ๊ฒ ๋์ํ๋ค.
- ๊ธฐ๋ฐ์ฑ
- ๋์นญํค ์ํธ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๊ธฐ๋ฐ์ฑ์ ์ ๊ณตํ ์ ์๋ค. ๋จ๋ค์ด ๋ฐ์ดํฐ๋ฅผ ํ์ณ๊ฐ๋ ๋ณผ ์ ์๋ ๋น๋ฐ์ ์ ๊ณตํ๋ค.
- ๋ฌด๊ฒฐ์ฑ
- ๋ฉ์์ง ์ธ์ฆ์ฝ๋(MAC: Message Authentication Code)๋ฅผ ํตํด์ ๋ฉ์์ง ์ธ์ฆ์ ์ ๊ณตํ๋ค. ๋ณ์กฐ ์ฌ๋ถ ํ์ธ ๊ฐ๋ฅ.
- ์ธ์ฆ
- ์ฐ๊ฒฐ ์ด๊ธฐ ์ค์ ์์ ์ฃผ๊ณ ๋ฐ๋ ์ธ์ฆ์๋ฅผ ํตํด์ ์ ํํ ์ ์๋ ๊ฐ์ฒด์ธ์ง ์ธ์ฆํ ์ ์๋ค.
TLS๋ ์ ์ก ๊ณ์ธต ์์์ TLS ๊ณ์ธต์ ๋ฐ๋ก ๋์ด ๋์ํ๊ฒ ๋๋ค. TLS๋ฅผ ์ฌ์ฉํ๋ ์ดํ๋ฆฌ์ผ์ด์ ํ๋กํ ์ฝ์ ๋์ s๊ฐ ๋ถ๊ฒ๋๋ TLS๊ธฐ๋ฐ HTTP -> HTTPS, TLS๊ธฐ๋ฐ FTP -> FTPS.
| ํ๋กํ ์ฝ | ๋ด์ฉ |
|---|---|
| Handshake | ์์ชฝ ๊ฐ์ ์ฐ๊ฒฐ์ ์ค์ ํ ๋ ๋ณด์ ํ์์ ์ํ ํ๋กํ ์ฝ์ด๋ค. |
| Change cipher spec | ๋ณด์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ ์ฉํ ๋ ์ฌ์ฉํ๋ค. ์๋ฅผ ๋ค์ด ๋์นญํค ์๊ณ ๋ฆฌ์ฆ์ ๋ณ๊ฒฝํ ๋ ์ดํ๋กํ ์ฝ์ด ์ฌ์ฉ๋๋ค. |
| Alert | ์ค๋ฅ๋ฅผ ์ ์กํ ๋ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ์ด๋ค. |
| Application Data | ์ค์ ๋ฐ์ดํฐ๊ฐ ์ ์ก๋ ๋ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ์ด๋ค. |
| Record | ํ์๋ ๋ณด์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ด์ฉํ์ฌ ์, ๋ณตํธํ, ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฆ๋ฑ์ ์ํํ๋ ํ๋กํ ์ฝ์ด๋ค. |
TLS๋ ์ธ์ ๊ณผ ์ฐ๊ฒฐ๋ณ๋ก ์ํ์ ๋ณด๋ฅผ ์ ์งํ๋ค. TLS๋ full handshake๋ฅผ ํตํด์ ์ธ์ ์ ์์ฑํ๊ณ ์ด ์ธ์ ์ ๋ณด๋ฅผ ๊ณต์ ํ๋ ์ฌ๋ฌ ์ฐ๊ฒฐ์ abbreviation handshake๋ฅผ ํตํด์ ์ฑ๋ฆฝํ๋ค. Full hanshoke๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ค๋ช ํ๋ค. Abbreviation handshake๋ ์ธ์ ์ด ์ด๋ฏธ ์กด์ฌํ ๋ ์ฌ์ฉํ๋ handshaking ๋ฐฉ์์ด๋ค.
- ์ฐ๊ฒฐ
- ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ ํต์ ์ ๋จ์
- ์ธ์
- ์ฐ๊ฒฐ์ ๋ค์๋ก ์ด๋ฃจ์ด์ง๊ณ ์ธ์ ์ ํ๋ฒ ์ฑ๋ฆฝ๋๋ฉด ๋ค์ ์ฐ๊ฒฐ์ ์ํด์ ์ํ ์ ์ง๋ฅผ ํ ์ ์๋ค.
- client -> server/
client hello
Client๊ฐ ์๋ฒ์ ์ ์ํ ๋
- random
- ํด๋ผ์ด์ธํธ๋ 32๋ฐ์ดํธ ๋์๊ฐ์ ์ ๋ฌ, ์ด ๋๋ค๊ฐ์ ๋น๋ฐ ๋ฐ์ดํฐ๋ฅผ ์ํด์ ์ฌ์ฉํ๋ค. ๋น๋ฐ ๋ฐ์ดํฐ = master secret
- session ID
- ์ธ์ ์ ์ฒ์ ์์ฑํ ๋๋ ๋น ๊ฐ, ์ด๋ฏธ ์์ฑ๋ ์ธ์ ์ด ์๋ค๋ฉด ๊ทธ ์ธ์ ID๋ฅผ ์ ๋ฌํ๋ค.
- cipher suite
- ํด๋ผ์ด์ธํธ๊ฐ ์ง์ ๊ฐ๋ฅํ ํค ๊ตํ ์๊ณ ๋ฆฌ์ฆ, ๋์นญํค ์ํธ ์๊ณ ๋ฆฌ์ฆ, ํด์ ์๊ณ ๋ฆฌ์ฆ ๋ฑ์ ์๋ ค์ค๋ค. ์ด์ค ์ต์ ์ ๋ฐฉ์์ ์ ํ
- server -> client/
server hello
์ฌ์ฉํ TLS๋ฒ์ , ํด๋ผ์ด์ธํธ, ์๋ฒ ๊ณตํต์ผ๋ก ์ง์ ๊ฐ๋ฅํ ์ต์ ์ cipher suite, ์์ถ๋ฐฉ์ ๋ฑ์ client์๊ฒ ์ ๋ฌ.
- random
- ์ญ์ server๋ 32๋ฐ์ดํธ ๋์ ์์ฑํด์ client์๊ฒ ์ ๋ฌ. master secret = ๋น๋ฐ๊ฐ ์์ฑํ ๋ ์ฌ์ฉํ๋ ๊ฒ.
- session ID
- ์ธ์ ์ ๋ณด
- server -> client/
Server certificate
์๊น TLS๊ฐ ์ธ์ฆ(๊ธฐ๋ฐ์ฑ, ๋ฌด๊ฒฐ์ฑ, ์ธ์ฆ) ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค๊ณ ํ๋๋ฐ, ์ด ์ธ์ฆ์๋ฅผ ํตํด์ ์๋ฒ๊ฐ ๋ฏฟ์๋งํ ์๋ฒ์ธ์ง ํ์ธํ๋ค.
- server -> client/
Server Key exchange
ํค ๊ตํ์ ํ์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค. ๋ง์ฝ ํ์์๋ค๋ฉด ์๋ต๊ฐ๋ฅํ๋ค. ํ์ง๋ง diffie-hellman์ ํค๊ตํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ด์ฉํ๋ค๋ฉด ์์, ์์๊ทผ ๋ฑ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ๋ฐ์ดํฐ ์ ์ก ์ฉ๋.
- server -> client/
Certificate request
์๋ฒ ์ญ์ ํด๋ผ์ด์ธํธ๋ฅผ ์ธ์ฆํด์ผํ ๋ ์ธ์ฆ์๋ฅผ ์๊ตฌํ ์ ์๋ค. ์์ฒญํ์ง ์์์๋ ์๋ค.
- server -> client/
Server hello done
์๋ฒ์ ์ธ์ฌ ๋ง๋ฌด๋ฆฌ.
- client -> server/
Certificate
๋ฐฉ๊ธ ์ ์๋ฒ๊ฐ ์์ฒญํ๋ ์ธ์ฆ์๋ฅผ ์ค ์ ์๋ค. ์์ฒญํ์ง ์์๋ค๋ฉด ํ์์๋ ๊ณผ์ ์ด๋ค.
- client -> server/
Client key exchange
ํค๊ตํ์ ํ์ํ ์ ๋ณด๋ฅผ ์๋ฒ์ ์ ๊ณต. ์ด ์ ๋ณด๋ฅผ pre-master secret์ด๋ผ๊ณ ํ๋๋ฐ ์ด๊ฒ ๋์นญํค์ ์ฌ์ฉ๋๋ ๊ฒ์ผ๋ก ๋ ธ์ถ๋๋ฉด ์๋๋ค. pre-master secret์ ์ด์ ์ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ๋๋ค๊ฐ์ ์กฐํฉํ์ฌ ์๋ฒ์๊ฒ ์ ์กํ๋ค. ์ํธํํ์ฌ ๋ณด๋ด์ผํ๊ธฐ ๋๋ฌธ์ ์ด์ ์ ๋ฐ์ ์ธ์ฆ์ ๋ด๋ถ์ ๊ณต๊ฐํค๋ก ์ํธํํ์ฌ ์ ์กํ๋ค. ํด๋ผ์ด์ธํธ๋ ์๊ธฐ๊ฐ ์์ฑํ์ผ๋ ์ด๋ฏธ ๊ฐ์ง๊ณ ์๊ณ , ์๋ฒ๊ฐ ๋ฌด์ฌํ ์ํธํ๋ pre-master secret์ ๋ฐ์๋ค๋ฉด ์์ ์ ๊ฐ์ธํค๋ก ๋ณตํธํํ ์ ์๋ค. ์ด์ ์๋ก๊ฐ pre-master secret์ ๊ณต์ ํ๊ณ ์๊ณ ์ด ๊ณผ์ ์ ๊ฑฐ์ณ client/server๋ master secret์ผ๋ก ๋ง๋ค๊ฒ ๋๋ค. client/server๋ master secret์ผ๋ก ์ธ์ ์ ์ฌ์ฉ๋ ํค๋ฅผ ์์ฑํ๋๋ฐ, ์ด ํค๊ฐ ๋ฐ๋ก ๋์นญํค์ด๋ค.
- client -> server/
Certificate Verify
ํด๋ผ์ด์ธํธ์ ๋ํ certificate request๋ฅผ ๋ฐ์๋ค๋ฉด ๋ณด๋ธ ์ธ์ฆ์์ ๋ํ ๊ฐ์ธํค๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ์ฆ๋ช ํ๋ค. handshake๊ณผ์ ์์ ์ฃผ๊ณ ๋ฐ์ ๋ฉ์์ง + master secret์ ์กฐํฉํ hash๊ฐ์ ๊ฐ์ธํฐ๋ก ๋์งํธ ์๋ช ํ์ฌ ์ ์กํ๋ค.
- client -> server/
Change cipher spec
ํ์๋ ๋ณด์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ์ฉํ๊ฑฐ๋ ๋ณ๊ฒฝํ ๋ ์๋ฒ์๊ฒ ์๋ฆฐ๋ค.
- client -> server/
Finished
ํด๋ผ์ด์ธํธ ๋.
- server -> client/
Change cipher spec
ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด์ ํ๋ผ๋ฏธํฐ ๋ณ๊ฒฝ์ ์๋ฆฐ๋ค.
- server -> client/
Finished
์๋ฒ ๋.
- server <-> client/
ํต์
์ ์์๋ช
๊ณผ ๊ณต๊ฐํค์ํธํ์ ์ฐจ์ด
- SSL๊ณผ TLS์ ๋ํด์ ์ค๋ช ํ์์ค.
- ๊ณต๊ฐํค ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด์ ์ค๋ช ํ์์ค.
- SSL ๋์ ๋ฐฉ์์ ์ด๋ป๊ฒ ๋๋์?
- SSL handshake์ ๋ํด์ ์ค๋ช ํ์ธ์.







