2014-01-24 15 views
0

고유 한 코드 (꽤 표준)가 포함 된 인증 이메일을 보내려는 등록 양식을 설정하려고합니다.무작위 비밀 번호를 정품 인증 코드로 보내시겠습니까?

나는 데이터베이스에 이미 각 사용자에 대해 무작위로 생성 된 소금을 저장하고 있는데, 이는 등록시 암호에 적용됩니다.

내 질문에 정품 인증 전자 메일에 사용 된 고유 코드로 그 소금을 사용하면 안되는 이유가 무엇입니까? 이것은 어떤 작업도 저해하지 않지만 시간이 지남에 따라 데이터베이스 공간을 절약 할 수 있습니다. 대부분 나는 사람들이 그의 패스워드 솔트를 보여 주겠다고 생각하는 것이 궁금합니다.

+0

글쎄, 일단 공간이 부족한 경우 사용 된 데이터베이스에서 활성화 코드를 삭제할 수 있습니다. 사실 정품 인증 코드가 존재하는 경우에도 삭제 작업을 유효성 검사로 사용할 수 있습니다. – crush

+1

제대로 소금물을 해싱 한 문자열은 소금을 공개함으로써 손상되지 않아야하지만, 소금을 가지고 있으면 해트턴을 강요하는 데 도움이 될 수 있습니다. – SyntaxLAMP

답변

0

이것은 반드시 좋은 해결책은 아니지만 소금이 독특하기 때문에 큰 관심사가되어서는 안됩니다. rot13과 base64로 소금을 인코딩 할 수 있습니다. 그러면 소금이다는 것을 아무도 실제로 알지 못할 것입니다. 그리고 그것을 쉽게보기 위해 되돌릴 수 있습니다.

0

사용자가 해커라면 자신의 소금을 알고 자신의 계정을 해킹하기가 더 쉬워 질 것입니다. 그러나 모든 사람의 소금이 다르면 다른 사람과 소금이 다르면 더 편한 이유가 없습니다. 자신의 소금을 아는 것은 해커가 자신의 계정에 해킹하는 데 도움이됩니다. 간단히 말해서, 진짜 이유가 없습니다.

0

안전하게 생성 된 별도의 값을 사용하는 것이 가장 좋습니다. 상기 언급 된 @SyntaxLAMP으로 상기 염을 활성화 코드로 사용하는 것은 information leakage의 형태이다. 누군가가 충분히 등록 된 모든 사용자의 소금을 검색 할 수있는 위치에있는 경우 이것은 분명히 이메일을 통해 보낸 MITM attack의 문을 열 수 있습니다.

관련 문제