[12장] 기본 인증

DAYEON·2021년 9월 26일
0

HTTP 완벽 가이드

목록 보기
7/8
post-thumbnail

HTTP는 자체적인 인증 관련 기능을 제공한다

12.1 인증

  • 인증은 당신이 누구인지 증명하는 것
  • ex) 자동 전화기 PIN 번호, 비밀번호 입력...

12.1.1 HTTP의 인증요구/응답 프레임워크

  • HTTP는 사용자 인증을 하는 데 사용하는 자체 인증요구/응답 프레임워크를 제공
  • 과정
    • 웹 애플리케이션이 HTTP 요청 메시지 받음
    • 서버는 요청 처리 대신 사용자가 누구인지 알 수 있게 인증 요구로 응답
    • 사용자가 다시 요청을 보낼 때는 인증 정보를 첨부

12.1.2 인증 프로토콜과 헤더

  • HTTP는 필요에 따라 고쳐 쓸 수 있는 제어 헤더를 통해 다른 인증 프로토콜에 맞는 확장 프레임워크 제공
  • 기본 인증
  • 다이제스트 인증

12.1.3 보안 영역

  • HTTP는 각 리소스마다 다른 접근 조건을 다룸
  • 웹 서버는 기밀문서를 보안 영역(realm) 그룹으로 나눔

12.2 기본 인증

  • 기본 인증은 가장 잘 알려진 HTTP 인증 규약 (대부분의 주요 클라이언트, 서버에 구현 되어있음)
  • 서버는 200 대신 401 상태 코드와 함께 클라이언트가 접근하려 했던 보안 영역을 기술해 응답 (인증 요구 시작)

12.2.1 기본 인증의 예

  • 인증 요구: 서버→클라이언트
    • realm은 요청을 받은 문서 집합의 이름을 따옴표로 감싼 것, 해당 정보를 통해 사용자가 어떤 비밀번호를 사용해야 하는지 알 수 있음
  • 응답: 클라이언트→서버
    • 네트워크 트래픽에 사용자 이름과 비밀번호가 노출되지 않도록 함

12.2.2 Base-64 사용자 이름/비밀번호 인코딩

  • HTTP 기본 인증은 사용자 이름과 비밀번호를 클론으로 이어서 합치고, base-64 인코딩 메서드로 인코딩
  • base-64
    • 8비트 바이트로 이루어진 시퀀스를 6비트 덩어리의 시퀀스로 변환
    • 국제 문자나 HTTP 헤더에서 사용할 수 없는 문자를 포함한 사용자 이름, 비밀번호를 보낼 때 유용
    • 노출 문제 예방

12.2.3 프락시 인증

  • 중개 프락시 서버를 통해 인증 가능
  • 프락시 서버를 거치게 하여 사용자를 인증
  • 프락시 서버에서 접근 정책을 중앙 관리 가능

12.3 기본 인증의 보안 결합

  • 기본 인증은 SSL 같은 암호 기술과 혼용
  • 기본 인증은 사용자 이름과 비밀번호를 악의적인 개인들에게 숨기려고 암호화 된 데이터 전송과 함께 연계해 사용 가능함

profile
노력하는 초보 개발자

0개의 댓글