[ 08.03 ] 토큰

이숙영·2021년 8월 3일
0

HTTP / 네트워크

목록 보기
6/8
post-thumbnail
post-custom-banner

이해가 100프로 되지않아
의식의 흐름대로 써보는 til ,,

https 가 가지고있는 기밀성, 무결성(인증서 기반으로 데이터 제공자의 신원보장)을 보장할수있음.

토큰기반 인증
세션기반 인증 = 서버(혹은 DB)에 유저 정보를 담는 방식.
-> 이 부담을 클라이언트에게 넘겨줄 수 ㄴ없을까..
-> 대표적인 토큰기반 인증 -> JWT(JSON Web Token)

인증정보를 보관하는 방법
토큰 있으니까 입장시켜줘!
클라이언트에 저장해도 괜찮을까
민감한 정보는 담으면 안된다. 인증에 사용하는것을 클라이언트에 담는다고?
암호화한 상태로 담을 수 있고, 암호화 했기 때문에 클라이언트에 담아도 상관없다.

Json 포맷으로 사용자에 대한 속성을 저장하는 웹토큰.
aaaaaa.bbbbbb.cccccc
헤더 페이로드(정보) 시그니처

Header : 어떤 종류의 토큰인가? 어떤 알고리즘으로 암호화 하는가?
Payload : 유저의 정보, 접근 가능한지 권한 부여받았는가, 기타 필요한 정보(유저이름 등. 물론 암호화가 될 정보이지만 민감한 정보는 되도록이면 담지 않는것이 좋다.)
Signature : base64로 인코딩한 값과 salt 값의 조합으로 암호화 된 값.

토큰기반 인증 장점
1. 무상태성, 확장성
서버는 클라이언트에 대한 정보를 저장할 필요없다.
토큰해독이 되는지만 판단하면 된다.
보낼때마다 토큰을 헤더에 추가함으로 인증절차 완료.
각각의 서버에서 인증을 다 할 필요가 없이 하나의 토큰으로 인증을 받을 수 있다.
서버와 db에 부담을 덜어주게 된다.

  1. 안정성
    암호화 한 토큰을 사용.
    암호화 키를 노출할 필요 없음.

  2. 어디서나 생성 가능
    토큰을 생성하는 서버가 꼭 큰 토큰을 만들지 않아도됨.

  3. 권한부여에 용이
    토큰의 내용물, 페이로드 안에 어떤 정보에 접근 가능한지 정의.
    사진과 연락처 사용권한 부여 / 사진권한만 부여 / 연락처 권한만 부여.

XSS : code injection 공격기법
CSRF : 기존의 인증정보(쿠키) 를 바탕으로 사용자가 어떤 변조된 웹사이트를 믿어서 당하는거..랜다..

아! 모르겠다!

profile
FrontEndDeveloper
post-custom-banner

0개의 댓글