2010-06-03 1 views
1

gsoap의 wsseapi 플러그인을 사용하고 있으며 일반 텍스트가 아닌 해시 된 sha1 비밀번호를 저장하려고합니다. 저장을 위해 일반 텍스트 암호를 해싱하는 다양한 방법을 실험하면서 우스운 시간을 보냈습니다.비밀번호를 해시하고 나중에 다른 다이제스트로 확인하기 위해 저장할 수 있습니까?

누구든지 암호를 해시하여 나중에 클라이언트가 보낸 사용자 이름 토큰 다이제스트에 대해 검증 할 수있는 방법을 제안 할 수 있습니까?

저장된 암호 해시를 인증하기 위해 클라이언트 암호를 얻지 못하는 것 같습니다.

답변

0

양면에 일반 텍스트 비밀번호가 필요합니다. 이것은 서버에서 저장된 암호가 클라이언트 쪽에서 생성 된 nonce를 사용하여 해시 된 다음 암호 해시가 비교되도록하기위한 것입니다.

클라이언트가 정상적인 영숫자 암호를 입력하고 서버가 비교를 위해 미리 저장된 해시 업 버전의 동일한 암호를 검색 할 수있는 방법이 있다고 생각했습니다. nonce, timestamp 등으로 인해 불가능한 것 같습니다.

1

자신의 암호를 굴려 보지 마십시오. PBES2 (PKCS#5 v2.1에 지정된대로)와 같이 커뮤니티에서 잘 알려져 있고 받아 들여지고있는 계획을 사용하십시오. 운이 좋다면 미리 만들어 놓은 것을 찾을 수 있습니다 (힌트 : OpenSSL).

+0

기본 sha1을 사용하여 다이제스트의 암호 부분 (해시를 생략하고 시간을 남겨 둡니다)을 해시하려고했습니다. 내 생각에 여기에 저장된 해시에 대해 클라이언트가 보낸 해시를 빠르게 확인할 수있었습니다. 해시가 암호, 넌스 및 타임 스탬프로 구성되어있을 때 클라이언트가 보낸 암호 해시를 구체적으로 가져올 수 있는지 확신 할 수 없습니다. – oxygen8

0

일반 텍스트 암호를 저장하지 않는 것이 좋습니다. 매우 빠르게 계산되도록 개발 된 해시를 선택하는 것은 그렇게 똑똑하지 않습니다. http://www.tarsnap.com/scrypt.html에서 "키 파생"에 대해 자세히 읽어보십시오. 기본적으로 "해시 된 암호 계산"이 느려지므로 A LOT이므로 공격자가 무차별 대입을 시도 할 때 속도가 느려집니다.

+0

고마워, gsoap에 가능한 재생 공격을 방지하는 것으로 보이는 soap_wsse_session_verify()가 있습니다. 나는 그 일을하기를 바라고 있습니다. – oxygen8