.NET의 SslStream은 항상 내가 가지고 있는 보안 수준이 가장 낮은 암호와 협상합니다.이것을 어떻게 바꿀 수 있나요?

StackOverflow https://stackoverflow.com/questions/91304

  •  01-07-2019
  •  | 
  •  

문제

SslStream은 암호 유형, 키 길이, 해시 알고리즘 등을 협상해야 합니다.피어 SSL 스택을 사용합니다.내 코드에서 이를 사용할 때 협상의 기본값은 항상 RC4 및 MD5로 설정됩니다.보안을 강화하기 위해 3DES 또는 AES를 사용하고 싶습니다.

웹을 둘러보면 이 문제에 대한 참고 자료가 몇 개만 있을 뿐 해결책은 없습니다.한 포스터는 두 스택 사이의 가장 낮은 공통 분모가 안전하면서도 더 빠르고 더 적은 CPU 리소스를 사용한다는 추가 이점이 있기 때문에 이것이 실제로 의미가 있다고 주장합니다.이것이 기술적으로 정확할 수도 있지만 복잡성과 비용 사이의 특별한 절충안은 다른 곳에 있습니다(나는 긴 키와 함께 AES를 사용하는 것을 선호합니다).

누구든지 도움을 주시면 감사하겠습니다.

도움이 되었습니까?

해결책

몇 가지 간단한 레지스트리 변경을 통해 선택할 수 있는 프로토콜을 선택할 수 있습니다.예를 들어 RC4를 선택하는 기능을 제거합니다.클라이언트와 서버가 일반적으로 지원되는 알고리즘을 찾기 위해 협상하므로 연결의 한쪽 끝(예: 서버)에서만 변경하면 됩니다.

http://msdn.microsoft.com/en-us/library/ms925716.aspx

제임스 최고의 소원

다른 팁

SSLStream은 운영 체제와 함께 제공되는 Schannel을 사용합니다.제품군은 Microsoft Schannel 공급자가 선택한 기본 순서대로 나열됩니다.

윈도우 비스타:

AES_128 CBC SHA를 사용한 RSA
AES_256 CBC SHA를 사용한 RSA
RC4_128 SHA를 사용한 RSA

...

윈도우 XP:

RC4 128 MD5를 사용한 RSA
RC4 128 SHA를 갖춘 RSA

3DES CBC SHA를 사용한 RSA

....

또한 다음을 구성하여 암호 제품군 목록을 수정할 수도 있습니다. SSL 암호화 제품군 주문 Microsoft Management Console(Windows Vista)에서 그룹 정책 개체 스냅인을 사용한 그룹 정책 설정

하지만 문제는 Windows XP입니다. AES를 포함하지 않습니다 SSLStream에 사용 가능한 암호 목록에 있습니다.그러나 Windows XP에서는 레지스트리 설정을 변경할 수 있습니다.HKLM\System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy 1 가져오기 3DES 암호.

두 목록 모두에 있는 가장 안전한 알고리즘 세트를 사용해야 합니다.SslStream이 SChannel SSPI를 래핑하고 있기 때문에 그렇지 않다고 믿기 어렵습니다. 이것이 손상되면 Internet Explorer, IIS 및 Windows의 다른 모든 것도 손상될 것입니다.

SChannel.dll/Secur32.dll의 버전이 오래되었을 수 있습니다.어떤 OS와 Internet Explorer 버전을 설치했습니까?

가능하다 SCHANNEL에서 프로토콜 비활성화.이 작업이 수행되지 않았는지 확인해 주시겠어요?

모든 업데이트와 함께 XP SP3 및 IE7을 사용하고 있습니다.레지스트리는 모든 것이 활성화된 상태로 구성된 것 같습니다.

Java에서는 필요와 선호도에 따라 다양한 알고리즘/암호를 주문할 수 있습니다..NET에도 비슷한 API가 있을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top