Quel est le protocole de sécurité par défaut pour communiquer avec les serveurs qui prennent en charge jusqu'à TLS 1.2
? Est-ce que .NET
par défaut, choisir le protocole de sécurité le plus élevé pris en charge sur le côté serveur ou dois - je ajouter explicitement cette ligne de code:
System.Net.ServicePointManager.SecurityProtocol =
SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Existe-t-il un moyen de modifier cette valeur par défaut, en plus d'un changement de code?
Enfin, ne prend en .NET 4.0
charge que jusqu'à TLS 1.0
? c'est-à-dire que je dois mettre à niveau les projets clients vers 4.5 pour les soutenirTLS 1.2
.
Ma motivation est de supprimer le support pour SSLv3
côté client même si le serveur le prend en charge (j'ai déjà un script PowerShell pour le désactiver dans le registre de la machine) et de prendre en charge le protocole TLS le plus élevé pris en charge par le serveur.
Mise à jour:
En regardant la ServicePointManager
classe dans .NET 4.0
je ne vois aucune valeur énumérée pour TLS 1.0
et 1.1
. Dans les deux cas .NET 4.0/4.5
, la valeur par défaut est SecurityProtocolType.Tls|SecurityProtocolType.Ssl3
. Espérons que cette valeur par défaut ne se cassera pas en désactivant SSLv3
le registre.
Cependant, j'ai décidé de mettre à niveau toutes les applications vers .NET 4.5
et d'ajouter de SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
toute façon explicitement à tout le code d'amorçage de toutes les applications.
Cela fera des demandes sortantes vers divers API et services pour ne pas rétrograder SSLv3
et devrait sélectionner le niveau le plus élevé de TLS
.
Cette approche semble-t-elle raisonnable ou excessive? J'ai de nombreuses applications à mettre à jour, et je veux les pérenniser car j'entends même qu'elles TLS 1.0
pourraient être dépréciées dans un proche avenir par certains fournisseurs.
En tant que client effectuant des requêtes sortantes vers des API, la désactivation de SSL3 dans le registre a-t-elle même un effet dans le framework .NET? Je vois par défaut, TLS 1.1 et 1.2 ne sont pas activés, devons-nous l'activer via le registre? RE http://support.microsoft.com/kb/245030 .
Après un peu d'investigation, je pense que les paramètres de registre n'auront aucun effet car ils s'appliquent à IIS (sous-clé serveur) et aux navigateurs (sous-clé client).
Désolé, ce message s'est transformé en plusieurs questions, suivi de réponses «peut-être».