5 votes

Le SslStream de .NET négocie toujours avec le chiffrement le moins sûr dont je dispose. Comment puis-je changer cela ?

SslStream est censé négocier le type de chiffrement, la longueur de la clé, l'algorithme de hachage, etc. avec la pile SSL de son homologue. Lorsque je l'utilise dans mon code, je constate que la négociation se fait toujours par défaut avec RC4 et MD5. J'aimerais utiliser 3DES ou AES pour plus de sécurité.

En cherchant sur le web, je n'ai trouvé que quelques références à ce problème et aucune solution. Une personne a affirmé que cela avait du sens, puisque le plus petit dénominateur commun entre les deux piles est sécurisé tout en ayant l'avantage d'être plus rapide et d'utiliser moins de ressources CPU. Bien que cela puisse être techniquement correct, mon compromis particulier entre complexité et coût se situe ailleurs (je préfère utiliser AES avec une clé longue).

Si quelqu'un peut m'aider, je l'apprécierais.

3voto

Manav Points 323

SSLStream utilise Schannel qui est fourni avec le système d'exploitation. Les suites sont listées dans l'ordre par défaut dans lequel elles sont choisies par le fournisseur Schannel de Microsoft pour :

Windows Vista :

RSA AVEC AES_128 CBC SHA
RSA AVEC AES_256 CBC SHA
RSA AVEC RC4_128 SHA

...

Windows XP :

RSA AVEC RC4 128 MD5
RSA AVEC RC4 128 SHA

RSA AVEC 3DES CBC SHA

....

Vous pouvez également modifier la liste des suites de chiffrement en configurant l'option Commande de la suite de chiffrement SSL les paramètres de la stratégie de groupe à l'aide du snap-in Group Policy Object de la Microsoft Management Console (Windows Vista)

Mais le problème est que Windows XP n'inclut pas l'AES dans la liste des ciphers disponibles pour SSLStream. Toutefois, il est possible de modifier les paramètres du registre dans Windows XP : HKLM \System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy 1 pour obtenir 3DES chiffré.

1voto

Iorippi Points 1

Vous pouvez choisir quels protocoles sont disponibles pour la sélection en effectuant quelques modifications simples du registre. Nous supprimons la possibilité de sélectionner RC4, par exemple. Vous n'avez besoin d'effectuer la modification qu'à une extrémité de la connexion (par exemple le serveur) car le client et le serveur négocient pour trouver l'algorithme communément supporté

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

Meilleurs voeux James

0voto

Mike Dimmick Points 6112

Il devrait utiliser l'ensemble le plus sûr d'algorithmes figurant dans les deux listes. J'ai du mal à croire que ce ne soit pas le cas, car SslStream enveloppe le SChannel SSPI, et si celui-ci était cassé, alors Internet Explorer, IIS et tout le reste de Windows le seraient aussi.

Il se peut que vous ayez une version obsolète de SChannel.dll/Secur32.dll. Quel est le système d'exploitation et la version d'Internet Explorer que vous avez installés ?

Il est possible de désactiver les protocoles dans SCHANNEL . Pourriez-vous vérifier que cela n'a pas été fait ?

0voto

Shachar Points 662

J'utilise XP SP3 et IE7 avec toutes les mises à jour. Le registre semble configuré avec tout ce qui est activé.

0voto

Alexander Points 4298

En Java, vous pouvez ordonner les différents algorithmes/chiffres en fonction de vos besoins et de vos préférences. Il existe peut-être une API similaire dans .NET...

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