A .NET-keretrendszer 3.5-ös és korábbi verziói nem támogatták a TLS rendszer alapértelmezett verzióit titkosítási protokollként használható alkalmazások számára. Ez a frissítés lehetővé teszi a TLS 1.2-es verzió használatát a .NET-keretrendszer 3.5-ös verzióban.
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 KB3154519-nek megfelelő gyorsjavítást az .NET-keretrendszer legújabb frissítései feleslegesen telepítették, amelyek a KORÁBBAN KB3154519-ben 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 Tudásbázis következő számú cikkében bővebben olvashat a Microsoft által kiadott támogatási fájlok letöltéséről, a cikk megnyitásához kattintson a sorszámra:
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 protokoll verzióját az alábbi módokon:
-
A ServicePointManager-alapú API-kat használó alkalmazások az alábbiak szerint á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ékbeli beállítás, és az SslProtocols értéke SslProtocols.None, a rendszer alapértelmezett viselkedése a választott Windows-verziótól függ.
Ha módosítja az alkalmazáskódot úgy, hogy az .NET-keretrendszer 3.5 SP1-es TLS 1.2-es vLS támogatását engedélyezze, az alábbi kivételeket is meg kell tennie minden olyan számítógépen, amelyen nincs telepítve a javítás:-
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 értéket az új érték beállításához.
-
Ha nincs telepítve a gyorsjavítás, az SslStream-alapú API-k kivételeket fognak tenni, amikor a AuthenticateAs* API-k valamelyikét hívják:
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ások "Megoldás" szakaszában említett beállításkulcs által beállított alapértelmezett operációs rendszereket, ezt a következő beállításkulcs hozzáadásával tudja megtenni:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions <<A .exe teljes elérési útvonala a fájlhoz>> 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 |