Section 3: Hashing과 tokken

sunnychu·2023년 7월 3일

SEBFE45

목록 보기
18/19

Hasing이란 무엇인가?

  • hash function을 사용하여 암호화를 진행하는 가장 많이 쓰이는 암호화 방식 중에 하나

hash function?

  • 키(Key) 값을 값(Value)이 저장되는 주소 값으로 바꾸기 위한 수식

해시 함수 특징
1. 항상 같은 길이의 문자열을 리턴합니다.
2. 서로 다른 문자열에 동일한 해시 함수를 사용하면 반드시 다른 결과값이 나옵니다.
3. 동일한 문자열에 동일한 해시 함수를 사용하면 항상 같은 결과값이 나옵니다.

(해시 함수 SHA1 예시)

여기에서 확인하고 사용해볼 수 있다!

해싱의 목적

  • 데이터 그 자체를 사용하는 것이 아니라, 동일한 값의 데이터를 사용하고 있는지 여부만 확인하는 것이 목적이기 때문

해싱은 민감한 데이터를 다루어야 하는 상황에서 데이터 유출의 위험성은 줄이면서 데이터의 유효성을 검증하기 위해서 사용되는 <단방향 암호화 방식> 이다.
ㄴ 단방향 암호화 방식: 암호화를 수행하고 나온 데이터를 다시 원래의 데이터로 돌릴 수 없는 암호화 방식


Tokken

토큰?

  • 출입증을 역할하는 도구
  • 토큰은 유저의 인증 상태를 클라이언트에 저장할 수 있어서, 세션 인증 방식의 비교해 서버의 부하나 메모리 부족 문제를 줄일 수 있다.

JWT(JSON Web Tokken)

  • JSON 형식의 데이터를 문자열로 인코딩한 토큰

구성

JWT 토큰은 점을 기점으로 총 세 부분으로 나누어져있다.

  1. header
  • 헤더에는 토큰 자체에 대한 정보가 저장되어 있다.

    예를 들어, 암호화에 사용된 알고리즘, 토큰 형식 등이 있다.
    이 객체를 베이스 64 URL 인코딩 한 내용이 토큰의 첫번째 부분이 된다
    - base 64 URL: Base64는 A–Z, a–z, 0–9, +, /와 같은 64개의 문자를 사용해서 ASCII코드를 문자열(텍스트)로 엔코딩하는 방식이다.

  1. PayLode
  • 토큰이 실질적으로 저장하려는 데이터가 담겨있다.

    저장하고 싶은 데이터 종류의 제한은 없다.
    다만, 토큰의 길이는 최대한 짧은 것이 좋기 때문에 꼭 필요한 내용들만 최대한 간결하게 저장

  • TIP! 알아두면 좋은 공식적으로 사용하는 필드 이름

    exp, iat, jti
    exp: expiration time 만료 시간
    iat: issued at 발급 시간
    jti: JWT ID 토큰 고유값

  1. Signature
  • 토큰을 신뢰할 수 있는지 확인하기 위한 데이터 저장

헤더+페이로드+시크릿 키의 조합으로 시그니쳐가 만들어짐

0개의 댓글