둘 다 JSON 형태로 정보를 표현하고 전송하는 방식이지만, 그 목적과 사용되는 정보는 다릅니다.
JWT는 주로 인증과 권한 부여에 사용되며, 정보를 안전하게 전달하는 역할을 합니다.
반면에, JWK는 암호키를 안전하게 공유하고 전송하는 데 사용됩니다.
JWT(JSON Web Token):
- JWT는 클라이언트와 서버 간에 정보를 안전하게 전달하기 위해 사용되는 작은 정보 단위
- 주요 역할 : 보통 인증과 정보 교환에 사용됩니다.
- JWT는 기본적으로 세 부분으로 이루어져 있습니다: Header, Payload, Signature.
- 예시
- 웹 애플리케이션에서 사용자 인증에 대한 예를 들어보겠습니다.
- 사용자가 로그인을 하면, 서버는 사용자의 인증 정보를 JWT로 생성해서 사용자에게 전달합니다.
- 이 JWT에는 사용자의 신원 정보(예: 사용자 ID) 등이 포함되어 있습니다.
- 그리고 이 토큰은 서버에서 생성할 때 특정 비밀키로 서명이 되어,
- 누군가가 토큰을 변경하려고 하면 서버는 그것을 감지할 수 있습니다.
- 이제 사용자가 서버에 다시 요청을 보낼 때마다 이 JWT를 첨부하게 됩니다.
- 서버는 이 JWT를 검증하고, 그 안에 들어있는 사용자 ID 등의 정보를 사용하여 요청을 처리합니다.
- 이 방식을 사용하면, 사용자가 매번 로그인을 하지 않아도 되며, 사용자의 요청을 신속하게 처리할 수 있습니다.
JWK (JSON Web Key):
- JWK는 JSON 형태로 암호화키를 나타내는 데이터 구조입니다.
- JWT의 Signature를 생성하거나 검증하는 데 사용될 수 있는 공개키 또는 비공개키를 포함할 수 있습니다.
- JWK는 공개키 암호 시스템에서 키를 공유하거나 전송하는 데 사용됩니다.
- 예시
- 웹 애플리케이션에서 JWK를 사용하는 한 가지 예는 공개 키를 배포하는 것입니다.
- 예를 들어, 서버가 클라이언트에게 자신의 공개 키를 전달해야 하는 상황이 있습니다.
- 이 공개 키는 JWT의 서명을 검증하거나, 서버로 보낼 데이터를 암호화하는데 사용될 수 있습니다.
- 서버는 이 공개 키를 JWK 형태로 변환하여 클라이언트에게 전달합니다.
- 클라이언트는 이 JWK를 사용하여 JWT의 서명을 검증하거나, 데이터를 암호화할 수 있습니다.
- 이렇게 JWK를 사용하면, 공개 키를 안전하고 표준화된 방식으로 교환할 수 있습니다.
반응형
'STUDY' 카테고리의 다른 글
디자인 패턴 51개의 한줄 요약 모음 (0) | 2023.08.22 |
---|