Как определить «силу» SSL-соединения - PullRequest
4 голосов
/ 18 января 2010

У меня полнофункциональное клиентское приложение, которое подключается к набору резервных веб-сервисов, где соединение защищено с помощью SSL.Мне нужно определить «силу» шифрования, используемого для фактического потока SSL для отображения этой информации конечному пользователю.

Насколько я понимаю, клиент и сервер будут согласовывать симметричный метод шифрования между нимиSSL / TLS) с различными уровнями шифрования (40,56,128,256).Есть ли способ определить какой режим используется из HttpWebRequest / ServicePoint / other в коде C #?

Ответы [ 2 ]

1 голос
/ 18 января 2010

Это распространяется на сообщение @ Алекса, очевидно добавьте свою собственную обработку ошибок

        System.Net.Sockets.TcpClient TC = new System.Net.Sockets.TcpClient();
        TC.Connect("mail.google.com", 443);
        using (System.Net.Security.SslStream Ssl = new System.Net.Security.SslStream(TC.GetStream()))
        {
            Ssl.AuthenticateAsClient("mail.google.com");
            Console.WriteLine(Ssl.CipherAlgorithm);
            Console.WriteLine(Ssl.CipherStrength);
        }
        TC.Close();

Я не думаю, что вы можете получить доступ к информации SSL из веб-службы напрямую, вам придется использовать этот помощниккод для прямой связи с хостом.

1 голос
/ 18 января 2010

Поскольку вы установили SslStream stream, вы можете использовать следующее:

stream.CipherAlgorithm //to get the algorithm that is used
stream.CipherStrength //to get the strength of the cipher algorithm

Вы можете найти больше информации здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...