๋ชจ์ง๋ผ๋ Firefox ์์ ๋ฒ์ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ECH(Encrypted Client Hello) ๋ฉ์ปค๋์ฆ ์ง์์ ํ์ฑํํ๋ค๊ณ ๋ฐํํ์ต๋๋ค. ์ด๋ ESNI(Encrypted Server Name Indication) ๊ธฐ์ ์ ์ฐ์ฅ์ ์ผ๋ก, ์์ฒญ๋ ๋๋ฉ์ธ ์ด๋ฆ๊ณผ ๊ฐ์ TLS ์ธ์ ๋งค๊ฐ๋ณ์ ์ ๋ณด๋ฅผ ์ํธํํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ECH ์ง์ ์ฝ๋๋ Firefox 85 ๋ฒ์ ์ ์ฒ์ ์ถ๊ฐ๋์์ง๋ง, ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์์์ต๋๋ค. Chrome์์๋ Chrome 115 ๋ฒ์ ์ถ์๋ฅผ ์์์ผ๋ก ECH ์ง์์ด ์ ์ง์ ์ผ๋ก ์ถ๊ฐ๋์์ต๋๋ค.
์ฐ๊ฒฐ ์ธ์๋ ์ฌ๊ธฐ๋ ์ฌ๋ ์์ฒญ๋ ๋๋ฉ์ธ ์ ๋ณด๊ฐ DNS๋ฅผ ํตํด ์ ์ถ๋ฉ๋๋ค. ์๋ฒฝํ ๋ณดํธ๋ฅผ ์ํด์๋ ECH ์ธ์๋ DNS over HTTPS ๋๋ DNS over TLS๋ฅผ ์ฌ์ฉํ์ฌ DNS ํธ๋ํฝ์ ์ํธํํด์ผ ํฉ๋๋ค. Firefox๋ ์ค์ ์์ DNS over HTTPS๋ฅผ ํ์ฑํํ์ง ์์ผ๋ฉด ECH๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ์์ ECH ์ง์ ์ฌ๋ถ๋ ์ด ํ์ด์ง์์ ํ์ธํ ์ ์์ต๋๋ค.
Firefox๊ฐ ECH ์ง์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํํ๊ฒ ๋ ์์ธ ์ค ํ๋๋ ๋ฉฐ์น ์ Cloudflare๊ฐ ์์ฌ ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ(CDN)์์ ECH ์ง์์ ํ์ฑํํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ค์ง์ ์ผ๋ก ECH๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์์ฒญ๋ ํธ์คํธ ๋ฐ์ดํฐ๊ฐ ๋ถ์์์ ์จ๊ฒจ์ง๊ธฐ ๋๋ฌธ์, Cloudflare์ CDN์ ์ฌ์ฉํ์ฌ ์์น ์๋ ์ฌ์ดํธ๋ฅผ ํํฐ๋งํ๊ณ ์ฐจ๋จํ๋ ค๋ฉด ์ด์ ์ ์ฒด Cloudflare ๋คํธ์ํฌ๋ฅผ ์ฐจ๋จํ๊ฑฐ๋, ECH๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ์์ฒญ์ ์ฐจ๋จํ๊ฑฐ๋, ์ฌ์ฉ์ ์์คํ ์์ ๊ฐ์ง ๋ฃจํธ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ HTTPS ๊ฐ๋ก์ฑ๊ธฐ๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
์ด๊ธฐ์๋ SNI TLS ํ์ฅ์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ HTTPS ์ฌ์ดํธ์ ๋จ์ผ IP ์ฃผ์์ ๋ํ ์์ ์ ๊ตฌ์ฑํ์ต๋๋ค. ์ด ๊ฒฝ์ฐ, ์์ฒญ๋ ํธ์คํธ์ ์ด๋ฆ์ ์ํธํ๋ ํต์ ์ฑ๋์ ์ค์ ํ๊ธฐ ์ ์ ์ ์ก๋๋ ClientHello ๋ฉ์์ง์ ์ง์ ๋์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ํตํด ์ฐ๊ฒฐ ์ฒ๋ฆฌ ์ด๊ธฐ ๋จ๊ณ์์ ๊ฐ์ ํธ์คํธ ๊ฐ์ ์์ฒญ์ ๋ถ์ฐํ ์ ์์์ง๋ง, ์ธํฐ๋ท ์ ๊ณต์ ์ฒด๊ฐ HTTPS ํธ๋ํฝ์ ์ ํ์ ์ผ๋ก ํํฐ๋งํ๊ณ ์ฌ์ฉ์๊ฐ ์ด๋ค ์ฌ์ดํธ๋ฅผ ์ด์๋์ง ๋ถ์ํ ์ ์๊ฒ ๋์๊ธฐ ๋๋ฌธ์ HTTPS ์ฌ์ฉ ์ ์์ ํ ๊ธฐ๋ฐ์ฑ์ ํ๋ณดํ ์ ์์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์์ฒญ๋ ์ฌ์ดํธ์ ๋ํ ์ ๋ณด ์ ์ถ์ ๋ฐฉ์งํ๊ธฐ ์ํด, ์ดํ ํธ์คํธ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ ESNI ํ์ฅ์ด ์ ์๋์์ต๋๋ค. ESNI ๊ตฌํ ๊ณผ์ ์์ ์ ์๋ ๋ฉ์ปค๋์ฆ์ด ํธ์คํธ ๋ฐ์ดํฐ ์ ์ถ์ ๋ชจ๋ ๊ฐ๋ฅํ ์์ธ์ ํฌ๊ดํ์ง ๋ชปํ๊ณ , HTTPS ์ธ์ ์ ์์ ํ ๊ธฐ๋ฐ์ฑ์ ๋ณด์ฅํ๊ธฐ์๋ ์ถฉ๋ถํ์ง ์๋ค๋ ์ ์ด ๋ฐ๊ฒฌ๋์์ต๋๋ค. ํนํ, ์ด์ ์ ์ค์ ๋ ์ธ์ ์ ์ฌ๊ฐํ ๋, PSK(์ฌ์ ๊ณต์ ํค) TLS ํ์ฅ ๋งค๊ฐ๋ณ์์ ์ผ๋ฐ ํ ์คํธ ๋๋ฉ์ธ ์ด๋ฆ์ด ๊ณ์ ์ง์ ๋์์ต๋๋ค. ๋ํ, ESNI ๊ตฌํ ์๋๋ ํธํ์ฑ ๋ฐ ํ์ฅ์ฑ ๋ฌธ์ ๋ก ์ธํด ESNI์ ๊ด๋ฒ์ํ ๋ฐฐํฌ๊ฐ ์ด๋ ค์ ์ต๋๋ค.
ESNI์ ํ์ธ๋ ๋จ์ ์ ๊ณ ๋ คํ์ฌ ๋ชจ๋ TLS ํ์ฅ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ํธํํ ์ ์๋ ์๋ก์ด ๋ฒ์ฉ ๋ฉ์ปค๋์ฆ์ธ ECH๊ฐ ๊ฐ๋ฐ๋์์ต๋๋ค. ๊ธฐ์ ์ ์ผ๋ก ECH์ ESNI์ ์ฃผ์ ์ฐจ์ด์ ์ ๊ฐ๋ณ ํ๋ ๋์ ์ ์ฒด ClientHello ๋ฉ์์ง๊ฐ ํ ๋ฒ์ ์ํธํ๋๋ค๋ ๊ฒ์ ๋๋ค. ECH๋ ClientHello๋ฅผ ์ํธํ๋ ClientHelloInner(SNI Inner) ๋ฉ์์ง์ ์ํธํ๋์ง ์์ ๊ธฐ๋ณธ ClientHelloOuter(SNI Outer) ๋ฉ์์ง, ๋ ๊ฐ์ ๋ณ๋ ๋ฉ์์ง๋ก ๋ถํ ํฉ๋๋ค. ์ํธํ๋์ง ์์ SNI Outer๋ TLS ๋ฒ์ ๋ฐ ์ฌ์ฉ๋ ์ํธ ๋ชฉ๋ก๊ณผ ๊ฐ์ ๋ฏผ๊ฐํ์ง ์์ ๋ฐ์ดํฐ์ ์์ฒญ๋ ๋๋ฉ์ธ์ ์ค์ ์ด๋ฆ๊ณผ ๊ฒน์น์ง ์๋ ๊ณตํต ๋๋ฉ์ธ ์ด๋ฆ์ ์ ์กํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ชจ๋ Cloudflare ํด๋ผ์ด์ธํธ์ ๋ํด ์ํธํ๋์ง ์์ SNI Outer๋ ๊ณตํต ํธ์คํธ "cloudflare-ech.com"์ ์ง์ ํ๊ณ , ์์ฒญ๋ ํธ์คํธ์ ์ค์ ์ด๋ฆ์ ์ํธํ๋ SNI Inner๋ก ์ ์ก๋๋ฉฐ ๋ถ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.

