안녕하세요, 저는 암호 해독에 대해 읽었습니다.하지만 조금 이상하게 들릴 수 있습니다. 그러나 어떻게 소금을 저장하고 안전하게 보관해야합니까? 예를 들어 다중 타이어 아키텍처에서 클라이언트 컴퓨터의 GUID를 사용하여 소금을 생성한다고 가정하면 사용자는 단일 기계로 제한되지만 무작위 소금을 사용하면 어딘가에 저장해야합니다. 며칠 전 새 사용자가 만들어 질 때마다 해시와 소금이 클라이언트 시스템에서 생성 된 다음 해시가 SQL 서버에 저장된 서버로 전송되는 샘플 응용 프로그램을 보았습니다. 그러나이 방법을 따르고 데이터베이스가 손상되면 각 암호의 암호와 소금 값을 X 사용자가 사용할 수있게됩니다. 그래서, 다시 암호를 암호화/암호화하고 서버 측에서 소금을 받아야합니까? 소금에 절이는 가장 좋은 방법은 무엇입니까?소금을 소금에 담그고 저장할 때 가능한 최선의 방법은 무엇입니까?
12
A
답변
22
해시 된 암호 옆에 데이터베이스에 암호화되지 않은 소금을 저장하는 것은 문제가되지 않습니다.
소금의 목적은 비밀이 아닙니다. 목적은 해시마다 (즉, 무작위로) 다르며 공격자가 데이터베이스를 손에 넣을 때 rainbow tables의 사용을 이기기에 충분히 길다는 것입니다.
이 부분은 Thomas Ptacek의 excellent post을 참조하십시오.
편집 @ZJR : 소금이 완전히 공개 된 경우에도 여전히 무지개 표의 이점을 잃을 것입니다. 당신이 소금을 가지고 데이터를 해시 할 때, 당신이 할 수있는 최선은 (해쉬 함수는 암호 안전하다고 제공) 무력
편집 @의 n10i입니다 반전하기 : secure hash function에 대한 위키 피 디아 문서를 참조하십시오. 소금의 크기는 인기있는 bcrypt .gensalt() 구현은 128 비트를 사용합니다.
6
이 아주 좋은 소금의 설명과
관련 문제
- 1. 소금에 절인 해시 알고리즘
- 2. 암호를 해싱 할 때 소금을 어딘가에 저장해야합니까?
- 3. Grails로 Acegi에 주문 소금을 지정하는 방법은 무엇입니까?
- 4. 잃어버린 PW에 사용 된 도전 질문에 대한 응답을 소금에 담그고 해시해야합니까?
- 5. 기능을 확장하는 최선의 방법은 무엇입니까?
- 6. 콘솔을 그리는 최선의 방법은 무엇입니까?
- 7. Tomcat 5.5에서 소금에 절인 암호를 구현하는 방법
- 8. Monodroid GREF 문제에 대한 최선의 방법은 무엇입니까?
- 9. 함수에서 돌아올 때 char []를 보호하는 최선의 방법은 무엇입니까?
- 10. AJAX 로더를 사용하는 최선의 방법은 무엇입니까?
- 11. JSF 2.0의 사용자 인증을위한 최선의 방법은 무엇입니까?
- 12. bcrypt로 소금을 저장해야합니까?
- 13. iPhone에서 applicationDidReceiveMemoryWarning을 디버깅하는 최선의 방법은 무엇입니까?
- 14. Sharepoint에서 작업을 위임하는 최선의 방법은 무엇입니까?
- 15. Struts2에서 예외를 처리하는 최선의 방법은 무엇입니까?
- 16. NSMutableArray에서 UIImageView를 식별하는 최선의 방법은 무엇입니까?
- 17. 중앙 집중식 사용자 관리를위한 최선의 방법은 무엇입니까?
- 18. 데이터베이스에 국제 주소를 저장하는 "최선의"방법은 무엇입니까?
- 19. SourceSafe 백업 스크립트 - 최선의 방법은 무엇입니까?
- 20. Asp.net SQL에서 감사를위한 최선의 방법은 무엇입니까
- 21. Silverlight에서 물리 효과를 적용하는 최선의 방법은 무엇입니까?
- 22. WPF ValueConverter 오류 처리를위한 최선의 방법은 무엇입니까?
- 23. StringBuilder를 String []으로 변환하는 최선의 방법은 무엇입니까?
- 24. Windows에서 Rprofile.site를 수정하고 저장하는 방법은 무엇입니까? 이 파일을 저장할 때
- 25. JPanel을 Visible으로 저장할 때 이미지로 저장하는 방법은 무엇입니까?
- 26. 이미지를 BLOB로 저장할 때 텍스트가있는 JSP에서 이미지를 표시하는 방법은 무엇입니까?
- 27. GWT로 클릭 가능한 링크를 만드는 방법은 무엇입니까?
- 28. 확장 가능한 PHP (AJAX 기반) 채팅 시스템을위한 최선의 접근 방식
- 29. Char Traversal이 가능한 방법은 무엇입니까?
- 30. Convert.FromBase64String을 사용하여 SIP SDP에서 마스터 키와 소금을 검색
가 나도, 소금의 목적은 ** 대중 **이어야한다라고 말하고 싶지만 해싱을 읽어 보시기 바랍니다. – ZJR
"해시 함수는 암호로 안전합니다"라고 설명해주십시오. 죄송합니다. 암호화가 처음입니다. 또한 귀하의 회신 u에서 "무지개 테이블의 사용을 물리 칠 수있을만큼 충분히 길다"소금이 얼마나 오랫동안 있어야 하는가? – Neel