2012-04-22 2 views
1

안녕하세요, 저는이 잘못된 길을 돌릴 수 있습니다. 누군가 해시/암호 해독 방법을 설명하는 데 도움이 될 수 있습니다. 당신은 클라이언트 또는 webservice에서합니까?인증, 해시, 소금, https 프로세스?

내가 한 내 서비스에 나는 그것을 저장하기 전에이 암호의 해시/소금을 생성 할, 암호 DataMember를이있는 datacontract :

So here is the process in which I was thinking. 

Rest Service has https for secure connection 
User creates account (along with password) 
//to stop packet sniffing when user creates account https is used during POST so no one can see the password? 
web service then creates a hash of the password to store it 
//so if anyone did get access to the service/database they couldnt make much use of the data in terms of breaching accounts 
Then some means to authenticate that user there after 

이 맞습니까?

답변

2

제대로 된 것 같습니다. 공격자가 코드에 액세스 할 수 있으므로 소금 값과 함께 해시가 클라이언트 측에서 발생해서는 안됩니다. 그리고 https는 실제로 연결을 보호하여 다른 사람들이 데이터를 읽을 수 없게합니다.

인증하는 동안 사용자가 https, hash/salt 값을 통해 입력 한 암호를 가져 와서 결과 해시를 데이터베이스의 값과 비교합니다. 물론 Student 개체를 클라이언트에 반환하는 경우 두 값 중 하나도 포함하지 않아야합니다.

Password 속성을 Student으로 다시 사용하지 않는 것이 현명한 방법입니다. 일반 암호 또는 해시 값이 있는지 여부를 알 수 없기 때문입니다.