3 votes

Connexion au serveur via SSL avec différentes forces de chiffrement et algorithmes en C#

En cherchant un peu, j'ai trouvé différents outils pour vérifier les algorithmes de chiffrement faibles. Comment puis-je déterminer quels sont les ciphers/alogrammes pris en charge par le serveur via .net/c# ?

Je peux tester sslv2, sslv3 et tls via (ssl.protocols.ssl2/ssl3/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();

Comment vérifier les algorithmes et autres codes faibles via C# ? Je regarde SSLDiagnos mais il est en C ?

Des idées ?

3voto

CipherAlgorithm et HashAlgorithm de SslStream. Vous définissez ce qui est "faible" pour vous et vérifiez l'algorithme négocié par rapport à votre liste d'algorithmes "faibles".

Mise à jour : Désolé d'avoir mal compris la question. Le serveur ne semble pas envoyer la liste des suites de chiffrement supportées, donc la seule option est d'activer une suite de chiffrement à la fois sur le client et d'essayer de se connecter en l'utilisant. Je ne vois pas que SslStream vous permette de spécifier les suites de chiffrement autorisées, mais vous pouvez utiliser notre module SecureBlackbox pour cela - ils vous permettent d'ajuster facilement le composant (client SSL).

1voto

Ken Ivanov Points 456

Le serveur choisit une suite de chiffrement à utiliser dans la liste demandée par le client. En d'autres termes, vous devez utiliser une bibliothèque qui permet d'activer/désactiver certaines suites de chiffrement, et essayer de vous connecter au serveur en activant les suites une par une. SslStream ne supporte pas l'ajustement flexible des suites de chiffrement.

0voto

Joe Points 1

Je jetterais quand même un coup d'œil à ssldiagnos et le porterais peut-être en c# en utilisant OpenSSL.NET ? http://sourceforge.net/projects/openssl-net/ Il suffirait alors de porter le code c en c# et de laisser le code OpenSSL.

0voto

Joe2 Points 1

L'application ssldiagnos est maintenant fusionnée avec un autre outil : sslpressure qui n'utilise pas du tout openssl, il suffit de vérifier le client initial hello (beaucoup plus simple), peut-être pouvez-vous l'utiliser comme modèle pour votre projet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X