A .NET-keretrendszer 2.0 Service Pack 2 (SP2) és korábbi verziói nem kódolták a Secure Sockets Layer (SSL) 3.0-s és TLS-v1.0-s verzióját, hacsak a .NET alkalmazás nem adott meg másik protokollverziót. Ez a frissítés az .NET-keretrendszer 2.0 SP2-es verziójához Windows Vista SP2 és Windows Server 2008 SP2 rendszeren felveszi az SSL és a TLS alapértelmezett használatára vonatkozó beállítást, amelyet az operációs rendszer biztosít.
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 KB3154517-nek megfelelő gyorsjavítást az .NET-keretrendszer legújabb frissítései feleslegesen telepítették, amelyek a KORÁBBAN KB3154517-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 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 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 |