DH ์•”ํ˜ธํ™”๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ํ‚ค ๊ฒฐ์ •์„ ํ—ˆ์šฉํ•˜๋Š” TLS์˜ ์ทจ์•ฝ์„ฑ

๊ณต๊ฐœ ์ƒˆ๋กœ์šด ๊ฒƒ์— ๋Œ€ํ•œ ์ •๋ณด ์ทจ์•ฝ์  (CVE-2020-1968) TLS ํ”„๋กœํ† ์ฝœ, ์ฝ”๋“œ๋ช…
๋„ˆ๊ตฌ๋ฆฌ ๋“œ๋ฌผ์ง€๋งŒ ์ „์†ก ํŠธ๋ž˜ํ”ฝ(MITM)์„ ๊ฐ€๋กœ์ฑŒ ๋•Œ HTTPS๋ฅผ ํฌํ•จํ•œ TLS ์—ฐ๊ฒฐ์„ ํ•ด๋…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ๋น„ ๊ธฐ๋ณธ ํ‚ค(pre-master)๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณต๊ฒฉ์€ ์‹ค์ œ ๊ตฌํ˜„์ด ๋งค์šฐ ์–ด๋ ต๊ณ  ์ด๋ก ์ ์ธ ์„ฑ๊ฒฉ์— ๊ฐ€๊น๋‹ค๋Š” ์ ์— ์ฃผ๋ชฉํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด TLS ์„œ๋ฒ„์˜ ํŠน์ • ๊ตฌ์„ฑ๊ณผ ์„œ๋ฒ„ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์„ ๋งค์šฐ ์ •ํ™•ํ•˜๊ฒŒ ์ธก์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” TLS ์‚ฌ์–‘์— ์ง์ ‘์ ์œผ๋กœ ์กด์žฌํ•˜๋ฉฐ DH ํ‚ค ๊ตํ™˜ ํ”„๋กœํ† ์ฝœ(Diffie-Hellman, TLS_DH_*") ๊ธฐ๋ฐ˜ ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ๊ฒฐ์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ECDH ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ณด์•ˆ์ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „ 1.2๊นŒ์ง€์˜ TLS ํ”„๋กœํ† ์ฝœ๋งŒ ์ทจ์•ฝํ•˜๋ฉฐ TLS 1.3์€ ์ด ๋ฌธ์ œ์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์ทจ์•ฝ์ ์€ ๋‹ค์–‘ํ•œ TLS ์—ฐ๊ฒฐ์—์„œ DH ๋น„๋ฐ€ ํ‚ค๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋Š” TLS ๊ตฌํ˜„์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค(์ด ๋™์ž‘์€ Alexa Top 4.4M ์„œ๋ฒ„์˜ ์•ฝ 1%์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค).

OpenSSL 1.0.2e ๋ฐ ์ด์ „ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” SSL_OP_SINGLE_DH_USE ์˜ต์…˜์„ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ชจ๋“  ์„œ๋ฒ„ ์—ฐ๊ฒฐ์—์„œ DH ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ์žฌ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. OpenSSL 1.0.2f๋ถ€ํ„ฐ DH ๊ธฐ๋ณธ ํ‚ค๋Š” ์ •์  DH ์•”ํ˜ธ("DH-*", ์˜ˆ: "DH-RSA-AES256-SHA")๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ์žฌ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. OpenSSL 1.1.1์—์„œ๋Š” ์ด ์ทจ์•ฝ์ ์ด ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋ถ„๊ธฐ๋Š” DH ๊ธฐ๋ณธ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ •์  DH ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

DH ํ‚ค ๊ตํ™˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์—ฐ๊ฒฐ ์–‘์ชฝ์—์„œ ์ž„์˜์˜ ๊ฐœ์ธ ํ‚ค(์ดํ•˜ ํ‚ค "a" ๋ฐ ํ‚ค "b")๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณต๊ฐœ ํ‚ค(ga mod p ๋ฐ gb mod p)๊ฐ€ ๊ณ„์‚ฐ๋˜์–ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๋‹น์‚ฌ์ž๊ฐ€ ๊ณต๊ฐœ ํ‚ค๋ฅผ ๋ฐ›์€ ํ›„ ์„ธ์…˜ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ณตํ†ต ๊ธฐ๋ณธ ํ‚ค(gab mod p)๊ฐ€ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. Raccoon ๊ณต๊ฒฉ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฒ„์ „ 1.2๊นŒ์ง€์˜ TLS ์‚ฌ์–‘์—์„œ๋Š” ๊ธฐ๋ณธ ํ‚ค์™€ ๊ด€๋ จ๋œ ๊ณ„์‚ฐ ์ „์— ๊ธฐ๋ณธ ํ‚ค์˜ ๋ชจ๋“  ์„ ํ–‰ null ๋ฐ”์ดํŠธ๋ฅผ ์‚ญ์ œํ•ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถ€์ฑ„๋„ ๋ถ„์„์„ ํ†ตํ•ด ๊ธฐ๋ณธ ํ‚ค๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž˜๋ฆฐ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ํฌํ•จํ•˜๋ฉด ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ง€์—ฐ ์‹œ๊ฐ„์ด ๋‹ค๋ฅธ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์„ธ์…˜ ํ‚ค ์ƒ์„ฑ ๊ธฐ๋Šฅ์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ํ‚ค ์—ฐ์‚ฐ์˜ ํƒ€์ด๋ฐ์„ ์ •ํ™•ํ•˜๊ฒŒ ์ธก์ •ํ•˜๋ฉด ๊ณต๊ฒฉ์ž๋Š” ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์„œ(์˜ค๋ผํด)๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ณต๊ฒฉ์ž๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ๊ณต๊ฐœ ํ‚ค(ga)๋ฅผ ๊ฐ€๋กœ์ฑ„์„œ ์„œ๋ฒ„๋กœ ๋‹ค์‹œ ์ „์†กํ•˜๊ณ 
๊ฒฐ๊ณผ ๊ธฐ๋ณธ ํ‚ค๊ฐ€ XNUMX๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š”์ง€ ์—ฌ๋ถ€.

๊ทธ ์ž์ฒด๋กœ๋Š” ํ‚ค์˜ XNUMX๋ฐ”์ดํŠธ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์•„๋ฌด ๊ฒƒ๋„ ์–ป์„ ์ˆ˜ ์—†์ง€๋งŒ ์—ฐ๊ฒฐ ํ˜‘์ƒ ์ค‘์— ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ „์†กํ•œ "ga" ๊ฐ’์„ ๊ฐ€๋กœ์ฑ„์„œ ๊ณต๊ฒฉ์ž๊ฐ€ "ga"์™€ ๊ด€๋ จ๋œ ๋‹ค๋ฅธ ๊ฐ’ ์„ธํŠธ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ์—ฐ๊ฒฐ ํ˜‘์ƒ ์„ธ์…˜์—์„œ ์„œ๋ฒ„. ๊ณต๊ฒฉ์ž๋Š” "gri*ga" ๊ฐ’์„ ์ƒ์„ฑํ•˜๊ณ  ์ „์†กํ•จ์œผ๋กœ์จ ์„œ๋ฒ„ ์‘๋‹ต ์ง€์—ฐ์˜ ๋ณ€ํ™”๋ฅผ ๋ถ„์„ํ•˜์—ฌ XNUMX๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๊ธฐ๋ณธ ํ‚ค๋ฅผ ์ˆ˜์‹ ํ•˜๊ฒŒ ๋˜๋Š” ๊ฐ’์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ’์„ ๊ฒฐ์ •ํ•œ ํ›„ ๊ณต๊ฒฉ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์ •์‹ ์„ธํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์†”๋ฃจ์…˜ ์ˆจ๊ฒจ์ง„ ์ˆซ์ž ๋ฌธ์ œ ์›๋ž˜ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

DH ์•”ํ˜ธํ™”๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ํ‚ค ๊ฒฐ์ •์„ ํ—ˆ์šฉํ•˜๋Š” TLS์˜ ์ทจ์•ฝ์„ฑ

OpenSSL ์ทจ์•ฝ์  ํ• ๋‹น๋œ ์œ„ํ—˜ ์ˆ˜์ค€์ด ๋‚ฎ์œผ๋ฉฐ ๋ฆด๋ฆฌ์Šค 1.0.2w์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์•”ํ˜ธ "TLS_DH_*"๋ฅผ ๋ณดํ˜ธ ์ˆ˜์ค€์ด ๋ถˆ์ถฉ๋ถ„ํ•œ ์•”ํ˜ธ ๋ฒ”์ฃผ("์•ฝํ•œ SSL ์•”ํ˜ธ")๋กœ ์ด๋™ํ•˜๋„๋ก ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ถ•์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์•”ํ˜ธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. . Mozilla ๊ฐœ๋ฐœ์ž๋„ ๊ฐ™์€ ์ผ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ป๋‹ค Firefox์—์„œ ์‚ฌ์šฉ๋˜๋Š” NSS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ DH ๋ฐ DHE ์•”ํ˜ธํ™” ์ œํ’ˆ๊ตฐ. Firefox 78๋ถ€ํ„ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์•”ํ˜ธ๋Š” ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. DH์— ๋Œ€ํ•œ Chrome ์ง€์›์€ 2016๋…„์— ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. BearSSL, BoringSSL, Botan, Mbed TLS ๋ฐ s2n ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” DH ์•”ํ˜ธ ๋˜๋Š” DH ์•”ํ˜ธ์˜ ์ •์  ๋ณ€ํ˜•์„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฌธ์ œ์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ๋ฌธ์ œ๋Š” ๋ณ„๋„๋กœ ์–ธ๊ธ‰๋ฉ๋‹ˆ๋‹ค(CVE-2020-5929)๋ฅผ F5 BIG-IP ์žฅ์น˜์˜ TLS ์Šคํƒ์— ์ถ”๊ฐ€ํ•˜์—ฌ ๊ณต๊ฒฉ์„ ๋”์šฑ ํ˜„์‹ค์ ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ํŠนํžˆ, ๊ธฐ๋ณธ ํ‚ค ์‹œ์ž‘ ๋ถ€๋ถ„์— XNUMX๋ฐ”์ดํŠธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์žฅ์น˜ ๋™์ž‘์˜ ํŽธ์ฐจ๊ฐ€ ์‹๋ณ„๋˜์—ˆ์œผ๋ฉฐ, ์ด๋Š” ์ •ํ™•ํ•œ ๊ณ„์‚ฐ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๋Š” ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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