Study/HTTP

17. 기본 인증

ABCD 2024. 6. 9.

인증

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

  • “요청 - 인증요구 - 인가 - 성공”의 과정을 거쳐 인증을 한다.
  • 사용자가 다시 요청을 보낼 때는 인증 정보(사용자 이름과 비밀번호)를 첨부해야 한다.

인증 프로토콜과 헤더

  • WWW-Authenticate
      HTTP/1.0 401 Authorization Required
      WWW-Authenticate: Basic realm="Family"
  • → 서버는 사용자에게 401 Authorization Required 응답코드를 함께 보낸다.
  • Authorization
      GET /family/jeff.jpg HTTP/1.0
      Authrization: Basic YnJpYW4tdG90dHk6T3ch
  • → 서버로 인증시 인코딩된 비밀번호와 그 외 인증 파라미터를 담아 요청을 다시 보내야 한다.
  • Authentication-info→ 추가적인 인증 알고리즘에 대한 정보를 해당 헤더에 담아 기술 할 수도 있다.
  • → 요청이 성공적이라면 200 OK 응답코르들 보낸다.

보안 영역

  • 웹 서버는 기밀문서를 보안 영역(realm) 그룹으로 나눈다.
  • realm은 사용자 이름과 비밀번호를 가지고 있는 사용자가 권한의 범위를 이해하는데 도움이 되어야 한다.

기본인증

  • 사용자가 해당 문서에 접근하게 되면 서버는 200 상태코드 대신 401 상태코드와 클라이언트가 접근하려했던 보안 영역을 WWW-Authenticate에 기술해 응답하여 인증을 요구한다.
  • 브라우저는 계정과 비밀번호를 암호화(base-64)되어 서버로 다시 보낸다.
인증요구/응답 헤더 문법과 설명 응답코드
인증요구(서버→클라이언트) WWW-Authenticate: Basic realm=”${문서 집합 정보}” 401 Unauthorized
인증응답(클라이언트→서버) Authentication: Baisc ${base-64로 인코딩한 사용자 이름과 비밀번호} GET

base-64

  • 8비트로 이루어진 시퀀스를 6비트 덩어리의 시퀀스로 변환하는 것
  • 사용자 이름과 비밀번호를 콜론(:)으로 잇고 해당 문자를 base-64로 인코딩하여 서버로 보낸다.

image

  • 바이너리, 텍스트, 국제 문자 데이터 문자열을 받아서 전송할 수 있게 그 문자를 전송 가능한 문자인 알파벳으로 변환하기 위해 발명됐다. 전송 중에 원본 문자열이 변질될 걱정 없이 원격에서 디코딩할 수 있다.
  • HTTP헤더에 사용 할 수 없는 문자(큰따옴표, 콜론, 캐리지 리턴)를 보낼 때도 사용 된다.

Proxy 인증

  • 중개 Proxy 서버를 통해 인증하는 것
  • ex) 회사의 서버나 LAN이나 무선 네트워크에 접근하기 전에 Proxy서버를 거치게하여 사용자를 인증한다.
  • Proxy 서버에서 접근 정책을 중앙 관리 할 수 있기 때문에 통합적인 접근제어가 가능해진다.
Web Server Proxy Server
비인증 상태 코드 : 401 비인증 상태 코드 : 407
WWW-Authenticate Proxy-Authenticate
Authorization Proxy-Authorization
Authorization-info Proxy-Authorization-info

기본 인증의 보안 결함

  • 누구나 쉽게 디코딩 할 수 있는 형식으로 네트워크에 전송된다.
  • 가짜 서버의 위장에 취약하다.
  • 등 등
728x90
반응형

'Study > HTTP' 카테고리의 다른 글

19. 보안 HTTP  (0) 2024.06.09
18. 다이제스트 인증  (1) 2024.06.09
16. 클라이언트 식별과 쿠키  (1) 2024.05.21
15. Web Robot  (0) 2024.05.21
14. 통합점 게이트웨이, 터널, 릴레이  (0) 2024.05.21

댓글

💲 추천 글