ECH๋ ๋ํ ๋ค๋ฅธ ์ํธํ ํค ๋ฐฐํฌ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค. ๊ณต๊ฐ ํค ์ ๋ณด๋ TXT ๋ ์ฝ๋๊ฐ ์๋ HTTPSSVC DNS ๋ ์ฝ๋๋ฅผ ํตํด ์ ์ก๋ฉ๋๋ค. ํค๋ฅผ ํ๋ํ๊ณ ์ํธํํ๋ ๋ฐ์๋ HPKE(ํ์ด๋ธ๋ฆฌ๋ ๊ณต๊ฐ ํค ์ํธํ) ๋ฉ์ปค๋์ฆ ๊ธฐ๋ฐ์ ์ธ์ฆ๋ ์ข
๋จ ๊ฐ ์ํธํ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ECH๋ ๋ํ ์๋ฒ์์ ์์ ํ ํค ์ฌ์ ์ก์ ์ง์ํ๋ฉฐ, ์ด๋ ํค ์ํ ์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ฌ๊ธฐ๋ ์ฌ๋ ๋ํ DNS ์บ์์์ ์ค๋๋ ํค๋ฅผ ๊ฒ์ํ๋ ๋ฐ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์์
๋๋ค.
์ถ์ฒ : opennet.ru
