Unterstützung für TLS Standard Versionen in.NET Framework 3.5 unter Windows 8.1 und Windows Server 2012 R2 enthalten

Gilt für: .NET Framework 3.5 Service Pack 1Windows 8.1Windows Server 2012 R2 Datacenter Mehr

.NET Framework, Version 3.5 SP1 und früheren Versionen nicht für Applikationen mit Transport Layer Security (TLS) Standard Versionen als kryptografischen Protokoll unterstützen. Dieses Update ermöglicht die Verwendung von TLS 1.2 in.NET Framework 3.5 SP1.
Hinweis diesen Inhalt bereitgestellt auf Windows Update. Um den Inhalt zu erhalten, Scannen Sie Windows Update nach den neuesten Updates für.NET Framework. Ist Ihr System regelmäßig über Windows Update müssen Sie keine weiteren Maßnahmen.

Lösung


Informationen zum Download

Die folgenden Dateien stehen zum Download aus dem Microsoft Download Center:Download X86 Basis-Paket jetzt downloaden. Download X64 Basis-Paket jetzt downloaden. Wir haben die folgende Verbesserung in diesem Bereich:
  • Für die folgenden Registrierungsschlüssel kann die Verwendung der Betriebssystemstandardwerte für SSL und TLS anstelle der hartcodierten Standardwerte von .NET Framework für eine auf dem Computer ausgeführte verwaltete Anwendung festgelegt werden.
    • Für 64-Bit-Betriebssysteme:
      [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 
    • Für 32-Bit-Betriebssysteme:
      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]"SystemDefaultTlsVersions"=dword:00000001 
    Hinweis Die Anwendung setzt die ServicePointManager.SecureProtocol in Code oder durch Konfigurationsdateien auf einen bestimmten Wert oder SslStream.AuthenticateAs* APIs an bestimmten SslProtocols Enumeration der Einstellung in der Registrierung Verhalten tritt nicht auf.
  • Darüber hinaus haben wir die SslProtocolsExtensions -Enumeration hinzugefügt, mit denen Sie optional für TLS 1.2, TLS 1.1 sowie Betriebssystem Standardwerte für die ServicePointManager.SecurityProtocol -Eigenschaft festlegen, wenn .NET Framework-Version 2.0 SP2. (Siehe Abschnitt Hinweise für Entwickler Informationen zur Verwendung der Erweiterung.) Hinweis Windows Vista SP2 und Windows Server 2008 SP2 unterstützen Transport Layer Security (TLS)-Protokoll-Versionen neuer als 1.0. Verwaltete.NET Framework 2.0 SP2 Programme unter Windows Vista SP2 oder Windows Server 2008 SP2 können nicht TLS 1.2 oder TLS 1.1 verwenden, auch wenn diese Protokolle in der ServicePointManager.SecurityProtocol -Eigenschaft festgelegt werden.
Weitere Informationen zum Herunterladen von Microsoft Support-Dateien finden Sie im folgenden Artikel der Microsoft Knowledge Base:
119591 So erhalten Sie Microsoft Support-Dateien im Internet
Microsoft hat diese Datei auf Viren überprüft. Dazu wurde die neueste Software zur Virenerkennung verwendet, die zum Zeitpunkt der Bereitstellung verfügbar war. Die Datei befindet sich auf Servern mit verstärkter Sicherheit, wodurch nicht autorisierte Änderungen an der Datei weitestgehend verhindert werden.

Entwickler-Leitfaden


Die neue Erweiterung werden in den folgenden Dateien:
  • SecurityProtocolTypeExtensions.cs
    namespace System.Net{using System.Security.Authentication;public static class SecurityProtocolTypeExtensions{public const SecurityProtocolType Tls12 = (SecurityProtocolType)SslProtocolsExtensions.Tls12;public const SecurityProtocolType Tls11 = (SecurityProtocolType)SslProtocolsExtensions.Tls11;public const SecurityProtocolType SystemDefault = (SecurityProtocolType)0;}} 
  • SslProtocolsExtensions.cs
    namespace System.Security.Authentication{public static class SslProtocolsExtensions{public const SslProtocols Tls12 = (SslProtocols)0x00000C00;public const SslProtocols Tls11 = (SslProtocols)0x00000300;}} 
