์ข‹์•„์š” ๋ฐ ์‹ซ์–ด์š”: HTTPS๋ฅผ ํ†ตํ•œ DNS

์ตœ๊ทผ ์ธํ„ฐ๋„ท ์ œ๊ณต์—…์ฒด์™€ ๋ธŒ๋ผ์šฐ์ € ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ '๋…ผ์Ÿ์˜ ๋ผˆ๋Œ€'๊ฐ€ ๋˜๊ณ  ์žˆ๋Š” DNS over HTTPS์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

์ข‹์•„์š” ๋ฐ ์‹ซ์–ด์š”: HTTPS๋ฅผ ํ†ตํ•œ DNS
/์–ธ์Šคํ”Œ๋ž˜์‰ฌ/ ์Šคํ‹ฐ๋ธŒ ํ• ๋ผ๋งˆ

๋ถˆ์ผ์น˜์˜ ๋ณธ์งˆ

์ตœ๊ทผ ์ฃผ์š” ์–ธ๋ก  ะธ ์ฃผ์ œ๋ณ„ ํ”Œ๋žซํผ (Habr ํฌํ•จ) ๊ทธ๋“ค์€ DoH(DNS over HTTPS) ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•ด ์ž์ฃผ ๊ธ€์„ ์”๋‹ˆ๋‹ค. DNS ์„œ๋ฒ„์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์•”ํ˜ธํ™”ํ•˜๊ณ  ์ด์— ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์•ก์„ธ์Šคํ•˜๋Š” ํ˜ธ์ŠคํŠธ์˜ ์ด๋ฆ„์„ ์ˆจ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„ํ–‰๋ฌผ์—์„œ ์šฐ๋ฆฌ๋Š” ์ƒˆ๋กœ์šด ํ”„๋กœํ† ์ฝœ(IETF์—์„œ)์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒฐ๋ก ์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šน์ธํ–ˆ๋‹ค 2018๋…„) IT ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๋‘ ๊ฐœ์˜ ์ง„์˜์œผ๋กœ ๋‚˜๋ˆ„์—ˆ์Šต๋‹ˆ๋‹ค.

์ ˆ๋ฐ˜์€ ์ƒˆ๋กœ์šด ํ”„๋กœํ† ์ฝœ์ด ์ธํ„ฐ๋„ท ๋ณด์•ˆ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์œผ๋ฉฐ ์ด๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์„œ๋น„์Šค์— ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ์ ˆ๋ฐ˜์€ ๊ธฐ์ˆ ์ด ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž์˜ ์—…๋ฌด๋ฅผ ๋”์šฑ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค ๋ฟ์ด๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ ์–‘์ธก์˜ ์ฃผ์žฅ์„ ๋ถ„์„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

DoH ์ž‘๋™ ๋ฐฉ์‹

ISP ๋ฐ ๊ธฐํƒ€ ์‹œ์žฅ ์ฐธ๊ฐ€์ž๊ฐ€ HTTPS๋ฅผ ํ†ตํ•œ DNS๋ฅผ ์ฐฌ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ฐ˜๋Œ€ํ•˜๋Š” ์ด์œ ๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์ „์— ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ๊ฐ„๋žตํ•˜๊ฒŒ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

DoH์˜ ๊ฒฝ์šฐ IP ์ฃผ์†Œ ํ™•์ธ ์š”์ฒญ์ด HTTPS ํŠธ๋ž˜ํ”ฝ์— ์บก์Šํ™”๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ HTTP ์„œ๋ฒ„๋กœ ์ด๋™ํ•˜์—ฌ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ RFC 8484์˜ ์š”์ฒญ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค(6 ํŽ˜์ด์ง€):

   :method = GET
   :scheme = https
   :authority = dnsserver.example.net
   :path = /dns-query?
           dns=AAABAAABAAAAAAAAAWE-NjJjaGFyYWN0ZXJsYWJl
           bC1tYWtlcy1iYXNlNjR1cmwtZGlzdGluY3QtZnJvbS1z
           dGFuZGFyZC1iYXNlNjQHZXhhbXBsZQNjb20AAAEAAQ
   accept = application/dns-message

๋”ฐ๋ผ์„œ DNS ํŠธ๋ž˜ํ”ฝ์€ HTTPS ํŠธ๋ž˜ํ”ฝ์— ์ˆจ๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ํ‘œ์ค€ ํฌํŠธ 443์„ ํ†ตํ•ด ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋„๋ฉ”์ธ ์ด๋ฆ„ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์š”์ฒญ์€ ์ต๋ช…์œผ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

์™œ ๊ทธ๋Š” ์€ํ˜œ๋ฅผ ๋ฐ›์ง€ ๋ชปํ•ฉ๋‹ˆ๊นŒ?

