Bcrypt & jwt

정승렬·2022년 9월 16일
0

1. Bcrypt

단방향 암호화에서 사용되는 해시 알고리즘의 취약점을 보안하기 위해서,
단방향 암호화를 진행할 때 솔팅(salting)과 키 스트레칭(key stretching)을 적용시킨 방법

salting
암호화를 진행 할 때 본래 데이터에 추가적ㅇ로 랜덤한 데이터를 더하여 암호화를 진행하는 방식

key stretching
단방향 해쉬값을 계산 한 후 그 해쉬값을 또 다시 해쉬하고 또 이를 반복하는 방식

  • Bcrypt의 구조

  • 검증

  1. 암호화된 값이 가지고 있는 알고리즘
  2. Cost Factor
  3. Solt

JWT(Json Web Token)

  • 클라이언트와 서버 간에 정보를 JSON 개체로 안전하게 전송하기 위한 개방형 표준

  • JSON 개채에 기본정보, 전달할 정보, 검증정보를 모두 담고 있다

  • 전자 서명이 되어있기 때문에 검증 과정을 거쳐 확인하고 신뢰할 수 있다

  • Secret Key, public/Private Key Pair를 사용하여 서명할 수 있다

  • 구조

header

  • alg : Signature를 만드는데 사용한 알고리즘 정보
  • typ : Token의 타입

payload

  • iss : 토큰 발급자
  • sub : 토큰 제목
  • aud : 토큰 대상자
  • exp : 토큰 만료시간
  • iat : 토큰 발급 시간
  • nbf : 토큰 활성화 시간
  • jti : JWT의 고유 식별자

signature

  • JWT의 서명 부분
  • header의 인코딩된 내용 + payload의 인코딩된 내용
  • secret Key와 알고리즘을 이용하여 암화된 값을 나타냄

0개의 댓글