# Http vs Https
# HTTPS (feat. http)
HTTPS์ ๋ํด ์์๋ณด๊ธฐ ์ ์ HTTP๋ฅผ ๊ฐ๋จํ๊ฒ ์ค๋ช ํ ์ ์์ผ๋ฉด ์ข๋ค.
HTTP๋ HyperText Tranfer Protocol๋ก WWW์์์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํ๋กํ ์ฝ์ด๋ค.
ํด๋ผ์ด์ธํธ์ธ ์น๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ HTTP๋ฅผ ํตํด ์นํ์ด์ง๋ ์ด๋ฏธ์ง ์ ๋ณด๋ฅผ ์์ฒญํ๋ฉด ์๋ฒ๋ ์ด ์์ฒญ์ ์๋ตํ์ฌ ์๊ตฌํ๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ฒ ๋๋ค.
๊ฒฐ๊ตญ,ย HTTP ๋ ์น๋ธ๋ผ์ฐ์ (Client)์ ์๋ฒ(Server)๊ฐ์ ์นํ์ด์ง๊ฐ์ ์์์ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฐ๋ย ํต์ ๊ท์ฝ์ด๋ค.
http๋ ํ ์คํธ ๊ตํ์ด๋ค. htmlํ์ด์ง๋ ํ ์คํธ๋ค. ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ก ๋์ด์๋ ๊ฒ๋ ์๋๊ณ ๋จ์ ํ ์คํธ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ๋๋ฌธ์ ๋๊ตฐ๊ฐ ๋คํธ์ํฌ์์ ์ ํธ๋ฅผ ๊ฐ๋ก์ฑ์ด ๋ณธ๋ค๋ฉด ๋ด์ฉ์ด ๋ ธ์ถ๋๋ค.
์ด๋ฐ ๋ณด์์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ฃผ๋ ํ๋กํ ์ฝ์ด HTTPS๋ค.
HTTPS๋ ์ธํฐ๋ท ์์์ ์ ๋ณด๋ฅผ ์ํธํํ๋ SSL(Secure Socketย Layer)ํ๋กํ ์ฝ์ ์ด์ฉํ์ฌ ์น๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ)์ ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํต์ ๊ท์ฝ์ด๋ค.
HTTPS๋ http ๋ฉ์ธ์ง(text)๋ฅผย ์ํธํํ๋ ๊ฒ์ด๋ค.
HTTPS์ S๊ฐ Secure Socket, ๋ณด์ย ํต์ ๋ง์ ๋งํ๋ค.
HTTPS์ ์ํธํ ์๋ฆฌ๋ฅผ ๊ฐ๋จํ ์์๋ณด๋ฉด ํต์ฌ์ย ๊ณต๊ฐํค ์ํธํ ๋ฐฉ์์ด๋ค.
โฒ ์ถ์ฒ : http://cryptocat.tistory.com/3
์ํธํ์ ๊ณต๋ถํ๋๊ฒย ์๋๋ ๊ณต๊ฐํค ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋จํ๊ฒ๋ง ์๊ฐํ๊ฒ ๋ค.
์ํธํ, ๋ณตํธํ์ํฌ ์ ์๋ย ์๋ก ๋ค๋ฅธ ํค 2๊ฐ๊ฐ ์กด์ฌํ๋๋ฐ ์ด ๋ ๊ฐ์ ํค๋ ์๋ก 1๋ฒ ํค๋ก ์ํธํํ๋ฉด ๋ฐ๋์ 2๋ฒํค๋ก๋ง ๋ณตํธํํ ์ ์๊ณ 2๋ฒ ํค๋ก ์ํธํํ๋ฉด ๋ฐ๋์ 1๋ฒํค๋ก๋ง ๋ณตํธํํ ์ ์๋ ๋ฃฐ์ด ์๋ ๊ฒ์ด๋ค.
๊ทธ ์ค์์ ํ๋ ํค๋ ๋ชจ๋์๊ฒ ๊ณต๊ฐํ๋ ๊ณต๊ฐํค(1๋ฒ ํค)๋ก ๋ง๋ค์ด์ย ๊ณต๊ฐํค ์ ์ฅ์์ ๋ฑ๋กํด๋๋๋ค.
์๋ฒ๋ ์๋ฒ๋ง ์ ์ ์๋ ๊ฐ์ธํค(2๋ฒ ํค)๋ฅผ ์์ ํ๊ณ ์์ผ๋ฉด ๋๋ค.
๊ทธ๋ฌ๋ฉด 1๋ฒํค๋ก ์ํธํ๋ http ์์ฒญ, ์ฆ HTTPS ํ๋กํ ์ฝ์ ์ฌ์ฉํ ์์ฒญ์ด ์จ๋ค๋ฉด ์๋ฒ๋ ๊ฐ์ธํค(2๋ฒ ํค)๋ฅผ ์ด์ฉํ์ฌ 1๋ฒํค๋กย ์ํธํ๋ ๋ฌธ์ฅ์ ํด๋ ํ๊ฒ ๋๋ค.
์๋ฒ๋ ์์ฒญ์ด ๋ฌด์์ธ์ง ์๊ฒ๋๊ณ ย ์์ฒญ์ ๋ง๋ ์๋ต์ ๋ค์ ๊ฐ์ธํค(2๋ฒ ํค)๋ก ์ํธํํด์ ์์ฒญํ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ด์ฃผ๊ฒ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ต์ ๋ฐ์ ํด๋ผ์ด์ธํธ๋ ๊ณต๊ฐํค(1๋ฒ ํค)๋ฅผ ์ด์ฉํด์ ๊ฐ์ธํค(2๋ฒ ํค)ย ์ํธํ๋ HTTPSย ์๋ต์ ํด๋ ํ๊ณ ์ฌ์ฉํ๋ ์๋๋ฆฌ์ค๋ค.ย ( ๊ณต๊ฐํค ์ํธํ ๋ฐฉ์์ ๋ํ ์ดํด๋ฅผ ์ํ ์ค๋ช ์ผ ๋ฟ ๋ ์ ํํ HTTPS ์ฐ๊ฒฐ ๊ณผ์ ์ ์๋์ ๋ฐ๋ก ์ ๋ฆฌ ํ์ต๋๋ค.)*
HTTPS๋ฅผ ์ง์ํ๋ ์๋ฒ์ ์์ฒญ(Request)์ ํ๋ ค๋ฉด ๊ณต๊ฐํค๊ฐ ํ์ํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
๊ทธ๋ฌ๋ฉด ๊ทธ ๊ณต๊ฐํค๋ ๊ณต๊ฐํค ์ ์ฅ์์ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋๋ฐ ์ด๋ป๊ฒ ๊ณต๊ฐํค ์ ์ฅ์์์ ๊ฐ์ ธ์ฌ๊น?
์ถ๊ฐ์ ์ผ๋กย ๊ณต๊ฐํค๋ ๋๊ตฌ๋ ์ป์ ์ ์๊ณ ๊ณต๊ฐํค๋ฅผ ์๋ฉด ์๋ฒ๊ฐ ์ฃผ๋ ๋ฐ์ดํฐ(Response)๋ย ์ ์ ์๋๋ฐ ๋ณด์์์ ์๋ฏธ๊ฐ ์์๊น?
๋ณด์์์ ์๋ฏธ๋ ์๋ค.
๋์ ์ป์ ์ ์๋ ์ด์ ์ย ํด๋น ์๋ฒ๋ก๋ถํฐ ์จ ์๋ต์์ ํ์ ํ ์ ์๋ค. ์? ๊ณต๊ฐํค๋ก ํด๋ ์ด ๊ฐ๋ฅํ์ผ๋๊น ๋ฐ๋์ ํด๋น ์๋ฒ์ ๊ฐ์ธํค๋ก ์ํธํํ๋ค๋ ๊ฒ์ ๋ณด์ฅํ๊ธฐ ๋๋ฌธ์ด๋ค.
# ์กฐ๊ธ ๋ ์์ธํ HTTPS ํต์ ํ๋ฆ
์๊น ์๋ฌธ์ ๊ฐ์ก๋ ๊ฒ์ ๋ค์ ์๊ฐํด๋ณด์.
๊ณต๊ฐํค๊ฐ ๊ณต๊ฐํค ์ ์ฅ์์ ์๋๋ฐ ์ด๋ป๊ฒ ๊ฐ์ ธ์ฌ ์ ์์๊น?
HTTPS ํต์ ํ๋ฆ์ ๋ํด์ ์์ธํ ๋ค์ฌ๋ค๋ณด๋ฉด ์ ์ ์๋ค.
์ผ๋จ ๊ณต๊ฐํค ์ ์ฅ์๋ผ๊ณ ๋ถ๋ฅด๋ ๊ณณ์ด ์๋ ๋ช ์นญ์ย CA(Certificate Authority)๋ค.
CA๋ ๋ฏผ๊ฐ๊ธฐ์ ์ด์ง๋ง ์๋ฌด๋ ์ด์ํ ์ ์๊ณ ์ ๋ขฐ์ฑ์ด ๊ฒ์ฆ๋ ๊ธฐ์ ๋ง CA๋ฅผ ์ด์ํ ์ ์๋ค.
๋จผ์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ(A)๋ฅผ ๋ง๋๋ ๊ธฐ์ ์ HTTPS๋ฅผ ์ ์ฉํ๊ธฐ ์ํด์ ๊ณต๊ฐํค์ ๊ฐ์ธํค๋ฅผ ๋ง๋ญ๋๋ค.
๊ทธ ๋ค์์ ์ ๋ขฐํ ์ ์๋ CA ๊ธฐ์ ์ย ์ ํํ๊ณ ๊ทธ ๊ธฐ์ ์ ๋ด ๊ณต๊ฐํค๋ฅผ ๊ด๋ฆฌํด๋ฌ๋ผ๊ณ ๊ณ์ฝํ๊ณ ย ๋์ ์ง๋ถํฉ๋๋ค.
๊ณ์ฝ์ ์๋ฃํย CA ๊ธฐ์ ์ ๋ CA ๊ธฐ์ ๋ง์ ๊ณต๊ฐํค์ ๊ฐ์ธํค๊ฐ ์์ต๋๋ค.
CA ๊ธฐ์ ์ย CA๊ธฐ์ ์ ์ด๋ฆ๊ณผ A์๋ฒ์ ๊ณต๊ฐํค, ๊ณต๊ฐํค์ ์ํธํ ๋ฐฉ๋ฒ ๋ฑ์ ์ ๋ณด๋ฅผ ๋ด์ ์ธ์ฆ์๋ฅผ ๋ง๋ค๊ณ , ํด๋น ์ธ์ฆ์๋ฅผ CA ๊ธฐ์ ์ ๊ฐ์ธํค๋กย ์ํธํํด์ย A์๋ฒ์๊ฒ ์ ๊ณตํฉ๋๋ค.
A์๋ฒ๋ ์ํธํ๋ ์ธ์ฆ์๋ฅผ ๊ฐ๊ฒ ๋์์ต๋๋ค. ์ด์ A์๋ฒ๋ A์๋ฒ์ ๊ณต๊ฐํค๋ก ์ํธํ๋ HTTPS ์์ฒญ์ด ์๋ ์์ฒญ(Request)์ด ์ค๋ฉด ์ด ์ํธํ๋ ์ธ์ฆ์๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ค๋๋ค.
์ด์ ํด๋ผ์ด์ธํธ ์ ์ฅ์์, ์๋ฅผ ๋ค์ดย A์๋ฒ๋ก index.html ํ์ผ์ ๋ฌ๋ผ๊ณ ์์ฒญํ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด HTTPS ์์ฒญ์ด ์๋๊ธฐ ๋๋ฌธ์ย CA๊ธฐ์ ์ดย A์๋ฒ์ ์ ๋ณด๋ฅผย CA ๊ธฐ์ ์ ๊ฐ์ธํค๋ก ์ํธํํย ์ธ์ฆ์๋ฅผ ๋ฐ๊ฒ๋๊ฒ ์ง์.
์ฌ๊ธฐ์ ์ค์ํฉ๋๋ค.ย ์ธ๊ณ์ ์ผ๋ก ์ ๋ขฐํ ์ ์๋ CA ๊ธฐ์ ์ ๊ณต๊ฐํค๋ย ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฏธ ์๊ณ ์์ต๋๋ค!
๋ธ๋ผ์ฐ์ ๊ฐ CA ๊ธฐ์ ๋ฆฌ์คํธ๋ฅผ ์ญ ํ์ํ๋ฉด์ ์ธ์ฆ์์ ์ ํ์๋ CA๊ธฐ์ ์ด๋ฆ์ด ๊ฐ์ผ๋ฉด ํด๋น CA๊ธฐ์ ์ ๊ณต๊ฐํค๋ฅผ ์ด๋ฏธ ์๊ณ ์๋ ๋ธ๋ผ์ฐ์ ๋ ํด๋ ํ ์ ์๊ฒ ์ฃ ? ๊ทธ๋ฌ๋ฉด ํด๋ ํด์ A์๋ฒ์ ๊ณต๊ฐํค๋ฅผ ์ป์์ต๋๋ค.
๊ทธ๋ฌ๋ฉด A์๋ฒ์ ํต์ ํ ๋๋ A์๋ฒ์ ๊ณต๊ฐํค๋ก ์ํธํํด์ Request๋ฅผ ๋ ๋ฆฌ๊ฒ ๋๊ฒ ์ฃ .
์ด๋ฐ ๊ตฌ์ฑ์ ๋๋ค๋ง,
HTTPS๋ฅผ ์ง์ํ๋ค๊ณ ํด์ ๋ฌด์กฐ๊ฑด ์์ ํ ๊ฒ์ ์๋๋๋ค.
์๋ํ๋ฉด ์ ๋ขฐํ ์ ์๋ CA ๊ธฐ์ ์ด ์๋๋ผ ์์ฒด์ ์ผ๋ก ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ ์๋ ์๊ณ , ์ ๋ขฐํ ์ ์๋ CA ๊ธฐ์ ์ ํตํด์ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ์ ์๋ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ ๊ฒ ๋๋ฉด ๋ธ๋ผ์ฐ์ ์์๋ https์ง๋ง "์ฃผ์ ์ํจ", "์์ ํ์ง ์์ ์ฌ์ดํธ"๋ฑ์ ์๋ฆผ์ ์ฃผ๊ฒ๋ฉ๋๋ค.
# Reference
- http://cryptocat.tistory.com/3 (opens new window)
- https://jeong-pro.tistory.com/89 (opens new window)
# Todo ์ฐธ๊ณ ํด์ ๊ธ ์ถ๊ฐํ๊ธฐ
HTTP vs HTTPS ์ฐจ์ด, ์๋ฉด ์ฌ์ดํธ์ ๋ ๋ฒจ์ด ๋ณด์ธ๋ค. (opens new window)
HTTP์ HTTPS์ ์ฐจ์ด์ (opens new window)
HTTP์ HTTPS์ 5๊ฐ์ง ์ฐจ์ด์ ์ ๋ฆฌ (opens new window)
โ Ajax๋? RPC VS RMI โ