2014-09-25 3 views
2

CryptoStream 클래스를 사용하여 텍스트를 암호화합니다. 암호를 해독하려면 원래 텍스트를 다시 가져올 수 있도록 키와 iv를 알아야하지만 도난 당하지 않도록 저장해야합니까?텍스트를 암호화하고 해독하는 안전한 방법은 무엇입니까?

치트 엔진과 같은 도구를 사용하면 다른 프로그램의 RAM에서 값을 읽을 수 있으며 변수에/iv 키를 저장할 때도 읽을 수 있습니다. 이를 예방할 방법이 있습니까? 그리고 해독 된 텍스트를 즉시 SecureString에 저장하는 방법이 있습니까? 그래서 일반 문자열로 저장되지 않습니다?

은 (전 C#과 관련된 보안에 대해 아무것도 몰라. 사람이 충돌 과정 또는 책을 추천 할 수 있다면, 나는 감사하게 될 거라고!)

+0

이 어떤 응용 프로그램 유형 :

MSDN 당신이 시작하는 데 도움이해야 안전한 개발 관행에 대한 좋은 충돌 과정이있다? ASP, WPF 등? –

+0

Windows 프레젠테이션 파운데이션 – MrApfelstrudel

답변

1

당신은 당황하는 Dotfuscator http://www.preemptive.com/products/dotfuscator/overview 같은 도구를 사용할 수 있습니다 소스 코드 (Visual Studio에는 무료 버전이 포함되어 있지만 문자열을 암호화하려면 pro 버전이 필요합니다). 이렇게하면 악의적 인 사용자가 코드를 디 컴파일하여 키/iv를 볼 수 없게됩니다.

또 다른 옵션은 여기에 표시된대로 http://weblogs.asp.net/jongalloway/encrypting-passwords-in-a-net-app-config-file과 같이 .NET DPAPI를 사용하는 것입니다. 이 시스템을 사용하는 경우 키/iv가 app.config 파일에 배치되고 배포 빌드 전에 암호화되어야합니다.

내가 아는 한, 암호화되지 않은 값이 메모리로 읽히는 것을 방지 할 수있는 방법이 없습니다. 결국 프로그램이 그 값을 프로세서에 보내야합니다. http://msdn.microsoft.com/en-us/security/aa570401.aspx