ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SpringBoot - JWT ( JSON WEB TOKEN ) - 개념편
    Spring-Boot/etc. 2022. 5. 9. 11:04

    통신 : OSI 7계층

    응용계층       : 프로그램 - 데이터전달

    프리젠테이션 : 암호화, 압축

    세션계층       : 인증체크

    트랜스포트    : TCP( 신뢰성O, ACK[응답] 에 따라 통신 ) / UDP( 신뢰성X, ACK 상관X ) 통신결정

    네트워크       : IP

    데이터링크    : WAN / LAN

    물리            : 광케이블

    ------전송-------> 물 데 네 트 세 프 응

     

    보안 

    C ( Confidential ) : 기밀성 깨짐, 보안 노출X

    I  ( Integrity ) : 무결성 깨짐

    A ( Availability ) : 가용성 깨짐

     

    1. 키 전달 문제

    2. 데이터 출처 문제

     

    RSA ( 암호화 ) 

    Public Key : 공개키 / Private Key : 개인키

         - 공개키로 잠구면 개인키로 열어볼 수 있고 ( 암호화 )

         - 개인키로 잠구면 공개키로 열어볼 수 있다. ( 전자서명 )

     

    위의 2가지 문제를 RSA로 해결가능하다!

     

    * 키하나 - 시멘트릭 키 ( 대칭 키 )

     

    JWT

    RFC란? : 데이터 전송 규칙 ( http프로토콜 )

     

    JWT : JSON객체로 정보를 안전하게 전송하기 위한 방식, 이 정보는 디지털 서명이 되어 있으므로 신뢰!

            서명된 토큰에 중점, 

     

         Header : 어떤 알고리즘을 사용해 서명했는지, ex) base64( HS256 )

         Payload : 정보, ex) base64( {username: ssar} )

         Signature : header, payload, secret key를 넣어 암호화 ex) base64( ( Header + Payload + secret ) * HS256 )

         각각이 base64로 인코딩되어있으므로 디코딩 가능

     

     

    - 서버에서 토큰을 응답받고 웹브라우저 로컬스토리지에 저장 후 서버에 요청할 때 JWT을 함께 보내줌

    - 서버는 Signature을 비교하고 인증 -> 인증 후 요청데이터를 클라이언트에 전달

     

    다른 프로토콜에서의 쿠키요청(JS의 AJAX, fetch, Axios)은 기본적으로 거부된다. 그렇기에

    httpbasic 방식 : headers에 Authorization에 ID, PW 을 담아 요청 

                         -> https방식을 써야 암호화

    Bearer방식 : Authorization에 토큰을 넣는 방식

    댓글

Designed by Tistory.