2012-12-16 4 views
1

해시 암호를 SQL Server 데이터베이스에 저장하는 .net 응용 프로그램이 있습니다.암호 해시 메커니즘

암호는 해시 된 암호로 데이터베이스에 저장되는 소금을 사용하여 해시됩니다.

추가 보안 계층으로 보안상의 이유로 데이터베이스 서버에 저장되지 않은 다른 사이트 보안 키로 해시 된 암호를 해시합니다. 시스템의 부하가 분산되면서 사이트 전체의 비밀 키는 어디에 저장해야합니까? 각 .net 응용 프로그램의 구성에 사본을 저장하십시오 (모든 서버의 동일한 값).

두 번째 질문은 비밀번호 저장에 권장되는 해싱 메커니즘은 무엇입니까?

+1

어떤 해시 알고리즘을 사용합니까? 다시 해시가 보안을 크게 향상시킬 가능성은 거의 없습니다. consult [[암호 해시가 덜 안전하다 ...] (http://stackoverflow.com/questions/348109/). –

+0

인터넷에서 볼 수없는 (그리고 절대 존재할 수없는) 사이트 특정 소금을 저장하는 곳은 어디까지입니까? 서버가 DB와 웹 서버에 침입하면 사이트에서 특정 소금을 쉽게 얻을 수 있습니다. – scottheckel

답변

2

나는 암호를 저장하는 bcrypt를 사용하는 경향이 있습니다. NET 구현은 BCrypt.NET이므로 .NET 프레임 워크에 포함되지 않습니다. MD5와 같은 범용 해시 함수를 사용하고 싶지는 않습니다. 또 다른 일반적인 알고리즘은 PBKDF2이지만 개인적으로 .NET에서는 사용하지 않았습니다.