OAuth / / 2024. 12. 17. 10:50

투명 토큰(Transparent Token)과 불투명 토큰(Opaque Token)

투명 토큰(Transparent Token)불투명 토큰(Opaque Token)OAuth 2.0JWT 등 인증 시스템에서 사용되는 토큰의 유형을 의미합니다.

이 둘의 차이는 토큰을 어떻게 처리하고 읽는지에 있습니다.


1. 투명 토큰 (Transparent Token)

정의

투명 토큰토큰 자체에 정보(클레임)가 포함되어 있어서, 별도의 서버 요청 없이도 토큰을 해석하고 검증할 수 있습니다.


특징

  1. 자체 내용으로 정보 확인 가능

    • 토큰 안에 사용자 정보, 권한, 만료 시간 등이 포함됩니다.
    • 일반적으로 JWT(Json Web Token) 형태로 구현됩니다.
  2. 검증 비용 감소

    • 토큰을 디코딩하면 즉시 내용을 확인할 수 있어 리소스 서버가 별도의 인증 서버에 요청할 필요가 없습니다.
  3. 구조:

    • 보통 3가지 부분으로 구성됩니다:
      Header.Payload.Signature
    • Payload 부분에 클레임(사용자 정보, 만료 시간 등)이 들어 있습니다.

예시 (JWT 형태)

{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022,
  "exp": 1516249022
}

장점

  • 빠른 검증: 별도의 서버 요청 없이 토큰을 해석 가능.
  • 확장성: 토큰 자체에 정보를 담으므로 여러 서비스에 전달하기 용이.

단점

  • 보안 위험: 토큰이 노출되면 정보를 읽힐 수 있으므로 서명암호화가 필수입니다.
  • 토큰 크기: 내용이 많을수록 토큰 크기가 커집니다.

2. 불투명 토큰 (Opaque Token)

정의

불투명 토큰은 토큰 자체에는 아무런 정보가 담겨 있지 않아, 토큰을 사용하기 위해 인증 서버에 확인 요청을 해야 합니다.


특징

  1. 토큰 자체는 의미 없음

    • 토큰은 단순한 랜덤 문자열로, 이를 해석하려면 인증 서버에 확인해야 합니다.
  2. 인증 서버에 확인 요청 필요

    • 리소스 서버가 토큰을 검증하기 위해 인증 서버에 확인을 요청합니다.
  3. 구조

    • 단순한 랜덤 문자열이나 GUID 형태입니다.
      29fbc14d-4e6c-4f8d-9237-a5d12e2c4f33

장점

  • 보안성: 토큰 자체에는 정보가 없으므로 노출되더라도 큰 위험이 적습니다.
  • 유연성: 토큰 상태(유효성)를 인증 서버에서 실시간으로 관리할 수 있습니다.

단점

  • 검증 비용: 토큰 검증 시마다 인증 서버에 요청해야 하므로 네트워크 비용이 발생합니다.
  • 의존성: 인증 서버가 반드시 가동 중이어야 합니다.

3. 비교: 투명 토큰 vs 불투명 토큰

구분 투명 토큰 (Transparent Token) 불투명 토큰 (Opaque Token)
내용 토큰 자체에 정보 포함 (예: JWT) 토큰 자체에 정보 없음
검증 방식 토큰 해석만으로 검증 가능 인증 서버에 요청하여 검증
성능 빠름 (추가 서버 요청 불필요) 느림 (인증 서버 요청 필요)
보안 노출 시 정보 유출 위험 (서명/암호화 필수) 토큰 자체는 무의미, 보안성이 높음
토큰 크기 클레임이 많을수록 커짐 매우 작음

4. 언제 어떤 토큰을 사용할까?

  1. 투명 토큰 (Transparent Token)

    • JWT를 사용할 때.
    • 인증 서버 요청 부담을 줄이고 빠르게 처리해야 하는 경우.
    • 분산 시스템이나 마이크로서비스 환경에서 사용하기 좋습니다.
  2. 불투명 토큰 (Opaque Token)

    • 보안이 더 중요하고 토큰의 상태(예: 토큰 무효화)를 실시간으로 관리해야 할 때.
    • 토큰이 노출되면 안 되는 금융 시스템이나 민감한 데이터가 필요한 환경.

결론

  • 투명 토큰: 토큰 자체에 정보를 담고 빠르게 검증할 수 있지만 보안 관리가 중요합니다. (예: JWT)
  • 불투명 토큰: 토큰 자체에는 정보가 없고 보안성이 높지만 인증 서버에 요청해야 합니다.

상황에 따라 선택: 성능을 우선할지, 보안을 우선할지에 따라 적절한 토큰 방식을 선택하면 됩니다.

'OAuth' 카테고리의 다른 글

OAuth 2.0 액세스 토큰 발급 방법  (0) 2024.12.17
Spring Authorization Server 구성  (0) 2024.12.17
Authorization Code  (0) 2024.12.17
Proof Key(PKCE)  (0) 2024.12.17
OAuth(Open Authorization)  (0) 2024.12.17
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유