DNS-over-HTTPS์— ๋Œ€ํ•œ ์‹คํ—˜์  ์ง€์›์ด BIND DNS ์„œ๋ฒ„์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

BIND DNS ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž๋Š” ๋ณด์•ˆ์„ ์œ„ํ•œ XFR-over-TLS ๋ฉ”์ปค๋‹ˆ์ฆ˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ HTTPS๋ฅผ ํ†ตํ•œ DNS(DoH, DNS over HTTPS) ๋ฐ TLS๋ฅผ ํ†ตํ•œ DNS(DoT, DNS over TLS) ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์„œ๋ฒ„ ์ง€์› ์ถ”๊ฐ€๋ฅผ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๊ฐ„์— DNS ์˜์—ญ์˜ ๋‚ด์šฉ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. DoH๋Š” ๋ฆด๋ฆฌ์Šค 9.17์—์„œ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ DoT ์ง€์›์€ ๋ฆด๋ฆฌ์Šค 9.17.10๋ถ€ํ„ฐ ์ œ๊ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•ˆ์ •ํ™” ํ›„ DoT ๋ฐ DoH ์ง€์›์€ ์•ˆ์ •์ ์ธ 9.17.7 ๋ถ„๊ธฐ๋กœ ๋ฐฑํฌํŠธ๋ฉ๋‹ˆ๋‹ค.

DoH์—์„œ ์‚ฌ์šฉ๋˜๋Š” HTTP/2 ํ”„๋กœํ† ์ฝœ์˜ ๊ตฌํ˜„์€ ์–ด์…ˆ๋ธ”๋ฆฌ ์ข…์†์„ฑ์— ํฌํ•จ๋œ nghttp2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์‚ฌ์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค(ํ–ฅํ›„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์„ ํƒ์  ์ข…์†์„ฑ ์ˆ˜๋กœ ์ด์ „๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค). ์•”ํ˜ธํ™”๋œ(TLS) ๋ฐ ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ HTTP/2 ์—ฐ๊ฒฐ์ด ๋ชจ๋‘ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์„ค์ •์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ช…๋ช…๋œ ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ด์ œ ๊ธฐ์กด DNS ์ฟผ๋ฆฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ DoH(DNS-over-HTTPS) ๋ฐ DoT(DNS-over-TLS)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†ก๋œ ์ฟผ๋ฆฌ๋„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์ธก(dig)์˜ HTTPS ์ง€์›์€ ์•„์ง ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. XFR-over-TLS ์ง€์›์€ ์ธ๋ฐ”์šด๋“œ ๋ฐ ์•„์›ƒ๋ฐ”์šด๋“œ ์š”์ฒญ ๋ชจ๋‘์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DoH ๋ฐ DoT๋ฅผ ์‚ฌ์šฉํ•œ ์š”์ฒญ ์ฒ˜๋ฆฌ๋Š” Listen-on ์ง€์‹œ๋ฌธ์— http ๋ฐ tls ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ DNS-over-HTTP๋ฅผ ์ง€์›ํ•˜๋ ค๋ฉด ์„ค์ •์—์„œ "tls none"์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ‚ค๋Š” "tls" ์„น์…˜์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. DoT์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๋„คํŠธ์›Œํฌ ํฌํŠธ 853, DoH์˜ ๊ฒฝ์šฐ 443, DNS-over-HTTP์˜ ๊ฒฝ์šฐ 80์€ tls-port, https-port ๋ฐ http-port ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์žฌ์ •์˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ: tls local-tls { key-file "/path/to/priv_key.pem"; ์ธ์ฆ์„œ ํŒŒ์ผ "/path/to/cert_chain.pem"; }; http ๋กœ์ปฌ-http-์„œ๋ฒ„ { ์—”๋“œํฌ์ธํŠธ { "/dns-query"; }; }; ์˜ต์…˜ { https-ํฌํŠธ 443; ์ˆ˜์‹  ๋Œ€๊ธฐ ํฌํŠธ 443 tls local-tls http myserver {any;}; }

BIND์˜ DoH ๊ตฌํ˜„ ๊ธฐ๋Šฅ ์ค‘ ํ†ตํ•ฉ์€ ํ™•์ธ์ž์— ๋Œ€ํ•œ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์„œ๋ฒ„ ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•  ๋•Œ, ๊ถŒํ•œ ์žˆ๋Š” DNS ์„œ๋ฒ„๋กœ ์˜์—ญ์„ ์ „์†กํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๋ฐ˜ ์ „์†ก์œผ๋กœ ์–ธ๊ธ‰๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ DNS ์ „์†ก์—์„œ ์ง€์›ํ•˜๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ.

