2012-04-19 3 views
2

C#으로 작성된 응용 프로그램이 있습니다. 사용자가 System.Security.Cryptography를 사용하여 전자 메일 암호를 사용자 구성 파일에 저장하는 Net 4.0을 사용합니다.엔트로피 값을 어떻게 보호합니까?

실제 암호가 SecureString에 저장 System.Security.Cryptography.ProtectedData.Unprotect 암호 만 정상적인 문자열로 변환

(암호화 된 데이터를 엔트로피 경우 CurrentUser)를 사용하여 암호화 할 때 (보내기 곧 https 세션이 끝날 때까지)

엔트로피 값이 동일하게 유지되어야하는지, 그렇지 않으면 패스워드를 올바르게 해독 할 수 없는지 궁금한데, 엔트로피를 찾지 못하도록하는 가장 좋은 방법은 무엇입니까? 엔트로피 값은 일정 할 것입니다.

+0

http://security.stackexchange.com – Har

답변

-1

내가 가정에서 소금에 절인 해시 테이블을 만들 수 있습니다.

키가 아닌 엔트로피를 보호 할 필요가 없습니다. Windows의 DPAPI는 사용자의 로그인 자격 증명을 사용하여 키를 생성합니다. 실제로이 경우의 엔트로피는 암호 해시의 소금 값과 같습니다 (실제로 PBKDF2에 공급되는 문자 그대로 소금).

이제 DPAPI에 문제가 있습니다. 모든 사람이 데이터를 읽을 수 있습니다. 예 : 로그인 내가 구성 파일을 읽을 수 있다면 (그리고 아마 가능할 수도있는) 동일한 호출을 할 수있는 프로그램을 작성할 수 있습니다. 로그인 한 후 값을 해독 할 수 있습니다. 이것에 대한 약간의 완화책으로, 프로그램에서 엔트로피 값의 일부를 하드 코딩하고 설정 파일에서 나머지 절반을 읽는 것이 좋습니다> 동기가 부여 된 공격자가 이진을 읽을 수 있기 때문에 너무 많이하지는 않지만 너무 많이하지는 않습니다. 뭔가해라.

+0

감사합니다. SALT/엔트로피 값을 보호하는 것이 일반적인 관행인지 잘 모르겠습니다. –

0

동일한 엔트로피 값을 사용해야합니다.

당신은 당신이 보호로 보호 및 보호 해제로 읽어 MEEN 엔트로피 값 Is this the way to salt and store a Password in Db?

+0

명시된 바와 같이 엔트로피 값을 동일하게 유지해야한다는 것을 알고 있으며 엔트로피 값 자체를 보호하는 방법에 대해 궁금합니다. –

관련 문제