TIL_인증/보안(2)

해달·2021년 9월 7일
0

TIL

목록 보기
46/80
post-thumbnail

Today 공부

  • CSRF
  • Token

CSRF(Cross Site Request Forgery)

  • 다른 오리진(cross-site)에서 유저가 보내는 요청(request)을 조작(forgery)하는 것
  • 해커가 직접 데이터에 접근할 수 없다

공격을 하기 위한 조건

  • 쿠키를 사용한 로그인
  • 예측할 수 있는 요청/parameter를 가지고 있어야함

토큰기반인증

JWT (Json Web Token)

  • 대표적인 토큰기반인증
  • Json 포맷으로 사용자에 대한 속성을 저장하는 웹 토큰

JWT의 종류

  • Access Token
  • Refresh Token

구조

  1. Header
{
  "alg": "HS256", // 어떤 알고리즘으로 sign(암호화) 할지
  "typ": "JWT" // 이것이 어떤 종류의 토큰인지(지금의 경우엔 JWT)
}
  1. Payload
{ // 사용자의 유저 이름 등 필요한 데이터는 이곳에 담아 암호화
  "sub": "someInformation",
  "name": "phillip",
  "iat": 151623391
}
  1. Signature
//HMAC SHA256 알고리즘(암호화 방법중 하나)을 사용한다면 signature는 아래와 같은 방식으로 생성
HMACSHA256(base64UrlEncode(header) + '.' + base64UrlEncode(payload), secret);

토큰기반 인증 절차


토큰 기반 인증 장점

  • Statelessness & Scalability (무상태성 & 확장성)
    1. 서버는 클라이언트에 대한 정보를 저장할 필요 X
    2. 토큰을 헤더에 추가함으로 인증절차 완료
  • 안정성
    1. 암호화 한 토큰을 사용, 암호화 키를 노출 할 필요 X
  • 어디서나 생성 가능
  • 권한 부여에 용이
    1. 토콘의 payload(내용물)안에 어떤 정보에 접근 가능한지 정의

0개의 댓글