SSL/TLS์ ๋ํ ๊ฐ๋ ๋ฐ ์๋ ๋ฐฉ์์ ๋ํด ์ ๋ฆฌํด๋ณด์๋ค.
๐ SSL/TLS
๊ฐ๋
- SSL์ 1995๋
Netscape ์ฌ์ ์น ๋ธ๋ผ์ฐ์ ๋ณด์ ํ๋กํ ์ฝ๋ก ์ฒ์ ๋ฑ์ฅํ์๊ณ ,
1999๋ IETF์ ์ํด SSL 3.1์ ํ์คํํ TLS ๋ฒ์ 1.0์ด ๋ฐํ๋์๋ค.
๐ SSL๊ณผ TSL์ ํต์์ ์ผ๋ก ๊ฐ์ ์๋ฏธ๋ก ์ฐ์ธ๋ค. - SSL/TLS์ ์ฌ์ฉํ์ฌ ์ํธํ๋ ์ฐ๊ฒฐ์ ํ๋ HTTP๋ฅผ HTTPS๋ผ๊ณ ํ๋ค.
- ๋์นญํค, ๋น๋์นญํค ์ํธํ์ ๋จ์ ์ ๋ณด์ํ๋ค.
๐ ๋์นญํค, ๋น๋์นญํค ์ํธํ ๋ฐฉ์
(1) ๋์นญํค ์ํธํ
์ํธํ, ๋ณตํธํ์ ์ฌ์ฉ๋๋ ํค๊ฐ ๋์ผํ๋ค.
๋น๋์นญํค ์ํธํ ๋ฐฉ์์ ๋นํด ์๋๊ฐ ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ์์ง๋ง,
์ฒ์ ํค๋ฅผ ๊ตํํ๋ ๊ณผ์ ์์ ํค ํ์ทจ์ ์ํ ๋ณด์ ์ฝ์ ์ด ์กด์ฌํ๋ค.
(2) ๋น๋์นญํค ์ํธํ
์ํธํ, ๋ณตํธํ์ ์ฌ์ฉ๋๋ ํค๊ฐ ๋ค๋ฅด๋ค.
๋์นญํค ์ํธํ ๋ฐฉ์์ ๋นํด ์๋๊ฐ ๋๋ฆฌ๋ค๋ ๋จ์ ์ด ์์ง๋ง,
๋์นญํค ์ํธํ ๋ฐฉ์์ ํค ๊ต๋กผ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
โ๏ธ ๋น๋์นญํค ์ํธํ ๋ฐฉ์ ์ค๋ช
๊ณต๊ฐํค์ ๊ฐ์ธํค๋ฅผ ๊ฐ์ง๋๋ฐ,
๊ณต๊ฐํค๋ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ ๊ทผ ๊ฐ๋ฅํ ํค์ด๋ฉฐ, ๊ฐ์ธํค๋ ๊ฐ ์ฌ์ฉ์๋ง์ด ๊ฐ์ง๋ ํค์ด๋ค.
1. A์ B ์ฌ์ฉ์๊ฐ ์๋ค๊ณ ํ ๋, B๊ฐ ๊ณต๊ฐํค/๊ฐ์ธํค ์์ ์์ฑํ๋ค.
2. A๊ฐ B๋ก ์ ์ ์์ฒญ์ ๋ณด๋ธ๋ค.
3. B๋ A์๊ฒ ์์ ์ ๊ณต๊ฐํค๋ฅผ ์ ์กํ๋ค.
4. A๊ฐ B์ ๊ณต๊ฐํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ค.
5. ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ B์๊ฒ ์ ์กํ๋ค.
6. B๋ ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ B์ ๊ฐ์ธํค๋ก ๋ณตํธํํ๋ค.
๐ ๊ณต๊ฐํค์ ์์ ์ด๋ฃจ๋ ๊ฐ์ธํค๋ง์ด ๋ณตํธํํ ์ ์์ผ๋ฏ๋ก, B๋ง์ด ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์ ์๋ค.
SSL/TLS์ ์ํธํ ๋ฐฉ์
SSL/TLS๋ ๋์นญํค, ๋น๋์นญํค ๋ฐฉ์์ ํผํฉํ์ฌ ์ฌ์ฉํจ์ผ๋ก์จ ๊ทธ ๋จ์ ์ ๊ทน๋ณตํ๋ค.
์ฒ์ ํค ๊ตํ ์์๋ง ๋น๋์นญํค ๋ฐฉ์์ ์ฌ์ฉํ๊ณ , ์ดํ๋ก๋ ๋์นญํค ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
- A์ B ์ฌ์ฉ์๊ฐ ์๋ค๊ณ ํ ๋, B๋ ๊ณต๊ฐํค/๊ฐ์ธํค ์์ ์์ฑํ๋ค.
- A๊ฐ B๋ก ์ ์ ์์ฒญ์ ๋ณด๋ธ๋ค.
- B๋ A์๊ฒ ์์ ์ ๊ณต๊ฐํค๋ฅผ ์ ์กํ๋ค.
- A๋ ์์ ์ ๋์นญํค๋ฅผ B์์ ์ ๋ฌ ๋ฐ์ B์ ๊ณต๊ฐํค๋ก ์ํธํํ๋ค.
- ์ํธํํ ๋ค์ ์ ๋์นญํค๋ฅผ B์๊ฒ ์ ๋ฌํ๋ค.
- B๋ ์์ ์ ๊ฐ์ธํค๋ก ๋ณตํธํํ์ฌ A์ ๋์นญํค๋ฅผ ์ป๋๋ค.
- ์ป์ ๋์นญํค๋ฅผ ํ์ฉํ์ฌ A์ B๋ ์์ ํ๊ณ ๋น ๋ฅด๊ฒ ๋์นญํค ์ํธํ ๋ฐฉ์์ผ๋ก ํต์ ํ๋ค.
SSL/TLS Handshake
ํต์ ์ ํ๋ ๋ธ๋ผ์ฐ์ ์ ์น ์๋ฒ๊ฐ ์๋ก ์ํธํ ํต์ ์ ์์ํ ์ ์๋๋ก
์ ๋ถ์ ํ์ธํ๊ณ , ํ์ํ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ณผ์ ์ด๋ค.
์๋๋ Handshake ๊ณผ์ ์ ํํํ ๊ทธ๋ฆผ์ด๋ค. ํ๋ ์นธ๊ณผ ๋ ธ๋ ์นธ์ ๋คํธ์ํฌ ์์์ ์ ๋ฌ๋๋ IP ํจํท์ด๋ค.
- ํ๋ ์นธ์ TCP ๋ ์ด์ด์ 3-Way Handshake๋ก, HTTPS๋ TCP ๊ธฐ๋ฐ์ ํ๋กํ ์ฝ์ด๋ฏ๋ก
SSL/TLS Handshake์ ์์ ์ฐ๊ฒฐ ์์ฑ์ ์ํด ์ค์ํ๋ ๊ณผ์ ์ด๋ค. - ๋ ธ๋ ์นธ์ ํด๋นํ๋ ํจํท๋ค์ด SSL/TLS Handshake์ด๋ค.
- ClientHello
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ฐ๊ฒฐ์ ์๋ํ๋ฉฐ ์ ์กํ๋ค. - ServerHello
์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ClientHello ํจํท์ ๋ฐ๊ณ , ํด๋ผ์ด์ธํธ์๊ฒ ์๋ฆฐ๋ค. - Certificate
์๋ฒ๋ ์์ ์ ์ธ์ฆ์๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํ๋ค. (์๋ฒ์ ๊ณต๊ฐํค๊ฐ ๋ค์ด์๋ค.)
ํด๋ผ์ด์ธํธ๋ ์๋ฒ๊ฐ ๋ณด๋ธ ์ํธํ๋ ์ธ์ฆ์๋ฅผ CA์ ๊ณต๊ฐํค๋ก ๋ณตํธํํ๋ค.
๐ ๋ณตํธํ ์ฑ๊ณต ์ ํด๋น ์ธ์ฆ์๋ CA๊ฐ ์๋ช ํ ๊ฒ์ด ๋ง์ผ๋ ์ง์ง์์ด ๊ฒ์ฆ๋๋ค. - ServerKeyExchange
์๋ฒ์ ๊ณต๊ฐํค๊ฐ ์ธ์ฆ์ ๋ด๋ถ์ ์๋ค๋ฉด, ์๋ฒ๊ฐ ์ง์ ์ ๋ฌํ๋ค๋ ๋ป์ผ๋ก,
ServerKeyExchange๊ฐ ํ์ํ์ง๋ง, ๋ฐ๋์ ๊ฒฝ์ฐ์๋ ServerKeyExchange๋ ์๋ต๋๋ค. - ServerHelloDone
์ธ์ฆ์ ๋ด๋ถ์ ์๋ฒ์ ๊ณต๊ฐํค๊ฐ ์๋ค๋ฉด, ํด๋ผ์ด์ธํธ๊ฐ CA์ ๊ณต๊ฐํค๋ฅผ ํตํด ์ธ์ฆ์๋ฅผ ๋ณตํธํํ ํ
์๋ฒ์ ๊ณต๊ฐํค๋ฅผ ํ๋ณดํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ฒ๊ฐ ํ๋์ ๋ง์ณค์์ ์ ๋ฌํ๋ค. - ClientKeyExchange
ํด๋ผ์ด์ธํธ๋ ๋ฐ์ดํฐ ์ํธํ์ ์ฌ์ฉํ ๋์นญํค๋ฅผ ์์ฑํ ํ,
์ธ์ฆ์ ๋ด๋ถ์์ ์ถ์ถํ ์๋ฒ์ ๊ณต๊ฐํค๋ฅผ ์ด์ฉํ์ฌ ์ํธํํ์ฌ ์๋ฒ์๊ฒ ์ ๋ฌํ๋ค.
๐ ์ฌ๊ธฐ์ ์ ๋ฌ๋ ๋์นญํค๊ฐ Handshake์ ๋ชฉ์ ์ด์, ์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ์ํธํํ ํค์ด๋ค. - ChangeCipherSpec
๊ตํํด์ผ ํ ์ ๋ณด๋ฅผ ๋ชจ๋ ๊ตํํ ๋ค, ๋ชจ๋ ์ค๋น๊ฐ ์๋ฃ๋์์์ ์๋ฆฌ๋ ํจํท์ด๋ค. - Finished
HandShake๋ฅผ ์ข ๋ฃํ๋ค.
SSL/TLS์ด ์ ๊ณตํ๋ ๋ณด์ ์๋น์ค
- ๊ธฐ๋ฐ์ฑ
๋์นญํค, ๋น๋์นญํค ์ํธํ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ฐ์ฑ์ ์ ๊ณตํ๋ค. - ๋ฌด๊ฒฐ์ฑ
๋ฐ์ดํฐ ์๋ณ์กฐ๋ฅผ ํ์ธํ๋ค. - ์ธ์ฆ
์ฐ๊ฒฐ ์ด๊ธฐ ์ค์ ์์ ์ฃผ๊ณ ๋ฐ๋ ์ธ์ฆ์๋ฅผ ํตํด ์ ๋ขฐํ ์ ์๋ ์ฌ์ฉ์์ธ์ง ๋ณด์ฅํ ์ ์๋ค.
์ฐธ๊ณ
'5๏ธโฃ CS > Network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Network] Sync/Async์ Blocking/Non-blocking (0) | 2022.10.21 |
---|---|
[Network] TCP์ 3-Way HandShake์ 4-Way HandShake (0) | 2022.10.13 |
๋๊ธ