HTTPS๋ฅผ ํ†ตํ•œ DNS ๋ฐ˜๋Œ€์ž ะณะพะฒะพั€ัั‚์ƒˆ๋กœ์šด ํ”„๋กœํ† ์ฝœ์€ ์—ฐ๊ฒฐ ๋ณด์•ˆ์„ ์•ฝํ™”์‹œํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์— ์˜ํ•ด ~์— ๋”ฐ๋ฅด๋ฉด DNS ๊ฐœ๋ฐœ ํŒ€์˜ ์ผ์›์ธ Paul Vixie๋Š” ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๊ฐ€ ์ž ์žฌ์ ์ธ ์•…์„ฑ ์‚ฌ์ดํŠธ๋ฅผ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ์„ ๋”์šฑ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์กฐ๊ฑด๋ถ€ ์ž๋…€ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์„ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์žƒ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Paul์˜ ๊ฒฌํ•ด๋Š” ์˜๊ตญ ์ธํ„ฐ๋„ท ์ œ๊ณต์—…์ฒด์™€ ๊ณต์œ ๋ฉ๋‹ˆ๋‹ค. ๊ตญ๊ฐ€ ๋ฒ•๋ฅ  ์˜๋ฌด ๊ธˆ์ง€๋œ ์ฝ˜ํ…์ธ ๊ฐ€ ํฌํ•จ๋œ ๋ฆฌ์†Œ์Šค๋กœ๋ถ€ํ„ฐ ์ฐจ๋‹จํ•˜์„ธ์š”. ๊ทธ๋Ÿฌ๋‚˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ DoH๋ฅผ ์ง€์›ํ•˜๋ฉด ํŠธ๋ž˜ํ”ฝ ํ•„ํ„ฐ๋ง ์ž‘์—…์ด ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ๋น„ํŒ์—๋Š” ์˜๊ตญ์˜ ์ •๋ถ€ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์„ผํ„ฐ(GCHQ) ๋ฐ ์ธํ„ฐ๋„ท ๊ฐ์‹œ ์žฌ๋‹จ(IWF), ์ฐจ๋‹จ๋œ ๋ฆฌ์†Œ์Šค์˜ ๋“ฑ๋ก์„ ์œ ์ง€ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Habrรฉ ๋ธ”๋กœ๊ทธ์—์„œ:

์ „๋ฌธ๊ฐ€๋“ค์€ HTTPS๋ฅผ ํ†ตํ•œ DNS๊ฐ€ ์‚ฌ์ด๋ฒ„ ๋ณด์•ˆ ์œ„ํ˜‘์ด ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ง€์ ํ•ฉ๋‹ˆ๋‹ค. XNUMX์›” ์ดˆ Netlab์˜ ์ •๋ณด ๋ณด์•ˆ ์ „๋ฌธ๊ฐ€๋“ค์ด ๋ฐœ๊ฒฌ DDoS ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•œ ์ตœ์ดˆ์˜ ๋ฐ”์ด๋Ÿฌ์Šค - ๊ฐ“๋ฃจ์•„. ์•…์„ฑ์ฝ”๋“œ๋Š” DoH์— ์•ก์„ธ์Šคํ•˜์—ฌ ํ…์ŠคํŠธ ๋ ˆ์ฝ”๋“œ(TXT)๋ฅผ ํš๋“ํ•˜๊ณ  ๋ช…๋ น ๋ฐ ์ œ์–ด ์„œ๋ฒ„ URL์„ ์ถ”์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.

์•”ํ˜ธํ™”๋œ DoH ์š”์ฒญ์€ ๋ฐ”์ด๋Ÿฌ์Šค ๋ฐฑ์‹  ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ์ธ์‹๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ •๋ณด๋ณด์•ˆ ์ „๋ฌธ๊ฐ€ ๋‘๋ ค์›€Godlua ์ดํ›„์—๋Š” ์ˆ˜๋™์  DNS ๋ชจ๋‹ˆํ„ฐ๋ง์—๋Š” ๋ณด์ด์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ์•…์„ฑ ์ฝ”๋“œ๊ฐ€ ๋‚˜ํƒ€๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ชจ๋‘๊ฐ€ ๋ฐ˜๋Œ€ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค

๊ทธ์˜ ๋ธ”๋กœ๊ทธ์—์„œ HTTPS๋ฅผ ํ†ตํ•œ DNS๋ฅผ ๋ฐฉ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋ง ํ–ˆ์–ด์š”. APNIC ์—”์ง€๋‹ˆ์–ด ์ œํ”„ ํœด์Šคํ„ด. ๊ทธ์— ๋”ฐ๋ฅด๋ฉด, ์ƒˆ๋กœ์šด ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ตœ๊ทผ ์ ์  ๋” ์ผ๋ฐ˜ํ™”๋˜๊ณ  ์žˆ๋Š” DNS ํ•˜์ด์žฌํ‚น ๊ณต๊ฒฉ์— ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์‚ฌ์‹ค ํ™•์ธํ•˜๋‹ค ์‚ฌ์ด๋ฒ„ ๋ณด์•ˆ ํšŒ์‚ฌ์ธ FireEye์˜ XNUMX์›” ๋ณด๊ณ ์„œ. ๋Œ€ํ˜• IT ๊ธฐ์—…๋“ค๋„ ํ”„๋กœํ† ์ฝœ ๊ฐœ๋ฐœ์„ ์ง€์›ํ–ˆ๋‹ค.

