13. Digest Authentication
[Intro]
๊ธฐ๋ณธ ์ธ์ฆ์ ํธ๋ฆฌํ๊ณ ์ ์ฐํ์ง๋ง ์ ํ ์์ ํ์ง ์๋ค. (base64๋ ๋์ฝ๋ฉ์ด ์ฌ์ ์๋์น์๊ฒ ๋น๋ฒ์ ๋ณด๋๊ฑด ๋ง์ ์ ์์ง๋ง, ์ ์๋ฅผ ๊ฐ์ง ์ฌ๋์ ๋ง์์ ์์)
๊ธฐ๋ณธ ์ธ์ฆ์ ์์ ํ๊ฒ ์ฌ์ฉํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ SSL๊ณผ ๊ฒฐํฉํด์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
๋ค์ด์ ์คํธ ์ธ์ฆ์ ๊ธฐ๋ณธ์ธ์ฆ๊ณผ ํธํ๋๋ ๋ ์์ ํ ๋์ฒด์ ๋ก ๊ฐ๋ฐ์ด ๋์๋ค.
๋๋ฆฌ ์ฐ์ด์ง๋ ์์ง๋ง ๊ฐ๋ ์ ๋ณด์ ํธ๋์ญ์ ์ ๊ตฌํํ ๋ ์ ์ฉํ๋ค.
1) ๋ค์ด์ ์คํธ ์ธ์ฆ์ ๊ฐ์ ์
๊ธฐ๋ณธ ์ธ์ฆ์ ๊ฐ์ฅ ์ฌ๊ฐํ ๊ฒฐํจ์ ์์ ํ ๋๋ค๋ฅธ HTTP ์ธ์ฆ ํ๋กํ ์ฝ
ํน์ง
๋น๋ฐ๋ฒํธ๋ฅผ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ๋ ํ๋ฌธ์ผ๋ก ๋ณด๋ด์ง ์๋๋ค.
์ธ์ฆ ์ฒด๊ฒฐ์ ๊ฐ๋ก์ฑ์ ์ฌํํ๋ ค๋ ์ ์์ ์ธ ์ฌ๋์ ์ฐจ๋จํ๋ค.
๊ตฌํ์ ๋ฐ๋ผ ๋ฉ์ธ์ง ๋ด์ฉ ์์กฐ๋ฅผ ๋ง๋๊ฒ๋ ๊ฐ๋ฅํ๋ค.
๊ทธ ์ธ ๋ช๋ช ์ ์๋ ค์ง ํํ์ ๊ณต๊ฒฉ์ ๋ง๋๋ค.
๋ค์ด์ ์คํธ ์ธ์ฆ์ด ๊ฐ๋ฅํ ๊ฐ์ฅ ์์ ํ ํ๋กํ ์ฝ์ ์๋๋ค. ํ์ง๋ง ๊ธฐ๋ณธ ์ธ์ฆ๋ณด๋ค ํจ์ฌ ๊ฐ๋ ฅํ๋ค.
[HTTP ํธ๋์ญ์ ์ ์ํ ๋ง์ ์๊ตฌ์ฌํญ์ ๋ง์กฑํ๋ ค๋ฉด HTTPS + TLS ๊ฐ ๋ ์ ํฉํ๋ค.]
๋ค์ด์ ์คํธ ์ธ์ฆ์ ๋ค๋ฅธ ์ธํฐ๋ท ์๋น์ค๋ฅผ ์ํด ์ ์๋ ๋ง์ ์ธ๊ธฐ์๋ ๋ณด์์ฒด๊ณ๋ณด๋ค ๊ฐ๋ ฅํ๋ค.
โ ๋น๋ฐ๋ฒํธ๋ฅผ ์์ ํ๊ฒ ์งํค๊ธฐ ์ํด ์์ฝ ์ฌ์ฉํ๊ธฐ
๋ค์ด์ ์คํธ์ธ์ฆ์ ์ข์ฐ๋ช : "์ ๋๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ๋คํธ์ํฌ๋ฅผ ํตํด ๋ณด๋ด์ง ์๋๋ค."
๋น๋ฐ๋ฒํธ๋ฅผ ๋ณด๋ด๋ ๋์ , ๋น๋ฐ๋ฒํธ๋ฅผ ๋น๊ฐ์ญ์ ์ผ๋ก ์ฎ์ '์ง๋ฌธ(fingerprint)', '์์ฝ(digest)'๋ฅผ ๋ณด๋ธ๋ค.
โก ๋จ๋ฐฉํฅ ์์ฝ
์์ฝ์ ์ ๋ณด ๋ณธ๋ฌธ์ ์์ถ์ด๋ค.
์์ฝ์ ๋จ๋ฐฉํฅ ํจ์๋ก ๋์ํ๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ ๋ ฅ๊ฐ๋ฅํ ๋ฌดํ ๊ฐ์ง์ ๋ชจ๋ ์ ๋ ฅ๊ฐ๋ค์์ ํํ ๋ฒ์์ ์์ถ์ผ๋ก ๋ณํํ๋ค.
์ธ๊ธฐ์๋ ์์ฝ ํจ์ ์ค ํ๋์ธ MD5๋ ์์์ ๋ฐ์ดํธ ๋ฐฐ์ด์ ์๋ ๊ธธ์ด์ ์๊ด์์ด 128๋นํธ ์์ฝ์ผ๋ก ๋ณํํ๋ค.
์์ฝ์์ ์ค์ํ ๊ฒ์ ๋ง์ฝ pw๋ฅผ ๋ชจ๋ฅด๋ฉด ์๋ฒ์ ๋ณด๋ผ ์๋ง์ ์์ฝ์ ์ถ์ธกํ๊ธฐ ์ํด ํฐ ์๊ฐ์๋ชจ๋ฅผ ํ๋ค๋ ์ .
์์ฝ์ ๊ฐ๊ณ ์๋ค๋ฉด, ๋ฌดํ๊ฐ์ ์ ๋ ฅ๊ฐ๋ค ์ค ์์ฝ์ ์์ฑํ๋ ๊ฒ์ ์ฐพ๊ธฐ์ํด ๋์ฐํ๊ฒ ๋ง์ ์๊ฐ ์๋ชจ๋ฅผ ํ๋ค.
โข ์ฌ์ ์ก ๋ฐฉ์ง๋ฅผ ์ํ nonce ์ฌ์ฉ
์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ง๋ฅผ ์ํด์ ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ nonce๋ผ๊ณ ๋ถ๋ฆฌ๋ ํน๋ณํ๊ณ ์์ฃผ๋ฐ๋๋ ์ฆํ๋ฅผ ๊ฑฐ๋ธ๋ค. (์ฝ 1๋ฐ๋ฆฌ์ด๋ง๋ค, ํน์ ์ธ์ฆํ ๋๋ง๋ค ๊ฑด๋ด์ค๋ค.)
์ ์ฅ๋ ๋น๋ฐ๋ฒํธ ์์ฝ์ ํน์ nonce ๊ฐ์ ๋ํด์๋ง ์ ํจํ๊ธฐ ๋๋ฌธ์ ๋น๋ฐ๋ฒํธ ์์ด ๊ณต๊ฒฉ์๊ฐ ์ฌ๋ฐ๋ฅธ ์์ฝ์ ๊ณ์ฐํ๋ ๊ฒ์ ๊ฐ๋ฅํ์ง ์๋ค.
โฃ ๋ค์ด์ ์คํธ ์ธ์ฆ ํธ๋ ์
ฐ์ดํฌ
๊ธฐ์กด ํค๋์ ๋ช๋ช ์ ์ต์ ์ ์ถ๊ฐํ๊ณ , ์ ํ์ ํค๋์ธ Authorization-Info๊ฐ ์๋ก ์ถ๊ฐ๋์๋ค.
๋ค์ด์ ์คํธ ์ธ์ฆ์ ํต์ฌ
๊ณต๊ฐ๋ ์ ๋ณด, ๋น๋ฐ์ ๋ณด, ์ํ๋ถ nonce ๊ฐ์ ์กฐํฉํ ๋จ๋ฐฉํฅ ์์ฝ.
(์ดํ ๋ค์ด์ ์คํธ ์ธ์ฆ ํ๊ธฐ ์ค๋ต)
Last updated