인증
인증은 무엇이고 왜 할까요?
- 인증 : 회원가입 & 로그인
- 인증이 필요한 이유?
인증에서 필요한 것?
-아이디, 이메일주소, 비밀번호 등. 비밀번호가 가장 중요
-
비밀번호를 어떻게 관리해야 하는가?
: 법규상의 강제. 개인정보보호법에서 개인정보의 암호화에 대해 규정하고 있다.
-
통신시 : 개인정보를 주고받을 때 SSL를 적용해서 암호화해야함(HTTP)
-
DATABASE 에 저장시 개인정보를 해싱하여 복원할 수 없게 해야 함
암호화를 하는 방법?
- 단방향 해쉬 : 본래 자료구조에서 빠른 자료의 검색, 데이터의 위변조 체크를 위해서 쓰이지만 암호학적 용도로도 사용한다.
- MD5, SHA-1(둘은 보안이 취약), SHA-256 등이 있다.
- 결과만 봐서는 당장 식별이 불가능하므로 완벽해보이지만 같은 알고리즙이기 때문에 같은1234에 대해서는 항상 같은 결과가 도축된다.
- 이와 같은 허점을 이용해서 가능한 모든 경우의 수를 모두 해시값으로 만들어서 판매하는 서비스도 존재(rainbowtable)
- 이런 허점ㅇ르 보완하고자 salting 과 key Stretching 이라는 방법이 생겨남.
소금을 치듯 : 생성된 해시에 임의로 생성한 문자열을 합쳐서 해싱하는 것.
인가
- 사용자가 서버에 로그인 하면 해당 사용자가 맞는지 확인하는 과정
- http 의 특징 :
- request/response 요청과 응답
- 위의 특징 때문에 서버는 사용자가 로그인 했을 경우 사용자를 어떻게 식별하는가?
- 헤더에 토큰을 저장해서 request를 보낸다.