์ž‘๋…„ ์ดˆ๋ถ€ํ„ฐ DoH๋Š” Google์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•œ ๋‹ฌ ์ „์— ํšŒ์‚ฌ์—์„œ ์ œ์‹œ DoH ์„œ๋น„์Šค์˜ ์ผ๋ฐ˜ ๊ฐ€์šฉ์„ฑ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ๊ตฌ๊ธ€์—์„œ ๊ธฐ๋Œ€, ๋„คํŠธ์›Œํฌ์˜ ๊ฐœ์ธ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ณ  MITM ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ € ๊ฐœ๋ฐœ์ž - Mozilla - ะฟะพะดะดะตั€ะถะธะฒะฐะตั‚ ์ง€๋‚œ ์—ฌ๋ฆ„๋ถ€ํ„ฐ HTTPS๋ฅผ ํ†ตํ•œ DNS. ๋™์‹œ์—, ํšŒ์‚ฌ๋Š” IT ํ™˜๊ฒฝ์—์„œ ์‹ ๊ธฐ์ˆ ์„ ์ ๊ทน์ ์œผ๋กœ ํ™๋ณดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์ธํ„ฐ๋„ท์„œ๋น„์Šค์ œ๊ณต์žํ˜‘ํšŒ(ISPA) ์‹ฌ์ง€์–ด ์ง€๋ช…๋จ ์˜ฌํ•ด์˜ ์ธํ„ฐ๋„ท ์•…๋‹น์ƒ์„ ์ˆ˜์ƒํ•œ Mozilla. ์ด์— ํšŒ์‚ฌ ๊ด€๊ณ„์ž๋Š” ์œ ๋ช…ํ•œ, ํ†ต์‹  ์‚ฌ์—…์ž๊ฐ€ ์˜ค๋ž˜๋œ ์ธํ„ฐ๋„ท ์ธํ”„๋ผ ๊ฐœ์„ ์„ ๊บผ๋ คํ•˜์—ฌ ์ขŒ์ ˆ๊ฐ์„ ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค.

์ข‹์•„์š” ๋ฐ ์‹ซ์–ด์š”: HTTPS๋ฅผ ํ†ตํ•œ DNS
/์–ธ์Šคํ”Œ๋ž˜์‰ฌ/ ํ…ŒํŠธ๋ ˆ๋น„์—”

๋ชจ์งˆ๋ผ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค ์ฃผ์š” ์–ธ๋ก ์ด ๋ฐํ˜”๋‹ค ๊ทธ๋ฆฌ๊ณ  ์ผ๋ถ€ ์ธํ„ฐ๋„ท ์ œ๊ณต์—…์ฒด. ํŠนํžˆ ๋ธŒ๋ฆฌํ‹ฐ์‹œ ํ…”๋ ˆ์ฝค์—์„œ๋Š” ๊ณ ๋ คํ•˜๋‹ค์ƒˆ๋กœ์šด ํ”„๋กœํ† ์ฝœ์€ ์ฝ˜ํ…์ธ  ํ•„ํ„ฐ๋ง์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์œผ๋ฉฐ ์˜๊ตญ ์‚ฌ์šฉ์ž์˜ ๋ณด์•ˆ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋Œ€์ค‘์˜ ์••๋ ฅ์„ ๋ฐ›๊ณ  ์žˆ๋Š” ISPA ํšŒ์ƒํ•ด์•ผ ํ–ˆ๋‹ค "์•…๋‹น" ์ง€๋ช….

ํด๋ผ์šฐ๋“œ ์ œ๊ณต์—…์ฒด๋Š” ๋˜ํ•œ HTTPS๋ฅผ ํ†ตํ•œ DNS ๋„์ž…์„ ์˜นํ˜ธํ–ˆ์Šต๋‹ˆ๋‹ค. Cloudflare. ๊ทธ๋“ค์€ ์ด๋ฏธ ์ƒˆ๋กœ์šด ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” DNS ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. DoH๋ฅผ ์ง€์›ํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ํด๋ผ์ด์–ธํŠธ์˜ ์ „์ฒด ๋ชฉ๋ก์€ ๋‹ค์Œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub์˜.

์–ด์จŒ๋“  ์•„์ง๊นŒ์ง€ ๋‘ ์ง„์˜์˜ ๋Œ€๊ฒฐ์ด ์–ด๋–ป๊ฒŒ ๋๋‚ฌ๋Š”์ง€ ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. IT ์ „๋ฌธ๊ฐ€๋“ค์€ HTTPS๋ฅผ ํ†ตํ•œ DNS๊ฐ€ ์ฃผ๋ฅ˜ ์ธํ„ฐ๋„ท ๊ธฐ์ˆ  ์Šคํƒ์˜ ์ผ๋ถ€๊ฐ€ ๋˜๋ ค๋ฉด ์ƒ๋‹นํ•œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค. XNUMX ๋…„์ด ์•„๋‹Œ.

ํšŒ์‚ฌ ๋ธ”๋กœ๊ทธ์— ์šฐ๋ฆฌ๊ฐ€ ์“ฐ๋Š” ๋‹ค๋ฅธ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€