๐ http vs https
์ฐ๋ฆฌ๋ Java์ JavaScript๊ฐ ์ผ๋ง๋ ๋ง์ ์ฐจ์ด๊ฐ ์๋์ง ์๊ฑฐ๋ค.
HTTP/HTTPS ์ฐจ์ด ๋ํ ๋จ์ํ S ํ๋ ๋ถ์ธ ์ฐจ์ด๊ฐ ์๋๋ผ ์น์์ โ๋๋โ๊ณผ โ์์กฐโ๋ฅผ ๋ง๋ ์ฅ์น๊ฐ ์๋ ์๋ ์ฐจ์ด๋ค.
์ฐ์ HTTP์ ๋ํด์๋ ์ ์ ์์ธํ ๋ค๋ค์ผ๋ ๊ฐ๋จํ๊ฒ๋ง ์ ์ด๋ณด๊ฒ ๋ค.
HTTP
HTTP๋ ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ)์ ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ท์น์ด๋ค.
ํ์ง๋ง HTTP์๋ ์ํธํ, ์๋ณ์กฐ ๋ฐฉ์ง, ์๋๊ฐ ์ง์ง์ธ์ง ํ์ธ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์กด์ฌํ์ง ์๋๋ค.
๊ทธ์ ์ฝ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ์ด๋ณด๋ด๋ ์์ค์ด๋ค. ๋๊ตฌ๋ ์ฝ์์ ์๋ ์ํ. HTTP๋ ๋ฑ ์ด ์ํ์ด๋ค.
์ข ๋ ์์ธํ ๋ฌธ์ ์ ๋ํด ์ค๋ช
ํ์๋ฉด
๋์ฒญ ๊ฐ๋ฅ
HTTP๋ ๋ฐ์ดํฐ๊ฐ ์ํธํ๋์ง ์๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ค๊ฐ์ ๋๊ฐ๋ณด๋ฉด ๋ก๊ทธ์ธ ID/๋น๋ฒ์ด๋ ๊ฐ์ธ์ ๋ณด ๊ฐ์ ๊ฒ ๊ทธ๋๋ก ๋ณด์ผ ์ ์๋ค.
์๋ณ์กฐ ๊ธฐ๋ฅ
๋ฐฉ๊ธ ๋งํ๋ฏ์ด ์ค๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์ ์๋๋ฐ, ์ฌ๊ธฐ์ ๋ฐ๋์น๊ธฐ๊น์ง ๊ฐ๋ฅํ๋ค. ์? HTTP๋ ์ค๊ฐ์ ํ์ธํ ๋ฐฉ๋ฒ์ด ์์ผ๋๊น.
์๋ฒ๊ฐ ์ค JS ํ์ผ์ ์
์ฑ ์ฝ๋ ์๊ธฐ, ๋ค์ด๋ก๋ ํ์ผ ๋ฐ๊ฟ์น๊ธฐ ๋ฑ ์๊ฐ๋งํด๋ ์ง์ฆ๋๋ค.
์๋ฒ ์ฌ์นญ ๊ฐ๋ฅ (๊ฐ์ง ์๋ฒ)
HTTP๋ ๋ด๊ฐ ์ ์ํ ์๋ฒ๊ฐ ์ง์ง์ธ์ง์ ๋ํ ๊ฒ์ฆ์ด ์๋ค. ๊ทธ๋์ ๊ณต๊ฒฉ์๊ฐ DNS๋ฅผ ์์ด๊ฑฐ๋ ๋คํธ์ํฌ๋ฅผ ์ค๊ฐ์ ๊ฐ๋ก์ฑ์ ์ฌ์ฉ์๋ฅผ ๊ฐ์ง ์๋ฒ์ ๋ณด๋ด๋ ์ฌ์ฉ์๋ ์ ์ ์๋ค.
๊ทธ๋ฅ ์ ์ด๋ฆฌ๋ค? ํ๊ณ ๋น๋ฐ๋ฒํธ ์น๋ ์๊ฐ ๋ค ํธ๋ฆฌ๋๊ฑฐ๋ค.
HTTPS
๊ทธ๋์ HTTPS๋ ๋ญ๋? HTTPS๋ ๊ทธ๋ฅ HTTP์ ์
๊ทธ๋ ์ด๋ ๋ฒ์ ์ด๋ผ๊ธฐ๋ณด๋ค
HTTP + TLS(๋ณด์ ๊ณ์ธต)์ด๋ค.
์ฆ HTTP ๋ด์ฉ์ TLS๋ก ๊ฐ์ธ์ ์์ ํฌ์ฅํด์ ๋ณด๋ธ๋ค ์๊ฐํ๋ฉด ๋๋ค.
์ฌ๊ธฐ์ TLS(Transport Layer Security)๋
์ ์ก ๊ณ์ธต์์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํด์ฃผ๋ ๋ณด์ ํ๋กํ ์ฝ์ด๋ค.
์ฝ๊ฒ ์ค๋ช
ํ๋ฉด HTTP๋ฅผ ์์ ํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ๋ณด์ ์์ง์ด๋ค.
TLS์ ์ญํ ์ ํ๋ฒ ๋ณด์
๊ธฐ๋ฐ์ฑ (Confidentiality)
๋ฐ์ดํฐ๋ฅผ ์ํธํํด์ ์ค๊ฐ์์ ๋ด๋ ์๋ฏธ ์๊ฒ ๋ง๋ ๋ค.
๋ฌด๊ฒฐ์ฑ (Integrity)
์ค๊ฐ์ ๋๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊พธ๋ฉด ํฐ๊ฐ ๋๊ฒ ๋ง๋ ๋ค. (TLS๊ฐ ์๋ณ์กฐ ๊ฒ์ฌ๋ฅผ ํ๋ค.)
์ธ์ฆ (Authentication)
์ด ์๋ฒ๊ฐ ์ง์ง์ธ๊ฐ๋ฅผ ํ์ธํ๋ค. ์ด๋ ์ฐ๋ ๊ฒ ์ธ์ฆ์(Certificate)๋ค.
์ฆ TLS๊ฐ ์์ผ๋ฉด HTTPS๋ ์๋ค.
์ด๋ ๋ฏ HTTPS๋ ์๊น ๋งํ HTTP์ ๋ฌธ์ ์ ๋ค์ ๋ณด์ํด์ค๋ค. ๋ํ HTTPS๋ HTTP์ ๋ค๋ฅด๊ฒ 443๋ฒ ํฌํธ๋ฅผ ์ฌ์ฉํ๋ฉฐ, HTTPS๋ ๋์นญํค ์ํธํ ๋ฐฉ์๊ณผ ๋น๋์นญํค ์ํธํ ๋ฐฉ์์ ๋ชจ๋ ์ฌ์ฉํ๊ณ ์๋ค.
์ ์ ์ค๋ช
ํ๋ AES์ RSA๋ฅผ ๋ชจ๋ ์ฌ์ฉํ๋ค๋๊ฑฐ๋ค. ์๋๊ณ ? ๋์๊ณผ์ ์ ์ดํด๋ณด๋ฉด ์๊ฒ๋๋ค.
HTTPS ์ฐ๊ฒฐ ๊ณผ์ (Hand-Shaking)์์๋ ๋จผ์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์ธ์
ํค๋ฅผ ๊ตํํ๋ค. ์ฌ๊ธฐ์ ์ธ์
ํค๋ ์ฃผ๊ณ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํค์ด๋ฉฐ, ๋ฐ์ดํฐ์ ๊ตํ์ ๋น ๋ฅธ ์ฐ์ฐ์๋๊ฐ ํ์ํ๋ค. ๊ทธ๋์ ์ธ์
ํค๋ ๋์นญํค๋ฅผ ์ฌ์ฉํ๋ค.
์ด ๋ค์์ด ๋ฌธ์ ์ธ๋ฐ, ์ด ์ธ์
ํค๋ฅผ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์ด๋ป๊ฒ ๊ตํํด์ผํ ๊น?
์ฌ๊ธฐ์ ๋น๋์นญํค๊ฐ ์ฌ์ฉ๋๋ ๊ฑฐ๋ค. ๋น๋์นญํค๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ๊ฒ ์ธ์
ํค๋ฅผ ๊ณต์ ํ๋ฉด ๋๋๊น.
์ ์ฒด์ ์ผ๋ก ๋์ ๊ณผ์ ์ ํ๋ฒ ๋ณด์
1๏ธโฃ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ ์ ์
2๏ธโฃ ์๋ฒ๊ฐ ์ธ์ฆ์๋ฅผ ๋ณด๋ธ๋ค
๋ ์ง์ง naver.com ๋ง์ -> CA๊ฐ ์๋ช
ํ ์ธ์ฆ์ ์ ๊ณต
3๏ธโฃ ๋ธ๋ผ์ฐ์ ๊ฐ ์ธ์ฆ์ ๊ฒ์ฆ
์ ๋ขฐํ ์ ์๋ ๊ธฐ๊ด์ธ์ง ํ์ธ
4๏ธโฃ ์ธ์
ํค ์์ฑ
์ดํ ํต์ ์ ์ฌ์ฉํ ๋์นญํค(AES ๋ฑ)
5๏ธโฃ ๋น๋์นญํค๋ก ์ธ์
ํค ์์ ํ๊ฒ ๊ณต์
6๏ธโฃ ์ดํ ๋ฐ์ดํฐ ํต์ ์ AES๋ก ์ํธํ
์ฒ์ ์
์๋ ๋น๋์นญํค ์ค์ ๋ํ๋ ๋์นญํค์ธ ์
์ด๋ค.
ํ์ง๋ง HTTPS๋ผ๊ณ ๋ค ์ข์ ๊ฒ๋ง์ ์๋๋ค.
HTTP๋ ๋ฐ๋ก ์์ฒญ โ ์๋ต์ด์ง๋ง,
HTTPS๋ ์ธ์ฆ์ ๊ฒ์ฆ๊ณผ ํค ๊ตํ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
์ด๊ธฐ ์ฐ๊ฒฐ ๊ณผ์ ์ด ์กฐ๊ธ ๋ ๋ฌด๊ฒ๊ณ , ์ํธํ/๋ณตํธํ ์ฐ์ฐ์ด ์ถ๊ฐ๋๊ธฐ ๋๋ฌธ์ CPU ์ฌ์ฉ๋๋ ๋ ํ์ํ๋ค.
๊ทธ๋ ๋ค๋ฉด ๊ตณ์ด ์ด๋ ๊ฒ ๋ณต์กํ๊ฒ๊น์ง ํด์ผ ํ ๊น?
๋๋ต์ ๊ทธ๋ ๋ค์ด๋ค.
์ฐ๋ฆฌ๋ ๋ก๊ทธ์ธ, ๊ฒฐ์ , ๊ฐ์ธ์ ๋ณด ์
๋ ฅ ๋ฑ ๋๋ถ๋ถ์ ํ๋์ ์น์์ ํ๋ค. ๊ทผ๋ฐ ์ด๋ฌํ ํ๋์ด ๋
ธ์ถ๋๋ค๋ฉด,,์๋๊ฒ ์ง?
๋๋ฆผ๋ณด๋ค ์ค์ํ ๊ฒ์ ์ ๋ขฐ๋ค.