Table of Contents
์ด๋ฏธ HTTPS์ ์ค์์ฑ์ ๋๋ฆฌ ์๋ ค์ ธ ์๋ค. ํฌ๋กฌ, ํ์ด์ดํญ์ค์ ๊ฐ์ ๋ธ๋ผ์ฐ์ ๋ HTTP ์๋ฒ์ ์ ์ํ ๋ ๊ฒฝ๊ณ ๋ฅผ ๋์ฐ๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ํด์๋ผ๋ HTTPS๋ ํ์๋ผ๊ณ ํ ์ ์๋ค. ๋ด๊ฐ ๊ฐ๋ก๊ฐ์ ์ฝ๋์ ํจ๊ปํ ํ๋ฃจ ๋ฆฌ๋ด์ผ ์ด์ผ๊ธฐ์์ ๊ทธ๋ ๊ฒ ์ฝ์งํ ์ด์ ์ด๊ธฐ๋ ํ๋ค.
HTTPS๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ํธํ๋๊ณ , ๋ณด์์ ์ข๋ค๋ ๊ฒ์ ์์์ง๋ง, HTTP ์ ์๊ณผ ๋น๊ตํ๋ฉฐ ์ค์ ๋ก ์ค๊ฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํด๋ณด๋ ๊ทธ ์ฌ์ค์ด ๋์ฑ ๊ฐ๊น๊ฒ ๋ค๊ฐ์๋ค. ์ปดํจํฐ ๋คํธ์ํฌ์ ๋ํ ๋ฐฐ๊ฒฝ ์ง์์ Top-Down์ผ๋ก ์ ๊ทผํ๋ ๋คํธ์ํฌ๋ฅผ ์ฐธ๊ณ .
๐ฆ Wireshark ์ฌ์ฉํ๊ธฐ
Wireshark๋ ์คํ์์ค ํจํท ๋ถ์ ํ๋ก๊ทธ๋จ์ด๋ค. (ํจํท์ ๋คํธ์ํฌ์์ ์ค๊ฐ๋ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ๋งํ๋ค.) Wireshark๋ฅผ ์ฌ์ฉํ๋ฉด ๋คํธ์ํฌ ์์์ ์ด๋ํ๋ ํจํท์ ์บก์ณํด ๊ทธ ๋ด์ฉ์ ๋ณผ ์ ์๋ค. PCAP์ ํธ๋ํฝ์ ์บก์ณํ๊ธฐ ์ํ ์ธํฐํ์ด์ค์ด๊ธฐ ๋๋ฌธ์ Wireshark๋ฅผ ์ค์นํ ๋ ๊ผญ ๊ฐ์ด ์ค์นํด์ผ ํ๋ค.
์ฒซ ํ๋ฉด์ ๋ค์ํ ์ธํฐํ์ด์ค๊ฐ ๋ณด์ด๋๋ฐ, ์์ดํ์ด์ ์ฐ๊ฒฐ๋ ๋ ธํธ๋ถ๊ณผ ๋คํธ์ํฌ ์ฌ์ด์ ์ค๊ฐ๋ ํจํท์ ์บก์ฒํ๊ณ ์ถ์ผ๋๊น Wi-Fi๋ฅผ ์ ํํ๋ค.
ํํฐ๋ฅผ ์ค์ ํ์ง ์์ผ๋ฉด ํด๋น ์ธํฐํ์ด์ค์ ๋ชจ๋ ํจํท์ด ์กํ๋ค. ๊ทธ ์์ด ์์ ์ด์์ผ๋ก ๋ง๊ณ , ์๋๋ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ํํฐ๋ฅผ ์ ์ค์ ํด ์ํ๋ ๋ฐ์ดํฐ๋ง ๊ณจ๋ผ์ ๋ณด๋ ๊ฒ์ด ์ค์ํ๋ค. ์๋จ 'Apply a display filterโ์ ํํฐ ์กฐ๊ฑด์ ์ ๋ ฅํ๋ฉด ํด๋น ์กฐ๊ฑด์ ๋ง๋ ํจํท๋ง ๊ณจ๋ผ์ ๋ณด์ฌ์ค๋ค.
๐ HTTP ์ ์
์ดํ HTTP ์ ์๊ณผ HTTPS ์ ์์ ๋น๊ตํด์ผ ํ๋ฏ๋ก HTTP ์ฃผ์์ ์ ์ํด๋ HTTPS๋ก ๋ฆฌ๋ค์ด๋ ํธ๋์ง ์๋ ์ฌ์ดํธ๋ฅผ ๋จผ์ ์ฐพ์์ผ ํ๋ค. ์์๋๋ก(?) ํ๊ต ํํ์ด์ง๋ http://www.ajou.ac.kr๋ ์ ์์ด ๊ฐ๋ฅํ๊ณ , https://www.ajou.ac.kr๋ ์ ์์ด ๊ฐ๋ฅํ๋ค.
Wireshark๋ฅผ ์ผ๋ ์ฑ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด http://www.ajou.ac.kr์ ์ ์ํ๋ฉด Wireshark์ ์บก์ฒ๋๋ค. ์๋ง์ ๋ฐ์ดํฐ ์์ ํ๋ฌปํ ๋ฒ๋ฆฌ์ง ์๋๋ก ๋ค์๊ณผ ๊ฐ์ ํํฐ๋ฅผ ๋ง๋ค์๋ค:
ip.addr == 202.39.0.19 && http
์ด์ source๋ destination์ ์์ดํผ๊ฐ 202.39.0.19
์ด๊ณ , ํ๋กํ ์ฝ์ด HTTP์ธ ํจํท๋ง ๋ณด์ฌ์ค๋ค. ์๋ฒ ์์ดํผ๋ cmd์์ ping www.ajou.ac.kr
์ ์คํํด ํ์ธํ๋ค.
๋ธ๋ผ์ฐ์ ์์ http://www.ajou.ac.kr์ ์๋ก๊ณ ์นจํ๋ ํจํท์ด ์ญ ๋์๋ค. ๊ทธ ์ค ํ๋๋ฅผ ์ ํํด ๋ด์ฉ์ ์ดํด๋ดค๋ค.
HTTP Request Message
http://www.ajou.ac.kr์๊ฒ /_resources/new/img/index/btn_pop_close.gif
๋ฅผ ์์ฒญํ๋ HTTP ๋ฉ์์ง์ด๋ค. HTTP ์์ฒญ ๋ฉ์์ง๋ ํฌ๊ฒ Request line, Header lines, Entity body๋ก ๋๋ ์ ์๋ค. Request line์๋ GET /_resources/new/img/index/btn_pop_close.gif HTTP/1.1\r\n
์ด ์๊ณ , ๊ทธ ์๋ Header lines์๋ Host, User-Agent, Accept-Langueage ๋ฑ ์ฌ๋ฌ ํค๋๋ค์ด ๋ฐ๋ผ์จ๋ค.
User-Agent ํค๋๋ฅผ ํตํด ํด๋ผ์ด์ธํธ๊ฐ ํ์ด์ดํญ์ค๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ ์ ์ ์ ์ ์๊ณ , Referer๋ฅผ ํตํด ํด๋ผ์ด์ธํธ๊ฐ http://www.ajou.ac.kr/main/index.jsp์์ ๋์ด์๋ค๋ ๊ฒ์ ์ ์ ์๋ค. Referer๋ฅผ ๋ณด๋ฉด ๋ธ๋ก๊ทธ์ ๋ฐฉ๋ฌธ์ ์ ์ ๊ฒฝ๋ก์ ๊ฐ์ ์ ๋ณด๋ฅผ ์ป์ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ฟ ํค๋ ๋ณด์ด๋๋ฐ, ์ฌ๊ธฐ์๋ PHAROS_VISITOR
์ JSESSIONID
๋ผ๋ ์ฟ ํค๊ฐ ์ฌ์ฉ๋์๋ค. JSESSIONID
๋ ํฐ์บฃ ์๋ฒ์์ JSP๋ฅผ ์คํํ ๋ ์ธ์
ID๋ฅผ ๊ตฌ๋ถํ๋ ค๋ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ง ์ฟ ํค๋ค. PHAROS_VISITOR
๋ ์ด๋ค ๋ชฉ์ ์ผ๋ก ์ฐ์ด๋์ง ์ ์ ์์๋ค.
HTTP Response Message
์์ ์์ฒญ์ ๋ํ ์๋ฒ์ ์๋ต ๋ฉ์์ง๋ค. HTTP ์๋ต ๋ฉ์์ง๋ Status line, Header lines, Entity body๋ก ๋๋ ์ ์์ผ๋ฉฐ, Status line์ ์์ฒญ์ด ์ ์ฒ๋ฆฌ๋์๋ค๋ ์๋ฏธ์ธ 200 OK
๊ฐ ๋ด๊ธด ๊ฒ์ ๋ณผ ์ ์๋ค.
ํํธ Last-Modified ํค๋๋ฅผ ํตํด ์บ์๋ ํ์ผ์ด 2017๋ 2์ 23์ผ ๋ชฉ์์ผ์ ๋ง์ง๋ง์ผ๋ก ์์ ๋์๋ค๋ ๊ฒ๊ณผ Content-Type ํค๋๋ฅผ ํตํด GIF ์ด๋ฏธ์ง์ด๋ผ๋ ๊ฒ๋ ์ ์ ์๋ค. (์ฌ์ง ์บก์ฒํ๊ฒ 10์ 11์ผ ์คํ 11์์ฏค์ธ๋ฐ Date๊ฐ ์ ์คํ 1์๋ก ๋์จ๊ฑด์ง ๋ชจ๋ฅด๊ฒ ๋ค.)
๋ง์ง๋ง์ผ๋ก Body์๋ GIF ํ์ผ์ด ๋ด๊ฒจ์๋ค.
Conditional GET
์ฌ์ค ํด๋ผ์ด์ธํธ๋ ์ค๋ฆฌ์ง ์๋ฒ์๊ฒ ๋ฐ๋ก ์์ฒญ ๋ฉ์์ง๋ฅผ ๋ณด๋ด์ง ์๊ณ , ์ค๊ฐ์ ์๋ ํ๋ก์ ์๋ฒ์๊ฒ ๋ฉ์์ง๋ฅผ ๋ณด๋ด ์์ฒญํ๋ ์ค๋ธ์ ํธ๊ฐ ์บ์๋์ด ์๋์ง ํ์ธํ๋ค. ์ด๋, ํ๋ก์ ์๋ฒ๋ก ํ์ฌ๊ธ ์ค๋ฆฌ์ง ์๋ฒ์๊ฒ ์บ์๋ ํ์ผ์ด ๋ณ๊ฒฝ๋๋์ง ํ์ธํ๋๋ก ํ๋ ๊ฒ์ด conditional GET์ด๋ค.
conditional GET์ ๋์์ ๋ณด๊ธฐ ์ํด ๋ ๋ค๋ฅธ ํจํท์ ์ดํด๋ดค๋ค. HTTP ์์ฒญ ๋ฉ์์ง์ If-Modified-Since ํค๋๊ฐ ํฌํจ๋์ด ์์ผ๋ฉด ํ๋ก์ ์๋ฒ๋ ์ค๋ฆฌ์ง ์๋ฒ์๊ฒ ์์ฒญ์ ๋ณด๋ด ์บ์๋ ํ์ผ์ด ๋ณ๊ฒฝ๋๋์ง ํ์ธํ๋ค. ์ ๋ฉ์์ง์๋ If-Modified-Since ํค๋๊ฐ ์์ผ๋ฏ๋ก ํ๋ก์ ์๋ฒ๊ฐ ์ค๋ฆฌ์ง ์๋ฒ์๊ฒ ๋ฉ์์ง๋ฅผ ๋ณด๋์ ๊ฒ์ด๋ค.
304 Not Modified
์๋ต์ด ์๋ค. ํ์ผ์ด ๋ณ๊ฒฝ๋์ง ์์๋ค๋ ์๋ฏธ๋ก, ๊ทธ๋ฅ ํ๋ก์ ์๋ฒ์ ์บ์๋ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ค.
๐ HTTPS ์ ์
HTTPS๋ HTTP ํ๋กํ ์ฝ์ SSL ํ๋กํ ์ฝ์ ๋ํด ๋ณด์์ ๊ฐํํ ๊ฒ์ด๋ค. ์ฆ, ์๋ก์ด ํ๋กํ ์ฝ์ด ์๋๋ค. ๋ ์๋ฐํ ๋งํ์๋ฉด SSL ํ๋กํ ์ฝ์ ๊ณผ๊ฑฐ์ ์ฌ์ฉ๋์๊ณ , ์ง๊ธ์ SSL์ ๋ฐ์ ์ํจ TLS๋ฅผ ์ฌ์ฉํ๋ค. ํ์ง๋ง ๋์ฒด๋ก SSL๊ณผ TLS๋ฅผ ์์ด์ ๋งํ๋ค.
HTTP๋ก ์ ์ํ์ ๋๋ ๋ชจ๋ ํจํท์ ๋ด์ฉ์ ๋ฏ์ด ๋ณผ ์ ์์๋ค. HTTPS๋ ์ด๋จ๊น? ๋จผ์ Wireshark์ ํํฐ๋ฅผ ์์ ํ๋ค:
ip.addr == 202.39.0.19 && ssl
๊ทธ๋ฆฌ๊ณ ๋ธ๋ผ์ฐ์ ์์ https://www.ajou.ac.kr๋ก ์ ์ํ๋ฉด ํ๋กํ ์ฝ์ด TLS์ธ ํจํท๋ง ์บก์ณ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๋จผ์ ์ ์ ๊ณผ์ ์์ HTTP์ ๋ค๋ฅธ ์ ์ ์ฐพ์ ์ ์๋ค. HTTPS๋ก ์ ์ํ ๋๋ TCP Three-way handshake์ ๋ณ๋๋ก TSL handshake ๊ณผ์ ์ ๊ฑฐ์น๋ค.
IBM์ An overview of the SSL or TLS handshake์ ๋ฐ๋ฅด๋ฉด TLS handshake ๊ณผ์ ์์๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ธ์ฆ์๋ฅผ ๊ฒ์ฆํ๊ณ , ํด๋ผ์ด์ธํธ ํค๋ฅผ ๊ตํํ๋ค. ์์ ์บก์ฒ๋ ํจํท์์ ๋ณด๋ฏ, ์ด ๊ณผ์ ์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ Client Hello, Server Hello, Certificate, Server Hello Done ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค. ์ด ๊ณผ์ ์ ๊ฑฐ์น ํ์์ผ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ๋ณธ๊ฒฉ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋ค.
Wireshark์์ TLS handshake ์ดํ ์ฃผ๊ณ ๋ฐ๋ ํจํท ์ค ์๋ฌด๊ฑฐ๋ ์ด์ด๋ดค๋ค.
ํด๋ผ์ด์ธํธ์ https://www.ajou.ac.kr๊ฐ ์ฃผ๊ณ ๋ฐ์ ํด๋น ํจํท์ ์ฝํ ์ธ ํ์ ์ด Application Data๋ผ๋ ๊ฒ์ ์ ์ธํ๊ณ ๋ ์ ๋ณด๋ฅผ ์ ์๊ฐ ์๋ค. HTTP๋ก ์ ์ํ ๋๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ๋ฆฌ์์ค, ์ฌ์ฉํ๋ ๋ธ๋ผ์ฐ์ , ์ ์ ๊ฒฝ๋ก ๋ฑ ํจํท์ ํตํด ๊ฐ์ข ์ ๋ณด๋ฅผ ๋ณผ ์ ์์์ง๋ง, HTTPS๋ก ์ ์ํ ๋๋ ํจํท์ด ์ํธํ๋์ด ๋ด์ฉ์ ์ ์ ์๋ค.
๋ง์ฝ ์ด๋ค ์ฌ๋์ด HTTP ์๋ฒ์ ์ ์ํ๋๋ฐ, ์ ์๋ฅผ ๊ฐ์ง ํด์ปค๊ฐ ๊ทธ ์ฌ๋์ ํจํท์ ๊ฐ๋ก์ฑ๋ค๋ฉด ๊ทธ ์ฌ๋์ด ์ด๋ ํ์ด์ง์์ ๋ฌด์์ ํ๋์ง ๋ชจ๋ ์์๋ผ ์ ์์ ๊ฒ์ด๋ค.