HTTP/2๋ HTTPS ์์์ ๋์ํ๋ค. HTTPS๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต๊ณผ ์ ์ก ๊ณ์ธต ์ฌ์ด์ ์ ๋ขฐ ๊ณ์ธต์ธ SSL/TLS ๊ณ์ธต์ ๋ฃ์ ์ ๋ขฐํ ์ ์๋ HTTP ์์ฒญ์ ๋งํ๋ค.
์ด๋ฅผ ํตํด ํต์ ์ '์ํธํ'ํ๋ค.
SSL(Secure Socket Layer) / TLS(Transport Layer Security protocol)
SSL์ SSL 1.0 -> SSL 2.0 -> SSL 3.0 -> TLS 1.0 -> TLS 1.3๊น์ง ๋ฒ์ ์ด ์ฌ๋ผ๊ฐ๋ฉด์ ๋ง์ง๋ง์ผ๋ก TLS๋ก ๋ช ์นญ์ด ๋ณ๊ฒฝ๋์์ง๋ง, ๋ณดํต ์ด๋ฅผ ํฉ์ณ์ SSL/TLS๋ก ๋ถ๋ฅธ๋ค. ์ด ํฌ์คํ ์์ ์ต์ ๋ฒ์ ์ธ TLS 1.3์ ๊ธฐ๋ฐ์ผ๋ก ์์๋ณด๊ณ ์ ํ๋ค.
SSL/TLS๋ ์ ์ก ๊ณ์ธต์์ ๋ณด์์ ์ ๊ณตํ๋ ํ๋กํ ์ฝ์ด๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํต์ ํ ๋ SSL/TLS๋ฅผ ํตํด ์ 3์๊ฐ ๋ฉ์์ง๋ฅผ ๋์ฒญํ๊ฑฐ๋ ๋ณ์กฐํ์ง ๋ชปํ๋๋ก ํ๋ค.
์ ๊ทธ๋ฆผ์ฒ๋ผ SSL/TLS๋ฅผ ํตํด ๊ณต๊ฒฉ์๊ฐ ์๋ฒ์ธ ์ฒํ๋ฉด์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๊ฐ๋ก์ฑ๋ '์ธํฐ์ ํฐ'๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
SSL/TLS๋ ๋ณด์ ์ธ์ ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ค.
๋ณด์ ์ธ์ ์ด ๋ง๋ค์ด์ง ๋๋ ์ธ์ฆ ๋งค์ปค๋์ฆ, ํค ๊ตํ ์ํธํ ์๊ณ ๋ฆฌ์ฆ, ํด์ฑ ์๊ณ ๋ฆฌ์ฆ์ด ์ฌ์ฉ๋๋ค.
๋ณด์ ์ธ์
๋ณด์ ์ธ์ ์ด๋ ๋ณด์์ด ์์๋๊ณ ๋๋๋ ๋์ ์ ์ง๋๋ ์ธ์ ์ ๋งํ๋ค. SSL/TLS๋ ํธ๋ ์ ฐ์ดํฌ๋ฅผ ํตํด ๋ณด์ ์ธ์ ์ ์์ฑํ๊ณ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ํ ์ ๋ณด ๋ฑ์ ๊ณต์ ํ๋ค.
* ์ธ์ (session) : ์ด์์ฒด์ ๊ฐ ์ด๋ ํ ์ฌ์ฉ์๋ก๋ถํฐ ์์ ์ ์์ฐ ์ด์ฉ์ ํ๋ฝํ๋ ์ผ์ ํ ๊ธฐ๊ฐ์ ๋ปํ๋ค. ์ฆ, ์ฌ์ฉ์๋ ์ผ์ ์๊ฐ๋์ ์์ฉ ํ๋ก๊ทธ๋จ, ๋ฆฌ์์ค ๋ฑ์ ์ฌ์ฉํ ์ ์๋ค.
TLS ํธ๋์ ฐ์ดํฌ
TLS 1.2์์ ํธ๋ ์ ฐ์ดํฌ๋ฅผ ์๋ฃํ๋ ๋ฐ์ 2-RTT๊ฐ ํ์ํ์ง๋ง, TLS 1.3์ 1-RTT๋ง์ TLS ํธ๋ ์ ฐ์ดํฌ๋ฅผ ์๋ฃํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ก์์ ํ ์ ์๋ค. ๋, ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํค๋ฅผ ๊ณต์ ํ๊ณ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ธ์ฆ, ์ธ์ฆ ํ์ธ ๋ฑ์ ์์ ์ด ์ผ์ด๋๋ค.
- ํด๋ผ์ด์ธํธ์์ ์ฌ์ดํผ ์ํธ(chiper suites)๋ฅผ ์๋ฒ์ ์ ๋ฌํ๋ค.
- ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฐ์ ์ฌ์ดํผ ์ํธ์ ์ํธํ ์๊ณ ๋ฆฌ์ฆ ๋ฆฌ์คํธ๋ฅผ ์ ๊ณตํ ์ ์๋์ง ํ์ธํ๋ค.
- ์ ๊ณตํ ์ ์๋ค๋ฉด ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ์ธ์ฆ์๋ฅผ ๋ณด๋ด๋ ์ธ์ฆ ๋ฉ์ปค๋์ฆ์ด ์์๋๋ค.
- ์ดํ์ ํด์ฑ ์๊ณ ๋ฆฌ์ฆ ๋ฑ์ผ๋ก ์ํธํ๋ ๋ฐ์ดํฐ์ ์ก์์ ์ด ์์๋๋ค.
- ์ถ๊ฐ์ ์ผ๋ก, TLS 1.3์์ ์ฌ์ฉ์๊ฐ ์ด์ ์ ๋ฐฉ๋ฌธํ ์ฌ์ดํธ์ ๋ค์ ๋ฐฉ๋ฌธํ ๊ฒฝ์ฐ, ๋ณด์ ์ธ์ ์ด ์ด๋ฏธ ๋ง๋ค์ด์ ธ ์์ผ๋ฏ๋ก ๋ฐ๋ก ๋ฐ์ดํฐ ์ก์์ ์ ํ ์ ์๋ค. ์ด๋ฅผ 0-RTT๋ผ๊ณ ํ๋ค.
์ฌ์ดํผ ์ํธ
์ฌ์ดํผ ์ํธ๋ ํ๋กํ ์ฝ, AEAD ์ฌ์ดํผ ๋ชจ๋, ํด์ฑ ์๊ณ ๋ฆฌ์ฆ์ด ๋์ด๋ ๊ท์ฝ์ ๋งํ๋ค. TLS 1.3์์ ๋ถ์์ ํ ์ฌ์ดํผ ์ํธ๋ ๋ชจ๋ ์ ๊ฑฐ๋๊ณ , ์ด ๋ค์ฏ ๊ฐ์ ์ฌ์ดํผ ์ํธ๊ฐ ๋จ์๋ค.
- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
- TLS_AES_128_CCM_SHA256
- TLS_AES_128_CCM_8_SHA256
์๋ฅผ ๋ค์ด, TLS_AES_128_GCM_SHA256์๋ ์ธ ๊ฐ์ง ๊ท์ฝ์ด ๋ค์ด์๋๋ฐ TLS๋ ํ๋กํ ์ฝ, AES_128_GCM์ AEAD ์ฌ์ดํผ ๋ชจ๋ , SHA256์ ํด์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์๋ฏธํ๋ค.
AEAD(Authenticated Encryption with Associated Data) ์ฌ์ดํผ ๋ชจ๋
๋ฐ์ดํฐ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์๋ฏธํ๋ค.
์๋ฅผ ๋ค์ด, AES_128_GCM์ด๋ผ๋ ๊ฒ์ 128 ๋นํธ์ ํค๋ฅผ ์ฌ์ฉํ๋ ํ์ค ๋ธ๋ก ์ํธํ ๊ธฐ์ ๊ณผ, ๋ณ๋ ฌ ๊ณ์ฐ์ ์ฉ์ดํ ์ํธํ ์๊ณ ๋ฆฌ์ฆ GCM์ด ๊ฒฐํฉ๋ ์๊ณ ๋ฆฌ์ฆ์ ์๋ฏธํ๋ค.
์ธ์ฆ ๋ฉ์ปค๋์ฆ
์ธ์ฆ ๋ฉ์ปค๋์ฆ์ CA(Certificate Authorities)์์ ๋ฐ๊ธํ ์ธ์ฆ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
CA์์ ๋ฐ๊ธํ ์ธ์ฆ์๋ ์์ ํ ์ฐ๊ฒฐ์ ์์ํ๋๋ฐ ํ์ํ '๊ณต๊ฐํค'๋ฅผ ํด๋ผ์ด์ธํธ์ ์ ๊ณตํ๊ณ , ์ฌ์ฉ์๊ฐ ์ ์ํ ์๋ฒ๊ฐ ์ ๋ขฐํ ์ ์๋ ์๋ฒ์์ ๋ณด์ฅํ๋ค.
์ธ์ฆ์๋ ์๋น์ค ์ ๋ณด, ๊ณต๊ฐํค, ์ง๋ฌธ, ๋์งํธ ์๋ช ๋ฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ฐธ๊ณ ๋ก, CA๋ ์ ๋ขฐ์ฑ์ด ์๊ฒฉํ๊ฒ ๊ณต์ธ๋ ๊ธฐ์ ๋ค๋ง ์ฐธ์ฌํ ์ ์์ผ๋ฉฐ ๋ํ์ ์ผ๋ก Comodo, GoDaddy, GlobalSign, ์๋ง์กด ๋ฑ์ด ์๋ค.
- CA ๋ฐ๊ธ ๊ณผ์
- ์์ ์ ์๋น์ค๊ฐ CA ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ์ผ๋ ค๋ฉด ์์ ์ ์ฌ์ดํธ ์ ๋ณด์ ๊ณต๊ฐํค๋ฅผ CA์ ์ ์ถํด์ผ ํ๋ค. ์ดํ CA๋ ๊ณต๊ฐํค๋ฅผ ํด์ํ ๊ฐ์ธ ์ง๋ฌธ์ ์ฌ์ฉํ๋ CA์ ๋น๋ฐํค ๋ฑ์ ๊ธฐ๋ฐ์ผ๋ก CA ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ๋ค.
์ํธํ ์๊ณ ๋ฆฌ์ฆ
ํค ๊ตํ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก๋ ECDHE, DHE๋ฅผ ์ฌ์ฉํ๋ค. ๋ ์๊ณ ๋ฆฌ์ฆ ๋ชจ๋ ๋ํผ-ํฌ๋ง ๋ฐฉ์์ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก๋ค.
- ๋ํผ-ํฌ๋ง(Diffie-Hellman) ํค ๊ตํ ์ํธํ ์๊ณ ๋ฆฌ์ฆ
์ ์์์ g, x, p๋ฅผ ์๋ค๋ฉด y๋ฅผ ๊ตฌํ๊ธฐ ์ฝ์ง๋ง, g, y, p๋ง ์๋ค๋ฉด x๋ฅผ ๊ตฌํ๊ธฐ ์ด๋ ต๋ค๋ ์๋ฆฌ์ ๊ธฐ๋ฐํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
์ ๊ทธ๋ฆผ์ฒ๋ผ ์ฒ์์ ๊ณต๊ฐ ํค๋ฅผ ๊ณต์ ํ๊ณ , ๊ฐ์์ ๋น๋ฐ ํค์ ํผํฉํ ํ, ํผํฉํ ํค๋ฅผ ๊ณต์ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฐ์์ ๋น๋ฐ ํค์ ๋ ํผํฉํ๋ค.
์ด๋ฌํ ๊ณผ์ ์ ๊ฑฐ์ณ ๊ณตํต์ ์ํธํค์ธ PSK(Pre-Shared Key)๊ฐ ์์ฑ๋๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๋ชจ๋ ๊ฐ์ธํค์ ๊ณต๊ฐํค๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , ์๋ก์๊ฒ ๊ณต๊ฐํค๋ฅผ ๋ณด๋ด๊ณ ๊ณต๊ฐํค์ ๊ฐ์ธํค๋ฅผ ๊ฒฐํฉํ์ฌ PSK๊ฐ ์์ฑ๋๋ค๋ฉด, ์ ์์ ์ธ ๊ณต๊ฒฉ์๊ฐ ๊ฐ์ธํค ๋๋ ๊ณต๊ฐํค๋ฅผ ๊ฐ์ง๊ณ ์๋๋ผ๋ PSK๊ฐ ์๊ธฐ ๋๋ฌธ์ ์๋ฌด๊ฒ๋ ํ ์ ์๋ค.
ํด์ฑ ์๊ณ ๋ฆฌ์ฆ
ํด์ฑ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ ํ๊ธฐ ํ๋ ๋ ์๊ณ , ์์ฌ ์๋ ์กฐ๊ฐ์ผ๋ก ๋ง๋๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
SSL/TLS๋ ํด์ฑ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก SHA-256, SHA-384 ์๊ณ ๋ฆฌ์ฆ์ ์ฐ๋ฉฐ, ๊ทธ ์ค ๊ฐ์ฅ ๋ง์ด ์ฐ๋ SHA-256 ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ณด๊ณ ์ ํ๋ค.
- SHA-256
- ํด์ ํจ์์ ๊ฒฐ๊ณผ๊ฐ์ด 256 ๋นํธ์ธ ์๊ณ ๋ฆฌ์ฆ
- ๋นํธ ์ฝ์ธ์ ๋น๋กฏํ ๋ง์ ๋ธ๋ก์ฒด์ธ ์์คํ ์์ ์ฌ์ฉํจ.
- ํด์ฑ์ ํด์ผ ํ ๋ฉ์์ง์ 1์ ์ถ๊ฐํ๋ ๋ฑ ์ ์ฒ๋ฆฌ๋ฅผ ํ๊ณ , ์ ์ฒ๋ฆฌ๋ ๋ฉ์์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด์๋ฅผ ๋ฐํํจ.
* ํด์ : ๋ค์ํ ๊ธธ์ด๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ๊ณ ์ ๋ ๊ธธ์ด๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ๋ก ๋งคํํ ๊ฐ
* ํด์ฑ : ์์์ ๋ฐ์ดํฐ๋ฅผ ํด์๋ก ๋ฐ๊ฟ์ฃผ๋ ์ผ์ด๋ฉฐ, ํด์ ํจ์๊ฐ ์ด๋ฅผ ๋ด๋นํจ.
* ํด์ ํจ์ : ์์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ์ผ์ ํ ๊ธธ์ด์ ๋ฐ์ดํฐ๋ก ๋ฐ๊ฟ์ฃผ๋ ํจ์
TLS ํธ๋์ ฐ์ดํฌ๋ ์ธ์ฆ ๋ฉ์ปค๋์ฆ ๋ฑ์ด ์๋ฒฝํ๊ฒ ์ดํด๋ ๋๋์ด ์๋๋ค... ๋์ค์ ์ถ๊ฐ์ ์ผ๋ก ๋ ๊ณต๋ถํด์ ๋ํ ์ผํ๊ฒ ํฌ์คํ ํ๋ ค ํ๋ค!
'CS > ๋คํธ์ํฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋คํธ์ํฌ] HTTP/3 (0) | 2023.08.20 |
---|---|
[๋คํธ์ํฌ] HTTP/2 (0) | 2023.08.19 |
[๋คํธ์ํฌ] HTTP/1.1 (0) | 2023.08.19 |
[๋คํธ์ํฌ] HTTP/1.0 (0) | 2023.08.19 |
[๋คํธ์ํฌ] IP ์ฃผ์ ์ฒด๊ณ(DHCP, NAT) (0) | 2023.08.16 |