누군가 또는 시스템이 실제로 그 누구인지 또는 시스템인지를 결정하는 과정
사용자에게 특정 리소스 또는 기능에 대한 액세스 권한을 부여하는 프로세스
Session 기반 인증의 특징
- 장점 :
서버에서 정보를 관리하기 때문에 데이터의 손상 우려에 대해 상대적으로 안전 하다.
서버에서 상태를 유지하고 있으므로, 사용자의 로그인 여부 확인이 쉽고, 경우에 따라서 강제 로그아웃 등의 제재를 가할 수 있다.- 단점 :
모바일 기기와 브라우저에서 공동 사용 할 때 중복 로그인 처리가 되지 않는 문제 등 신경 써줘야 할 부분 들이 증가한다.
서버에서 모든 사용자의 상태를 관리해야 되므로 사용자의 수가 증가 할 수록 서버에 가해지는 부하가 증가한다.
Token 기반 인증의 특징
- 장점 :
Token을 사용자 측에서 저장하므로 서버의 메모리나 DB 등의 부담이 없다.
Token의 만료 시간을 짧게 설정하여 안정성을 높일 수 있다.
모바일과 브라우저의 멀티 환경에서 사용이 용이하다.- 단점 :
서버에서 사용자의 상태를 저장하고 있지 않기 때문에 사용자의 로그인 여부 확인, 경우에 따른 강제 로그웃 등의 제재를 가하기 어렵다.
XSS 공격에 취약하여 Payload에 민감한 정보를 포함하는 경우 위험할 수 있다.
사용자 식별을 위한 여러 정보들이 포함 되어 있어 Session Id의 길이보다 길어져 HTTP request 전송 데이터의 크기가 증가한다.
키(key) 방식의 대칭형 블록 암호에 기반을 둔 암호화 해시 함수
레인보우 테이블 공격을 방지하기 위해 솔팅과 키 스트레칭을 적용한 대표적인 예