HTTPS
๋ณด์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ HTTP
HTTP์๋ ๋ง์ ์ฅ์ ๋ค์ด ์์ง๋ง ์๋์ ๊ฐ์ ๋ณด์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ํ๋ ์น์์๋ HTTPS๋ฅผ ํตํด ํด๊ฒฐํ๊ณ ์๋ค.
ํ๋ฌธ ํต์ (๋ฉ์์ง ํ์ทจ ๊ฐ๋ฅ)
TCP/IP ํน์ฑ์ ์ค๊ฐ์ ๋๊ตฐ๊ฐ๊ฐ ํจํท์ ๊ฐ๋ก์ฑ๋ฉด ๋ด์ฉ์ ํ์ธํ ์ ์์ผ๋ฉฐ, HTTP๋ ์ํธํ๊ฐ ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ํจํท์ ๊ฐ๋ก์ฑ๋ฉด ๋ด์ฉ์ ํ์ธํ ์ ์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ํธํ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
ํต์ ์ํธํ
ํต์ ์ ์ํธํ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก SSL(Secure Socket Layer)์ TLS(Transport Layer Security)๋ฅผ ์ฌ์ฉํด ์ํธํ๋ฅผ ํ ์ ์๋ค.
์ปจํ ์ธ ์ํธํ
ํต์ ์ ํตํด ์ ๋ฌํ๊ณ ์๋ ๋ฉ์์ง๋ฅผ ์ํธํ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก, ์ํธํ๋ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๊ณ ๋ฐ๋๋ค. ํด๋ผ์ด์ธํธ/์๋ฒ ๋ชจ๋ ์ํธํ/๋ณตํธํ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๊ธฐ ๋๋ฌธ์ ์ํธํ/๋ณตํธํ ๊ณผ์ ์ด ์ถ๊ฐ๋์ด ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ๋จ์ ์ด ์์ผ๋ฉฐ, ์ฃผ๋ก ์น ์๋น์ค์์ ์ฌ์ฉํ ์ ์๋ค.
ํต์ ์๋ ํ์ธ ๋ถ๊ฐ๋ฅ(์์ฅ ๊ฐ๋ฅ)
HTTP๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์์ฒญ์ ๋ณด๋ผ ๋, ์๋ฒ๊ฐ ํด๋น ํด๋ผ์ด์ธํธ๊ฐ ๋ง๋์ง ํ์ธํ์ง ์๊ธฐ ๋๋ฌธ์ ์์ฅ์ด ๊ฐ๋ฅํ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ 3์๊ฐ ๋ฐ๊ธํ๋ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํด ์๋ก๋ฅผ ํ์ธํ์ฌ ์์ฅ์ ๋ฐฉ์งํ ์ ์๋ค.(ํ์ฌ ์์กฐํ๋ ๊ฒ์ ๊ธฐ์ ์ ์ผ๋ก ์ด๋ ต๋ค.)
์์ ์ฑ ํ์ธ ๋ถ๊ฐ๋ฅ(๋ณ์กฐ ๊ฐ๋ฅ)
HTTP๋ ๋ฉ์์ง๊ฐ ์ค๊ฐ์ ๋ณ์กฐ๋์ง ์์๋์ง ํ์ธํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ณ์กฐ๊ฐ ๊ฐ๋ฅํ๋ค.(์์ฒญ์ด๋ ์๋ต์ ๊ฐ๋ก์ฑ์ ๋ณ์กฐํ๋ ๊ณต๊ฒฉ = ์ค๊ฐ์ ๊ณต๊ฒฉ
)
์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด ๋์งํธ ์๋ช
์ด๋ผ๋ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋, ์ด ๋ฐฉ๋ฒ ํ๋๋ง์ผ๋ก๋ ์๋ฒฝํ ๋ณด์์ ๋ณด์ฅํ ์ ์๋ค.
HTTP + SSL = HTTPS
HTTP์ SSL ํน์ TLS๋ฅผ ์ ์ฉํ ๊ฒ์ผ๋ก, HTTP์ SSL์ด๋ TLS๋ฅผ ์ ์ฉํ๋ฉด ์์์ ์ธ๊ธ ๋ ๋ณด์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์ ํ๋กํ ์ฝ์ ์๋๋ฉฐ, HTTP ํต์ ์์ผ ๋ถ๋ถ์ SSL์ด๋ TLS๋ก ๋์ฒดํ ๊ฒ์ด๋ค.
SSL(Secure Socket Layer) : 1994๋ ์ ๊ณต๊ฐ๋ ์ํธํ ํ๋กํ ์ฝ
TLS(Transport Layer Security) : SSL์ ํ์ ๋ฒ์ ์ผ๋ก ํ์ฌ ์ฃผ๋ก ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ
TLS์ SSL๋ ๋งค์ฐ ๋น์ทํ๊ธฐ ๋๋ฌธ์ SSL์ด๋ผ๊ณ ํต์นญํ์ฌ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
HTTP - ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต
HTTP - ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต
-
SSL or TLS - ๋ณด์ ๊ณ์ธต
TCP - ์ ์ก ๊ณ์ธต
TCP - ์ ์ก ๊ณ์ธต
IP - ๋คํธ์ํฌ ๊ณ์ธต
IP - ๋คํธ์ํฌ ๊ณ์ธต
๋คํธ์ํฌ ์ธํฐํ์ด์ค - ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต
๋คํธ์ํฌ ์ธํฐํ์ด์ค - ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต
์ธ์ฝ๋ฉ ๋ฐ ๋์ฝ๋ฉ ์์ ์ ๋๋ถ๋ถ SSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ด๋ถ์์ ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์, ์น ํด๋ผ์ด์ธํธ๋ ์๋ฒ๊ฐ ๋ณ๋๋ก ํฌ๊ฒ ์ฒ๋ฆฌํ ๋ถ๋ถ์ ์๋ค. ๊ฒฐ๊ตญ HTTPS๋ HTTP ํ๋กํ ์ฝ์ ๋์นญ/๋น๋์นญ ์ธ์ฆ์ ๊ธฐ๋ฐ ์ํธ ๊ธฐ๋ฒ์ ๊ฐ๋ ฅํ ์งํฉ์ ๊ฒฐํฉํ ๊ฒ์ผ๋ก ๋คํธ์ํฌ ์์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ณด์ ํ๋กํ ์ฝ์ด๋ค.
HTTP / HTTPS ํธ๋์ญ์
๋น๊ต
URL ํ๋กํ ์ฝ ์คํค๋ง์ ๋ฐ๋ผ HTTP/HTTPS๋ก ํต์ ํ๊ฒ ๋๋ฉฐ, ๊ฐ๊ฐ ์๋์ ๊ฐ์ ํธ๋์ญ์ ์ ๊ฑฐ์น๊ฒ ๋๋ค.
์๋ฒ์ 80ํฌํธ๋ก TCP ์ปค๋ฅ์ ์๋ฆฝ
์๋ฒ์ 443ํฌํธ๋ก TCP ์ปค๋ฅ์ ์๋ฆฝ
-
SSL ๋ณด์ ๋งค๊ฐ๋ณ์ ํธ๋์ ฐ์ดํฌ
TCP๋ฅผ ํตํด ๋ณด๋ด์ง HTTP ์์ฒญ
SSL์ ํตํด ๋ณด๋ด์ง HTTP ์์ฒญ / TCP๋ฅผ ํตํด ๋ณด๋ด์ง ์ํธํ๋ ์์ฒญ
TCP๋ฅผ ํตํด ๋ณด๋ด์ง HTTP ์๋ต
SSL์ ํตํด ๋ณด๋ด์ง HTTP ์๋ต / TCP๋ฅผ ํตํด ๋ณด๋ด์ง ์ํธํ๋ ์๋ต
-
SSL ๋ซํ ํต์ง
TCP ์ปค๋ฅ์ ๋ซํ
TCP ์ปค๋ฅ์ ๋ซํ
SSL Handshake
์ํธํ๋ HTTP ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ธฐ ์ํด์๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์๋ก ์ํธํ์ ํ์ํ ์ ๋ณด๋ฅผ ๊ตํํด์ผํ๋๋ฐ, ์ด๋ฅผ SSL Handshake๋ผ๊ณ ํ๋ค. ์๋ฒ-ํด๋ผ์ด์ธํธ ์ต์ด ์ฐ๊ฒฐ ์ ๋น๋์นญํค ์ํธํ ๋ฐฉ์(์ต์ด ์ฐ๊ฒฐ)์ ์ฌ์ฉํ์ฌ ์๋ก์ ์ ์์ ํ์ธํ ๋ค ์ธ์ ํค๋ฅผ ์์ฑํ๊ณ , ๊ทธ ์ดํ์๋ ์์ฑ ๋ ์ธ์ ํค๋ฅผ ํตํด ๋์นญํค ์ํธํ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค.
ํด๋ผ์ด์ธํธ ํฌ๋ก (Client Hello)
ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ โClient Helloโ ๋ฉ์์ง๋ฅผ ๋ณด๋ด์ด ํต์ ์ ์์
ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ์ํธํ ์๊ณ ๋ฆฌ์ฆ ์ ์ก
์๋ฒ ํฌ๋ก (Server Hello)
์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ํฌ๋ก ๋ฉ์์ง์ ์๋ตํ์ฌ โServer Helloโ ๋ฉ์์ง ์ ์ก
์๋ฒ๊ฐ ์ ํํ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ก
์ธ์ฆ (Certificate)
์๋ฒ๋ SSL ๋์งํธ ์ธ์ฆ์๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์ก(ํด๋น ์ธ์ฆ์๋ ์๋ฒ์ ์ ์์ ํ์ธํ๋ ๋ฐ ์ฌ์ฉ)
ํด๋ผ์ด์ธํธ๋ ์๋ฒ๊ฐ ๋ณด๋ธ CA(Certificate Authority, ์ธ์ฆ ๊ธฐ๊ด)์ ๊ฐ์ธํค๋ก ์ํธํ๋ SSL ์ธ์ฆ์๋ฅผ ๊ณต๊ฐ๋ CA์ ๊ณต๊ฐํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ณตํธํ
๋ํ ํด๋ผ์ด์ธํธ๋ ๋ฐ์ดํฐ ์ํธํ์ ์ฌ์ฉํ ๋์นญํค(๋น๋ฐํค)๋ฅผ ์์ฑํ ํ SSL ์ธ์ฆ์ ๋ด๋ถ์ ๋ค์ด์๋ ์๋ฒ๊ฐ ๋ฐํํ ๊ณต๊ฐํค๋ฅผ ์ด์ฉํด ์ํธํํ์ฌ ์๋ฒ์๊ฒ ์ ์ก
์๋ฒ ํค ๊ตํ (Server Key Exchange)
์๋ฒ์ ๊ณต๊ฐํค๊ฐ SSL ๋ด๋ถ์ ์์์ ๊ฒฝ์ฐ ์๋ฒ๊ฐ ์ง์ ์ ๋ฌํ๋ ๊ณผ์
์ด๋ฏธ SSL ๋ด๋ถ์ ์์๋ค๋ฉด ์๋ต
Server Hello Done
ํธ๋์์ดํฌ ์ด๊ธฐ ๋จ๊ณ ์๋ฃ
ํด๋ผ์ด์ธํธ ํค ๊ตํ (Client Key Exchange)
ํด๋ผ์ด์ธํธ๋ ์ธ์ ํค๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ ๋ณด๋ฅผ ์๋ฒ์ ๋ณด๋ ๋๋ค. ์ด๋ ์๋ฒ์ ๊ณต๊ฐ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํ๋์ด ์ ์ก๋ฉ๋๋ค.
์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ์ํธํํ ๋์นญํค๋ฅผ ํด๋ผ์ด์ธํธ๊ฐ ์์ฑํ์ฌ SSL ์ธ์ฆ์ ๋ด๋ถ์์ ์ถ์ถํ ์๋ฒ์ ๊ณต๊ฐํค๋ฅผ ์ด์ฉํด ์ํธํํ ํ ์๋ฒ์๊ฒ ์ ๋ฌ
Client ChangeChipherSpec / Finished
ํด๋ผ์ด์ธํธ์์ โChangeChipherSpecโ ๋ฉ์์ง๋ฅผ ๋ณด๋ด ์ํธํ๋ ํต์ ์์์ ์๋ฆผ
์ดํ โFinishedโ ๋ฉ์์ง๋ฅผ ๋ณด๋ด ํธ๋์์ดํฌ ๊ณผ์ ์๋ฃ ์๋ฆผ
Server ChangeChipherSpec / Finished
์๋ฒ๋ โChangeChipherSpecโ ๋ฉ์์ง๋ฅผ ๋ณด๋ด ์ํธํ๋ ํต์ ์ ์์ํจ์ ์๋ฆผ
์ดํ โFinishedโ ๋ฉ์์ง๋ฅผ ๋ณด๋ด ํธ๋์์ดํฌ ๊ณผ์ ์๋ฃ ์๋ฆผ
์ฌ์ดํธ ์ธ์ฆ์ ๊ฒ์ฌ
SSL ์์ฒด๋ ์ฌ์ฉ์์๊ฒ ์ธ์ฆ์ ๊ฒ์ฆ ์๊ตฌ๋ฅผ ํ์ง ์์ง๋ง, ์ต์ ์น๋ธ๋ผ์ฐ์ ๋๋ถ๋ถ์ด ์ธ์ฆ์์ ๋ํด ๊ธฐ๋ณธ์ ์ธ ๊ฒ์ฌ๋ฅผ ํ ๋ค ๋์ ์์ค์ ๊ฒ์ฌ๋ฅผ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๋ค. ๋ท์ค์ผ์ดํ์์๋ ์น ์๋ฒ ์ธ์ฆ์ ๊ฒ์ฌ๋ฅผ ์ํ ์๊ณ ๋ฆฌ์ฆ์ ๋ง๋ค์ด ๊ธฐ์ด๋ฅผ ๊ตฌ์ถํ์ผ๋ฉฐ, ์ํ ๋จ๊ณ์์ ์๋์ ๊ฒ์ฌ๋ฅผ ์ํํ๋ค.
๋ ์ง ๊ฒ์ฌ: ์ธ์ฆ์์ ์์ ๋ฐ ์ข ๋ฃ์ผ ๊ฒ์ฌ
์๋ช ์ ์ ๋ขฐ๋ ๊ฒ์ฌ: ๋ธ๋ผ์ฐ์ ์ ๋ด์ฅ๋ ์ธ์ฆ์ ๋ฐ๊ธ์ ๋ชฉ๋ก๊ณผ ์ธ์ฆ์ ๋ฐ๊ธ์์ ์ด๋ฆ์ ๋น๊ต(์ ๋ขฐํ ์ ์๋ ๋ฐ๊ธ์์ธ์ง ๊ฒ์ฌ)
์๋ช ๊ฒ์ฌ: ์๋ช ๊ธฐ๊ด์ ๊ณต๊ฐํค๋ฅผ ์๋ช ์ ์ ์ฉํ์ฌ ์ฒดํฌ์ฌ๊ณผ ๋น๊ตํ์ฌ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ
์ฌ์ดํธ ์ ์ ๊ฒ์ฌ: ์ธ์ฆ์ ๋ณต์ฌ ํน์ ํธ๋ํฝ ์ค๊ฐ์ ๊ณต๊ฒฉ์ ๋ง๊ธฐ ์ํด ์ธ์ฆ์์ ๋๋ฉ์ธ ์ด๋ฆ๊ณผ ํต์ ์ค์ธ ์๋ฒ ํธ์คํธ์ ๋๋ฉ์ธ์ด ์ผ์นํ๋์ง ๊ฒ์ฌ
์ฐธ๊ณ ์๋ฃ
Last updated
Was this helpful?