ServicePointManager.SecurityProtocol Propriété

Définition

Obtient ou définit le protocole de sécurité utilisé par les objets ServicePoint gérés par cet objet ServicePointManager.

public:
 static property System::Net::SecurityProtocolType SecurityProtocol { System::Net::SecurityProtocolType get(); void set(System::Net::SecurityProtocolType value); };
public static System.Net.SecurityProtocolType SecurityProtocol { get; set; }
static member SecurityProtocol : System.Net.SecurityProtocolType with get, set
Public Shared Property SecurityProtocol As SecurityProtocolType

Valeur de propriété

Une des valeurs définies dans l'énumération SecurityProtocolType.

Exceptions

La valeur spécifiée pour définir la propriété n’est pas une valeur d’énumération SecurityProtocolType valide.

Remarques

Cette propriété sélectionne la version du protocole SSL (Secure Sockets Layer) ou TLS (Transport Layer Security) à utiliser pour les nouvelles connexions ; les connexions existantes ne sont pas modifiées.

À compter de .NET Framework 4.7, la valeur par défaut de cette propriété est SecurityProtocolType.SystemDefault. Cela permet aux API réseau .NET Framework basées sur SslStream (telles que FTP, HTTP et SMTP) d’hériter des protocoles de sécurité par défaut du système d’exploitation ou de toutes les configurations personnalisées effectuées par un administrateur système. Pour plus d’informations sur les protocoles SSL/TLS activés par défaut sur chaque version du système d’exploitation Windows, consultez Protocoles dans TLS/SSL (SSP Schannel).

Pour les versions de .NET Framework à .NET Framework 4.6.2, aucune valeur par défaut n’est répertoriée pour cette propriété. Le paysage de la sécurité change constamment, et les protocoles par défaut et les niveaux de protection sont modifiés au fil du temps afin d’éviter les faiblesses connues. Les valeurs par défaut varient en fonction de la configuration de l’ordinateur individuel, des logiciels installés et des correctifs appliqués.

Votre code ne doit jamais dépendre implicitement de l’utilisation d’un niveau de protection particulier ou de l’hypothèse qu’un niveau de sécurité donné est utilisé par défaut. Si votre application repose sur l’utilisation d’un niveau de sécurité particulier, vous devez explicitement spécifier ce niveau, puis effectuez une vérification pour vous assurer qu’il est réellement utilisé sur la connexion établie. En outre, votre code doit être conçu pour être robuste face aux changements auxquels les protocoles sont pris en charge, car ces modifications sont souvent effectuées avec peu de préavis afin d’atténuer les menaces émergentes.

Le .NET Framework 4.6 inclut une nouvelle fonctionnalité de sécurité qui bloque les algorithmes de chiffrement et de hachage non sécurisés pour les connexions. Les applications qui utilisent TLS/SSL via des API telles que HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream, etc. et qui ciblent .NET Framework 4.6 obtiennent le comportement plus sécurisé par défaut.

Les développeurs peuvent refuser ce comportement afin de maintenir l’interopérabilité avec leurs services SSL3 existants OU TLS avec les services RC4. Cet article explique comment modifier votre code afin que le nouveau comportement soit désactivé.

S’applique à

Voir aussi