인증은 왜 필요할까요 ?
권한체크 보안확인 사용자를 식별하기 위해서
-> 우리의 서비스를 누가 쓰며 어떻게 사용하고 있는지 추적이 가능하도록 하기 위해서
인증에 필요한 것은 무엇이 있을까요?
id, Email, password 중 가장 중요한것은 password
-> 비밀번호 어떻게 관리해야 하는가 : 법규상의 강제
개인정보보호법 국가에서 권고하는 상용 암호화 알고리즘을 이용해 저장
Database에 저장 시 개인 정보를 해싱하여 복원할 수 없도록 함
통신 시 개인정보를 주고받을때 SSL을 적용하여 암호화(HTTPS)
암호화는 어떻게 할까요?
bcrypt 라이브러리
- 앞서 나온 개념들을 실제로 적용하기 편하게 해주는 라이브러리
- 다양한 언어를 지원하고 있으며 사용이 간편하여 쉽게 적용이 가능함니다
- bcrypt 는 hash 의 결과값에 소금값과 해시값 및 반복횟수를 같이 보관하기 때문에 비밀번호 해싱을 적용하는데 있어 db 설계를 복잡하게 할 필요가 없습니다
위 예는 JWT의 구조입니다aaaaaa(헤더).bbbbb(내용).ccccc(서명)