개발관련/삽질
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