인증이 필요한 이유 : 우리 서비스의 사용자 및 사용자 행동양식 파악을 위해서
비밀번호가 중요한 이유 : 법규상의 강제 및 개인정보 보호를 위해서
DB에 저장 할때, 개인 정보를 해싱하여 복원할 수 없도록 한다.
원래 해쉬함수는 자료구조에서 빠른 자료의 검색.
데이터의 위변조 체크를 위해 사용되지만,
복원이 불가능한 단방향 해쉬함수는 암호학적 용도로 사용한다.
SHA-256
하지만 문제점은 역추적이 가능하다는 점이다.
그래서 모든 경우의 수에 대한 해쉬값을 생성해놓은Rainbow Table
탄생한다.
또한salting
과Key Stretching
탄생.
Key Stretching
: 비밀번호와 임의로 생성란문자열(Salt)
& 해싱을 여러번 반복하여 유추하기 어렵게 저장하는 방법.
Rainbow Attack
: 가능한 경우의 수를 모두 해시값으로 만들어 놓은 것.
사용자가 서버에 로그인 하면 해당 사용자가 맞는지 확인하는 과정이 바로 인가
Http의 특징
Json Web Token(JWT)
를 발행하고 로그인하면 프런트에게 토큰을 body에 실어서 보낸다.request
의 header
에 저장된다.