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

+ Recent posts