Um die Unterstützung für TLS 1.2, enthalten Sie die Quelldateien im Projekt, und legen Sie die Protokollversion mithilfe der folgenden Methoden:
  • Programme, die ServicePointManager-basierten APIs arbeiten lassen Protokoll verwenden als follows:System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12;
  • Programme, die das SslStream AuthenticateAsClient (String, X509CertificateCollection, SslProtocols, Boolean) Überladung können SslProtocols SslProtocolsExtensions. einstellenTls12.
Wenn die Registrierung im ersten Absatz genannten und in der Anwendung SslProtocols Wert als SslProtocols.Nonefestgelegt, wird das Standardverhalten System ausgewählt, die Version des Betriebssystems Windows hängt. Auch beim Ändern des Anwendungscode zum Aktivieren der Unterstützung für TLS 1.2 mit.NET Framework 3.5 SP1 müssen Sie auf Computern, wo dieser Patch nicht bereitgestellt wird, folgenden Ausnahmen behandeln:
  1. Wenn der Hotfix nicht installiert ist, ServicePointManager-Basis APIs (HTTP, FTP, SMTP) löst "System.NotSupportedException: das angeforderte Sicherheitsprotokoll wird nicht unterstützt." bei den Aufruf ServicePointManager.SecurityProtocol den neuen Wert festgelegt.
  2. Wenn der Hotfix nicht installiert ist, SslStream-Basis APIs löst beim Aufrufen von AuthenticateAs *-APIs:
    System.ArgumentException: Der angegebene Wert ist in der Enumeration 'SslProtocolType' ungültig. Parametername: SslProtocolType
Hinweis Für SslStream nur aus Tls12, Tls11 mit einem vorhandenen TlsSsl3Ssl2 (Beispiel: Tls12 | Tls11 | TLS) wird automatisch die vorhandenen Protokolle heruntergestuft (Beispiel: Tls) auf einem System ohne Patch. Es wird mit Tls verbinden, ohne die Ausnahme.

Weitere Informationen


Um TLS 1.1 oder 1.2 Betriebssystem standardmäßig zu aktivieren, gehen Sie auf https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.Hinweis TLS 1.1 und 1.2 nicht verfügbar in Windows Vista oder Windows Server 2008.If müssen Sie das Betriebssystem deaktivieren Standardwerte für bestimmte Applikationen können durch Hinzufügen des folgenden Registrierungsschlüssels getan werden bereits erwähnte Registrierungsschlüssel festlegen:
HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions<<Full path of the .exe for the file>>     DWORD    0C:\MyApp\MyApp.exe    DWORD    0 
Weitere Informationen zu TLS 1.2 finden Sie unter Einführung in TLS 1.2. Nach dem Aktivieren des Registrierungsschlüssels SystemDefaultTlsVersions .NET tritt eines anderen Verhaltens für jede Version von Windows, wie in der folgenden Tabelle dargestellt.
Windows-VersionSSL2-ClientSSL2-ServerSSL3-ClientSSL3-ServerTLS 1.0 ClientTLS 1.0 ServerTLS 1.1 ClientTLS 1.1 ServerTLS 1.2 ClientTLS 1.2 Server
Windows Vista SP2 und Windows Server 2008 SP2AusschaltenAufAufAufAufAufN/AN/AN/AN/A
Windows 7 SP1 und Windows Server 2008 R2 SP1AusschaltenAufAufAufAufAufAusschaltenAusschaltenAusschaltenAusschalten
Windows Server 2012AusschaltenAusschaltenAufAufAufAufAufAufAufAuf
Windows 8.1 und Windows Server 2012 R2 AusschaltenAusschaltenAufAufAufAufAufAufAufAuf
Windows 10AusschaltenAusschaltenAufAufAufAufAufAufAufAuf
Windows 10 (1511)AusschaltenAusschaltenAufAufAufAufAufAufAufAuf
Windows 10 (1607) und WindowsServer 2016N/AN/AAusschaltenAusschaltenAufAufAufAufAufAuf