Http authentication
Jump to navigation
Jump to search
Overview
http authentication 내용 정리.
Basic
HTTP 에서 사용할 수 있는 인증 방법은 다음과 같다.
- Anonymous(익명)
- BASIC 인증
- DIGEST 인증
- SSL 클라이언트 인증
- 폼 베이스 인증
- OAuth
Anonymous
인증정보를 포함하지 않는 요청도 인증 방식에 포함된다. 리소스에 대해 모든 엑세스 권한을 부여한다.
Basic authentication
Basic authentication(BA) 인증. 클라이언트에 사용자 이름과 암호를 Base64 로 된 문자열을 요청한다. 간편하며 널리 쓰이지만, 패킷 도청에 매우 취약하다.
Feature
- BA인증은 전송 단계에서 아무런 암호화 보안을 제공하지 않는다. 단순히 Base64로 인코딩을 할 뿐이며, 어떠한 암호화나 해쉬화가 되지 않는다. 이 때문에 자주 HTTP에서는 이를 다른 암호화 기술과 함께 혼용하여 사용한다.
- Base64로 인코딩된 값은 쉽게 디코딩이 가능하다. 비밀번호가 그대로 노출된다. 때문에 쉽게 사용자 정보를 알아내어 악용할 수 있다.
- BA인증 필드는 HTTP 요청 헤더에 포함되기 때문에, 필요한 경우, WEB 브라우저 자체에서 인증정보(username/password)를 캐시로 저장할 수 있다. 캐시되는 기간과 정책은 각각의 브라우저마다 다르다.
- HTTP 에서는 웹서버의 Log out 메소드를 지원하지 않는다. 하지만 보안 캐시를 삭제하는 몇가지 방법들이 있다. 그 중 한가지 방법으로 사용자를 다른 URL 로 redirect 하여 보안 정보를 더 이상 사용할 수 없는 정보로 업데이트하게끔 유도하는 것이다.
- BA 인증과 관련한 캐싱/기간/정책 등은 브라우저마다 다를 수 있다.
- 프록시나 중개자가 개입하는 경우, 정상적인 동작을 보장하지 않는다.
- 가짜 서버의 위장에 취약하다.
Protocol
다음과 같은 내용으로 프로토콜이 진행된다.
- Client 는 서버로
- Server side
- Client Side
See also
- http://sonim1.tistory.com/100 - HTTP 를 이용한 인증방식 - BASIC, DIGEST, SSL, FORM
- https://en.wikipedia.org/wiki/Basic_access_authentication - Basic access authentication
- http://iloveulhj.github.io/posts/http/http-basic-auth.html - [HTTP] 기본 인증
- http://behonestar.tistory.com/35 - HTTP Digest 인증