Search

누가 엑세스하고 있는지를 확인하는 인증

8.1 인증이란?

인증을 위해
패스워드
원타임토큰
전자 증명서
바이오 매트릭스
IC 카드
등의 방법이 사용되고 있습니다.
HTTP에서는
BASIC 인증
DIGEST 인증
SSL 클라이언트 인증
폼 베이스 인증

8.2 BASIC 인증

8.2.1 BASIC 인증 수순

1.
리퀘스트 송신
2.
인증이 필요할 시 401 Authorization Required와 함께 식별하기 위해 필요한 문자열을 헤더필드에 포함해서 리스폰스 반환
3.
유저 ID 와 패스워드를 Base64 형식으로 인코딩 한 것을 송신
4.
인증 성공 시 200, 실패시 401 응답
사용사으이 문제가 많아 많이 사용되고 있지는 안습니다.

8.3 DIGEST 인증

8.3.1 DIGEST 인증 수순

사용자명, 패스워드 등을 조합하여 MD 5값으로 인증합니다. 서버는 클라이언트로부터 단순한 패스워드가 아닌 MD5로 해시된 값을 받습니다.
MD5란? 128비트 암호화 해시함수, 함호화 체크섬 무결성 검사등에 사용
BASIC과 마찬가지로 사용상의 문제와 많은 웹 사이트에서 요구되는 보안 등급에는 미치지 못하고 있습니다.

8.4 SSL 클라이언트 인증

8.4.1 SSL 클라이언트 인증의 인증 수순

1.
인증이 필요한 리소스의 리퀘스트가 있었을 경우 서버는 클라이언트에게 증명서를 요구하는 Certificate Request라는 메시지를 송신
2.
클라이언트 증명서 선택 후 “Client Certificate”메시지 송신
3.
서버는 증명서를 검증하여 검증 결과가 정확하다면 클라이언트는 공개키 취득

8.4.2 SSL 클라이언트 인증은 2-factor 인즈엥서 사용된다.

8.4.3 SSL 클라이언트 인증은 이용하는데 비용이 필요하다.

8.5 폼 베이스 인증

HTTP 프로토콜로서 사양이 정의되어 있는 인증 방식은 아니지만 클라이언트가 서버 상의 웹 애플리케이션에 자격정보를 송신하여 그 자격 정보의 검증 결과에 따라 인증하는 방식

8.5.1 인증의 대부분은 폼 베이스 인증

BASIC과 DIGEST는 위험하고, SSL은 비용상의 문제로 많이 사용되고 있지 않습니다. 따라서 제각각 구현하는 폼 베이스 인증으 ㄹ사용하고 있습니다.

8.5.2 세션 관리와 쿠키에 의한 구현

아이디와 패스워드로 로그인을 진행하고, 스테이트리스 프로토콜인 것을 세션과 쿠키를 사용해 보충합니다.

OAuth

1.0

송신자와 수신자가 비밀키를 공유
송신자는 평문(빨간 문서 아이콘)과 비밀키를 함께 해시한 값과 평문을 수신자에게 보냄
수신자는 송신자가 보낸 평문과 송신자가 공유하고 있는 비밀키를 함께 해신한 값을 계산
계산한 값이 송신자가 보낸 MAC 갑소가 같은지 비교해서 평문이 송신자로부터 전송되었음을 확인
시퀀스 다이어 그램으로 표현하면 이렇게 된다.

2.0의 등장

1.
기능의 단순화, 확장성
2.
https를 통해 암호화하여 과정은 단순화
3.
다양한 인증 방식
4.
api 서버에서 인증서버와 리소스 서버가 분리