2009-04-08 7 views
2

Windows 서비스와 asp.net 웹 사이트간에 보안 통신을해야합니다. asp.net 웹 사이트에서 키 쌍을 생성하고 내 공개 키를 내 Windows 서비스에 전송 한 다음 내 서비스에서 암호화 된 메시지를 받고 asp.net을 사용하여 암호를 해독합니다.asp.net 키 저장소없이 RSA 공개 키 쌍 생성

첫 번째 문제는 .. user profile is not created in asp.net이므로 RSAParams.Flags = CspProviderFlags.UseMachineKeyStore;를 사용해야합니다.

내 컴퓨터 저장소에 액세스 할 수 없기 때문에 호스팅 제공 업체에서 작동하지 않습니다.

내 솔루션은 키 쌍을 메모리에 생성하고 키 저장소를 사용하지 않는 것이 좋을까요?

답변

2

체크 아웃 http://www.codeproject.com/KB/security/EZRSA.aspx 기사에서 Exerpt!

는 "도움말 우리는 어떻게해야합니까? 주위에 인터넷 검색의 비트, 6 액체 우리 (우수) 웹 호스팅 제공 업체에 대한 빠른 이메일은 이유 밝혀 이것은 RSACryptoServiceProvider가 기반을 둔 Windows crypt API의 깊숙한 곳에 있습니다. 기본적으로 스크립트가 자체 비공개 키를로드하면 Windows 키 저장소의 보안이 손상 될 수 있으므로 모든 합리적인 웹 호스팅 제공 업체는 불량 스크립트 호스팅 제공 업체의 개인 키를 훔치거나 덮어 씁니다. 이로 인해 Windows crypt API에서 나를 괴롭히는 것으로 나타 났지만 거기에 있습니다.더 많은 인터넷 검색은 Chew Keong TAN의 가장 우수한 BigInteger 클래스와 LGPL 'C'코드를 사용하여 XySSL (원래 Christopher Devine이 쓴)에서 필요한 계산과 PKCS # 1 캡슐화를 수행했습니다. 이 리소스는 (a) 수십 자릿수의 숫자를 조작하는 기능이 전문 분야이기 때문에 (b) PKCS # 1 형식이 구축 된 ASN.1이 싫기 때문에 이러한 리소스가 특히 유용했습니다. 계산 자체는 믿기지 않게 간단합니다.

스티치와 패치 2 ~ 3 일 후에 EZRSA가 탄생했습니다. EZRSA는 RSACryptoServiceProvider가 Windows crypt API를 사용하지 않고 관리되는 코드로 수행 할 수있는 모든 작업을 수행합니다. 따라서 웹 호스팅 제공 업체가 귀하에게 부과 한 신뢰 수준 (우리가 필요로하는 것이 무엇이든)에 관계없이 어디서나 실행할 수 있습니다. "

도움이 되었으면합니다.

관련 문제