token 인증 타입

📝 1yangsh·2021년 10월 6일
0

토큰 기반 인증

대표적으로 JWT 가 있다.

장점

  • 헤더와 페이로드를 가지고 서명 필드를 생성하므로 데이터 변조 후 재전송을 막을 수 있다.
  • stateless 서버를 만들 수 있다.
  • 모바일 어플리케이션에서도 잘 동작한다.
  • 인증정보를 다른 웹서비스에 전송할 수 있다. (OAuth)

단점

  • 여전히 누구나 디코딩이 가능하므로 데이터 유출이 발생할 수 있다.
  • 토큰을 탈취당할 경우, 대처하기 어렵다. (유효기간을 기다리거나 token refresh를 해야한다)
  • JWT의 경우, 토큰의 길이가 길기 때문에 요청이 많아질수록 서버 자원의 낭비가 많아진다

여기서 StatelessStateful 이 정확히 먼지 짚고 넘어가자!

1. Stateless 이란?

  • Stateless는 클라이언트와 서버와의 관계에서 서버측에서 클라이언트에 대한 상태를 보존하지 않는 것으로, 별도의 세션 정보를 기록하지 않는 방식을 의미한다.
  • 즉, 클라이언트와 서버간의 연결이 지속하여 연결된 상태가 아니므로 서버에서는 클라이언트의 현재 상태를 알 수 없다.

2. Stateful 이란?

  • Stateless와는 반대로 클라이언트와 서버가 지속적으로 서로에게 상태를 체크하여 현재 상태를 지속 반영한다.
  • 이렇게 연결된 두 관계는 어느 한쪽이 일방적으로 끊지 않는 이상 지속적인 관계를 유지하게 된다.
    대표적으로 TCP 통신이다.
  • 이러한 특징으로 Stateful의 경우 세션정보를 서버에 저장하므로 서버 성능에 영향을 끼치고 서버 확장에 어려움이 존재한다.
인증 타입설명
Basic사용자 아이디와 암호를 Base64로 인코딩한 값을 토근으로 사용한다.(RFC 7617)
BearerJWT 혹은 OAuth에 대한 토큰을 사용한다. (RFC 6750)
Digest서버에서 난수 데이터 문자열을 클라이언트에 보낸다. 클라이언트는 사용자 정보와 nonce를 포함하는 해시값을 사용하여 응답한다 (RFC 7616)
HOBA전자 서명 기반 인증 (RFC 7486)
Mutual암호를 이용한 클라이언트-서버 상호 인증 (draft-ietf-httpauth-mutual)
AWS4-HMAC-SHA256AWS 전자 서명 기반 인증

reference

profile
개발 경험 저장소

0개의 댓글