[8장] 액세스 인증

신은지·2021년 11월 14일
0

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

인증이란?

  • 서버에 액세스하고 있는 사람이 권한을 가졌는지 확인하기 위해 아래 정보 사용
    (1) 패스워드
    (2) 원타임 토큰 : 본인만이 가지고 있는 기기 등에 표시. 한번 쓰고 버린다
    (3) 전자 증명서 : 본인만 가진 정보
    (4) 바이오 매트릭스 : 지문, 홍채 등 신체 정보
    (5) IC 카드 : 본민만 가진 정보

  • HTTP/1.1의 인증 방법
    (1) BASIC 인증
    (2) DIGEST 인증
    (3) SSL 클라이언트 인증
    (4) 폼 베이스 인증


BASIC 인증

웹 서버와 대응하고 있는 클라이언트 사이에서 이뤄지는 인증 방식
일반적인 웹 사이트에서 요구되는 보안 등급에 미치지 못해, 거의 사용되지 않는다.

BASIC 인증 수준

  • 문제점
    (1) Base64 인코딩을 사용 : 암호화가 아님. 따라서 통신 경로 상에서 복호화된 ID, 패스워드 도난 가능성 존재
    (2) 한번 BASIC 인증을 하면 일반 브라우저에서 로그아웃 할 수 없다

DIGEST 인증

챌린지 리스폰스 방식을 사용하는 인증 방식
BASIC과 다르게 패스워드를 직접 보내지 않는다!

  • 챌린지 리스폰스 방식
    (1) 최초에 상대에게 인증 요구를 보낸다.
    (2) 상대에게 받은 챌린지 코드를 사용해 리스폰스 코드를 계산한다.
    (3) 2를 상대에게 송신해 인증한다.

DIGEST 인증 수준

  • 문제점
    : 위장 방지 기능을 제공하지 않는다.
    : 따라서 웹 사이트에 요구되는 보안 등급에 미치지 못한다.

SSL 클라이언트 인증

유저 ID와 패스워드가 도난당했을 때, 제 3자가 위장하는 경우를 방지한다.
HTTPS의 클라이언트 인증서를 이용하는 방식.

SSL 클라이언트 인증의 인증 수준

  1. 인증이 필요한 리소스의 리퀘스트가 발생
    : 서버는 클라이언트에게 클라이언트 증명서 요구 메세지 송신

  2. 유저는 송신 클라이언트 증명서를 선택.
    : 클라이언트는 클라이언트 증명서를 메시지로 송신

  3. 서버는 클라이언트 증명서를 검증
    : 검증이 정확하다면 클라이언트 공개키 취득. 이후 HTTPS에 의한 암호 개시

SSL 클라이언트 인증은 2-factor 인증에서 사용된다

  • 2-factor 인증의 하나로 사용
    : 단독 사용 X. 폼 베이스와 합쳐서 사용한다
    : 패스워드 단일 요소가 아닌 이용자가 가진 다른 정보와 병용하여 인증

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

  • 클라이언트 증명서 이용 비용
    : 인증 기관에서 클라이언트 증명서를 구입하는 비용
    : 서버의 운영자가 인증 기관을 만들어 운용하는 비용

폼 베이스 인증

클라이언트가 서버 상의 웹 애플리케이션에 자격 정보를 송신하여 검증 결과에 따라 인증하는 방식
: HTTP 프로토콜로 정의된 인증 방식 X
: 웹 애플리케이션에 따라 제공 인터페이스나 인증 방법이 다양하다

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

  • 웹 사이트 인증 기능의 요구 레벨 충족하는 표준 존재 X
    : 웹 애플리케이션 별 각각 구현하는 폼 베이스 인증 사용 필요
    : 공통 사양이 결정되어 있지 않으므로, 다양한 폼 베이스 방식 존재

  • 문제
    (1) 자격 정보 교환 방법이 표준화되어 있지 않다
    (2) 자격 정보의 서버 보존 방법이 표준화되어 있지 않다

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

  • HTTP는 스테이트리스 프로토콜
    : 방금 인증에 성공한 유저의 상태 유지 불가능
    : 인증 성공 유저와 다른 유저를 구별하기 위해 세션 관리와 쿠키 사용
profile
호그와트 장학생

0개의 댓글