jwt 인터페이스의 안전성 실현

2657 단어
JWT
Json web token (JWT) 은 네트워크 응용 환경 에서 성명 을 전달 하기 위해 실 행 된 JSON 기반 의 개방 기준 (RFC 7519) 입 니 다. 이 token 은 치밀 하고 안전 하 며 분포 식 사이트 의 단일 로그 인 (SSO) 에 특히 적 용 됩 니 다.장면. JWT 의 성명 은 일반적으로 신분 제공 자 와 서비스 제공 자 간 에 인 증 된 사용자 신분 정 보 를 전달 하여 자원 서버 에서 자원 을 얻 을 수 있 도록 하고 다른 업무 논리 에 필요 한 성명 정 보 를 추가 할 수 있 습 니 다. 이 token 은 인증 에 직접 사용 할 수도 있 고 암호 화 될 수도 있 습 니 다.
token 기반 인증 체 제 는 http 프로 토 콜 과 유사 하 며 상태 가 없습니다. 서버 에서 사용자 의 인증 정보 나 세 션 정 보 를 보관 할 필요 가 없습니다. 이 는 token 인증 체 제 를 바탕 으로 하 는 응용 프로그램 이 사용자 가 어느 서버 에 로그 인 했 는 지 고려 할 필요 가 없다 는 것 을 의미 합 니 다. 이 는 응용 프로그램의 확장 에 편 의 를 제공 합 니 다. 절차 상 이 렇 습 니 다.
                
                           token 
     tokentoken       tokentoken               ,          , 
  ,      CORS(       )  ,               Access-Control-Allow-Origin:*。

JWT 의 구성
첫 번 째 부분 은 머리 (header) 라 고 부 르 고, 두 번 째 부분 은 부하 (payload, 비행기 에 실 린 물건 과 유사) 라 고 부 르 며, 세 번 째 부분 은 비자 (signature) 입 니 다.
header
jwt 의 머리 에 두 부분 정 보 를 담 습 니 다.
성명 형식, jwt 성명 암호 화 알고리즘 입 니 다. 보통 HMAC SHA 256 을 직접 사용 합 니 다.
그 다음 에 머리 를 base 64 암호 화 (이 암호 화 는 대칭 적 으로 복호화 할 수 있 음) 하여 첫 번 째 부분 을 구성 했다.
하중 은 유효한 정 보 를 저장 하 는 곳 이다. 이 이름 은 비행기 에 실 린 상품 을 가리 키 는 것 처럼, 이러한 유효한 정 보 는 세 부분 을 포함한다.
표준 에 등 록 된 성명 공공 성명 개인 성명
jwt 의 세 번 째 부분 은 비자 정보 입 니 다. 이 비자 정 보 는 세 부분 으로 구성 되 어 있 습 니 다.
header (base 64 후의) payload (base 64 후의) secret
이 부분 은 base 64 암호 화 된 header 와 base 64 암호 화 된 payload 를 사용 해 야 합 니 다. 연 결 된 문자열 은 header 에서 설명 한 암호 화 방식 으로 소금 secret 조합 암호 화 를 한 다음 jwt 의 세 번 째 부분 을 구성 합 니 다.
이 세 부분 을 사용 합 니 다. 완전한 문자열 로 연결 하여 최종 jwt 를 구성 합 니 다.
요청 주소 에 token 을 추가 하고 검증 합 니 다.
CSRF 공격 이 성공 할 수 있 었 던 것 은 공격 자가 사용자 의 요청 을 위조 할 수 있 었 기 때 문 이 며, 이 요청 의 모든 사용자 검증 정보 가 쿠키 에 있 었 기 때문에 공격 자 는 이러한 검증 정 보 를 모 른 채 사용자 자신의 쿠키 를 직접 이용 해 보안 검증 을 통과 할 수 있 었 다. 이 를 통 해 CSRF 공격 을 막 는 관건 은 요청 에 공격 자가 모 르 는 곳 에 넣 는 것 임 을 알 수 있다.위 조 될 수 있 는 정보, 그리고 이 정 보 는 쿠키 에 존재 하지 않 습 니 다. 이 를 감안 하여 HTTP token, token, token token , CSRF .
           ,          username password
        ,    ,     jwt    token.
      , loginId token     ,         ,
         ,    token    loginId,        loginId  ,
    ,         。

사용 방법 token 。 ( web cookie , )

좋은 웹페이지 즐겨찾기