์๋ฒ/ํด๋ผ์ด์ธํธ ๋ชจ๋ธ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ํ๋กํ ์ฝ
[HTTP์ ๊ตฌ์กฐ]
HTTP๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ ๋ฒจ์ ํ๋กํ ์ฝ๋ก TCP/IP ์์์ ์๋ํ๋ค.
HTTP๋ ์ํ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์๋ Stateless ํ๋กํ ์ฝ์ด๋ฉฐ
Method,Path,Version,Headers,Body ๋ฑ์ผ๋ก ๊ตฌ์ฑ๋๋ค.(ํด๋ผ์ด์ธํธ๋ 80๋ฒ ํฌํธ๋ก ์ ํธ๋ฅผ ๋ณด๋)HTTP๋ ์ํํ ํ์ง ์์ ํ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ๋๋ฌธ์ ์ 3์๊ฐ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ์ ์์๋ค.(์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ HTTPS๊ฐ ๋ฑ์ฅํ๋ค.)
HTTP์ ๋ฐ์ดํฐ ์ํธํ๊ฐ ์ถ๊ฐ๋ ํ๋กํ ์ฝ์ด๋ค. (HTTP์ ๋ค๋ฅด๊ฒ ํด๋ผ์ด์ธํธ๋ 443๋ฒ ํฌํธ๋ก ์ ํธ๋ฅผ ๋ณด๋ด๊ฒ ๋จ)
๋คํธ์ํฌ ์์์ ์ค๊ฐ์ ์ 3์๊ฐ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๋๋ก ์ํธํ๋ฅผ ์ง์ํ๊ณ ์๋ค
[๋์นญํค ์ํธํ์ ๋น๋์นญํค ์ํธํ]
HTTPS๋ ๋์นญํค ์ํธํ ๋ฐฉ์๊ณผ ๋น๋์นญํค ์ํธํ ๋ฐฉ์์ ๋ชจ๋ ์ฌ์ฉํ๊ณ ์๋ค. ๊ฐ๊ฐ์ ์ํธํ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋์นญํค ์ํธํ
- ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ๋์ผํ ํค๋ฅผ ์ฌ์ฉํด ์ํธํ/๋ณตํธํ๋ฅผ ์งํํจ
- ํค๊ฐ ๋ ธ์ถ๋๋ฉด ๋งค์ฐ ์ํํ์ง๋ง ์ฐ์ฐ ์๋๊ฐ ๋น ๋ฆ
- ๋น๋์นญํค ์ํธํ
- 1๊ฐ์ ์์ผ๋ก ๊ตฌ์ฑ๋ ๊ณต๊ฐํค์ ๊ฐ์ธํค๋ฅผ ์ํธํ/๋ณตํธํ ํ๋๋ฐ ์ฌ์ฉํจ
- ํค๊ฐ ๋ ธ์ถ๋์ด๋ ๋น๊ต์ ์์ ํ์ง๋ง ์ฐ์ฐ ์๋๊ฐ ๋๋ฆผ
๋์นญํค๋ ๋น๊ต์ ์ฌ์ด ๊ฐ๋ ์ด๋ฏ๋ก, ๋น๋์นญํค ์ํธํ์ ๋ํด ์กฐ๊ธ ๋ ์์๋ณด์
- ๋น๋์นญํค ์ํธํ๋ ๊ณต๊ฐํค/๊ฐ์ธํค ์ํธํ ๋ฐฉ์์ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ํธํ ํ๊ณ ์๋ค.
๊ณต๊ฐํค์ ๊ฐ์ธํค๋ ์๋ก๋ฅผ ์ํ 1์์ด๋ค.
- ๊ณต๊ฐํค : ๋ชจ๋์๊ฒ ๊ณต๊ฐํ๋ ํค
- ๊ฐ์ธํค : ๋๋ง ๊ฐ์ง๊ณ ์๋ ํค
์ํธํ๋ฅผ ๊ณต๊ฐํค๋ก ํ๋๋ ๊ฐ์ธํค๋ก ํ๋๋์ ๋ฐ๋ผ ์ป๋ ํจ๊ณผ๊ฐ ๋ค๋ฅธ๋ฐ,
๊ณต๊ฐํค์ ๊ฐ์ธํค๋ก ์ํธํ ํ๋ฉด ๊ฐ๊ฐ ๋ค์๊ณผ ๊ฐ์ ํจ๊ณผ๋ฅผ ์ป์ ์ ์๋ค.
- ๊ณต๊ฐํค ์ํธํ : ๊ณต๊ฐํค๋ก ์ํธํ๋ฅผ ํ๋ฉด ๊ฐ์ธํค๋ก๋ง ๋ณตํธํ ํ ์ ์๋ค. ->๊ฐ์ธํค๋ ๋๋ง ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก, ๋๋ง ๋ณผ ์ ์์
- ๊ฐ์ธํค ์ํธํ : ๊ฐ์ธํค๋ก ์ํธํ๋ฅผ ํ๋ฉด ๊ณต๊ฐํค๋ก๋ง ๋ณตํธํ ํ ์ ์๋ค. ->๊ณต๊ฐํค๋ ๋ชจ๋์๊ฒ ๊ณต๊ฐ๋์ด ์์ผ๋ฏ๋ก ๋ด๊ฐ ์ธ์ฆํ ์ ๋ณด์์ ์๋ ค ์ ๋ขฐ์ฑ์ ๋ณด์ฅ ํ ์ ์๋ค.
[HTTPS์ ๋์๊ณผ์ ]
- ๋์นญํค ์ํธํ์ ๋น๋์นญํค ์ํธํ๋ฅผ ๋ชจ๋ ์ฌ์ฉํ์ฌ ๋น ๋ฅธ ์ฐ์ฐ ์๋์ ์์ ์ฑ์ ๋ชจ๋ ์ป๊ณ ์๋ค.
- ์ฐ๊ฒฐ ๊ณผ์ (Hand-Shaking)์์๋ ๋จผ์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์ธ์ ํค๋ฅผ ๊ตํํ๋ค.
(์ฌ๊ธฐ์ ์ธ์ ํค๋ ์ฃผ๊ณ ๋ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ํธํ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋์นญํค์ด๋ฉฐ, ๋ฐ์ดํฐ ๊ฐ์ ๊ตํ์๋ ๋น ๋ฅธ ์ฐ์ฐ ์๋๊ฐ ํ์ํ๋ฏ๋ก ์ธ์ ํค๋ ๋์นญํค๋ก ๋ง๋ค์ด์ง
์ด ์ธ์ ํค๋ฅผ ํด๋ผ์ด์ธํธ ์๋ฒ๊ฐ ์ด๋ป๊ฒ ๊ตํํ ๊ฒ์ด๋ ์ธ๋ฐ, ์ด ๊ณผ์ ์์ ๋น๋์นญํค๊ฐ ์ฌ์ฉ๋๋ค.
์ฆ, ์ฒ์ ์ฐ๊ฒฐ์ ์ฑ๋ฆฝํ์ฌ ์์ ํ๊ฒ ์ธ์ ํค๋ฅผ ๊ณต์ ํ๋ ๊ณผ์ ์์ ๋น๋์นญํค๊ฐ ์ฌ์ฉ๋๋ ๊ฒ์ด๊ณ , ์ดํ์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋ ๊ณผ์ ์์ ๋น ๋ฅธ ์ฐ์ฐ ์๋๋ฅผ ์ํด ๋์นญํค๊ฐ ์ฌ์ฉ๋จ)- ์ค์ ํ๋ฆ
- ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )๊ฐ ์๋ฒ๋ก ์ต์ด ์ฐ๊ฒฐ์ ์๋ํจ
- ์๋ฒ๋ ๊ณต๊ฐํค(์๋ฐํ๋ ์ธ์ฆ์)๋ฅผ ๋ธ๋ผ์ฐ์ ์๊ฒ ๋๊ฒจ์ค
- ๋ธ๋ผ์ฐ์ ๋ ์ธ์ฆ์์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๊ณ ์ธ์ ํค๋ฅผ ๋ฐ๊ธํจ
- ๋ธ๋ผ์ฐ์ ๋ ์ธ์ ํค๋ฅผ ๋ณด๊ดํ๋ฉฐ ์ถ๊ฐ๋ก ์๋ฒ์ ๊ณต๊ฐํค๋ก ์ธ์ ํค๋ฅผ ์ํธํํ์ฌ ์๋ฒ๋ก ์ ์กํจ
- ์๋ฒ๋ ๊ฐ์ธํค๋ก ์ํธํ๋ ์ธ์ ํค๋ฅผ ๋ณตํธํ ํ์ฌ ์ธ์ ํค๋ฅผ ์ป์
- ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ๋์ผํ ์ธ์ ํค๋ฅผ ๊ณต์ ํ๋ฏ๋ก ๋ฐ์ดํฐ๊ฐ ์ ๋ฌ ๋ ๋ ์ธ์ ํค๋ก ์ํธํ/๋ณตํธํ๋ฅผ ์งํํจ
[HTTPS์ ๋ฐ๊ธ ๊ณผ์ ]
- ์์ ๊ณผ์ ์์ ์ถ๊ฐ๋ก ์ดํด๋ด์ผ ํ ๋ถ๋ถ์ ์๋ฒ๊ฐ ๋น๋์นญํค๋ฅผ ๋ฐ๊ธํ๋ ๊ณผ์ ์ด๋ค.
(์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์ธ์ ํค๋ฅผ ๊ณต์ ํ๊ธฐ ์ํ ๊ณต๊ฐํค๋ฅผ ์์ฑํด์ผ ํ๋๋ฐ,
์ผ๋ฐ์ ์ผ๋ก๋ ์ธ์ฆ๋ ๊ธฐ๊ด((Certificate Authority)์ ๊ณต๊ฐํค๋ฅผ ์ ์กํ์ฌ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ ๋ฐ๋๋ค)
- A๊ธฐ์ ์ HTTP ๊ธฐ๋ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ HTTPS๋ฅผ ์ ์ฉ ์ํค๊ธฐ ์ํด ๊ณต๊ฐํค/๊ฐ์ธํค๋ฅผ ๋ฐ๊ธํจ
- CA ๊ธฐ์ ์๊ฒ ๋์ ์ง๋ถํ๊ณ , ๊ณต๊ฐํค๋ฅผ ์ ์ฅํ๋ ์ธ์ฆ์์ ๋ฐ๊ธ์ ์์ฒญํจ
- CA ๊ธฐ์ ์ CA ๊ธฐ์ ์ ์ด๋ฆ, ์๋ฒ์ ๊ณต๊ฐํค, ์๋ฒ์ ์ ๋ณด ๋ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์ธ์ฆ์๋ฅผ ์์ฑํ๊ณ , CA ๊ธฐ์ ์ ๊ฐ์ธํค๋ก ์ํธํํ์ฌ A๊ธฐ์ ์๊ฒ ์ด๋ฅผ ์ ๊ณตํจ
- A๊ธฐ์ ์ ํด๋ผ์ด์ธํธ์๊ฒ ์ํธํ ๋ ์ธ์ฆ์๋ฅผ ์ ๊ณตํจ
- ๋ธ๋ผ์ฐ์ ๋ CA ๊ธฐ์ ์ ๊ณต๊ฐํค๋ฅผ ๋ฏธ๋ฆฌ ๋ค์ด๋ฐ์ ๊ฐ๊ณ ์์ด, ์ํธํ๋ ์ธ์ฆ์๋ฅผ ๋ณตํธํํจ
- ์ํธํ๋ ์ธ์ฆ์๋ฅผ ๋ณตํธํํ์ฌ ์ป์ A๊ธฐ์ ์ ๊ณต๊ฐํค๋ก ์ธ์ ํค๋ฅผ ๊ณต์ ํจ
- ์ธ์ฆ์๋ CA์ ๊ฐ์ธํค๋ก ์ํธํ๋์๊ธฐ ๋๋ฌธ์, ์ ๋ขฐ์ฑ์ ํ๋ณดํ ์ ์๊ณ , ํด๋ผ์ด์ธํธ๋ A ๊ธฐ์ ์ ๊ณต๊ฐํค๋ก ๋ฐ์ดํฐ๋ฅผ ์ํธํ ํ์๊ธฐ ๋๋ฌธ์ A ๊ธฐ์ ๋ง ๋ณตํธํ ํ์ฌ ์๋ณธ์ ๋ฐ์ดํฐ๋ฅผ ์ป์ ์ ์๋ค.
A ๊ธฐ์ ์ ๊ณต๊ฐํค๋ผ๊ณ ๋ด๋ ๋ฌด๋ฐฉํ๋ค. ๋ํ ๋ธ๋ผ์ฐ์ ์๋ ์ธ์ฆ๋ CA ๊ธฐ๊ด์ ์ ๋ณด๋ค์ด ์ฌ์ ์ ๋ฑ๋ก๋์ด ์์ด ์ธ์ฆ๋ CA ๊ธฐ๊ด์ ์ธ์ฆ์๊ฐ ์๋ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ์๊ธฐ๊ฒ ๋จ
[HTTP์ HTTPS]
- HTTP๋ ์ํธํ๊ฐ ์ถ๊ฐ๋์ง ์์๊ธฐ ๋๋ฌธ์ ๋ณด์์ ์ทจ์ฝํ ๋ฐ๋ฉด, HTTPS๋ ์์ ํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค.
ํ์ง๋ง HTTPS๋ฅผ ์ด์ฉํ๋ฉด ์ํธํ/๋ณตํธํ์ ๊ณผ์ ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ HTTP๋ณด๋ค ์๋๊ฐ ๋๋ฆฌ๋ค.
(๋ฌผ๋ก ์ค๋๋ ์๋ ๊ฑฐ์ ์ฐจ์ด๋ฅผ ๋๋ผ์ง ๋ชปํ ์ ๋์ด๋ค.) ๋ํ HTTPS๋ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ๊ณ ์ ์งํ๊ธฐ ์ํ ์ถ๊ฐ ๋น์ฉ์ด ๋ฐ์ํจ
์ธ์ HTTP๋ฅผ ์ฐ๊ณ ์ธ์ HTTPS๋ฅผ ์จ์ผํ๋๊ฒ ์ข์๊ฐ?
- ๊ฐ์ธ์ ๋ณด์ ๊ฐ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์ผ ํ๋ค๋ฉด HTTPS๋ฅผ ์ด์ฉํด์ผ ํ์ง๋ง, ๋ ธ์ถ์ด ๋์ด๋ ๊ด์ฐฎ์ ๋จ์ํ ์ ๋ณด ์กฐํ ๋ฑ ๋ง ์ฒ๋ฆฌํ๊ณ ์๋ค๋ฉด HTTP๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.