참조
인증(Authentication)이란
- 유저의 identification을 확인하는 절차
- 즉, 유저의 아이디, 비밀번호를 입력 받아 확인하는 절차(password에는 암호화가 필수적으로 요구됨)
- 비밀번호의 암호화
- 유저의 비밀번호는 반드시 암호화 해서 저장해야함
- 복호화를 할 이유가 없으므로 단방향 해쉬 함수(one-way hash function)가 일반적으로 쓰이며 대표적으로 Bcrypt, JWT가 있음
- Bcrypt
- Rainbow table attack 등을 통해 빠르게 비교 가능한 취약점을 가짐
- 이를 위해 Salting, Key Stretching 등을 통해 보완
- Salting: 실제 비밀번호 외 추가적으로 랜덤 문자열을 추가한 뒤 해쉬값을 계산
- Key Stretching: 단방향 해쉬를 여러번 수행한 값을 저장
- JWT
- 유저 정보를 담은 JSON 데이터를 암호화해서 클라이언트와 주고 받으며 사용
- 주로 access_token에 사용되며 토큰에 유저 정보, 권한 등을 넣어 해당값으로 인가 처리
인가
- 유저가 요청한 request를 실행할 수 있는 권한이 있는 유저인지 확인하는 절차
- 일반 유저는 접근하면 안되는 상품 정보 수정, 삭제 등에 대해 접근이 불가능하도록 관리하는 절차