https://drive.google.com/file/d/1bnGK9h6gsRj18XnILcbl6FnGSICuXVAG/view?usp=sharing
12장.drawio
drive.google.com
웹의 모든 정보나 업무가 공용은 아니기 때문에, 허가된 사람만이 데이터에 접근하고 업무를 처리할 수 있어야 한다.
12.1 인증
12.1.1 HTTP의 인증요구 / 응답 프레임워크
서버 요청에 대해 ‘인증 요구’로 응답
12.1.2 인증 프로토콜과 헤더
단계 헤더 설명 메서드/상태
요청 | 첫 번째 요청에 인증 정보가 없다 | ||
인증 요구 | WWW-Authenticate | 사용자에게 사용자 이름과 비밀번호를 제공하라는 의미로 401 상태 정보와 함께 요청을 반려함. | |
서버에는 각각 다른 비밀번호가 있는 영역을 WWW-Authenticate 에 설명 | 401 Unauthorized | ||
인증 | Authorization | 인증 알고리즘, 사용자 이름, 비밀번호를 담아 다시 요청을 보냄 | GET |
성공 | Authentication-Info | 인증 정보가 정확하면, 문서와 함께 응답함 | |
선택적 헤더 Authentication-Info : 인증 세션에 관한 추가 정보 기술 응답 | 200 OK |
12.1.3 보안 영역
기밀 문서를 보안 영역(realm) 그룹으로 나눠 저마다 다른 사용자 권한을 요구함
2.2. Protection Space (Realm)
The "realm" authentication parameter is reserved for use by
authentication schemes that wish to indicate a scope of protection.
A protection space is defined by the canonical root URI (the scheme
and authority components of the effective request URI; seeSection5.5 of [RFC7230]) of the server being accessed, in combination with
the realm value if present. These realms allow the protected
resources on a server to be partitioned into a set of protection
12.2 기본 인증
가장 잘 알려진 HTTP 인증 규약
- 클라이언트의 요청을 거부하고 유효한 사용자 이름과 비밀번호 요구
- 클라이언트가 접근하려고 했던 보안 영역을 WWW-Authenticate 에 기술함.
- 기본 인증 프로토콜은 Authentication-Info 헤더를 사용하지 않는다.
base-64 인코딩
바이너리, 텍스트, 국제 문자 데이터 문자열을 받아서 전송할 수 있게, 전송 가능한 ㅜㄴ자인 알파벳으로 변환하기 위해 발명됨.
BASE64ENC(사용자 이름:비밀번호)
8비트 바이트로 이루어진 시퀀스 → 6비트 시퀀스
- 각 6비트 조각은 대부분 문자와 숫자로 이루어진 특별한 64개의 문자 중에서 선택됨
프락시 인증
중개 프락시 서버를 통해 인증할 수도 있음
- 접근 정책 중앙 관리
- 웹 서버의 인증과 헤더, 상태 코드만 다르고 절차는 같음
- 비인증 상태코드 : 407
- Proxy-Authenticate
- Proxy-Authorization
- Proxy-Authentication-Info
12.3 보안 결함
- base-64 인코딩은 쉽게 디코딩 가능함.
- SSL 암호화 채널
- 다이제스트 인증 등을 사용하는 것이 좋음.
- 재전송 공격(Replay Attack)
- 인코딩 된 그대로 원 서버에 보내서 인증에 성공
- 이전에 전송된 메시지를 가로채서 나중에 재전송 → 원 메시지와 동일한 자격 증명을 얻을 때 발생함
- 일회성, 고유한 식별자를 각 메시지에 포함시켜서 방지
- nonce(number used only once)
- 모든 사이트에 같은 아이디와 비밀번호 사용
- 트랜잭션의 본래 의도를 바꿔버리는 중간자 개입
- 가짜 서버 위장에 취약함
- 가짜 서버나 게이트에 인증 정보 전송
- 공격자는 비밀번호를 요청하고 저장, 에러가 난 척 할 수 있음
'HTTP' 카테고리의 다른 글
HTTP 완벽 가이드 (14) (0) | 2025.03.15 |
---|---|
HTTP 완벽 가이드 (13) (0) | 2025.03.15 |
HTTP 완벽 가이드 (11) : 클라이언트 식별과 쿠키 (0) | 2025.03.15 |
HTTP 완벽 가이드 스터디 (10) (0) | 2025.03.15 |
HTTP 완벽 가이드 스터디 (9) (0) | 2025.03.10 |