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