2011-01-05 2 views
3

약하게 검색하여 취약한 암호를 확인하는 다양한 도구를 찾았습니다. 서버가 .net/C#를 통해 지원하는 암호/알고리즘을 어떻게 결정할 수 있습니까?C#의 다양한 Cipher 강점과 알고리즘을 사용하여 SSL을 통해 서버에 연결합니다.

나는 (ssl.protocols.ssl2/SSL3/TLS)를 통해 SSLv2의, SSLv3에와 TLS를 테스트 할 수 있습니다

  TcpClient client = new TcpClient(); 
      client.Connect("host", 443); 
      using (SslStream Ssl = new SslStream(client.GetStream())) 
      { 
       Ssl.AuthenticateAsClient("host", null, System.Security.Authentication.SslProtocols.Ssl3, false); 
       Console.WriteLine(Ssl.CipherAlgorithm); 
       Console.WriteLine(Ssl.CipherStrength); 
       Console.WriteLine(Ssl.SslProtocol); 
      } 
      client.Close(); 

을 나는 C#을 통해 알고리즘과 다른 약한 암호를 확인하려면 어떻게합니까? 나는 SSLDiagnos를보고 있지만 C 언어인가?

아이디어가 있으십니까?

+0

이 링크는 질문에 대한 답변이지만 답변으로 삭제되었습니다. http://www.bolet.org/TestSSLServer/ (C# source for TestSSLServer) – user423430

답변

3

CipherAlgorithm 및 SslStream의 HashAlgorithm 속성 "약한"것을 정의하고 협상 된 알고리즘을 "취약한"알고리즘의 목록과 대조합니다.

업데이트 : 질문에 대한 오해 때문에 죄송합니다. 서버는 지원되는 암호 세트 목록을 보내지 않는 것 같습니다. 따라서 유일한 옵션은 클라이언트에서 한 번에 하나의 암호 제품군을 활성화하고이를 사용하여 연결을 시도하는 것입니다. SslStream을 사용하면 허용 된 암호를 지정할 수 있지만이 경우에는 SecureBlackbox 구성 요소를 사용할 수 있습니다. 구성 요소 (SSL 클라이언트)를 쉽게 미세 조정할 수 있습니다.

+0

서버가 지원하는 암호/알고리즘을 확인하려고합니다. 비슷한 내용 http://superuser.com/questions/109213/is-there-a-tool-that-can-test-what-ssl-tls-cipher-suites-a-particular-website-off – JKK

+0

@JKK 업데이트 됨 대답. –

1

서버는 클라이언트가 요청한 목록에서 사용할 암호 세트를 선택합니다. 나는. 특정 암호 세트를 활성화/비활성화 할 수있는 라이브러리를 가져 와서 서버에 연결하여 패키지를 하나씩 활성화해야합니다. SslStream은 유연한 암호 세트 조정을 지원하지 않습니다.

0

아직도 ssldiagnos를 살펴보고 OpenSSL.NET을 사용하여 C#으로 포트 할 수 있습니까? http://sourceforge.net/projects/openssl-net/ 그러면 C 코드를 C#으로 이식하고 OpenSSL 코드를 남겨두면됩니다.

0

ssldiagnos 응용 프로그램이 openssl을 전혀 사용하지 않는 sslpressure와 병합되었습니다. 초기 클라이언트 hello를 확인하십시오 (훨씬 간단합니다). 아마도 프로젝트의 템플릿으로 사용할 수 있습니다.

관련 문제