HTTP 인증

홍준섭·2023년 6월 28일

개발 공부

목록 보기
20/20

일반적인 HTTP 인증 프레임워크

서버는 클라이언트에게 401(Unauthorized) 응답 코드를 가지고 응답하며, 최소한 한 번의 시도에 포함된 WWW-Authenticate 응답 헤더로 권한을 부여하는 방법에 대한 정보를 제공한다. 서버와 인증을 하기를 원하는 클라이언트는 Authorization 요청 헤더 필드에 인증 정보를 포함함으로써 인증을 수행할 수 있다. 클라이언트는 대개 사용자에게 비밀번호 프롬프트를 표시할 것이고 정확한 Authorization 헤더를 포함하는 요청을 만들 것이다.

프록시 인증

동일한 시도 및 응답 매커니즘이 프록시 인증을 위해서도 사용될 수 있다. 이것은 인증을 요구하는 중간 프록시이다. 리소스 인증 및 프록시 인증은 함께 존재할 수 있기 때문에, 헤더와 상태 코드의 다른 세트가 필요하다. 프록시의 경우, 요청에 대한 상태 코드는 407(Proxy Authentication Required)이고, Proxy-Authenticate 응답 헤더는 프록시에 적용 가능한 최소한 하나의 요청을 포함하며, 그리고 Proxy-Authorization 요청 헤더는 프록시 서버에 인증 정보를 제공하기 위해 사용된다.

접근 거부

(프록시) 서버가 주어진 리소스에 대한 접근 권한을 얻기 위해 적절하지 않은 유효한 인증 정보를 수신한다면, 서버는 403 Forbidden 상태 코드로 응답하여야 한다. 401 Unauthorized나 407 Proxy Authentication Required와는 다르게, 해당 사용자에 대한 인증은 불가능하다.

인증 스킴

일반적인 HTTP 인증 프레임워크는 여러 인증 스킴에 의해 사용된다. 스킴은 보안 강도와 클라이언트 또는 서버 소프트웨어에서 사용 가능성에 따라 달라질 수 있다.

  • Basic
  • Barear
  • Digest
  • HOBA
  • Mutual
  • AWS4-HMAC-SHA256

Basic 인증 스킴

base64를 이용하여 인코딩된 사용자 ID/비밀번호 쌍의 인증 정보를 전달한다

사용자 ID와 비밀번호가 평문으로 네트워크를 통해 전달되기 때문에 Basic 인증 스킴은 안전하지 않다. HTTPS/TLS는 basic 인증과 함께 사용되어야 한다. 이러한 추가적인 보안상의 향상이 없이는, basic 인증은 민감하거나 귀중한 정보를 보호하는 데 사용되어서는 안 된다.

profile
개발 공부중입니다

0개의 댓글