Authentication
HTTP는 사용자 인증에 자체 인증요구/응답 프레임워크를 제공한다.
-
인증 프로토콜, 헤더
제어 헤더를 통해 타 인증 프로토콜에 맞추어 확장 가능한 프레임워크를 제공한다.
n 기본 인증
클라이언트에서 요청이 오면, 서버는 401
Unauthorized 상태코드와 함께 WWW-Authenticate 헤더와 설명을 반환한다. 이 헤더에는 realm 라는 보안 영역(문서 집합) 지시자가 있는데, 해당
서버에서 정의한 영역으로 접근 가능한 영역에 대한 정보이다. 클라이언트는 브라우저에서 정보를 입력 받아, base-64로 인코딩하여 Authentication 헤더에 기술하고
다시 요청한다.
u 프록시에서의
기본 인증
407 상태코드, Proxy-Authenticate, Proxy-Authorization,
Proxy-Authentication-Info 헤더 사용
기본 인증은 일반적인 환경에서 접근을 제어하거나, 노출되어도 치명적이지 않은 경우에 주로 사용한다.
n 다이제스트(digest-요약) 인증
기본 인증 대체를 위해 설계되었다. 비밀번호를 fingerprint
또는 digest 형식으로 전송하여 원 비밀번호가 무엇인지 알 수 없게 한다.
u MD5: 무한한 입력 값을 유한 범위의 압축으로 변환. 사용자:영역:비밀번호를 사용
u Nonce: 재전송 방지를 위해 비밀번호에 섞어 변환 값도 바뀌게 하는 것
u MD5-sess: MD5 해시값에 nonce와 클라이언트 nonce를 연결한 것
-
사전 인가
클라이언트 측에서 다음 난스를 알고 있어 다이제스트 요청/인증요구 단계를 생략하여 메시지
횟수를 줄일 수 있다.
n 첫 인증 성공 시, Authentication-Info 헤더에 다음 난스를 미리 제공
n WWW-Authenticate 헤더에 stale=true 값을 넣어 제한적으로 nonce를 재사용
n 공유된 비밀키에 기반하여 클라이언트와 서버가 순차적으로 같은 nonce를 생성하도록 시간적으로 동기화된 알고리즘 사용
-
Quality of Protection (qop 옵션)
WWW-Authenticate 헤더에 추가되는 필드로, 클라이언트와 서버가 어떤 보호 기법을
어느 정도 수준으로 사용할 것인지 명시한다.
n auth: 인증
n auth-int: 인증 및 메시지 무결성 보호
- 다이제스트 인증에서 그 값이 적절치 않거나 요구된 지시자가 빠진 경우, 또한 uri 지시자가 요청한 리소스와 같지 않은 경우, 400 Bad Request를 반환한다. 또한 로그인이 실패했음을 기록한다.
-
Protection Space
접근한 서버의 루트 URL과 결합하여 보호 공간을 정의한다.
n 기본 인증에서 요청 URI와 하위 경로 모두 같은 보호 공간으로 가정한다.
n 다이제스트 인증에서는 WWW-Authenticate 헤더의 domain 필드를 정의한다.
'System Engineering > Network' 카테고리의 다른 글
HTTP - 9. CORS (0) | 2018.07.24 |
---|---|
HTTP - 8. Cache (0) | 2018.07.24 |
HTTP - 6. Proxy (0) | 2018.07.24 |
HTTP - 5. Web Server (0) | 2018.07.24 |
HTTP 4. DNS (0) | 2018.07.24 |