Sign in with Microsoft
Sign in or create an account.

La version 3.5 et les versions antérieures de .NET Framework ne permettaient pas aux applications d'utiliser les versions système par défaut du protocole TLS (Transport Layer Security) comme protocole de chiffrement. Cette mise à jour autorise l'utilisation du protocole TLS 1.2 dans .NET Framework 3.5.

NoteThis  content has been made available on Windows Update. Pour obtenir le contenu, numérisez et Windows mise à jour pour obtenir les dernières mises .NET Framework jour. Si votre système est entièrement à jour via Windows jour, vous n’avez pas besoin d’action supplémentaire.

Résolution

Informations sur le téléchargement

Le correctif correspondant à KB3154519 a été précédé des dernières mises à jour de .NET Framework, qui contiennent tous les correctifs précédemment inclus dans la mise à jour KB3154519. Nous vous recommandons d’installer les dernières mises à jour de .NET Framework.

Nous avons apporté les améliorations suivantes à ce sujet :

  • Les clés de Registre suivantes peuvent être définies pour utiliser les paramètres par défaut du système d'exploitation pour SSL et TLS au lieu des valeurs par défaut .NET Framework codées en dur pour une application managée exécutée sur l'ordinateur.

    • Pour les systèmes d’exploitation 64 bits :[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
      « SystemDefaultTlsVersions"=dword:00000001

      [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]
      « SystemDefaultTlsVersions"=dword:00000001

    • Pour les systèmes d’exploitation 32 bits :[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
      « SystemDefaultTlsVersions"=dword:00000001

    Remarque Si l'application a défini une valeur spécifique pour ServicePointManager.SecureProtocol dans le code ou via les fichiers de configuration ou utilise les API SslStream.AuthenticateAs* pour spécifier une énumération SslProtocols particulière, le comportement du paramètre du Registre ne se produit pas.

  • En outre, l'énumération SslProtocolsExtensions a été ajoutée pour que vous puissiez utiliser une option pour définir TLS 1.2, TLS 1.1 et les paramètres par défaut du système d'exploitation pour la propriété ServicePointManager.SecurityProtocol lorsque .NET framework version 2.0 SP2 est ciblé. (Pour plus d’informations sur l’utilisation des extensions, voir la section Recommandations pour les développeurs.)

    Notez Windows Vista SP2 et Windows Server 2008 SP2 ne prendrent pas en charge les versions de protocole TLS (Transport Layer Security) plus récentes que 1.0. Les applications gérées .NET Framework 2.0 SP2 s’exécutant sur Windows Vista SP2 ou Windows Server 2008 SP2 ne peuvent pas utiliser TLS 1.2 ou TLS 1.1, même si ces protocoles sont définies dans la propriété ServicePointManager.SecurityProtocol.

Pour plus d’informations sur la façon de télécharger des fichiers de support Microsoft, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

119591 Comment obtenir des fichiers de support Microsoft auprès des services en ligne. Microsoft a analysé ce fichier à la recherche de virus. Microsoft a utilisé les logiciels de détection de virus les plus récents disponibles à la date de publication de ce fichier. Le fichier est conservé sur des serveurs sécurisés, ce qui empêche toute modification non autorisée du fichier.

Conseils pour les développeurs

La définition des nouvelles extensions est dans les fichiers suivants :
 

  • SecurityProtocolTypeExtensions.csnamespace System.Net
    {
    à l’aide de System.Security.Authentication ;
    classe statique publique SecurityProtocolTypeExtensions
    {
    public const SecurityProtocolType Tls12 = (SecurityProtocolType)SslProtocolsExtensions.Tls12;
    public const SecurityProtocolType Tls11 = (SecurityProtocolType)SslProtocolsExtensions.Tls11;
    public const SecurityProtocolType SystemDefault = (SecurityProtocolType)0;
    }
    }

  • SslProtocolsExtensions.csnamespace System.Security.Authentication
    {
    classe statique publique SslProtocolsExtensions
    {
    public const SslProtocols Tls12 = (SslProtocols)0x00000C00;
    public const SslProtocols Tls11 = (SslProtocols)0x00000300;
    }
    }

Pour inclure la prise en charge du protocole TLS v1.2, incluez les fichiers sources dans votre projet, puis définissez la version du protocole en utilisant les méthodes suivantes :
 

  • Les applications qui utilisent des API basées sur ServicePointManager peuvent définir le protocole en utilisant les procédures suivantes :

    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12;

  • Les applications qui utilisent SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) peuvent définir la valeur SslProtocols sur SslProtocolsExtensions.Tls12.

Si le paramètre du Registre mentionné dans le premier paragraphe est réglé et que la valeur SslProtocols est définie dans l’application en tant que SslProtocols.None, le comportement par défaut du système choisi dépend de la version Windows.

Par ailleurs, lorsque vous modifiez le code d’application pour activer la prise en charge de TLS v1.2 avec .NET Framework 3.5 SP1, veillez à corriger les exceptions suivantes sur les ordinateurs sur lesquels ce correctif n’est pas déployé :
 

  1. Si le correctif n’est pas installé, les API basées sur ServicePointManager (HTTP, FTP, SMTP) lancent « System.NotSupportedException : le protocole de sécurité demandé n’est pas pris en charge » lorsque l’application appelle ServicePointManager.SecurityProtocol pour définir la nouvelle valeur.

  2. Si le correctif n’est pas installé, les API basées sur SslStream ajoutent des exceptions lorsqu’elles appellent l’une des API AuthenticateAs* :

    System.ArgumentException : la valeur spécifiée n’est pas valide dans l’enumération « SslProtocolType ».
    Nom du paramètre : sslProtocolType

Remarque pour SslStream uniquement, combinaison de Tls12 et Tls11 avec l’un des modèles Tls, Ssl3 et Ssl2 existants (par exemple : Tls12 | Tls11 | Les protocoles Tls) sont mis à niveau en mode silencieux vers les protocoles existants (par exemple : Tls) sur un système sans correctif. Il se connecte à Tls sans exception.
 

Informations supplémentaires

Pour activer TLS v1.1 ou v1.2 comme système d’exploitation par défaut, suivez les instructions du site https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.

Notez que TLS v1.1 et v1.2 ne sont pas disponibles dans Windows Vista ou Windows Server 2008.

Si vous devez désactiver les valeurs par défaut du système d’exploitation définies par la clé de Registre mentionnée dans la section « Résolution » de certaines applications, vous pouvez le faire en ajoutant la clé de Registre suivante : HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions
<<Chemin d’accès complet de la .exe pour le fichier>> DWORD 0
C:\MyApp\MyApp.exe DWORD 0

Pour plus d’informations sur TLS v1.2, voir Présentation de TLS v1.2.

Après avoir activé la clé de Registre SystemDefaultTlsVersions .NET, un comportement différent se produit pour chaque version de Windows, comme indiqué dans le tableau suivant.
 

Version de Windows

SSL2 Client

SSL2 Server

SSL3 Client

SSL3 Server

TLS 1.0 Client

Serveur TLS 1.0

TLS 1.1 Client

Serveur TLS 1.1

TLS 1.2 Client

TLS 1.2 Server

Windows Vista SP2 et Windows Server 2008 SP2

Désactivé

Activé

Activé

Activé

Activé

Activé

N/A

N/A

N/A

N/A

Windows 7 SP1 et Windows Server 2008 R2 SP1

Désactivé

Activé

Activé

Activé

Activé

Activé

Désactivé

Désactivé

Désactivé

Désactivé

Windows Server 2012

Désactivé

Désactivé

Activé

Activé

Activé

Activé

Activé

Activé

Activé

Activé

Windows 8.1 et Windows Server 2012 R2

Désactivé

Désactivé

Activé

Activé

Activé

Activé

Activé

Activé

Activé

Activé

Windows 10

Désactivé

Désactivé

Activé

Activé

Activé

Activé

Activé

Activé

Activé

Activé

Windows 10 (1511)

Désactivé

Désactivé

Activé

Activé

Activé

Activé

Activé

Activé

Activé

Activé

Windows 10 (1607) et Windows Server 2016

N/A

N/A

Désactivé

Désactivé

Activé

Activé

Activé

Activé

Activé

Activé

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?

Nous vous remercions de vos commentaires.

×