.NET framework versjon 3.5.1-funksjoner og tidligere versjoner kunne gi støtte for programmer å bruke standard Transport Layer Security (TLS) System-versjonene som en kryptografisk protokoll. Denne oppdateringen gjør at bruk av TLS-v1.2 i .NET Framework 3.5.1-funksjoner.
Løsning
Nedlastingsinformasjon
Følgende filer er tilgjengelige for nedlasting fra Microsoft Download Center:Last ned pakken x86-baserte nå.
Last ned pakken x64-baserte nå.
Last ned pakken for IA64-baserte nå.
Vi har gjort følgende forbedringer i dette området:
-
Følgende nøkler kan angis til å bruke operativsystemet registret som standard for SSL- og TLS i stedet for en hardkodet .NET Framework standarder for et administrert program som kjører på datamaskinen.
-
For 64-biters 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 -
For 32-biters operativsystemer:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
Obs! Hvis programmet har satt ServicePointManager.SecureProtocol gjennom config filer til en bestemt verdi eller i koden, eller bruker SslStream.AuthenticateAs* APIer til å angi en bestemt SslProtocols -opplisting, forekommer registret innstillingen atferden ikke.
-
-
I tillegg har vi lagt til SslProtocolsExtensions -opplistingen som du kan bruke som et alternativ for å angi TLS v1.2, TLS v1.1, i tillegg til operativsystemet standarder for egenskapen ServicePointManager.SecurityProtocol når .NET framework versjon 2.0 SP2-målretting. (Se delen Utvikler retningslinjer for informasjon om hvordan du bruker utvidelsene.)
Obs! Windows Vista SP2 og Windows Server 2008 SP2 støtter ikke Transport Layer Security (TLS)-protokoll versjoner som er nyere enn 1.0. Behandlede .NET Framework 2.0 SP2-programmer som kjører på Windows Vista SP2 eller Windows Server 2008 SP2 kan ikke bruke TLS 1.2 eller TLS 1.1, selv om disse protokollene er angitt i egenskapen ServicePointManager.SecurityProtocol .
Hvis du vil ha mer informasjon om hvordan du laster ned Microsoft-støttefiler, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:
119591 hvordan du ned Microsoft-støttefiler fra elektroniske tjenesterMicrosoft har søkt etter virus i denne filen. Microsoft brukte det nyeste antivirusprogrammet som var tilgjengelig den datoen filen ble lagt ut. Filen lagres på sikkerhetsforbedrede servere som bidrar til å hindre uautoriserte endringer i filen.
Veiledning for utviklere
Definisjonen av de nye utvidelsene er i følgende filer:
-
SecurityProtocolTypeExtensions.csnamespace 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.csnamespace System.Security.Authentication
{
public static class SslProtocolsExtensions
{
public const SslProtocols Tls12 = (SslProtocols)0x00000C00;
public const SslProtocols Tls11 = (SslProtocols)0x00000300;
}
}
Hvis du vil ha støtte for TLS v1.2, inkludere kildefilene i prosjektet, og angi deretter protokollversjonen ved hjelp av følgende metoder:
-
Programmer som bruker ServicePointManager-baserte APIer kan angi protokollen ved hjelp av følgende:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12; -
Programmer som bruker SslStream AuthenticateAsClient (streng, X509CertificateCollection, SslProtocols, boolsk) -overlasten kan angi verdien SslProtocols som SslProtocolsExtensions. Tls12.
Hvis registerinnstillingen som er nevnt i det første avsnittet er angitt, og SslProtocols -verdi er angitt i programmet som SslProtocols.None, systemet standardvirkemåte som velges, avhenger av Windows-versjonen.
Også, når du endrer programmet koden å aktivere støtte for TLS v1.2 med .NET Framework 3.5 SP1, må du kontrollere at du løser følgende unntak på datamaskiner som denne oppdateringen ikke er distribuert:
-
Hvis hurtigreparasjonen ikke er installert, ServicePointManager-baserte APIer (HTTP, FTP, SMTP) vil iverksette "System.NotSupportedException: den forespurte sikkerhetsprotokollen støttes ikke" når programmet kaller ServicePointManager.SecurityProtocol til å angi den nye verdien.
-
Hvis hurtigreparasjonen ikke er installert, SslStream-baserte APIer kvitter unntak når de kaller opp en av APIene AuthenticateAs *:
System.ArgumentException: Den angitte verdien er ikke gyldig i 'SslProtocolType'-opplistingen.
Parameternavn: sslProtocolType
Obs! For SslStream , en kombinasjon av Tls12, Tls11 med noen av de eksisterende Tls, Ssl3, Ssl2 (for eksempel: Tls12 | Tls11 | TLS) vil nedgraderer i eksisterende protokollene (for eksempel: Tls) på et system uten oppdateringen. Kobler den til Tls uten forårsaket unntaket.
Hvis du vil ha mer informasjon
Hvis du vil aktivere TLS v1.1 eller v1.2 som standard operativsystem, følg instruksjonene i https://technet.microsoft.com/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.
Obs! TLS-v1.1 og v1.2 er ikke tilgjengelig i Windows Vista eller Windows Server 2008.
Hvis du må deaktivere standardverdiene for operativsystemet som er angitt av registernøkkelen som er nevnt i delen "Løsning" for bestemte programmer, kan du gjøre dette ved å legge til følgende registernøkkel:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions
<<Full path of the .exe for the file>> DWORD 0
C:\MyApp\MyApp.exe DWORD 0
Hvis du vil ha mer informasjon om TLS v1.2, se Innføring i TLS v1.2.
Når du aktiverer registernøkkelen SystemDefaultTlsVersions .NET, skjer en annen for hver versjon av Windows, som vist i følgende tabell.
Windows-versjon |
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 |
Av |
På |
På |
På |
På |
På |
N/A |
N/A |
N/A |
N/A |
Windows 7 SP1 og Windows Server 2008 R2 SP1 |
Av |
På |
På |
På |
På |
På |
Av |
Av |
Av |
Av |
Windows Server 2012 |
Av |
Av |
På |
På |
På |
På |
På |
På |
På |
På |
Windows 8.1 og Windows Server 2012 R2 |
Av |
Av |
På |
På |
På |
På |
På |
På |
På |
På |
Windows 10 |
Av |
Av |
På |
På |
På |
På |
På |
På |
På |
På |
Windows-10 (1511) |
Av |
Av |
På |
På |
På |
På |
På |
På |
På |
På |
Windows 10 (1607) og Windows Server 2016 |
N/A |
N/A |
Av |
Av |
På |
På |
På |
På |
På |
På |