๋˜ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์€ TLS์— ๋Œ€ํ•œ ์•”ํ˜ธํ™” ์ž‘์—…์„ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ์ด๋™ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ด๋Š” TLS ์ธ์ฆ์„œ๊ฐ€ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ(์˜ˆ: ์›น ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์ธํ”„๋ผ)์— ์ €์žฅ๋˜๊ณ  ๋‹ค๋ฅธ ์ง์›์ด ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ์กฐ๊ฑด์—์„œ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ DNS-over-HTTP์— ๋Œ€ํ•œ ์ง€์›์€ ๋””๋ฒ„๊น…์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ์•”ํ˜ธํ™”๋ฅผ ๋‹ค๋ฅธ ์„œ๋ฒ„์—์„œ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ฐ˜์œผ๋กœ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ์˜ ์ „๋‹ฌ์„ ์œ„ํ•œ ๊ณ„์ธต์œผ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ์›๊ฒฉ ์„œ๋ฒ„์—์„œ nginx๋Š” ์›น์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ HTTPS ๋ฐ”์ธ๋”ฉ์ด ๊ตฌ์„ฑ๋˜๋Š” ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ TLS ํŠธ๋ž˜ํ”ฝ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DNS-over-HTTPS๋Š” ๊ณต๊ธ‰์ž์˜ DNS ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์š”์ฒญ๋œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์— ๋Œ€ํ•œ ์ •๋ณด ์œ ์ถœ์„ ๋ฐฉ์ง€ํ•˜๊ณ , MITM ๊ณต๊ฒฉ ๋ฐ DNS ํŠธ๋ž˜ํ”ฝ ์Šคํ‘ธํ•‘(์˜ˆ: ๊ณต์šฉ Wi-Fi์— ์—ฐ๊ฒฐํ•  ๋•Œ)์— ๋Œ€์‘ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. DNS ์ˆ˜์ค€์—์„œ ์ฐจ๋‹จ(DNS-over-HTTPS๋Š” DPI ์ˆ˜์ค€์—์„œ ๊ตฌํ˜„๋œ ์ฐจ๋‹จ์„ ์šฐํšŒํ•˜๋Š” VPN์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์—†์Œ) ๋˜๋Š” DNS ์„œ๋ฒ„์— ์ง์ ‘ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ(์˜ˆ: ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ) ์ž‘์—…์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ •์ƒ์ ์ธ ์ƒํ™ฉ์—์„œ DNS ์š”์ฒญ์ด ์‹œ์Šคํ…œ ๊ตฌ์„ฑ์— ์ •์˜๋œ DNS ์„œ๋ฒ„๋กœ ์ง์ ‘ ์ „์†ก๋˜๋Š” ๊ฒฝ์šฐ DNS-over-HTTPS์˜ ๊ฒฝ์šฐ ํ˜ธ์ŠคํŠธ IP ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์š”์ฒญ์ด HTTPS ํŠธ๋ž˜ํ”ฝ์— ์บก์Šํ™”๋˜์–ด HTTP ์„œ๋ฒ„๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ํ™•์ธ์ž๋Š” Web API๋ฅผ ํ†ตํ•ด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

"TLS๋ฅผ ํ†ตํ•œ DNS"๋Š” ํ‘œ์ค€ DNS ํ”„๋กœํ† ์ฝœ(์ผ๋ฐ˜์ ์œผ๋กœ ๋„คํŠธ์›Œํฌ ํฌํŠธ 853์ด ์‚ฌ์šฉ๋จ)์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์—์„œ "DNS over HTTPS"์™€ ๋‹ค๋ฅด๋ฉฐ, ์ธ์ฆ๋œ TLS/SSL ์ธ์ฆ์„œ๋ฅผ ํ†ตํ•œ ํ˜ธ์ŠคํŠธ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์™€ ํ•จ๊ป˜ TLS ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ๋œ ์•”ํ˜ธํ™”๋œ ํ†ต์‹  ์ฑ„๋„๋กœ ๋ž˜ํ•‘๋ฉ๋‹ˆ๋‹ค. ์ธ์ฆ ๊ธฐ๊ด€์— ์˜ํ•ด. ๊ธฐ์กด DNSSEC ํ‘œ์ค€์€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋ฅผ ์ธ์ฆํ•˜๋Š” ๋ฐ์—๋งŒ ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ€๋กœ์ฑ„๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์š”์ฒญ์˜ ๊ธฐ๋ฐ€์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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