개발관련/삽질

JWT를 분석하고 사용해보자 (3/3)

동팡 2019. 8. 13. 21:32

목차

1편 : 개념 / 개요 / 프로토콜 설명

2편 : JWT(JWS) 보안 취약점 / 준수사항 분석

3편 : 실제로 구현해보자

 

JWT를 데모서버를 구현한다.

사용한 라이브러리는 auth0의 java-jwt이다. 

 

솔직히 JWT 구현할 때 배보다 배꼽이 크다.

JWT 토큰 발급은 및 검증 테스트는 1개의 클래스 파일에서 끝이다.

https://github.com/ehdvudee/jwtImpl/blob/master/src/test/java/net.glaso.jwt/generateJWT.java

 

해당 프로젝트는 Java Spring을 사용하여 구현하였다.

주안점은 다음과 같다.

1. RSA 알고리즘을 사용한다.

2. NIST 최소 권고 사항 암호키를 사용한다.

3. 암호키 갱신 프로세스를 확립한다.

4. 암호키 갱신 했을 때 kid 값을 통해 검증을 진행한다.

5. aud/nbf/exp를 검증한다.

6. 토큰의 유효 기간은 12시간이다.

7. jku를 지원한다.

8. scope 값을 통해 인가까지 지원한다.

 

해당 프로젝트에서 발급한 토큰이다.

 

 

GitHub 주소는 아래와 같다.

https://github.com/ehdvudee/jwtImpl

 

ehdvudee/jwtImpl

Contribute to ehdvudee/jwtImpl development by creating an account on GitHub.

github.com