안녕하세요, 첫째, 이미에 대한 항목이 있습니다 나는 ... MD5 같은 것들 (MD5 (에 대해 물어 아니에요, 내가 가정 해 봅시다더블 해시 암호 - 클라이언트 및 서버
내 질문은 이것이다 :.
고객이 로컬에서 비밀번호를 저장할 수 있도록 허용합니다. 당연히 계획 텍스트에 저장하지 않으려 고하기 때문에 저장하거나 보내기 전에 로컬로 hmac합니다. 이제 괜찮습니다. 서버가 저장된 hmac를 가지고있을 것이고 일반 텍스트 암호가 아닌 hmac 만 보내야하기 때문에 공격자는 서버의 저장된 해시를 사용하여 누군가의 계정에 액세스 할 수 있습니다 (대참사 시나리오에서 누군가가 데이터베이스에 대한 액세스 권한을 얻을 수 있습니다. 물론, e).
우리의 생각은 hmac를 통해 클라이언트에 암호를 한 번 인코딩하고, 서버로 보내고, hmac를 통해 두 번째로 인코딩하고 저장된 두 번 hmac'ed 암호와 대조합니다. 이 있는지 확인합니다 :
이- 클라이언트는 일반 텍스트로 저장하지 않고 암호를 로컬에 저장할 수 있습니다
- 다른 네트워크 파티에 대해 (너무) 걱정하지 않고 암호를 보낼 수있는 클라이언트
- 서버는 누군가를 서버에서 훔쳐 가서 로그인 할 때 걱정할 필요없이 암호를 저장할 수 있습니다.
당연히 다른 모든 것들 (강력한 암호, 이중 염 등)도 적용되지만 그 질문에 정말로 관련이 없습니다.
실제 질문은 다음과 같습니다. 단단한 보안 디자인과 비슷합니까? 우리는 이러한 방식으로 어떤 결함을 간과 했습니까? 이런 종류의 보안 패턴이있을 수 있습니까?
부록 : 우리는 보통 슬픈 것처럼 많은 사람들이 여러 서비스에 동일한 암호를 사용하므로 '실제'암호를 얻으므로 클라이언트에 일반 텍스트로 암호를 로컬로 저장하고 싶지 않습니다. 해시가 도난당하는 것보다 사용자에게 더 큰 보안 위반이 될 수 있습니다.
md5()는 안전하지 않습니다. 또한 이것은 안전한 프로토콜이 아닙니다. – rook