A .NET-keretrendszer 3.5 SP1-es és korábbi verziói nem támogatták az alapértelmezett TLS-rendszerverziók titkosítási protokollként való használatát az alkalmazások számára. Ez a frissítés engedélyezi a TLS 1.2-es verzió használatát a .NET-keretrendszer 3.5 SP1 szervizcsomagban.
MegjegyzésEz a tartalom az Windows frissítésben érhető el. A tartalom beszerzéséhez olvassa el a Windows a legújabb .NET-keretrendszer frissítéseket. Ha a rendszer teljes mértékben naprakész a Windows frissítéssel, nem kell további lépéseket tennie.
Megoldás
Letöltési információ
A KB3154520-nak megfelelő gyorsjavítást az .NET-keretrendszer legújabb frissítései feleslegesen telepítették, amelyek a KORÁBBAN KB3154520-ban szereplő összes javítást tartalmazzák. Javasoljuk, hogy telepítse a .NET-keretrendszer.
Ezen a területen az alábbi fejlesztéseket javítottunk:
-
Az alábbi beállításkulcsok az SSL és a TLS operációs rendszer alapértelmezett beállítását használhatja a .NET-keretrendszer felügyelt alkalmazások alapértelmezett beállítása helyett.
-
64 bites operációs rendszerek esetében:[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 -
32 bites operációs rendszerek esetében:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
Megjegyzés: Ha az alkalmazás a ServicePointManager.SecureProtocolt kódban vagy konfigurációs fájlokon keresztül adott értékre beállította, vagy az SslStream.AuthenticateAs* API-k használatával adott SslProtocols enumot ad meg, a beállításjegyzék beállítása nem működik.
-
-
Ezenkívül hozzáadtunk egy SslProtocolsExtensions felsorolást is, amely a TLS 1.2-es és TLS 1.1-es verziójának beállítására, valamint a ServicePointManager.SecurityProtocol tulajdonság alapértelmezett rendszerbeállításaiként használható a .NET-keretrendszer 2.0 SP2-es verziójának célközönségeként. (A bővítmények használatával kapcsolatos információkért lásd a Fejlesztői útmutatót.)
Megjegyzés Windows Vista SP2 és Windows Server 2008 SP2 nem támogatja a TLS protokoll 1.0-snál újabb verzióit. A Windows Vista SP2 vagy Windows Server 2008 SP2 rendszeren futó felügyelt .NET-keretrendszer 2.0 SP2-alkalmazások nem használhatnak TLS 1.2-es vagy TLS 1.1-es et még akkor sem, ha ezek a protokollok a ServicePointManager.SecurityProtocol tulajdonságban vannak beállítva.
A Microsoft támogatási fájljainak letöltésével kapcsolatos további információkért kattintson a következő cikkszámra a Microsoft Tudásbázisban található cikk megtekintéséhez:
119591 Hogyan szerezhet be Microsoft-támogatási fájlokat az online szolgáltatásokból: A Microsoft ellenőrizte, hogy nem tartalmaz-e vírusokat a fájl. Ennek során a Microsoft a fájl közzétételének napján elérhető legfrissebb vírusvédelmi szoftvert használta. A fájlt fokozott biztonságú kiszolgálók tárolják, amelyek meggátolják a fájl bármilyen jogosulatlan módosítását.
Fejlesztői útmutató
Az új bővítmények definíciója az alábbi fájlokban található:
-
SecurityProtocolTypeExtensions.csnamespace System.Net
{
a System.Security.Authentication használatával;
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;
}
}
A TLS 1.2-es verziójának támogatásához foglalja bele a forrásfájlokat a projektbe, majd állítsa be a protokollverziót az alábbi módszerek egyikével:
-
A ServicePointManager-alapú API-kat használó alkalmazások a következőképpen állíthatják be a protokollt:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12; -
Az SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) túlterhelést használó alkalmazások az SslProtocols értéket SslProtocolsExtensions.Tls12 értékre állíthatják.
Ha az első bekezdésben említett beállításjegyzék be van állítva, és az alkalmazásban az SslProtocols értéke SslProtocols.None, akkor a rendszer alapértelmezett viselkedése az Windows operációs rendszer verziójától függ.
Ha az alkalmazáskódot úgy módosítja, hogy az .NET-keretrendszer 3.5 SP1-es TLS 1.2-es vLS támogatását engedélyezze, győződjön meg arról, hogy a javítást nem támogató számítógépeken kezeli az alábbi kivételeket:
-
Ha nincs telepítve a gyorsjavítás, a ServicePointManager-alapú API-k (HTTP, FTP, SMTP) a "System.NotSupportedException: A kért biztonsági protokoll nem támogatott." értéket adja vissza, amikor az alkalmazás hívja a ServicePointManager.SecurityProtocol szolgáltatót az új érték beállításához.
-
Ha nincs telepítve a gyorsjavítás, az SslStream-alapú API-k a AuthenticateAs* API-k hívásakor a következőt fogja használni:
System.ArgumentException: A megadott érték nem érvényes az SslProtocolType felsorolásában.
Paraméter neve: sslProtocolType
Megjegyzés: Csak az SslStream esetén, a Tls12 és a Tls11 kombinációja a meglévő Tls, Ssl3 és Ssl2 bármelyik meglévővel (például: Tls12 | Tls11 | A Tls csendesen visszalépést fog a meglévő protokollokra (például: Tls) egy javítás nélküli rendszeren. Anélkül csatlakozik a Tls-hez, hogy kivételt képeznek.
További információ
A TLS 1.1-es vagy 1.2-es alapértelmezett operációs rendszerként való engedélyezéséhez kövesse a https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.
Megjegyzés: A TLS 1.1-es és 1.2-es verziójához nem érhető el Windows Vista vagy Windows Server 2008.
Ha le kell tiltania az egyes alkalmazásokhoz korábban említett beállításkulcs által beállított operációs rendszer-alapértelmezéseket, azt a következő beállításkulcs hozzáadásával tudja beállítani:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions
<<A fájl .exe teljes elérési útja>> DWORD 0
C:\MyApp\MyApp.exe DWORD 0
A TLS 1.2-esről további információt A TLS 1.2-es vLsz.
A SystemDefaultTlsVersions .NET beállításkulcs engedélyezése után az Windows minden verziójában más viselkedés történik, az alábbi táblázatban látható módon.
Windows verzió |
SSL2-ügyfél |
SSL2-kiszolgáló |
SSL3-ügyfél |
SSL3-kiszolgáló |
TLS 1.0-ügyfél |
TLS 1.0-kiszolgáló |
TLS 1.1 ügyfél |
TLS 1.1-kiszolgáló |
TLS 1.2 ügyfél |
TLS 1.2-kiszolgáló |
---|---|---|---|---|---|---|---|---|---|---|
Windows Vista SP2 és Windows Server 2008 SP2 |
Kikapcsolva |
Be |
Be |
Be |
Be |
Be |
– |
– |
– |
– |
Windows 7 SP1 és Windows Server 2008 R2 SP1 |
Kikapcsolva |
Be |
Be |
Be |
Be |
Be |
Kikapcsolva |
Kikapcsolva |
Kikapcsolva |
Kikapcsolva |
Windows Server 2012 |
Kikapcsolva |
Kikapcsolva |
Be |
Be |
Be |
Be |
Be |
Be |
Be |
Be |
Windows 8.1 és Windows Server 2012 R2 |
Kikapcsolva |
Kikapcsolva |
Be |
Be |
Be |
Be |
Be |
Be |
Be |
Be |
Windows 10 |
Kikapcsolva |
Kikapcsolva |
Be |
Be |
Be |
Be |
Be |
Be |
Be |
Be |
Windows 10 (1511) |
Kikapcsolva |
Kikapcsolva |
Be |
Be |
Be |
Be |
Be |
Be |
Be |
Be |
Windows 10 (1607) és Windows Server 2016 |
– |
– |
Kikapcsolva |
Kikapcsolva |
Be |
Be |
Be |
Be |
Be |
Be |