TIL)23.06.29_JWT(Json Web Token)

주민·2023년 6월 29일
0

TIL

목록 보기
29/84

인증 방법

  • cookie 인증 : key-value 형식의 문자열으로 클라이언트에 설치되는 작은 기록 정보 파일, 각 브러우저에 저장함
  • Session 인증 : id/pwd 를 서버에 저장
  • Token 인증 : 서버에 접속하면 해당 클라이언트에게 토큰을 부여함(id/pwd를 확인하여 인증되었다는 의미)
    => 이 토큰이 클라이언트 헤더에 심어져 있어 이후 작업에는 헤더에 있는 토큰과 서버에 있는 토큰을 비교하여 인증을 진행

JWT : Json Web Token

  • Token의 한 종류로 로그인 정보를 서버가 아닌 클라이언트에 암호화가 된 상태로 저장

순서

  • 로그인
    => 로그인 성공시 JWT 로 암호화(Secret Key 사용)가 됨 -> 서버에서 쿠키를 생성해 JWT 에 담아 클라이언트에 전달(개발자 탭에서 확인 가능)
  • 로그인 이후 작업
    => 서버에서 API 요청시마다 쿠키에 포함된 JWT를 찾아서 사용 -> Secret Key를 사용하여 JWT의 위조 여부 검증하고 성공시 JWT에서 API 요청을 실행(사용자 정보를 가져옴)

Secret Key가 뭔가요?

  • 평문을 암호화 하는 것
  • Secret Key가 유출되면 타인이 토큰을 생성하고 변조할 수 있으니 Secret Key는 최소 513bit 이상의 값을 설정하는 것이 좋다.
    ** application.properties에 Secret Key 입력 해줘야 해줘야 적용 가능!

+ 6.30 내용추가

  • 암호화를 하는 방식에는 크게 두가지가 있다.
    1. 암호화 후 복원X
    2. 암호화 후 복원 필요(=> 로그인 정보 받는 방식)
  • 암호화한 정보를 돌리는 것을 복호화라고 함
  • Secret Key란
    => 암호회된 내용을 원상 복구 시킬 때 필요한 정보로
    Secret Key를 만들때는 정해진 규칙(길이 등), 기준을 맞춰줘야 한다.
  • 공개키와 secet key (개인키)
    => 비대칭키 방식 : 암호화, 복호화를 할 때 각각 다른 키를 사용하는 것 - 공개키 : 암호화할 때 사용하는 키
    - 개인키 : 복호화할 때 사용하는 키


    공개키랑 개인키는 쌍을 이룬다.

0개의 댓글

관련 채용 정보