[221222] 사용자 패스워드를 전송하고 보관하는 방법

Younseo·2022년 12월 22일
1

TIL Study

목록 보기
19/27

Q. 사용자 패스워드를 전송하고 보관하는 방법을 설명해주실 수 있을까요?

🤜 나의 답안

회원가입 시 사용자로부터 패스워드를 요청 받으면 해시 함수로 암호화 하여 DB에 저장을 하게 됩니다. 이후 로그인 시 사용자로부터 패스워드를 요청 받으면 마찬가지 해시 함수로 암호화 하여 DB에 암호화하여 저장했던 패스워드와 비교를 합니다.

🤜 목터뷰 추천 모범답안

유저의 패스워드를 받은 클라이언트는 평문으로 서버로 전송합니다. 평문을 받은 서버는 패스워드를 단방향 해시 함수로 암호화하여 보관합니다. 단방향 해시함수는 수학적 연산에 의해 원본 데이터를 완전히 다른 암호화된 데이터(다이제스트)로 변환하는 것을 말합니다. 원본 데이터로는 다이제스트를 구할 수 있지만 다이제스트로는 원본데이터를 구할 수 없어야 합니다. 이것을 단방향이라 합니다. 단방향 해시함수는 브루트포스 공격으로 쉽게 당할 수 있기 때문에 이를 보완하기 위해 입력된 다이제스트를 N번 반복해서 생성하는 것인 key stretching과 원문 패스워드에 임의의 문자열을 추가하여 해싱하는 것인 salting을 이용해 보안의 강도를 높힐 수 있습니다.

출처

목터뷰

0개의 댓글