์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- ์๋ฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- Operating System
- Rust
- ํ์ด์ฌ
- ์ค๋ผํด
- ์๊ณ ๋ฆฌ์ฆ
- ์ฐ๋ถํฌ
- Python challenge
- Database
- OS
- java
- Reversing
- ์ด์์ฒด์
- data communication
- ์๋ฐ ๊ธฐ์ด
- ์ค๋ผํดDB
- C
- ๋ฌ์คํธ ์์
- ๋ฌ์คํธ ํ๋ก๊ทธ๋๋ฐ ๊ณต์ ๊ฐ์ด๋
- ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ
- ๋ฐ์ดํฐ ํต์
- ๋ฐฑ์ค ๋ฌ์คํธ
- ubuntu
- ๋ฌ์คํธ
- ํ์ด์ฌ ์ฑ๋ฆฐ์ง
- ํ์ด์ฌ ์ฒผ๋ฆฐ์ง
- Python
- ์๋ฐ ๊ฐ๋
- ๋ฐฑ์ค
Archives
- Today
- Total
IT’s Portfolio
[Web] HTTP ์ธ์ฆ - ๊ธฐ๋ณธ ์ธ์ฆ๊ณผ ๋ค์ด์ ์คํธ ์ธ์ฆ ๋ณธ๋ฌธ
Development Study
[Web] HTTP ์ธ์ฆ - ๊ธฐ๋ณธ ์ธ์ฆ๊ณผ ๋ค์ด์ ์คํธ ์ธ์ฆ
f1r3_r41n 2022. 11. 16. 00:14728x90
๋ฐ์ํ
๐ฅ HTTP authentication
๐ฌ HTTP ์ธ์ฆ
- ์ธ์ฆ: ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ์ฆ๋ช ํ๋ ์์
- HTTP๋ ์์ฒด ์ธ์ฆ ์๊ตฌ/์๋ต ๊ธฐ๋ฅ ์ ๊ณต
- 1๏ธโฃ (Client -> Server) Resource request
- 2๏ธโฃ (Server -> Client) Authentication request
- 3๏ธโฃ (Client -> User) Notify the user that they need authentication
- 4๏ธโฃ (Client -> Server) Resource request with authentication info for the user
- HTTP์๋ ๊ธฐ๋ณธ ์ธ์ฆ๊ณผ ๋ค์ด์ ์คํธ ์ธ์ฆ ๋ ๊ฐ์ง์ ๊ณต์์ ์ธ ์ธ์ฆ ํ๋กํ ์ฝ ์กด์ฌ
๐ฟ Basic Authentication - ๊ธฐ๋ณธ ์ธ์ฆ
๊ธฐ๋ณธ ์ธ์ฆ์ ํ์์ ๋ฐ๋ผ ๊ณ ์ณ ์ธ ์ ์๋ ์ ์ด ํค๋๋ฅผ ํตํด ์ด๋ฃจ์ด์ง
Step Header Description Method/Status ์์ฒญ ์ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ๋ ๋จ๊ณ. ์ธ์ฆ ์ ๋ณด์ ํค๋ ์์ GET ์ธ์ฆ ์๊ตฌ WWW-Authentication ์๋ฒ๊ฐ ์ธ์ฆ์ด ํ์ํ๋ค๋ฉด ํด๋น ํค๋๋ฅผ ํตํด ์ฌ์ฉ์์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๊ณตํ๋ผ๋ ์ง์๋ฅผ ํ๊ณ 401 ์ํ ์ ๋ณด์ ํจ๊ป ์์ฒญ ๋ฐ๋ ค 401 Unauthorized ์ธ์ฆ Authorization ํด๋ผ์ด์ธํธ๋ ์์ฒญ์ ๋ค์ ๋ณด๋ผ ๋ ์ธ์ฆ ์๊ณ ๋ฆฌ์ฆ๊ณผ ์ฌ์ฉ์์ ์ด๋ฆ, ๋น๋ฐ๋ฒํธ๋ฅผ ๊ธฐ์ ํ Authorization ํค๋๋ฅผ ๋ณด๋ GET ์ฑ๊ณต Authentication-Info ์๋ฒ๋ ๋ฐ์ ์ธ์ฆ ์ ๋ณด๊ฐ ์ ํํ๋ค๋ฉด ๋ฆฌ์์ค์ ํจ๊ป ์๋ต. Authentication-Info ํค๋๋ ์ ํ์ฌํญ์ผ๋ก ํน์ ํ ์ธ์ฆ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ ์ธ์ฆ ์ธ์ ์ ๊ดํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ๊ธฐ์ ํด ์๋ตํ๊ธฐ๋ ํจ 200 OK ๊ธฐ๋ณธ ์ธ์ฆ์ ํธ๋ฆฌํ๊ณ ์ ์ฐํ์ง๋ง ์์ ํ์ง ์์
- Reason: ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ํ๋ฌธ์ผ๋ก ๋ณด๋ด๋๋ฐ ์ด ์ ๋ณด๋ฅผ ์์กฐํ์ง ๋ชปํ๊ฒ ๋ณดํธํ๋ ์ฅ์น๊ฐ ๋ฏธํกํจ. Base-64 ์ธ์ฝ๋ฉ์ ํ์ง๋ง ์ฝ๊ฒ ๋์ฝ๋ฉ ๊ฐ๋ฅ
๐ Digest Authentication - ๋ค์ด์ ์คํธ ์ธ์ฆ
๊ธฐ๋ณธ ์ธ์ฆ๊ณผ ํธํ๋๋๋ฐ ๊ธฐ๋ณธ ์ธ์ฆ๋ณด๋ค ์์ ํ ์ธ์ฆ ๋ฐฉ๋ฒ
Improvements
- ๋น๋ฐ๋ฒํธ๋ฅผ ๋คํธ์ํฌ๋ฅผ ํตํด ํต์ ํ ๋ ํ๋ฌธ ์ ์ก X
- ์ธ์ฆ ๊ณผ์ ์ค Sniffing, Snooping Attacker ์ฐจ๋จ
- ๋ฌด๊ฒฐ์ฑ ์นจํด ๋ฐฉ์ง ๊ตฌํ ๊ฐ๋ฅ
Focus of Digest Access Authentication
"์ ๋๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ๋คํธ์ํฌ๋ฅผ ํตํด ๋ณด๋ด์ง ์๋๋ค."
- ๊ทธ๋๋ก ๋ณด๋ด๋ ๋์ ๋น๊ฐ์ญ์ ์ผ๋ก ์์ ์์ฝ(Digest) ์ํ๋ก ๋ณด๋
- ์๋ฒ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์๊ณ ์๊ธฐ ๋๋ฌธ์ ์์ฝ๋ง์ผ๋ก ๋น๋ฐ๋ฒํธ์ ๋์ํ๋์ง ๊ฒ์ฌํ์ฌ ์ธ์ฆ ๊ฐ๋ฅ
- ๊ณต๊ฒฉ์๋ ๋ชจ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ PW๋ฅผ ํ๋์ฉ ๋์ ํด๋ณด์ง ์๋ ์ด์ ์ ์ ์๊ธฐ์ ๋ณด์์ฑ์ด ์ฌ๋ผ๊ฐ
What is digest?
- ์ ๋ณด, ๋ณธ๋ฌธ์ ์์ถ
- Digest๋ ๋จ๋ฐฉํฅ ํจ์๋ก ๋์. ๋ชจ๋ ์ ๋ ฅ๊ฐ๋ค์ ์ ํํ ๋ฒ์์ ๊ฐ์ผ๋ก ์์ถํ์ฌ ๋ณํ
- ์์ฃผ ์ฐ์ด๋ ์ธ๊ธฐ ์์ฝ ํจ์: MD5
- ์ ๋ ฅ๊ฐ์ ๋ฐ์ดํธ ๋ฐฐ์ด์ ์๋ ๊ธธ์ด์ ์๊ด์์ด 128bit๋ก ๋ณํ
Digest request์ ์์ ์ฑ
- ๊ณต๊ฒฉ์๊ฐ ์ค๊ฐ์ ์์ฝ์ ๊ฐ๋ก์ฑ๊ณ ํด๋น ์์ฝ์ ์๋ฒ๋ก ์ ์กํ์ฌ ๋ฐ๋ณตํ๋ฉด ์ ์ํ ์ ์์ => ์ฌ์ ์ก ๊ณต๊ฒฉ
- ํด๋น ๊ณต๊ฒฉ์ ๋ง๊ธฐ ์ํด ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ nonce ๋ผ๋ ํ ํฐ์ ๋ณด๋
- nonce๋ ๋๋ต 1ms ํน์ ์ธ์ฆํ ๋๋ง๋ค ๋ฐ๋
- nonce๋ฅผ PW์ ์์ผ๋ฉด nonce๊ฐ ๋ฐ๋ ๋๋ง๋ค ์์ฝ๋ ๋ฐ๋
- ์ ์ฅ๋ ๋น๋ฐ๋ฒํธ ์์ฝ์ด ํน์ nonce ๊ฐ์ ๋ํด์๋ง ์ ํจ
- 1๏ธโฃ (Client -> Server) Resource request
- 2๏ธโฃ (Server) Generating nonce
- 3๏ธโฃ (Server -> Client) WWW-Authenticate: including realm, nonce, algorithm
- What is realm?
- ์์ฒญ ๋ฐ์ ๋ฆฌ์์ค ์งํฉ์ ์ด๋ฆ์ ๋ฐ์ดํ๋ก ๊ฐ์ผ ๊ฒ
- ๋ณด์ ์์ญ
- What is realm?
- 4๏ธโฃ (Client -> Server) Authorization: sending digest
- 5๏ธโฃ (Server) Verifying digest: generating rspauth digest & next nonce
- What is rspauth?
- response auth
- What is rspauth?
- 6๏ธโฃ (Server -> Client) Authentication-Info: resource & packaging rspauth digest, next nonce
Source of knowledge
728x90
๋ฐ์ํ
'Development Study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Lecture] DataBase - Day 1 (0) | 2023.03.07 |
---|---|
[Lecture] Data Communication - Day 1 (0) | 2023.03.03 |
[Development] ์ข์ ๊ธ ๊ณต์ (0) | 2022.08.07 |
[Mac] M1 ๋งฅ๋ถ ๊ฐ๋ฐํ๊ฒฝ ์ด๊ธฐ ์ธํ (0) | 2022.07.15 |
[CSS] CSS Selectors Reference ์ ๋ฆฌ (0) | 2020.04.21 |
Comments