Google์€ ์ธ์ฆ์„œ ๊ธฐ๋ฐ˜ ์ธ์ฆ์„ ์œ„ํ•œ OpenSSH ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ธ HIBA๋ฅผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

Google์€ ํ˜ธ์ŠคํŠธ์™€ ์—ฐ๊ฒฐ๋˜์–ด SSH๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ๊ตฌํ˜„์„ ์ œ์•ˆํ•˜๋Š” HIBA(Host Identity Based Authorization) ํ”„๋กœ์ ํŠธ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค(์ธ์ฆ ์‹œ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ํ—ˆ์šฉ ์—ฌ๋ถ€ ํ™•์ธ). ๊ณต๊ฐœ ํ‚ค ์‚ฌ์šฉ). OpenSSH์™€์˜ ํ†ตํ•ฉ์€ /etc/ssh/sshd_config์˜ AuthorizedPrincipalsCommand ์ง€์‹œ๋ฌธ์— HIBA ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ง€์ •ํ•˜์—ฌ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” C๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ BSD ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

HIBA๋Š” ํ˜ธ์ŠคํŠธ์™€ ๊ด€๋ จ๋œ ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ์œ ์—ฐํ•˜๊ณ  ์ค‘์•™ ์ง‘์ค‘์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด OpenSSH ์ธ์ฆ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ํ‘œ์ค€ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์ง€๋Š” ํ˜ธ์ŠคํŠธ ์ธก์˜ Authorized_keys ๋ฐ Authorized_users ํŒŒ์ผ์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. Authorized_(keys|users) ํŒŒ์ผ์— ์œ ํšจํ•œ ๊ณต๊ฐœ ํ‚ค ๋ฐ ์•ก์„ธ์Šค ์กฐ๊ฑด ๋ชฉ๋ก์„ ์ €์žฅํ•˜๋Š” ๋Œ€์‹  HIBA๋Š” ์‚ฌ์šฉ์ž-ํ˜ธ์ŠคํŠธ ๋ฐ”์ธ๋”ฉ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ธ์ฆ์„œ ์ž์ฒด์— ์ง์ ‘ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•œ ํ˜ธ์ŠคํŠธ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์กฐ๊ฑด์„ ์ €์žฅํ•˜๋Š” ํ˜ธ์ŠคํŠธ ์ธ์ฆ์„œ์™€ ์‚ฌ์šฉ์ž ์ธ์ฆ์„œ์— ๋Œ€ํ•œ ํ™•์žฅ์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜ธ์ŠคํŠธ ์ธก ๊ฒ€์‚ฌ๋Š” AuthorizedPrincipalsCommand ์ง€์‹œ๋ฌธ์— ์ง€์ •๋œ hiba-chk ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์„œ๋Š” ์ธ์ฆ์„œ์— ํ†ตํ•ฉ๋œ ํ™•์žฅ์„ ๋””์ฝ”๋”ฉํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์•ก์„ธ์Šค ํ—ˆ์šฉ ๋˜๋Š” ์ฐจ๋‹จ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์•ก์„ธ์Šค ๊ทœ์น™์€ CA(์ธ์ฆ ๊ธฐ๊ด€) ์ˆ˜์ค€์—์„œ ์ค‘์•™์ ์œผ๋กœ ๊ฒฐ์ •๋˜๋ฉฐ ์ƒ์„ฑ ๋‹จ๊ณ„์—์„œ ์ธ์ฆ์„œ์— ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.

์ธ์ฆ ์„ผํ„ฐ ์ธก๋ฉด์—๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ถŒํ•œ์˜ ์ผ๋ฐ˜ ๋ชฉ๋ก(์—ฐ๊ฒฐ์ด ํ—ˆ์šฉ๋˜๋Š” ํ˜ธ์ŠคํŠธ)๊ณผ ์ด๋Ÿฌํ•œ ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ—ˆ์šฉ๋œ ์‚ฌ์šฉ์ž ๋ชฉ๋ก์ด ์œ ์ง€ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์ž๊ฒฉ ์ฆ๋ช…์— ๋Œ€ํ•œ ํ†ตํ•ฉ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ์ธ์ฆ๋œ ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด hiba-gen ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์ œ์•ˆ๋˜๊ณ , ์ธ์ฆ ๊ธฐ๊ด€์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ด iba-ca.sh ์Šคํฌ๋ฆฝํŠธ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

์‚ฌ์šฉ์ž๋ฅผ ํ˜ธ์ŠคํŠธ์— ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ HIBA๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณด๋‹ค ์œ ์—ฐํ•œ ์•ก์„ธ์Šค ๊ทœ์น™์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์œ„์น˜, ์„œ๋น„์Šค ์œ ํ˜• ๋“ฑ์˜ ์ •๋ณด๋ฅผ ํ˜ธ์ŠคํŠธ์™€ ์—ฐ๊ด€์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‚ฌ์šฉ์ž ์ ‘๊ทผ ๊ทœ์น™์„ ์ •์˜ํ•  ๋•Œ ํŠน์ • ์„œ๋น„์Šค ์œ ํ˜•์„ ๊ฐ€์ง„ ๋ชจ๋“  ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์œ„์น˜์— ์žˆ๋Š” ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Google์€ ์ธ์ฆ์„œ ๊ธฐ๋ฐ˜ ์ธ์ฆ์„ ์œ„ํ•œ OpenSSH ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ธ HIBA๋ฅผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.
Google์€ ์ธ์ฆ์„œ ๊ธฐ๋ฐ˜ ์ธ์ฆ์„ ์œ„ํ•œ OpenSSH ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ธ HIBA๋ฅผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.


์ถœ์ฒ˜ : opennet.ru

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