[๋คํธ์ํฌ] HTTPS
โจ Intro
ํ์ฌ ๋ด๊ฐ ์ ์ํ ์ฌ์ดํธ๊ฐ ๋ณด์๋ ์น ์ฌ์ดํธ์ธ์ง ๊ฐ์ฅ ์ฝ๊ฒ ํ์ธํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ผ๊น? ์ง๊ธ ๋ณด๊ณ ์๋ ํ๋ฉด์ ์ฃผ์ ๋ฐ ์์ ์๋ ์๋ฌผ์ ์์ด์ฝ์ ๋๋ฌ ๋ณด๋ฉด ํ์ธํ ์ ์๋ค. ํด๋น ์์ด์ฝ์ ๋๋ฅด๋ฉด ์๋์ ์ฌ์ง๊ณผ ๊ฐ์ด "์ด ์ฌ์ดํธ๋ ๋ณด์ ์ฐ๊ฒฐ(HTTPS)์ด ์ฌ์ฉ๋์์ต๋๋ค."๋ผ๋ ๋ฉ์์ง๋ฅผ ๋ณผ ์ ์๋ค.
โค๏ธ๐ฅ HTTPS
HTTP Secure์ ์ฝ์๋ก, ๊ธฐ์กด์ HTTP ํ๋กํ ์ฝ์ ๋ ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์์์ ์๋ฏธํ๋ค. HTTP์ S๊ฐ ๋ถ์์ ๋ฟ์ธ๋ฐ ์ HTTP๋ณด๋ค ์์ ํ๋ค๋ ๊ฑธ๊น? ๋ฐ๋ก HTTPS๋ HTTP ์์ฒญ๊ณผ ์๋ต์ผ๋ก ์ค๊ฐ๋ ๋ด์ฉ์ ์ํธํํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ ์ฌ์ง์ HTTP๋ก ๋ณด๋ธ ์์ฒญ์ 'wireshark'๋ผ๋ ํจํท ๋ถ์ ํ๋ก๊ทธ๋จ์ ์ด์ฉํด ์บก์ฒํ ๊ฒ์ด๋ค. ์ด๋ฏธ์ง๋ฅผ ๋ณด๋ฉด email๊ณผ password ๊ฐ์ ๊ฐ์ ๊ทธ๋๋ก ๋ณผ ์ ์๋ ๊ฒ์ ์ ์ ์๋ค. ์ด๋ ์ 3์๊ฐ HTTP ์์ฒญ ๋ฐ ์๋ต์ ํ์ทจํ๋ฉด ์ ๋ฌ๋๋ ๋ฐ์ดํฐ์ ๋ด์ฉ์ ๊ทธ๋๋ก ํ์ธํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
์ ์ฌ์ง์ ๋์ผํ ์์ฒญ์ HTTPS ํ๋กํ ์ฝ๋ก ๋ณด๋์ ๋ ํ์ธํ ๊ฒ์ด๋ค. ๋๊ฐ์ ์์ฒญ์์๋ ๋ถ๊ตฌํ๊ณ ๋ฐ์ดํฐ๊ฐ ์ํธํ ๋ ๋ชจ์ต์ ํ์ธํ ์ ์๋ค. HTTPS ์์ฒญ ๋ฐ ์๋ต์ ์ค๊ฐ์ ์ 3์๊ฐ ๋ฐ์ดํฐ๋ฅผ ํ์ทจํ๋๋ผ๋ ๊ทธ ๋ด์ฉ์ ์์๋ณผ ์ ์์ด ์์ ํ๋ค๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ HTTPS๊ฐ HTTP ํต์ ์ ์ํธํํ๊ธฐ ์ํด ์ด๋ค ๊ณผ์ ์ ๊ฑฐ์น๋์ง ์์๋ณด๊ธฐ ์ด์ ์ ์ํธํ ๋ฐฉ์์๋ ์ด๋ค ์ข ๋ฅ๊ฐ ์๋์ง ํ์ธํด ๋ณด์.
๐ ์ํธํ ๋ฐฉ์
๋ฐ์ดํฐ๋ฅผ ์ํธํํ ๋ ์ํธํํ ๋ ์ฌ์ฉํ๋ ํค, ์ํธํํ ๊ฒ์ ํด์(๋ณตํธํ)ํ ๋ ์ฌ์ฉํ๋ ํค ์ด๋ ๊ฒ ๋ ๊ฐ์ง์ ํค๊ฐ ํ์ํ๋ค. ์ด๋ ์ํธํ๋ฅผ ํ ๋ ์ฌ์ฉํ๋ ํค์ ๋ณตํธํ๋ฅผ ํ ๋ ์ฌ์ฉํ๋ ํค๊ฐ ๋์ผํ๋ค๋ฉด ๋์นญ ํค ์ํธํ ๋ฐฉ์์ด๋ผ๊ณ ํ๊ณ , ๋ค๋ฅด๋ค๋ฉด ๋น๋์นญ ํค(๊ณต๊ฐ ํค) ์ํธํ ๋ฐฉ์์ด๋ผ๊ณ ํ๋ค.
โจ ๋์นญ ํค ์ํธํ ๋ฐฉ์
- ํ๋์ ํค ์ฌ์ฉ, ์ํธํ ํ ๋ ์ฌ์ฉํ ํค๋ก๋ง ๋ณตํธํ๊ฐ ๊ฐ๋ฅํ๋ค.
- ์ฅ์ : ๋ ๊ฐ์ ํค๋ฅผ ์ฌ์ฉํด์ผํ๋ ๊ณต๊ฐ ํค ๋ฐฉ์์ ๋นํด ์ฐ์ฐ ์๋๊ฐ ๋น ๋ฅด๋ค.
- ๋จ์ : ํค๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ณผ์ ์์ ํ์ทจ ๋นํ์ ๊ฒฝ์ฐ, ์ํธํ๊ฐ ์์ฉ์ด ์์ด์ง๊ธฐ ๋๋ฌธ์ ํค ๊ด๋ฆฌ์ ์ ๊ฒฝ์ ๋ง์ด ์จ์ผ ํ๋ค.
โจ ๋น๋์นญ ํค ์ํธํ ๋ฐฉ์(๊ณต๊ฐ ํค ์ํธํ ๋ฐฉ์)
- ๋ ๊ฐ์ ํค ์ฌ์ฉ(๊ฐ๊ฐ ๊ณต๊ฐ ํค, ๋น๋ฐ ํค๋ผ๊ณ ๋ถ๋ฅธ๋ค.), ๋ณดํต ์์ฒญ์ ๋ณด๋ด๋ ์ฌ์ฉ์๊ฐ ๊ณต๊ฐ ํค๋ฅผ, ์์ฒญ์ ๋ฐ๋ ์๋ฒ๊ฐ ๋น๋ฐ ํค๋ฅผ ๊ฐ์ง๋ค. ๋น๋ฐ ํค๋ฅผ ์๋ฒ๊ฐ ํดํน๋นํ์ง ์๋ ์ด์ ํ์ทจ๋์ง ์๋๋ค.
- ๊ณต๊ฐ ํค: ๊ณต๊ฐ๋ ํค, ๋๊ตฌ๋ ์ง ์ ๊ทผ ๊ฐ๋ฅํ ํค์ด๋ค. ๊ณต๊ฐ ํค๋ฅผ ์ฌ์ฉํด ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ฉด, ๋น๋ฐ ํค๋ฅผ ๊ฐ์ง ์ฌ๋๋ง ๋ด์ฉ์ ๋ณตํธํํ ์ ์๋ค.
- ๋น๋ฐ ํค: ๋ณตํธํํ๋ ํค
- ์ฅ์ : ๊ณต๊ฐ ํค๋ฅผ ์ฌ์ฉํด ์ํธํํ ๋ฐ์ดํฐ๊ฐ ํ์ทจ๋นํ๋๋ผ๋ ๋น๋ฐํค๊ฐ ์์ผ๋ฉด ๋ณตํธํํ ์ ์๊ธฐ ๋๋ฌธ์ ๋์นญ ํค์ ๋ฐฉ์๋ณด๋ค๋ ๋ณด์์ฑ์ด ์ข๋ค.
- ๋จ์ : ๋์นญ ํค์ ๋ฐฉ์๋ณด๋ค ๋ณต์กํ ์ฐ์ฐ์ด ํ์ํด ๋ ๋ง์ ์๊ฐ์ ์๋ชจํ๋ค.
โค๏ธ๐ฅ SSL/TLS ํ๋กํ ์ฝ
HTTPS๋ HTTP ํต์ ์ ํ๋ ์์ผ ๋ถ๋ถ์์ SSL ํน์ TLS๋ผ๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํด ์๋ฒ ์ธ์ฆ๊ณผ ๋ฐ์ดํฐ ์ํธํ๋ฅผ ์งํํ๋ค. ์ฌ๊ธฐ์ SSL์ด ํ์คํ๋๋ฉฐ ๋ฐ๋ ์ด๋ฆ์ด TLS์ด๋ฏ๋ก ๊ฐ์ ์ฌ์ค์ ๊ฐ์ ํ๋กํ ์ฝ์ด๋ค.
โจ SSL/TLS ํน์ง
- CA๋ฅผ ํตํ ์ธ์ฆ์ ์ฌ์ฉ
- ๋์นญ ํค, ๊ณต๊ฐ ํค ์ํธํ ๋ฐฉ์์ ๋ชจ๋ ์ฌ์ฉ
โค๏ธ๐ฅ SSL/TLS ํ๋กํ ์ฝ์ ์๋ฒ ์ธ์ฆ & ๋ฐ์ดํฐ ์ํธํ๋ฅผ ์งํ ๊ณผ์
โจ ์ธ์ฆ์์ CA(Certificate Authority)
HTTPS๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ ์๋ต๊ณผ ํจ๊ป ์ ๋ฌ๋ ์ธ์ฆ์๋ฅผ ํ์ธํ ์ ์๋ค. ์ด๋ฌํ ์ธ์ฆ์๋ ์๋ฒ์ ์ ์์ ๋ณด์ฆํด์ค๋ค. ์ด๋ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํด์ฃผ๋ ๊ณต์ธ๋ ๊ธฐ๊ด๋ค์ Certificate Authority, CA๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์๋ฒ๋ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ๊ธฐ ์ํด์ CA๋ก ์๋ฒ์ ์ ๋ณด์ ๊ณต๊ฐ ํค๋ฅผ ์ ๋ฌํ๋ค. CA๋ ์๋ฒ์ ๊ณต๊ฐ ํค์ ์ ๋ณด๋ฅผ CA์ ๋น๋ฐ ํค๋ก ์ํธํํ์ฌ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ๋ค. (์ด ๋น๋ฐํค๊ฐ ํด์ปค์๊ฒ ์ ์ถ๋์ด ํ์ฐํ CA๋ ์๋ค.)
์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ์์ฒญ์ ๋ฐ์ผ๋ฉด CA์๊ฒ ๋ฐ๊ธ๋ฐ์ ์ธ์ฆ์๋ฅผ ๋ณด๋ด์ค๋ค. ์ด ๋, ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๋ ๋ธ๋ผ์ฐ์ ๋ CA๋ค์ ๋ฆฌ์คํธ์ ๊ณต๊ฐ ํค๋ฅผ ๋ด์ฅํ๊ณ ์๋ค. ์ฐ์ ํด๋น ์ธ์ฆ์๊ฐ ๋ฆฌ์คํธ์ ์๋ CA๊ฐ ๋ฐ๊ธํ ์ธ์ฆ์์ธ์ง ํ์ธํ๊ณ , ๋ฆฌ์คํธ์ ์๋ CA๋ผ๋ฉด ํด๋นํ๋ CA์ ๊ณต๊ฐ ํค๋ฅผ ์ฌ์ฉํด์ ์ธ์ฆ์์ ๋ณตํธํ๋ฅผ ์๋ํ๋ค.
CA์ ๋น๋ฐ ํค๋ก ์ํธํ๋ ๋ฐ์ดํฐ(์ธ์ฆ์)๋ CA์ ๊ณต๊ฐ ํค๋ก๋ง ๋ณตํธํ๊ฐ ๊ฐ๋ฅํ๋ฏ๋ก, ์ ๋ง๋ก CA์์ ๋ฐ๊ธํ ์ธ์ฆ์๊ฐ ๋ง๋ค๋ฉด ๋ณตํธํ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์งํ๋์ด์ผ ํ๋ค.
ํธํ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์งํ ๋๋ค๋ฉด, ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์ ๋ณด์ ๊ณต๊ฐ ํค๋ฅผ ์ป๊ฒ ๋จ๊ณผ ๋์์ ํด๋น ์๋ฒ๊ฐ ์ ๋ขฐํ ์ ์๋ ์๋ฒ์์ ์ ์ ์๊ฒ ๋๋ค.
๋ณตํธํ๊ฐ ์คํจํ๋ค๋ฉด, ์ด๋ ์๋ฒ๊ฐ ๋ณด๋ด์ค ์ธ์ฆ์๊ฐ ์ ๋ขฐํ ์ ์๋ ์ธ์ฆ์์์ ํ์ธํ๊ฒ ๋๋ค.
โจ ๋์นญ ํค ์ ๋ฌ
์ด์ ์ฌ์ฉ์๋ ์๋ฒ์ ์ธ์ฆ์๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๋ณตํธํํ์ฌ ์๋ฒ์ ๊ณต๊ฐ ํค๋ฅผ ํ๋ณดํ๋ค. ๊ทธ๋ผ ์ด ๊ณต๊ฐ ํค๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ ์์ฒญ๊ณผ ์๋ต์ ์ฃผ๊ณ ๋ฐ๊ฒ ๋ ๊น? ์ํ๊น๊ฒ๋, ์ด ๊ณต๊ฐ ํค๋ ํด๋น ์ฉ๋๋ก๋ ์ฌ์ฉํ ์ ์๋ค. ๊ณต๊ฐ ํค ์ํธํ ๋ฐฉ์์ ๋ณด์์ ํ์คํ์ง๋ง, ๋ณต์กํ ์ฐ์ฐ์ด ํ์ํ์ฌ ๋ ๋ง์ ์๊ฐ์ ์๋ชจํ๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ์์ฒญ์์ ๊ณต๊ฐ ํค ์ํธํ ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒ์ ํจ์จ์ด ์ข์ง ์๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด ๊ณต๊ฐ ํค๋ ์ด๋์ ์ฐ๋ ๊ฑธ๊น์? ๋ฐ๋ก ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํจ๊ป ์ฌ์ฉํ๊ฒ ๋ ๋์นญ ํค๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฐ๊ฒ ๋๋ค. ๋์นญ ํค๋ ์๋๋ ๋น ๋ฅด์ง๋ง, ์ค๊ณ ๊ฐ๋ ๊ณผ์ ์์ ํ์ทจ๋ ์ ์๋ค๋ ์ํ์ฑ์ด ์์๋ค. ํ์ง๋ง ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ๋์นญ ํค๋ฅผ ๋ณด๋ผ ๋ ์๋ฒ์ ๊ณต๊ฐ ํค๋ฅผ ์ฌ์ฉํด์ ์ํธํํ์ฌ ๋ณด๋ด์ค๋ค๋ฉด, ์๋ฒ์ ๋น๋ฐ ํค๋ฅผ ๊ฐ์ง๊ณ ์๋๊ฒ ์๋ ์ด์ ํด๋น ๋์นญ ํค๋ฅผ ๋ณตํธํํ ์ ์์ผ๋ฏ๋ก ํ์ทจ๋ ์ํ์ฑ์ด ์ค์ด๋ ๋ค.
ํด๋ผ์ด์ธํธ๋ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฌ์ฉํ ๋์นญ ํค๋ฅผ ์์ฑํ๋ค. ํด๋ผ์ด์ธํธ๋ ์์ฑํ ๋์นญ ํค๋ฅผ ์๋ฒ์ ๊ณต๊ฐ ํค๋ก ์ํธํํ์ฌ ์ ๋ฌํ๋ค. ์๋ฒ๋ ์ ๋ฌ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋น๋ฐ ํค๋ก ๋ณตํธํํ์ฌ ๋์นญ ํค๋ฅผ ํ๋ณดํ๋ค. ์ด๋ ๊ฒ ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ ๋์ผํ ๋์นญ ํค๋ฅผ ๊ฐ๊ฒ๋๋ค.
์ด์ HTTPS ์์ฒญ์ ์ฃผ๊ณ ๋ฐ์ ๋ ์ด ๋์นญ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ ์ ๋ฌํ๊ฒ ๋๋ค. ๋์นญ ํค ์์ฒด๋ ์ค๊ณ ๊ฐ์ง ์๊ธฐ ๋๋ฌธ์ ํค๊ฐ ์ ์ถ๋ ์ํ์ด ์์ด์ก๋ค. ๋ฐ๋ผ์ ์์ฒญ์ด ์ค๊ฐ์ ํ์ทจ ๋์ด๋ ์ 3์๊ฐ ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณตํธํํ ์ ์๊ฒ ๋๋ค. HTTPS๋ ์ด๋ฌํ ์ํธํ ๊ณผ์ ์ ํตํด ๋์ฑ ์์ ํ HTTP๋ณด๋ค ์์ ํ๊ฒ ์์ฒญ๊ณผ ์๋ต์ ์ฃผ๊ณ ๋ฐ์ ์ ์๊ฒ ํด ์ค๋ค.
์ ๋ฆฌํ์๋ฉด, ์ด๋ ๊ฒ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ CA๋ฅผ ํตํด ์๋ฒ๋ฅผ ์ธ์ฆํ๋ ๊ณผ์ ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ ๊ณผ์ ์ ์์ฐ๋ฅธ ํ๋กํ ์ฝ์ SSL ๋๋ TLS์ด๋ผ๊ณ ๋งํ๊ณ , HTTP์ SSL/TLS ํ๋กํ ์ฝ์ ๋ํ ๊ฒ์ HTTPS๋ผ๊ณ ํ๋ค.