Applies To.NET Framework 3.5.1 Windows 7 Service Pack 1 Windows Server 2008 R2 Service Pack 1

.NET framework version 3.5.1 og tidligere versioner understøttede ikke programmer til at bruge TLS-standardversioner (Transport Layer Security) som en krypteret protokol. Denne opdatering aktiverer brugen af TLS v1.2 i .NET Framework 3.5.1.

BemærkDette  indhold er gjort tilgængeligt Windows Opdatering. Du kan hente indholdet ved at Windows Opdater for at få de seneste .NET Framework opdateringer. Hvis dit system er helt opdateret via Windows Opdatering, behøver du ikke at udføre yderligere handlinger.

Løsning

Overførselsoplysninger

Det hotfix, der svarer til KB3154518, er blevet ændret i forhold til de seneste opdateringer af .NET Framework, som indeholder alle rettelser, der tidligere blev inkluderet i KB3154518. Det anbefales at installere de seneste opdateringer af .NET Framework.Vi har foretaget følgende forbedringer på dette område:

  • Følgende registreringsdatabasenøgler kan indstilles til at bruge standardindstillingerne for operativsystem for SSL og TLS i stedet for de hardcodede .NET Framework for et administreret program, der kører på computeren.

    • Til 64-bit operativsystemer:[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

    • Til 32-bit operativsystemer:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001

    Bemærk! Hvis programmet har angivet servicePointManager.SecureProtocode i kode eller via konfigurationsfiler til en bestemt værdi eller bruger SSLStream.AuthenticateAs* API'er til at angive en bestemt SslProtoskildpaddes enum, sker indstillingsfunktionsmåden for registreringsdatabasen ikke.

  • Desuden har vi tilføjet sslProtoskildpaddesExtensions-enumeration, som du kan bruge som en indstilling til at indstille TLS v1.2, TLS v1.1 samt operativsystemstandard for egenskaben ServicePointManager.SecurityProtoskildpadde ved målretning af .NET framework version 2.0 SP2. (Se sektionen Udviklervejledning for at få oplysninger om, hvordan du bruger udvidelser). Bemærk Windows Vista SP2 og Windows Server 2008 SP2 ikke understøtter nyere versioner af Transport Layer Security (TLS) end 1.0. Administreret .NET Framework 2.0 SP2-programmer, der kører på Windows Vista SP2 eller Windows Server 2008 SP2, kan ikke bruge TLS 1.2 eller TLS 1.1, selvom disse protokoller er angivet i egenskaben ServicePointManager.SecurityProtoskildpadde.

Du kan finde flere oplysninger om, hvordan du henter Microsoft-supportfiler, ved at klikke på tallet i følgende artikel for at få vist artiklen i Microsoft Knowledge Base:

119591 Sådan får du Microsoft-supportfiler fra onlinetjenester, som Microsoft har scannet denne fil for virus. Microsoft brugte den nyeste antivirussoftware, der var tilgængelig på den dato, hvor filen blev publiceret. Filen er placeret på servere med udvidet sikkerhed, der bidrager til at forhindre uautoriserede ændringer af filen.

Udviklervejledning

Definitionen af de nye udvidelser findes i følgende filer:  

  • SecurityProtoskildpaddeTypeExtensions.csnamespace System.Net { ved hjælp af System.Security.Authentication; offentlig statisk klasse SecurityProtoskildpaddeTypeExtensions { public const SecurityProtoskildpaddeType Tls12 = (SecurityProtoskildpaddeType)SslProtoskildpaddesExtensions.Tls12; public const SecurityProtoskildpaddeType Tls11 = (SecurityProtoskildpaddeType)SslProtoskildpaddesExtensions.Tls11; public const SecurityProtoskildpaddeType SystemDefault = (SecurityProtoskildpaddeType)0; } }

  • SslProto prototypesExtensions.csnamespace System.Security.Authentication { offentlig statisk klasse SslProtoskildpaddesExtensions { public const SslProtoskildpaddes Tls12 = (SslProtoskildpaddes)0x00000C00; public const SslProtoskildpaddes Tls11 = (SslProtoskildpaddes)0x00000300; } }

Hvis du vil medtage understøttelsen af TLS v1.2, skal du medtage kildefilerne i projektet og derefter angive protokolversionen ved hjælp af følgende metoder:  

  • Programmer, der bruger ServicePointManager-baserede API'er, kan indstille protokollen ved hjælp af følgende: System.Net.ServicePointManager.SecurityProtoskildpadde = SecurityProtoskildpaddeTypeExtensions.Tls12;

  • Programmer, der bruger overbelastning af SslStream-godkendelseAsClient(Streng, X509CertificateCollection, SslProtoskildpaddes, Boolean), kan angive værdien SslProtoskildpaddes som SslProtoectionsExtensions.Tls12.

Hvis den indstilling i registreringsdatabasen, der er nævnt i det første afsnit, er angivet, og SslProto hele værdien er angivet i programmet som SslProtoskildpaddes.Ingen, vil den valgte systemstandardfunktionsmåde afhænge af Windows version.Når du ændrer programkoden for at aktivere understøttelse af TLS v1.2 med .NET Framework 3.5 SP1, skal du desuden sikre dig, at du adresserer følgende undtagelser på computere, hvor denne programrettelse ikke er installeret:  

  1. Hvis hotfixet ikke er installeret, vises "System.NotSupportedException: The requested security protocol is not supported", når programmet kalder ServicePointManager.SecurityProtoskildpadde for at angive den nye værdi, hvis hotfixet ikke er installeret.

  2. Hvis hotfixet ikke er installeret, giver SslStream-baserede API'er undtagelser, når de kalder en af Api'erne*-API'er (AuthenticateAs*):

    System.ArgumentException: Den angivne værdi er ikke gyldig i 'SslProtoskildpaddeType'-enumerationen.Parameternavn: sslProto sslType

Bemærk! Kun SslStream, en kombination af Tls12, Tls11 med en af de eksisterende Tls, Ssl3, Ssl2 (for eksempel: Tls12 | Tls11 | Tls) nedgraderer automatisk til de eksisterende protokoller (f.eks.: Tls) på et system uden programrettelsen. Den opretter forbindelse til Tls uden undtagelsen.  

Flere oplysninger

For at aktivere TLS v1.1 eller v1.2 som standard for operativsystem skal du følge vejledningen på https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.Bemærk, at TLS v1.1 og v1.2 ikke er tilgængelige i Windows Vista eller Windows Server 2008.Hvis du er nødt til at deaktivere standardindstillingerne for operativsystemet, der er angivet af registreringsdatabasenøglen, der er nævnt i afsnittet "Løsning" for bestemte programmer, kan du gøre dette ved at tilføje følgende registreringsdatabasenøgle:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions <<Hele stien til .exe til filen>> DWORD 0 C:\MyApp\MyApp.exe DWORD 0

Du kan finde flere oplysninger om TLS v1.2 i Introduktion til TLS v1.2.Når du har aktiveret registreringsdatabasenøglen SystemDefaultTlsVersions .NET, sker der en anden funktionsmåde for hver version af Windows, som vist i følgende tabel.  

Windows version

SSL2-klient

SSL2-server

SSL3-klient

SSL3-server

TLS 1.0-klient

TLS 1.0 Server

TLS 1.1-klient

TLS 1.1 Server

TLS 1.2-klient

TLS 1.2 Server

Windows Vista SP2 og Windows Server 2008 SP2

Fra

Til

Til

Til

Til

Til

I/T

I/T

I/T

I/T

Windows 7 SP1 og Windows Server 2008 R2 SP1

Fra

Til

Til

Til

Til

Til

Fra

Fra

Fra

Fra

Windows Server 2012

Fra

Fra

Til

Til

Til

Til

Til

Til

Til

Til

Windows 8.1 og Windows Server 2012 R2

Fra

Fra

Til

Til

Til

Til

Til

Til

Til

Til

Windows 10

Fra

Fra

Til

Til

Til

Til

Til

Til

Til

Til

Windows 10 (1511)

Fra

Fra

Til

Til

Til

Til

Til

Til

Til

Til

Windows 10 (1607) og Windows Server 2016

I/T

I/T

Fra

Fra

Til

Til

Til

Til

Til

Til

Har du brug for mere hjælp?

Vil du have flere indstillinger?

Udforsk abonnementsfordele, gennemse kurser, få mere at vide om, hvordan du sikrer din enhed og meget mere.

Communities hjælper dig med at stille og besvare spørgsmål, give feedback og høre fra eksperter med omfattende viden.