ํฌ๋กฌ HSTS(Strict-Transport-Security) ํด์ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
ํฌ๋กฌ์์ HSTS ์ค์ ์ ๋นํ์ฑํํ๋ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์์๋ณด์ธ์. โ์ฐ๊ฒฐ์ด ๋น๊ณต๊ฐโ ์ค๋ฅ ํด๊ฒฐ ๋ฐ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ํ์ ์ ๊ณตํฉ๋๋ค.
๊ฐ๋ ๋ก์ปฌ ํ๊ฒฝ์์ ๊ฐ๋ฐํ๊ฑฐ๋ ํน์ ์ฌ์ดํธ๋ฅผ ๋๋ฒ๊น ํ ๋, '์ฐ๊ฒฐ์ด ๋น๊ณต๊ฐ๋ก ์ค์ ๋์ด ์์ง ์์ต๋๋คโ๋ผ๋ ๋ฉ์์ง์ ํจ๊ป ์ ์์ด ์ฐจ๋จ๋๋ ๊ฒฝํ์ ํด๋ณด์ จ์ ๊ฒ๋๋ค. ์ด ๋ฌธ์ ์ ์ฃผ๋ฒ ์ค ํ๋๊ฐ ๋ฐ๋ก HSTS(HTTP Strict Transport Security) ์ ์ฑ ์ธ๋ฐ์. ๋ณด์์ ์ํด ๊ผญ ํ์ํ ๊ธฐ๋ฅ์ด์ง๋ง, ๊ฐ๋ฐ ๊ณผ์ ์์๋ ์ ์ ๊บผ๋์ด์ผ ํ ๋๊ฐ ์์ต๋๋ค.
์ด ๊ธ์์๋ HSTS๊ฐ ๋ฌด์์ธ์ง ๊ฐ๋จํ ์์๋ณด๊ณ , ํฌ๋กฌ์์ ์ด ์ค์ ์ ๋นํ์ฑํํ๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์ฝ๊ณ ๋ช ํํ๊ฒ ์๋ดํด ๋๋ฆฝ๋๋ค. ์ด ๊ฐ์ด๋๋ฅผ ํตํด HSTS ๊ด๋ จ ์ค๋ฅ๋ฅผ ๋ง๋ํ ํด๊ฒฐํ๊ณ ๊ฐ๋ฐ ํจ์จ์ ๋์ฌ๋ณด์ธ์!
HSTS๋ ๋ฌด์์ด๋ฉฐ ์ ๋นํ์ฑํํด์ผ ํ ๊น?
sequenceDiagram
participant User as ๐ง ์ฌ์ฉ์ (๋ธ๋ผ์ฐ์ )
participant Server as ๐ ์น ์๋ฒ
participant Attacker as ๐ซ ์ค๊ฐ์ ๊ณต๊ฒฉ์ (MITM)
Note over User,Server: โ ์ฌ์ฉ์๊ฐ HTTPS๋ก ์ฌ์ดํธ์ ์ฒ์ ์ ์
User->>Server: HTTPS ์์ฒญ (GET https://example.com)
Server-->>User: ์๋ต + Strict-Transport-Security ํค๋
(max-age=31536000)
Note over User: โก ๋ธ๋ผ์ฐ์ ๊ฐ HSTS ์ ์ฑ
์ ์ ์ฅ
(1๋
๋์ HTTPS๋ง ํ์ฉ)
User-x Attacker: โ HTTP๋ก ์ ์ ์๋ ์ฐจ๋จ (์ค๊ฐ์ ๊ณต๊ฒฉ ๋ฐฉ์ง)
User->>Server: โ
์ดํ ๋ชจ๋ ์์ฒญ์ HTTPS๋ก๋ง ์ ์ก
Server-->>User: ์์ ํ ์๋ต ๋ฐํ
HSTS๋ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ํน์ ์น์ฌ์ดํธ์ ํต์ ํ ๋, ๋ชจ๋ ํต์ ์ ์ํธํ๋ HTTPS ํ๋กํ ์ฝ๋ก๋ง ๊ฐ์ ํ๋๋ก ํ๋ ์น ๋ณด์ ์ ์ฑ ์ ๋๋ค. ์น ์๋ฒ๊ฐ ๋ธ๋ผ์ฐ์ ์ "์์ผ๋ก ๋์ ํต์ ํ ๋๋ ๋ฌด์กฐ๊ฑด HTTPS๋ง ์ฌ์ฉํด!"๋ผ๊ณ ์๋ฆฌ๋ ํน๋ณํ HTTP ํค๋๋ฅผ ๋ณด๋ด๋ ๋ฐฉ์์ผ๋ก ์๋ํ์ฃ . ์ด๋ฅผ ํตํด ์ค๊ฐ์ ๊ณต๊ฒฉ(Man-in-the-Middle Attack)๊ณผ ๊ฐ์ ๋ณด์ ์ํ์ ํจ๊ณผ์ ์ผ๋ก ๋ฐฉ์งํ ์ ์์ต๋๋ค.
ํ์ง๋ง ์ด๋ฐ ๊ฐ๋ ฅํ ๋ณด์ ๊ธฐ๋ฅ์ด ๊ฐ๋ฐ์์๊ฒ๋ ๊ฑธ๋ฆผ๋์ด ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, HTTPS ์ค์ ์ด ํ์๊ฐ ์๋ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์์ ํ ์คํธ๋ฅผ ์งํํ ๋ HSTS ์ ์ฑ ๋๋ฌธ์ ์ ์์ด ๊ฐ์ ๋ก ์ฐจ๋จ๋ ์ ์์ต๋๋ค. ์ด๋ด ๋๋ ์ํํ ํ ์คํธ์ ๋๋ฒ๊น ์ ์ํด ์ผ์์ ์ผ๋ก HSTS๋ฅผ ๋นํ์ฑํํ ํ์๊ฐ ์์ต๋๋ค.
ํฌ๋กฌ์์ HSTS๋ฅผ ๋นํ์ฑํํ๋ ๋ฐฉ๋ฒ
ํฌ๋กฌ์์ HSTS ์ค์ ์ ๋นํ์ฑํํ๋ ๋ช ๊ฐ์ง ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฐ๋ผ ํด๋ณด์ธ์.
1. chrome://net-internals๋ฅผ ์ด์ฉํ ์ค์ ์ญ์
๊ฐ์ฅ ํ์คํ๊ณ ์ง์ ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค. ํฌ๋กฌ์ ๋ด๋ถ ์ค์ ํ์ด์ง์ ์ ๊ทผํด ํน์ ๋๋ฉ์ธ์ ๋ํ HSTS ์ ์ฑ ์ ์ญ์ ํ ์ ์์ต๋๋ค.
- ํฌ๋กฌ ์ฃผ์์ฐฝ์
chrome://net-internals/#hsts๋ฅผ ์ ๋ ฅํ๊ณ ์ํฐ๋ฅผ ๋๋ฆ ๋๋ค. - Delete domain security policies ์น์ ์ ์ฐพ์ต๋๋ค.
- Domain ์
๋ ฅ ํ๋์ HSTS ์ค์ ์ ์ญ์ ํ๊ณ ์ถ์ ๋๋ฉ์ธ ์ฃผ์(์:
example.com)๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ์ค๋ฅธ์ชฝ์ ์๋ Delete ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
์ด์ ํด๋น ๋๋ฉ์ธ์ ๋ํ HSTS ์ค์ ์ด ์ญ์ ๋์์ต๋๋ค. ํ์ธ์ ์ํด Query HSTS/PKP domain ์น์ ์์ ๋์ผํ ๋๋ฉ์ธ์ ์กฐํํ์ ๋ "Not found"๋ผ๊ณ ๋์ค๋ฉด ์ฑ๊ณต์ ๋๋ค! :)
2. ํฌ๋กฌ ์บ์ ๋ฐ ์ฟ ํค ์ญ์
net-internals ์ค์ ์ผ๋ก ํด๊ฒฐ๋์ง ์๋๋ค๋ฉด, ๋ธ๋ผ์ฐ์ ์บ์์ HSTS ์ ๋ณด๊ฐ ๋จ์์์ ์ ์์ต๋๋ค.
- ํฌ๋กฌ ์ค์ (chrome://settings)์ผ๋ก ์ด๋ํฉ๋๋ค.
- โ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๋ฐ ๋ณด์โ ๋ฉ๋ด์์ '์ธํฐ๋ท ์ฌ์ฉ ๊ธฐ๋ก ์ญ์ โ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- '๊ธฐ๊ฐโ์ '์ ์ฒด ๊ธฐ๊ฐโ์ผ๋ก ์ค์ ํฉ๋๋ค.
- '์ฟ ํค ๋ฐ ๊ธฐํ ์ฌ์ดํธ ๋ฐ์ดํฐโ์ โ์บ์๋ ์ด๋ฏธ์ง ๋ฐ ํ์ผโ ํญ๋ชฉ์ ์ฒดํฌํ ํ โ์ธํฐ๋ท ์ฌ์ฉ ๊ธฐ๋ก ์ญ์ โ ๋ฒํผ์ ๋๋ฆ ๋๋ค.
์ด ๋ฐฉ๋ฒ์ HSTS๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ์น์ฌ์ดํธ์ ๋ก๊ทธ์ธ ์ ๋ณด๋ ๋ฐ์ดํฐ๋ ํจ๊ป ์ญ์ ๋๋ ์ฃผ์ํด์ ์ฌ์ฉํด ์ฃผ์ธ์.
3. ์ํฌ๋ฆฟ ๋ชจ๋ ์ฌ์ฉํ๊ธฐ
๊ฐ์ฅ ๊ฐ๋จํ ์์ ํด๊ฒฐ์ฑ ์ ๋๋ค. ์ํฌ๋ฆฟ ๋ชจ๋๋ ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ํฅ์ ๋ฐ์ง ์๊ณ ์บ์๋ ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ HSTS ์ ์ฑ ์ด ์ ์ฉ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
ํ์ด์ง๋ฅผ ์ํฌ๋ฆฟ ๋ชจ๋(๋จ์ถํค: Ctrl+Shift+N ๋๋ Cmd+Shift+N)์์ ์ด์ด๋ณด์ธ์. ๋ง์ฝ ์ํฌ๋ฆฟ ๋ชจ๋์์ ์ ์์ ์ผ๋ก ์ ์๋๋ค๋ฉด, ๊ธฐ์กด ๋ธ๋ผ์ฐ์ ์ ํ์ฅ ํ๋ก๊ทธ๋จ์ด๋ ์บ์๊ฐ ๋ฌธ์ ์ ์์ธ์ผ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
4. ๊ณต์ ๊ธฐ(๋ผ์ฐํฐ) ์ฌ์ค์
๋ง์ฝ ์ ๋ฐฉ๋ฒ๋ค์ด ๋ชจ๋ ํตํ์ง ์๊ณ โ์ฐ๊ฒฐ์ด ๋น๊ณต๊ฐ๋ก ๋์ด์์ต๋๋คโ ์ค๋ฅ๊ฐ ์ง์๋๋ค๋ฉด, ์ฌ์ฉ ์ค์ธ Wi-Fi ๊ณต์ ๊ธฐ์ DNS ์ค์ ์ด ๋ณ์กฐ๋์์ ๊ฐ๋ฅ์ฑ๋ ์์ต๋๋ค. ์ด๋ฅผ 'ํ๋ฐโ์ด๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋๋ฐ์.
๊ณต์ ๊ธฐ ๋ท๋ฉด์ด๋ ํ๋จ์ ์๋ ๋ฆฌ์ (Reset) ๋ฒํผ์ 10์ด ์ ๋ ๊ธธ๊ฒ ๋๋ฌ ์ด๊ธฐํํด ๋ณด์ธ์. ๋ง์ฝ ๋ฌธ์ ๊ฐ ๊ณ์๋๋ค๋ฉด ๊ณต์ ๊ธฐ ์ ์กฐ์ฌ ๊ณ ๊ฐ์ผํฐ์ ๋ฌธ์ํ์ฌ ํ์จ์ด๋ฅผ ์ฌ์ค์นํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ ํ ์ฌํญ ๋ฐ ์ค์ ๊ณ ๋ ค์ฌํญ
HSTS๋ฅผ ๋นํ์ฑํํ๊ธฐ ์ ์ ๋ฐ๋์ ์์๋์ด์ผ ํ ์ ๋ค์ด ์์ต๋๋ค.
Preloaded ๋๋ฉ์ธ
๊ตฌ๊ธ์ hstspreload.org๋ผ๋ ๋ฆฌ์คํธ๋ฅผ ํตํด ํน์ ๋๋ฉ์ธ๋ค์ ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ์์ฒด์ ๋ด์ฅํฉ๋๋ค. ์ด 'Preload ๋ฆฌ์คํธโ์ ํฌํจ๋ ๋๋ฉ์ธ(์: google.com, facebook.com)์ net-internals์์ ์ค์ ์ ์ญ์ ํด๋ HSTS๊ฐ ๋นํ์ฑํ๋์ง ์์ต๋๋ค. ํด๋น ๋๋ฉ์ธ์ด Preload ๋ฆฌ์คํธ์ ์๋์ง ํ์ธํ๋ ค๋ฉด HSTS Preload List ์ฌ์ดํธ์์ ๋๋ฉ์ธ์ ์ง์ ์กฐํํด๋ณผ ์ ์์ต๋๋ค.
๋ณด์์์ ์ํ
HSTS๋ ์ค์ํ ๋ณด์ ๊ธฐ๋ฅ์ ๋๋ค. ๊ฐ๋ฐ์ด๋ ๋๋ฒ๊น ๊ฐ์ ํน์ํ ๋ชฉ์ ์ ์ํด์๋ง ์ผ์์ ์ผ๋ก ๋นํ์ฑํํ๊ณ , ์์ ์ด ๋๋๋ฉด ๋ฐ๋์ ๋ค์ ํ์ฑํํ๋ ์ต๊ด์ ๋ค์ด๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. HSTS๋ฅผ ๋นํ์ฑํํ ์ํ๋ก ๋ณด์์ด ๊ฒ์ฆ๋์ง ์์ ๋คํธ์ํฌ์์ ์น์ํ์ ํ๋ ๊ฒ์ ๋ณด์ ์ํ์ ๋ ธ์ถ๋ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ ๋ฌธ์ ํด๊ฒฐ
HSTS ๋นํ์ฑํ ๊ณผ์ ์์ ๋ค๋ฅธ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์๋ ์์ต๋๋ค.
- ์ธ์ฆ์ ์ค๋ฅ: ์ค๋ฅ ๋ฉ์์ง์ HSTS, ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ์ธ์ฆ์ ๋๋ ์๋ชป๋ ์ด๋ฆ๊ณผ ๊ด๋ จ๋ ๋ด์ฉ์ด ์ธ๊ธ๋๋ค๋ฉด, PC์ ๋ ์ง์ ์๊ฐ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์ด ์๋์ง ํ์ธํด ๋ณด์ธ์. ๋ํ, ๋ฐฑ์ ํ๋ก๊ทธ๋จ์ โHTTPS ๋ณดํธโ ๋๋ โHTTPS ๊ฒ์ฌโ ๊ธฐ๋ฅ์ด ํฌ๋กฌ์ ๋ณด์ ๊ธฐ๋ฅ๊ณผ ์ถฉ๋์ ์ผ์ผํฌ ์ ์์ผ๋ ์ ์ ๋นํ์ฑํํ๊ณ ํ ์คํธํด๋ณผ ์ ์์ต๋๋ค.
- ํ์ฅ ํ๋ก๊ทธ๋จ ์ถฉ๋: ์ํฌ๋ฆฟ ๋ชจ๋์์ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๋ค๋ฉด, ์ค์น๋ ํฌ๋กฌ ํ์ฅ ํ๋ก๊ทธ๋จ ์ค ํ๋๊ฐ ์์ธ์ผ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
chrome://extensionsํ์ด์ง์์ ํ์ฅ ํ๋ก๊ทธ๋จ์ ํ๋์ฉ ๋นํ์ฑํํ๋ฉฐ ์ด๋ค ๊ฒ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋์ง ์ฐพ์๋ณด์ธ์.
๊ฐ๋ฐ ํจ์จ๊ณผ ๋ณด์, ๋ ๋ง๋ฆฌ ํ ๋ผ ์ก๊ธฐ
์ง๊ธ๊น์ง ํฌ๋กฌ์์ HSTS ์ ์ฑ
์ ๋นํ์ฑํํ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ์ดํด๋ณด์์ต๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ chrome://net-internals ์ค์ ์ ํตํด ๊ฐ๋จํ ํด๊ฒฐํ ์ ์์ง๋ง, ์บ์๋ ๋คํธ์ํฌ ๋ฌธ์ ๋ฑ ๋ณตํฉ์ ์ธ ์์ธ์ด ์์ ์๋ ์์ต๋๋ค.
HSTS๋ ์น์ ๋ ์์ ํ๊ฒ ๋ง๋๋ ์ค์ํ ๊ธฐ์ ์ ๋๋ค. ํ์ง๋ง ๊ฐ๋ฐ์์๊ฒ๋ ๋๋๋ก ์ ์ฐํ ๋์ฒ๊ฐ ํ์ํ์ฃ . ์ค๋ ๋ฐฐ์ด ๋ด์ฉ์ ์ ๊ธฐ์ตํ์ ์ ๊ฐ๋ฐ ์ค HSTS ๊ด๋ จ ๋ฌธ์ ์ ๋ถ๋ชํ์ ๋ ๋น ๋ฅด๊ณ ์ ํํ๊ฒ ํด๊ฒฐํ์๊ธธ ๋ฐ๋๋๋ค. ์์ ์ด ๋๋๋ฉด ๋ณด์์ ์ํด ์ค์ ์ ์๋๋๋ก ๋๋๋ฆฌ๋ ๊ฒ๋ ์์ง ๋ง์ธ์!