인증은 유저의 identification을 확인하는 절차이다.(유저의 아이디와 비밀번호를 확인하는 절차)
인증 절차(로그인 절차)
access token을 클라이언트에게 전송.access token을 첨부해서 서버에 request를 전송함으로써 매번 로그인할 필요가 없어진다.유저 비밀번호 암호화
유저의 비밀번호는 반드시 암호화되어 DB에 저장되어야 한다.
내부 인력도 유저의 비밀번호를 알 수 없다.
비밀번호 암호화에는 단방향 해쉬 함수(one-way hash function)가 일반적으로 쓰인다.
단방향 해시 함수는 원본 메시지를 변환하여 암호화된 메시지인 다이제스트(digest)를 생성한다. 원본 메시지를 알면 암호화된 메시지를 구하기는 쉽지만 암호화된 메시지로는 원본 메시지를 구할 수 없어서(쇄도 효과로 인해) 단방향성(one-way) 이라고 한다.
쇄도 효과(avalanche effect): 산사태 효과는 어떤 암호 알고리즘이 입력값에 미세한 변화를 줄 경우 출력값에 상당한 변화가 일어나는 성질을 의미한다. ... 만약 암호 알고리즘의 쇄도 효과가 크지 않다면, 그러한 성질을 이용하여 암호분석이 더 쉽게 가능할 수 있다.
단방향 해쉬 함수의 약점
단방향 해쉬 함수의 취약점 보완
인가는 유저에게 요청(request)을 실행할 수 있는 권한이 있는지를 확인하는 절차
예를 들어, 유저에게 고객 정보를 열람할 수 있는 권한만 있는지, 아니면 고객 정보를 열람 및 수정까지 할 수 있는 권한이 있는지를 확인하는 것
인가는 JWT를 통해 구현된다.
인가 절차
access token 생성하며, 이 때 access token에는 유저를 식별할 수 있는 정보가 들어가 있어야 한다.(예를 들어 user id)access token츨 첨부한다.access token을 복호화한다.