HTTP

HTTP 완벽 가이드 (12)

kchabin 2025. 3. 15. 13:56

https://drive.google.com/file/d/1bnGK9h6gsRj18XnILcbl6FnGSICuXVAG/view?usp=sharing

 

12장.drawio

 

drive.google.com

 

웹의 모든 정보나 업무가 공용은 아니기 때문에, 허가된 사람만이 데이터에 접근하고 업무를 처리할 수 있어야 한다.

12.1 인증

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

서버 요청에 대해 ‘인증 요구’로 응답

12.1.2 인증 프로토콜과 헤더

단계 헤더 설명 메서드/상태

요청   첫 번째 요청에 인증 정보가 없다  
인증 요구 WWW-Authenticate 사용자에게 사용자 이름과 비밀번호를 제공하라는 의미로 401 상태 정보와 함께 요청을 반려함.  
서버에는 각각 다른 비밀번호가 있는 영역을 WWW-Authenticate 에 설명 401 Unauthorized    
인증 Authorization 인증 알고리즘, 사용자 이름, 비밀번호를 담아 다시 요청을 보냄 GET
성공 Authentication-Info 인증 정보가 정확하면, 문서와 함께 응답함  
선택적 헤더 Authentication-Info : 인증 세션에 관한 추가 정보 기술 응답 200 OK    

12.1.3 보안 영역

기밀 문서를 보안 영역(realm) 그룹으로 나눠 저마다 다른 사용자 권한을 요구함

2.2.  Protection Space (Realm)

   The "realm" authentication parameter is reserved for use by
   authentication schemes that wish to indicate a scope of protection.

   A protection space is defined by the canonical root URI (the scheme
   and authority components of the effective request URI; seeSection5.5 of [RFC7230]) of the server being accessed, in combination with
   the realm value if present.  These realms allow the protected
   resources on a server to be partitioned into a set of protection

 

12.2 기본 인증

가장 잘 알려진 HTTP 인증 규약

  • 클라이언트의 요청을 거부하고 유효한 사용자 이름과 비밀번호 요구
  • 클라이언트가 접근하려고 했던 보안 영역을 WWW-Authenticate 에 기술함.
  • 기본 인증 프로토콜은 Authentication-Info 헤더를 사용하지 않는다.

base-64 인코딩

바이너리, 텍스트, 국제 문자 데이터 문자열을 받아서 전송할 수 있게, 전송 가능한 ㅜㄴ자인 알파벳으로 변환하기 위해 발명됨.

BASE64ENC(사용자 이름:비밀번호)

8비트 바이트로 이루어진 시퀀스 → 6비트 시퀀스

  • 각 6비트 조각은 대부분 문자와 숫자로 이루어진 특별한 64개의 문자 중에서 선택됨

프락시 인증

중개 프락시 서버를 통해 인증할 수도 있음

  • 접근 정책 중앙 관리
  • 웹 서버의 인증과 헤더, 상태 코드만 다르고 절차는 같음
  • 비인증 상태코드 : 407
  • Proxy-Authenticate
  • Proxy-Authorization
  • Proxy-Authentication-Info

12.3 보안 결함

  1. base-64 인코딩은 쉽게 디코딩 가능함.
    1. SSL 암호화 채널
    2. 다이제스트 인증 등을 사용하는 것이 좋음.
  2. 재전송 공격(Replay Attack)
    1. 인코딩 된 그대로 원 서버에 보내서 인증에 성공
    2. 이전에 전송된 메시지를 가로채서 나중에 재전송 → 원 메시지와 동일한 자격 증명을 얻을 때 발생함
    3. 일회성, 고유한 식별자를 각 메시지에 포함시켜서 방지
      1. nonce(number used only once)
  3. 모든 사이트에 같은 아이디와 비밀번호 사용
  4. 트랜잭션의 본래 의도를 바꿔버리는 중간자 개입
  5. 가짜 서버 위장에 취약함
    1. 가짜 서버나 게이트에 인증 정보 전송
    2. 공격자는 비밀번호를 요청하고 저장, 에러가 난 척 할 수 있음

 

 

'HTTP' 카테고리의 다른 글

HTTP 완벽 가이드 (14)  (0) 2025.03.15
HTTP 완벽 가이드 (13)  (0) 2025.03.15
HTTP 완벽 가이드 (11) : 클라이언트 식별과 쿠키  (0) 2025.03.15
HTTP 완벽 가이드 스터디 (10)  (0) 2025.03.15
HTTP 완벽 가이드 스터디 (9)  (0) 2025.03.10