[8장]

hamonjamon·2022년 7월 29일
0
  • 시스템에 엑세스하는 권한을 가진 본인임을 확인하기 위해서는 [등록된 본인만이 알고 있는 정보] or [등록한 본인만이 갖고 있는 정보] 등으로 확인할 필요가 있다.

  • 해당 정보는 다음과 같다.
    1. 패스워드 : 본인만이 알고 있는 문자열 정보
    2. 원타임 토큰 : 일회성의 패스워드
    3. 전자증명서 : 본인(단말기)만이 갖는 정보
    4. 바이오 매트릭스 : 지문, 홍채 등 본인의 신체 정보
    5. IC 카드 등 : 본인만이 갖고 있는 정보

HTTP에서 사용하는 인증 방법

  • BASIC 인증
  • DIGEST 인증
  • SSL 클라이언트 인증
  • 폼 베이스 인증
  • BASIC 인증

    1. 클라이언트 측에서 리퀘스트 송신
    2. 서버 측에서 상태 코드를 401로 응답하여 인증이 필요함을 전달
    3. 유저 ID, PW를 Base64 형식으로 인코드한 것을 송신
    4. 인증 성공 시 상태 코드를 200으로 응답, 인증 실패 시 상태 코드를 401로 응답

Basic 인증에서 Base64라는 인코딩 형식을 사용하고 있으나, 이것은 암호화가 아니기에 아무런 부가정보 없이 복호화할 수 있다.
=> HTTPS 등에서 암호화되지 않은 통신 경로 상에서 BASIC 인증을 해서 도청된 경우 복호화된 유저 ID, PW 강탈 가능성 존재



  • DIGEST 인증

    1. 클라이언트 측에서 리퀘스트 송신
    2. 서버 측에서 상태 코드를 401로 응답하여 인증이 필요함을 전달과 동시에 패스워드, 챌린지 코드를 송신
    3. 클라이언트 측에서 패스워드, 챌린지 코드에서 리스폰스 코드를 계산하여 서버에 송신
    4. 인증 성공 시 상태 코드를 200으로 응답, 인증 실패 시 상태 코드를 401로 응답

  • SSL 클라이언트 인증

    1. HTTPS의 클라이언트 인증서를 이용한 인증 방식으로 사전에 등록된 클라이언트에서의 엑세스인지 아닌지를 확인할 수 있다.

  • 폼 베이스 인증

    1. 표준적인 사양이 결정되어 있지 않지만 일반적으로 사용하는 방법은 다음과 같다.
    • 서버 측의 웹 어플리케이션 등에 의해 클라이언트가 송신해온 유저 정보를 사전에 등록된 것과 일치하는지 검증하며 이뤄진다.
    • 그런데 HTTP는 스테이트리스 프로토콜이기에, 유저 정보를 들고 다닐 수 없습니다. 그래서 세션 관리와 쿠키를 사용하여 HTTP에 없는 상태 관리 기능을 보충해준다.

0개의 댓글