๋ค์ด์ ์คํธ ์ธ์ฆ์ ๊ฐ์ ์
๋ค์ด์ ์คํธ ์ธ์ฆ์ ๋๋ฆฌ ์ฐ์ด๊ณ ์์ง๋ ์๋ค.
๊ทธ๋ฌ๋ ๊ธฐ๋ณธ ์ธ์ฆ์ ๋ด์ฌ๋ ๋ณด์ ์ํ ๋๋ฌธ์, HTTP ์ค๊ณ์๋ค์ RFC2617์์ "๊ธฐ๋ณธ ์ธ์ฆ์ ์ฌ์ฉํ๋ ์ค๋๋ ์ ๋ชจ๋ ์๋น์ค๋ ๊ฐ๋ฅํ ํ ๋ค์ด์ ์คํธ ์ธ์ฆ์ผ๋ก ์ ํํด์ผ ํ๋ค" ๊ณ ์กฐ์ธํ๊ณ ์๋ค.
์์ฝ ์ฌ์ฉ
- ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณด๋ด๋ ๋ค์ , ํด๋ผ์ด์ธํธ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ๋น๊ฐ์ญ์ ์ผ๋ก ๋ค์์ '์ง๋ฌธ' ํน์ '์์ฝ'์ ๋ณด๋ธ๋ค.
- ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ๋๋ค ๋น๋ฐ๋ฒํธ๋ฅผ ์๊ณ ์์ผ๋ฏ๋ก, ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ์์ฝ์ด ๋น๋ฐ๋ฒํธ์ ์๋ง๊ฒ ๋์ํ๋์ง ๊ฒ์ฌํ ์ ์๋ค.
- ์์ฝ ํจ์๋ ๋งค์ฐ ๊ธด ์๋ฆฟ์์ ์ซ์๋ฅผ ๋ง๋ค์ด๋ด๊ธฐ ๋๋ฌธ์, ์ฐ์ด์ ๋ง์ถ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค
๋จ๋ฐฉํฅ ์์ฝ
- ์์ฝ ํจ์ ์ค ํ๋์ธ MD5๋ ์์์ ๋ฐ์ดํธ ๋ฐฐ์ด์ ์๋ ๊ธธ์ด์ ์๊ด์์ด 128๋นํธ ์์ฝ์ผ๋ก ๋ณํํ๋ค
- 128๋นํธ์ MD5์ถ๋ ฅ์ 32๊ธ์์ 16์ง์ ๋ฌธ์๋ก ํํ๋๋ฉฐ, ๊ฐ ๋ฌธ์๋ ๊ฐ๊ฐ 4๋นํธ์ ๊ฐ์ ์๋ฏธํ๋ค
- ์์ฝ ํจ์๋ ๋ณดํต ์ํธ ์ฒดํฌ์ฌ์ผ๋ก ๋ถ๋ฆฌ๋ฉฐ, ๋จ๋ฐฉํฅ ํด์ํจ์์ด๊ฑฐ๋ ์ง๋ฌธํจ์์ด๋ค
๋์ค(nonce) ์ฌ์ฉ
- ๋น๋ฐ๋ฒํธ๋ฅผ ๋ชฐ๋ผ๋ ๋น๋ฐ๋ฒํธ ์์ฝ์ ๊ฐ๋ก์ฑ ๊ณ์ํด์ ๊ณต๊ฒฉํ๋ ์ฌ์ ์ก ๊ณต๊ฒฉ์ ๋ง๊ธฐ ์ํด ๋ง๋ค์ด์ก๋ค
- ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ๋์ค๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ฆํ๋ฅผ ๊ฑด๋ค์ค๋ค
- ์ปดํจํฐ ๋ณด์ ์ธก๋ฉด์ ๊ณ ๋ คํด์, ๋์ค์ ๊ณ์ฐ์์ ํ์ฌ ์๊ฐ์ ํฌํจํ๋ค
- ํด๋ผ์ด์ธํธ๋ ๋ฐ์ ๋์ค๋ฅผ ๋น๋ฐ๋ฒํธ์ ์๋๋ค. ๋๋ฌธ์ ์์ฝ๋ ๋ฐ๋์ด์ ๋ณด๋ด์ง๊ฒ ๋๋ค0
๋ค์ด์ ์คํธ ์ธ์ฆ ํธ๋์
ฐ์ดํฌ
- ์๋ฒ๊ฐ ๋์ค ๊ฐ์ ์์ฑํ๋ค.
- ์๋ฒ๋ ๋์ค๋ฅผ WWW-Authenticate ์ธ์ฆ์๊ตฌ ๋ฉ์์ง์ ๋ด์, ์๋ฒ๊ฐ ์ง์ํ๋ ์๊ณ ๋ฆฌ์ฆ ๋ชฉ๋ก๊ณผ ํจ๊ป ํด๋ผ์ด์ธํธ์ ์ ์กํ๋ค (์์ญ, ๋์ค, ์๊ณ ๋ฆฌ์ฆ์ ๋ณด๋ธ๋ค)
- ํด๋ผ์ด์ธํธ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ๊ณ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฐ์ง๊ณ ์์ฝ์ ์์ฑํ๋ค.
- ํด๋ผ์ด์ธํธ๋ Authrizatioin ๋ฉ์์ง์ ์์ฝ์ ๋ด์์ ์๋ฒ์๊ฒ ๋ณด๋ธ๋ค. (์์ฝ, ์ ํํ ์๊ณ ๋ฆฌ์ฆ + ์๋ฒ๋ ์ธ์ฆํ๊ธธ ์ํ๋ค๋ฉด ํด๋ผ์ด์ธํธ ๋์ค)
- ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ํ๊ฒ์ฒ๋ผ ์์ฝ์ ๊ณ์ฐํด์ ํด๋ผ์ด์ธํธ์ ์์ฝ๊ณผ ์๋ฒ์ ์์ฝ์ด ๊ฐ์์ง ํ์ธํ๋ค.
- ๋ง์ฝ ํด๋ผ์ด์ธํธ๊ฐ ๋์ค๋ฅผ ๋ณด๋ด ์ธ์ฆ์ ์๊ตฌํ๋ฉด ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ผ ์์ฝ์ ๋ง๋ ๋ค. ๋ํ ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ผ ๋์ค๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋๊ฒจ์ค ์ ์๋ค.
์์ฝ ๊ณ์ฐ
H(d)์ KD(s,d) ์๊ณ ๋ฆฌ์ฆ
H(d) : ๋จ๋ฐฉํฅ ํด์ ํจ์
KD(s,d) : ์์ฝ ํจ์. s๋ ๋น๋ฐ(secret)๋ฅผ, d๋ ๋ฐ์ดํฐ(data)๋ฅผ ๋งํ๋ค
H(<๋ฐ์ดํฐ>) = MD5(<๋ฐ์ดํฐ>)
KD(<๋น๋ฐ>,<๋ฐ์ดํฐ>) = H(์ฐ๊ฒฐ(<๋น๋ฐ>:<๋ฐ์ดํฐ>))
์ฌ์ฉ์ ์ด๋ฆ, ๋น๋ฐ๋ฒํธ, ๋ณดํธ์์ญ, ๋์ค์ ๊ฐ์ ๋น๋ฐ ๋ณดํธ ์ ๋ณด ๋ฉ์ด๋ฆฌ
A1์ ์ ์
์๊ณ ๋ฆฌ์ฆ | A1 |
---|
| A1 = <์ฌ์ฉ์> : <์์ญ>:<๋น๋ฐ๋ฒํธ> |
| A1=MD5(<์ฌ์ฉ์>:<์์ญ>:<๋น๋ฐ๋ฒํธ>):<๋์ค>:<c๋์ค> |
URL, ์์ฒญ ๋ฉ์๋, ๋ฉ์์ง ์ํฐํฐ ๋ณธ๋ฌธ๊ณผ ๊ฐ์ ๋ฉ์์ง ์์ฒด์ ์ ๋ณด๋ฅผ ๋ํ๋ธ๋ค
A2์ ์ ์
qop | A1 |
---|
| <์์ฒญ๋ฉ์๋>:<url ์ง์์ ๊ฐ> |
| <์์ฒญ๋ฉ์๋>:<url ์ง์์ ๊ฐ> |
| <์์ฒญ๋ฉ์๋>:<url ์ง์์ ๊ฐ>:H(<์์ฒญ ์ํฐํฐ ๋ณธ๋ฌธ>) |
์ฐจํธ ์ํธ
qop | ์๊ณ ๋ฆฌ์ฆ | ํผ์ณ์ง ์๊ณ ๋ฆฌ์ฆ |
---|
| <์ ์๋์ง ์์>
MD5
MD5-sess | MD5(MD5(A1):<๋์ค>:MD5(A2)) |
| <์ ์๋์ง ์์>
MD5
MD5-sess | MD5(MD5(A1):<๋์ค>:<nc>:<๋์ค>:<qop>:MD5(A2)) |
| <์ ์๋์ง ์์>
MD5
MD5-sess | MD5(MD5(A1):<๋์ค>:<nc>:<๋์ค>:<qop>:MD5(A2)) |
์ฌ์ (preemptive) ์ธ๊ฐ
๋ง์ฝ ํด๋ผ์ด์ธํธ๊ฐ ๋ค์ ๋์ค๊ฐ ๋ฌด์์ด ๋ ์ง ๋ฏธ๋ฆฌ ์๊ณ ์์ด์, ์๋ฒ๊ฐ ๋ฌผ์ด๋ณด๊ธฐ ์ ์ ์ฌ๋ฐ๋ฅธ Authorization ํค๋๋ฅผ ์์ฑํ ์ ์๋ค๋ฉด, ์ด ์์ฒญ/์ธ์ฆ์๊ตฌ ์ฌ์ดํด์ ์๋ตํ ์ ์๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ์ WWW-Authenticate์ธ์ฆ์๊ตฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์ฌ๋ฐ๋ฅธ ๋์ค๋ฅผ ์ทจํ ์ ์๋ ๋ฐฉ๋ฒ์ด ๋ช ๊ฐ์ง ์๋ค
- ์๋ฒ๊ฐ ๋ค์ ๋์ค๋ฅผ Authentication-Info ์ฑ๊ณต ํค๋์ ๋ด์์ ๋ฏธ๋ฆฌ ๋ณด๋ธ๋ค
- ์๋ฒ๊ฐ ์งง์ ์๊ฐ ๋์ ๊ฐ์ ๋์ค๋ฅผ ์ฌ์ฌ์ฉํ๋๊ฒ์ ํ์ฉํ๋ค
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๊ฐ ๋๊ธฐํ๋์ด ์๊ณ ์์ธก ๊ฐ๋ฅํ ๋์ค ์์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค
RFC 2417์ด ์ ์ํ ๋์ค ๊ณต์ :BASE64(ํ์์คํฌํ":"ETag":"๊ฐ์ธ ํค))
์ํธ ์ธ์ฆ
RFC 2417์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ฅผ ์ธ์ฆํ ์ ์๋๋ก ๋ค์ด์ ์คํธ ์ธ์ฆ์ ํ์ฅํ๋ค.
์๋ฒ๊ฐ ๊ณต์ ๋ ๋น๋ฐ ์ ๋ณด์ ๊ทผ๊ฑฐํ ์ฌ๋ฐ๋ฆฐ ์๋ต ์์ฝ์ ์์ฑํ ์ ์๋๋ก, ํด๋ผ์ด์ธํธ ๋์ค(c๋์ค) ๊ฐ์ ์ ๊ณตํ์ฌ ๊ฐ๋ฅํด์ง๋ค
์ดํ ์๋ฒ๋ ์ด ์์ฝ์ Authentication-Info ํค๋๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ์ ๋ฌํ๋ค.
๋ณดํธ์ ์์ค(Quality of Protection) ํฅ์
์๋ฒ๋ ์ฐ์ WWW-Authenicateํค๋์ qop์ต์
์ ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ชฉ๋ก ํํ๋ก ๋ด๋ณด๋ธ๋ค.
๊ทธ ํ ํด๋ผ์ด์ธํธ๋ ๊ทธ ์ต์
๋ค ์ค ์ง์ํ ์ ์์ผ๋ฉด์ ๋์์ ์์ ์ ์๊ตฌ์๋ ๋ง๋ ๊ฒ์ ์ ํํ๊ณ , ๊ทธ๊ฒ์ Authentizationํค๋์ qopํ๋์ ๋ด์ ๋๋ ค์ค๋ค
RFC 2617์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ ๊ฐ์ง ์ด๊ธฐ ๋ณดํธ์์ค ๊ฐ์ ์ ์ํ๊ณ ์๋ค.
ํ๋๋ ์ธ์ฆ์ ์๋ฏธํ๋ "auth"์ด๊ณ ๋ค๋ฅธ ํ๋๋ ์ธ์ฆ ๋ฐ ๋ฉ์์ง ๋ฌด๊ฒฐ์ฑ ๋ณดํธ๋ฅผ ์๋ฏธํ๋ "auth-int"์ด๋ค
๋ฉ์์ง ๋ฌด๊ฒฐ์ฑ ๋ณดํธ
๋ฌด๊ฒฐ์ฑ ๋ณดํธ๊ฐ ์ ์ฉ๋์์ ๋ (qop="auth-int") ๊ณ์ฐ๋๋ H(์ํฐํฐ ๋ณธ๋ฌธ)๋, ๋ฉ์์ง ๋ณธ๋ฌธ์ ํด์๊ฐ ์๋ ์ํฐํฐ ๋ณธ๋ฌธ์ ํด์์ด๋ค.
์ด๊ฒ์ ์ก์ ์์ ์ํด ์ด๋ ํ ์ ์ก ์ธ์ฝ๋ฉ์ด ์ ์ฉ๋๊ธฐ๋ ์ ์ ๋จผ์ ๊ณ์ฐ๋๊ณ ๊ทธ ํ ์์ ์์ ์ํด ์ ๊ฑฐ๋๋ค.
์ค์ ์ํฉ์ ๋ํ ๊ณ ๋ ค
๋ค์ด์ ์คํธ ์ธ์ฆ ์์
์ ํ ๋ ๊ณ ๋ คํด์ผ ํ ๊ฒ ์ด ๋ช ๊ฐ์ง ์๋ค.
๋ค์ค ์ธ์ฆ์๊ตฌ - ์๋ฒ๋ ํ ๋ฆฌ์์ค์ ๋ํด ์ฌ๋ฌ ์ธ์ฆ์ ์๊ตฌ ํ ์ ์๋ค.
์ค๋ฅ ์ฒ๋ฆฌ - ์ธ์ฆ์ด ์ ์ ํ์ง ์์์ ๋๋ 400 Bad Request๋ฅผ ๋ฐํํ๋ฉฐ, ๋ก๊ทธ๋ก ๊ธฐ๋กํ๋๊ฒ์ด ์ข๋ค.
๋ณดํธ ๊ณต๊ฐ(Protection Space) - ๊ธฐ๋ณธ์ธ์ฆ์์, ํด๋ผ์ด์ธํธ๋ ์์ฒญ URL์ ๊ทธ ํ์์ ๋ชจ๋ ๊ฒฝ๋ก๋ ๊ฐ์ ๋ณดํธ ๊ณต๊ฐ์ ์๋ ๊ฒ์ผ๋ก ๊ฐ์ ํ๋ค.
URL ๋ค์ ์ฐ๊ธฐ - ํ๋ฝ์๋ ๊ฐ๋ฆฌํค๋ ๋ฆฌ์์ค์ ๋ณ๊ฒฝ ์์ด ๊ตฌ๋ฌธ๋ง ๊ณ ์ณ์ URL์ ๋ค์ ์ฐ๊ธฐ๋ ํ๋ค. ๋ค์ด์ ์คํธ ์ธ์ฆ์ ์ด๋ฌํ ๋ณ๊ฒฝ์ผ๋ก ์คํจํ ์ ์๋ค.
์บ์ - ์ด๋ค ๊ณต์ ์บ์๊ฐ Authotization ํค๋๋ฅผ ํฌํจํ ์์ฒญ๊ณผ ๊ทธ์ ๋ํด ์๋ต์ ๋ฐ์ ๊ฒฝ์ฐ, ๋ Cache-Control ์ง์์ ์ค ํ๋๊ฐ ์๋ต์ ์กด์ฌํ์ง ์๋ ๋ค๋ฅธ ์์ฒญ์ ๋ํด ๊ทธ ์๋ต์ ๋ฐํํด์๋ ์๋๋ค.
๋ณด์์ ๋ํ ๊ณ ๋ ค์ฌํญ
RFC 2617์ HTTP ์ธ์ฆ ์ ๋์ ๋ด์ ๋ ๋ณด์ ์ํ์ ์ผ๋ถ๋ฅผ ์ ๋ฆฌํ๋ ์ผ์ ํด๋๋ค. ๊ทธ์ค ๋ช ๊ฐ์ง๋ฅผ ์ค๋ช
ํ๋ค.
0์ฌ์ ์ก ๊ณต๊ฒฉ - ์ฌ์ ์ก ๊ณต๊ฒฉ์ ์์ ํ ํผํ ์ ์๋ ํ ๋ฐฉ๋ฒ์ ๋งค ํธ๋์ญ์
๋ง๋ค ์ ์ผํ ๋์ค ๊ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค
๋ค์ค ์ธ์ฆ ๋ฉ์ปค๋์ฆ - ํด๋ผ์ด์ธํธ๊ฐ ์ธ์ ๋ ๊ฐ๋ฅํ ํ ๊ฐ์ฅ ๊ฐ๋ ฅํ ์ธ์ฆ ์ ๋๋ฅผ ์ ํํ๋๋ก ํด์ผ ํ๋ค
์ฌ์ (dictionary) ๊ณต๊ฒฉ - ํฌ๋ํนํ๊ธฐ ์ด๋ ต๋๋ก ์๋์ ์ผ๋ก ๋ณต์กํ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํ๋ค
์
์์ ์ธ ํ๋ฝ์์ ์ค๊ฐ์ ๊ณต๊ฒฉ(Man-in-the-Middle Attack) - SSL์ ์ฌ์ฉํ๋ค
์ ํ ํ๋ฌธ ๊ณต๊ฒฉ - ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์์ ์ ๊ณต๋ ๋์ค ๋์ ์ ํ์ ์ธ c๋์ค ์ง์์๋ฅผ ์ฌ์ฉํ์ฌ ์๋ต์ ์์ฑํ ์ ์๋๋ก ํ๋ค.
๋น๋ฐ๋ฒํธ ์ ์ฅ - ์์ญ ์ด๋ฆ์ด ์ ์ผํจ์ ๋ณด์ฅํ๋ฉฐ, ๋น๋ฐ๋ฒํธ ํ์ผ์ด ์ ์ถ๋๋๋ผ๋ ํผํด๋ฅผ ํน์ ์์ญ์ผ๋ก ๊ตญ์ํํ๋ค.
Last updated