- JWT 핸드북 요약 및 한글 번역2024년 05월 14일 22시 48분 23초에 업로드 된 글입니다.작성자: do_hyuk728x90반응형
1. 소개
- JSON Web Token (JWT): 공간이 제한된 환경에서 클레임을 안전하게 전달하기 위한 표준.
- 주요 특징: 간단함, 컴팩트함, 사용성.
- 역사: 2011년 JOSE 그룹이 JWT, JWS, JWE, JWK, JWA RFC를 개발.
2. 실용적인 응용
- 클라이언트 측 세션: 서명 및 암호화를 통해 세션 데이터를 보호.
- 연합 신원: OAuth2 및 OpenID Connect와 함께 사용.
- 예시: 쇼핑 카트 애플리케이션에서 JWT를 사용하여 클라이언트 측 상태 관리.
3. JWT의 세부 사항
- 헤더: JWT 자체에 대한 정보를 포함.
- 페이로드: 사용자 데이터 및 등록된 클레임 포함.
- 서명되지 않은 JWT: 서명이나 암호화 없이 사용 가능하지만 드물게 사용됨.
4. JSON 웹 서명 (JWS)
- 구조: 헤더, 페이로드, 서명으로 구성.
- 서명 알고리즘: HS256, RS256, ES256 등.
- 서명 및 검증: 서명을 통해 데이터의 무결성을 확인.
5. JSON 웹 암호화 (JWE)
- 구조: 보호된 헤더, 암호화된 키, 초기화 벡터, 암호화된 데이터, 인증 태그로 구성.
- 암호화 알고리즘: RSA, AES, ECDH 등.
- 암호화 및 복호화: 데이터를 암호화하여 제3자가 읽을 수 없도록 보호.
6. JSON 웹 키 (JWK)
- 구조: 키 유형, 사용, 알고리즘, 키 ID 등을 포함.
- JWK 세트: 여러 키를 그룹화하여 사용.
7. JSON 웹 알고리즘
- 일반 알고리즘: Base64-URL, SHA-256 등.
- 서명 알고리즘: HMAC, RSA, ECDSA 등.
- 암호화 알고리즘: AES, RSA, ECDH 등.
8. 현재의 모범 사례
- 알고리즘 검증: 항상 명시적으로 알고리즘을 검증.
- 적절한 알고리즘 사용: 시나리오에 맞는 알고리즘 선택.
- 모든 검증 수행: 모든 JWT 레이어를 검증.
- 암호화 입력 검증: 모든 입력을 검증하여 공격 방지.
- 강력한 키 선택: 충분히 길고 무작위성이 높은 키 사용.
- 모든 클레임 검증: 가능한 모든 클레임을 검증.
- 토큰 유형 분리: typ 클레임을 사용하여 토큰 유형 분리.
- 각 토큰에 대한 다른 검증 규칙 사용: 각 토큰에 대해 명확하고 구체적인 검증 규칙 설정.
결론
JWT는 강력한 도구이지만, 올바르게 사용하지 않으면 보안 취약점이 발생할 수 있습니다. 모범 사례를 따르고, 검증된 라이브러리를 사용하며, 모든 클레임과 알고리즘을 철저히 검증하는 것이 중요합니다.
728x90반응형댓글