Transport Layer Security (TLS) – ajánlott eljárások a .NET-keretrendszer használatával

A Transport Layer Security (TLS) protokoll az interneten továbbított információk biztonságának védelmét segítő iparági szabvány. A TLS 1.2 egy szabvány, amely biztonsági fejlesztéseket biztosít a korábbi verziókhoz képest. A TLS 1.2-t végül a legújabb kiadású TLS 1.3 váltja fel, amely gyorsabb és nagyobb biztonságot nyújt. Ez a cikk a TLS protokollt használó .NET-keretrendszer alkalmazások védelmére vonatkozó javaslatokat mutat be.

Annak érdekében, hogy .NET-keretrendszer alkalmazások biztonságosak maradjanak, a TLS-verziót nem szabad szigorúan kódolni. A .NET-keretrendszerre épülő alkalmazások az operációs rendszer által támogatott TLS-verziót használják.

Ez a dokumentum a következő fejlesztőknek való:

Vegye figyelembe a következőket:

  • TLS 1.2 esetén célként .NET-keretrendszer 4.7-et vagy újabb verziót az alkalmazásaihoz, és célként .NET-keretrendszer 4.7.1 vagy újabb verziót a WCF-alkalmazásokban.
  • A TLS 1.3 esetében a cél .NET-keretrendszer 4.8-at vagy újabb verziót.
  • Ne adja meg a TLS-verziót. Konfigurálja úgy a kódot, hogy az operációs rendszer döntsön a TLS-verzióról.
  • Végezzen alapos kódvizsgálatot annak ellenőrzéséhez, hogy nem ad-e meg TLS- vagy SSL-verziót.

Ha az alkalmazás lehetővé teszi az operációs rendszer számára a TLS-verzió kiválasztását:

  • Automatikusan kihasználja a jövőben hozzáadott új protokollokat, például a TLS 1.3-at.
  • Az operációs rendszer blokkolja a felderített protokollokat, hogy ne legyenek biztonságosak.

A kód naplózása és módosítása című szakasz a kód naplózását és frissítését ismerteti.

Ez a cikk azt ismerteti, hogyan engedélyezheti az alkalmazás által megcélzó és futtatott .NET-keretrendszer számára elérhető legerősebb biztonságot. Amikor egy alkalmazás explicit módon beállít egy biztonsági protokollt és verziót, az elutasít minden más alternatívát, és kikapcsolja a .NET-keretrendszer és az operációs rendszer alapértelmezett viselkedését. Ha azt szeretné, hogy az alkalmazás egyeztetni tudjon egy TLS 1.2-kapcsolatot, az alacsonyabb TLS-verzióra való explicit beállítás megakadályozza a TLS 1.2-kapcsolatot.

Ha nem tudja elkerülni a protokollverziók keménykódolását, javasoljuk, hogy adja meg a TLS 1.2-t. A TLS 1.0-függőségek azonosításával és eltávolításával kapcsolatos útmutatásért töltse le a TLS 1.0 problémamegoldási tanulmányát.

A WCF a TLS1.0, 1.1 és 1.2 protokollt támogatja alapértelmezettként a .NET-keretrendszer 4.7-ben. A .NET-keretrendszer 4.7.1-es verziójától kezdve a WCF alapértelmezés szerint az operációs rendszer által konfigurált verziót használja. Ha egy alkalmazás explicit módon van konfigurálva SslProtocols.None, a WCF az operációs rendszer alapértelmezett beállítását használja a NetTcp-átvitel használatakor.

A dokumentummal kapcsolatos kérdéseket a .NET-keretrendszer GitHub transport layer security (TLS) ajánlott eljárásaiban teheti fel.

Kód naplózása és kódmódosítások

Az ASP.NET alkalmazások esetében vizsgálja meg a <system.web><httpRuntime targetFramework>web.config elemét, és ellenőrizze, hogy a .NET-keretrendszer kívánt verzióját használja-e.

A Windows Forms és más alkalmazások esetében lásd: Útmutató: A .NET-keretrendszer verziójának megcélzása.

Az alábbi szakaszokban ellenőrizheti, hogy nem egy adott TLS- vagy SSL-verziót használ-e.

Ha az alkalmazás a 4.7-.NET-keretrendszer vagy újabb verziót célozza

A következő szakaszok bemutatják, hogyan ellenőrizheti, hogy nem használ-e adott TLS- vagy SSL-verziót.

HTTP-hálózatkezeléshez

ServicePointManagera .NET-keretrendszer 4.7-ben és újabb verziókban az operációs rendszerben konfigurált alapértelmezett biztonsági protokollt fogja használni. Ha az operációs rendszer alapértelmezett beállítását szeretné megkapni, ha lehetséges, ne állítson be értéket a ServicePointManager.SecurityProtocol tulajdonsághoz, amely alapértelmezés szerint a következő.SecurityProtocolType.SystemDefault

Mivel a SecurityProtocolType.SystemDefault beállítás hatására az ServicePointManager operációs rendszer által konfigurált alapértelmezett biztonsági protokollt használja, előfordulhat, hogy az alkalmazás a futtatott operációs rendszer alapján eltérően fut. Például Windows 7 SP1 TLS 1.0-t használ, míg Windows 8 és Windows 10 TLS 1.2-t használ.

A cikk hátralévő része nem releváns a HTTP-hálózatkezelés .NET-keretrendszer 4.7-.NET-keretrendszer vagy újabb verzióinak megcélzásakor.

TCP-szoftvercsatornák hálózatkezelése esetén

SslStreama .NET-keretrendszer 4.7-es és újabb verzióit használva az operációs rendszer alapértelmezés szerint a legjobb biztonsági protokollt és verziót választja. Ha az operációs rendszer alapértelmezett legjobb választását szeretné megkapni, ha lehetséges, ne használja a metódus túlterheléseit SslStream , amelyek explicit SslProtocols paramétert használnak. Ellenkező esetben adja meg a elemet SslProtocols.None. Javasoljuk, hogy ne használja Default; a beállítás SslProtocols.Default kényszeríti az SSL 3.0 /TLS 1.0 használatát, és megakadályozza a TLS 1.2 használatát.

Ne állítson be értéket a SecurityProtocol tulajdonsághoz (HTTP-hálózatkezeléshez).

Ne használja a metódus túlterheléseit SslStream , amelyek explicit SslProtocols paramétert használnak (TCP-szoftvercsatornák hálózatkezeléséhez). Amikor újrarektorezi az alkalmazást a 4.7-.NET-keretrendszer vagy újabb verziókra, az ajánlott eljárásokat fogja követni.

A témakör hátralévő része nem releváns a TCP-szoftvercsatornák hálózatkezelésének .NET-keretrendszer 4.7-es vagy újabb verzióinak megcélzásakor.

WCF TCP-átvitelhez átviteli biztonsággal, tanúsítvány hitelesítő adataival

A WCF ugyanazt a hálózati vermet használja, mint a többi .NET-keretrendszer.

Ha a 4.7.1-et célozza, a WCF úgy van konfigurálva, hogy az operációs rendszer alapértelmezés szerint a legjobb biztonsági protokollt válassza, kivéve, ha explicit módon van konfigurálva:

  • Az alkalmazáskonfigurációs fájlban.
  • Vagy az alkalmazásban a forráskódban.

Alapértelmezés szerint a .NET-keretrendszer 4.7-ben és újabb verziókban a TLS 1.2 használatára van konfigurálva, és engedélyezi a TLS 1.1 vagy TLS 1.0 protokollt használó kapcsolatokat. Konfigurálja a WCF-et, hogy az operációs rendszer a legjobb biztonsági protokollt válassza a kötés használatára SslProtocols.Nonekonfigurálásával. Ez a beállítás be van kapcsolva SslProtocols. SslProtocols.None a címen Transportérhető el. NetTcpSecurity.Transport a címen Securityérhető el.

Ha egyéni kötést használ:

  • Konfigurálja a WCF-et úgy, hogy az operációs rendszer a legjobb biztonsági protokollt válassza a beállítással SslProtocolsSslProtocols.None.
  • Vagy konfigurálja a konfigurációs útvonallal system.serviceModel/bindings/customBinding/binding/sslStreamSecurity:sslProtocolshasznált protokollt.

Ha nem egyéni kötést használ, és a WCF-kötést konfigurációval állítja be, állítsa be a konfigurációs útvonallal system.serviceModel/bindings/netTcpBinding/binding/security/transport:sslProtocolshasznált protokollt.

WCF-üzenetbiztonság tanúsítvány hitelesítő adataival

.NET-keretrendszer 4.7-s és újabb verziók alapértelmezés szerint a tulajdonságban megadott protokollt SecurityProtocol használják. Ha az AppContextSwitchSwitch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols értékre van állítva true, a WCF a legjobb protokollt választja, legfeljebb TLS 1.0-ig.

Ha az alkalmazás a 4.7-esnél korábbi .NET-keretrendszer verziót célozza meg

A kód naplózásával ellenőrizze, hogy nem állít-e be egy adott TLS- vagy SSL-verziót a következő szakaszok használatával:

A .NET-keretrendszer 4.6 - 4.6.2 és nem WCF esetén

Állítsa a kapcsolót DontEnableSystemDefaultTlsVersionsAppContext a következőre false: . Lásd : Biztonság konfigurálása AppContext kapcsolókkal.

WCF esetén a .NET-keretrendszer 4.6 -4.6.2-t használó TCP átviteli biztonság tanúsítvány hitelesítő adatokkal

Telepítenie kell a legújabb operációsrendszer-javításokat. Tekintse meg a biztonsági frissítéseket.

A WCF-keretrendszer automatikusan kiválasztja a TLS 1.2-ig elérhető legmagasabb protokollt, kivéve, ha kifejezetten konfigurál egy protokollverziót. További információkért tekintse meg az előző szakaszt, amely a WCF TCP-átvitelt a tanúsítvány hitelesítő adataival rendelkező átviteli biztonság használatával használja.

A .NET-keretrendszer 3.5 - 4.5.2 és nem WCF esetén

Javasoljuk, hogy frissítse az alkalmazást .NET-keretrendszer 4.7-.NET-keretrendszer vagy újabb verzióra. Ha nem tud frissíteni, kövesse az alábbi lépéseket.

Állítsa a SchUseStrongCrypto és a SystemDefaultTlsVersions beállításkulcsot 1-re. Lásd a biztonság Windows beállításjegyzéken keresztüli konfigurálását. A .NET-keretrendszer 3.5-ös verziója csak akkor támogatja a SchUseStrongCrypto jelzőt, ha explicit TLS-értéket ad át.

Ha a .NET-keretrendszer 3.5-ös verzión fut, telepítenie kell egy gyorsjavítást, hogy a TLS 1.2-t a program meg tudja adni:

KB3154518 Megbízhatósági összegző HR-1605 – A Windows 7 SP1-en és Server 2008 R2 SP1-en futó .NET-keretrendszer 3.5.1-ben található TLS-rendszer alapértelmezett verzióinak támogatása
KB3154519 Megbízhatósági összegző HR-1605 – A .NET-keretrendszer 3.5-ös verziójában szereplő TLS-rendszer alapértelmezett verzióinak támogatása Windows Server 2012
KB3154520 Megbízhatósági összegző HR-1605 – A Windows 8.1-en és Windows Server 2012 R2-n futó .NET-keretrendszer 3.5-ös verziójában található TLS-rendszer alapértelmezett verzióinak támogatása
KB3156421 1605 összesítő 3154521 a .NET-keretrendszer 4.5.2 és 4.5.1 Windows

WCF esetén a .NET-keretrendszer 3.5 -4.5.2-t használó TCP átviteli biztonság tanúsítvány hitelesítő adatokkal

A WCF-keretrendszer ezen verziói az SSL 3.0 és a TLS 1.0 értékek használatára vannak kódolva. Ezek az értékek nem módosíthatók. A TLS 1.1 és 1.2 használatához frissítenie kell a NET-keretrendszer 4.6-os vagy újabb verzióit, és újra kell őket frissítenie.

Ha az alkalmazás a 3.5-ös .NET-keretrendszer célozza

Ha explicit módon kell beállítania egy biztonsági protokollt ahelyett, hogy a .NET vagy az operációs rendszer választhatja ki a biztonsági protokollt, adjon hozzá SecurityProtocolTypeExtensions és SslProtocolsExtension adjon hozzá számbavételeket a kódhoz. SecurityProtocolTypeExtensions és SslProtocolsExtension adja meg a Tls12, Tls11és az SystemDefault érték értékét. További információt a Windows 8.1 és Windows Server 2012 R2 .NET-keretrendszer 3.5-ös verziójában található TLS-rendszer alapértelmezett verzióinak támogatása című témakörben talál.

Biztonság konfigurálása AppContext kapcsolókkal (.NET-keretrendszer 4.6-os vagy újabb verziókhoz)

Az ebben a szakaszban ismertetett AppContext-kapcsolók akkor relevánsak, ha az alkalmazás a 4.6-os vagy újabb verziót célozza meg vagy futtatja .NET-keretrendszer. Akár alapértelmezés szerint, akár explicit módon állítja be őket, a kapcsolóknak lehetőség szerint meg kell lenniük false . Ha egy vagy mindkét kapcsolóval szeretné konfigurálni a biztonságot, ne adjon meg biztonsági protokollértéket a kódban; ezzel felülbírálná a kapcsoló(ke)t.

A kapcsolók ugyanolyan hatással bírnak, ha HTTP-hálózatkezelést (ServicePointManager) vagy TCP-szoftvercsatornákat (SslStream) használ.

Switch.System.Net.DontEnableSchUseStrongCrypto

Ennek az falseSwitch.System.Net.DontEnableSchUseStrongCrypto az értéke, hogy az alkalmazás erős titkosítást használ. A biztonságosabb hálózati protokollok (TLS 1.2, TLS 1.1 és TLS 1.0) és a nem biztonságos protokollok blokkolásának értéke falseDontEnableSchUseStrongCrypto . További információ: A SCH_USE_STRONG_CRYPTO jelző. Egy érték letiltja az true alkalmazás erős titkosítását. Ez a kapcsoló csak a kimenő ügyfélkapcsolatokat érinti az alkalmazásban.

Ha az alkalmazás .NET-keretrendszer 4.6-os vagy újabb verziót céloz meg, ez a kapcsoló alapértelmezés szerint a false. Ez egy biztonságos alapértelmezett beállítás, amelyet javasoljuk. Ha az alkalmazás a .NET-keretrendszer 4.6-os verzión fut, de egy korábbi verziót céloz meg, a kapcsoló alapértelmezés szerint a következőre truevált. Ebben az esetben explicit módon állítsa be a következőre false: .

DontEnableSchUseStrongCrypto csak akkor legyen értéke true , ha olyan örökölt szolgáltatásokhoz kell csatlakoznia, amelyek nem támogatják az erős titkosítást, és nem frissíthetők.

Switch.System.Net.DontEnableSystemDefaultTlsVersions

Egy érték, amely falseSwitch.System.Net.DontEnableSystemDefaultTlsVersions miatt az alkalmazás lehetővé teszi az operációs rendszer számára a protokoll kiválasztását. Egy érték true azt eredményezi, hogy az alkalmazás a .NET-keretrendszer által kiválasztott protokollokat használja.

Ha az alkalmazás a 4.7-.NET-keretrendszer vagy újabb verziót célozza meg, ez a kapcsoló alapértelmezés szerint erre váltfalse. Ez egy biztonságos alapértelmezett beállítás, amelyet javasoljuk. Ha az alkalmazás .NET-keretrendszer 4.7-es vagy újabb verzióban fut, de egy korábbi verziót céloz meg, a kapcsoló alapértelmezés szerint a következőre truevált. Ebben az esetben explicit módon állítsa be a következőre false: .

Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols

Egy érték, Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols amely false miatt az alkalmazás a tanúsítvány hitelesítő adataival használja az üzenetbiztonságban meghatározott ServicePointManager.SecurityProtocols értéket. A legmagasabb rendelkezésre állású true protokollt használó érték, legfeljebb TLS1.0

A 4.7-.NET-keretrendszer vagy újabb verziót megcélzó alkalmazások esetében ez az érték alapértelmezés szerint a következő leszfalse: . A 4.6.2-.NET-keretrendszer vagy korábbi verziót megcélzó alkalmazások esetében ez az érték alapértelmezés szerint a következő.true

Switch.System.ServiceModel.DontEnableSystemDefaultTlsVersions

A beállítás Switch.System.ServiceModel.DontEnableSystemDefaultTlsVersions értéke beállítja false az alapértelmezett konfigurációt, hogy az operációs rendszer kiválaszthassa a protokollt. Egy érték az alapértelmezett értéket a legmagasabb rendelkezésre álló protokollra állítja true , legfeljebb TLS1.2-ig.

A 4.7.1-.NET-keretrendszer és újabb verziót megcélzó alkalmazások esetében ez az érték alapértelmezés szerint a következő.false A 4.7-.NET-keretrendszer vagy korábbi verziót megcélzó alkalmazások esetében ez az érték alapértelmezés szerint a következő.true

További információ a TLS-protokollokról : Kárenyhítés: TLS-protokollok. A kapcsolókkal kapcsolatos AppContext további információkért lásd: <AppContextSwitchOverrides> Element.

Biztonság konfigurálása a Windows Beállításjegyzéken keresztül

Figyelmeztetés

A beállításkulcsok beállítása a rendszer összes alkalmazására hatással van. Ezt a beállítást csak akkor használja, ha teljes körűen felügyeli a gépet, és szabályozhatja a beállításjegyzék módosításait.

Ha az egyik vagy mindkét AppContext kapcsoló beállítása nem lehetőség, az alkalmazás által használt biztonsági protokollokat az ebben a szakaszban ismertetett Windows beállításkulcsokkal szabályozhatja. Előfordulhat, hogy nem tudja használni az AppContext egyik vagy mindkét kapcsolót, ha az alkalmazás a .NET-keretrendszer 4.5.2-es vagy korábbi verzióin fut, vagy ha nem tudja szerkeszteni a konfigurációs fájlt. Ha a biztonságot a beállításjegyzékkel szeretné konfigurálni, ne adjon meg biztonsági protokollértéket a kódban; Ezzel felülbírálja a beállításjegyzék-beállítást.

A beállításkulcsok neve hasonló a megfelelő AppContext kapcsolók nevéhez, de a névhez nem DontEnable fűzött elő. A kapcsoló DontEnableSchUseStrongCrypto például AppContext a SchUseStrongCrypto nevű beállításkulcs.

Ezek a kulcsok az összes olyan .NET-keretrendszer verzióban elérhetők, amelyekhez friss biztonsági javítás van. Tekintse meg a biztonsági frissítéseket.

Az alábbiakban ismertetett összes beállításkulcsnak ugyanaz a hatása, függetlenül attól, hogy HTTP-hálózatkezelést (ServicePointManager) vagy TCP-szoftvercsatornákat (SslStream) használ.

SchUseStrongCrypto

A HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\<VERSION>: SchUseStrongCrypto beállításkulcs DWORD típusú értékkel rendelkezik. Az 1 érték miatt az alkalmazás erős titkosítást használ. Az erős titkosítás biztonságosabb hálózati protokollokat (TLS 1.2, TLS 1.1 és TLS 1.0) használ, és blokkolja a nem biztonságos protokollokat. A 0 érték letiltja az erős titkosítást. További információ: A SCH_USE_STRONG_CRYPTO jelző. Ez a beállításjegyzék-beállítás csak az ügyfélkapcsolatokat (kimenő) érinti az alkalmazásban.

Ha az alkalmazás .NET-keretrendszer 4.6-os vagy újabb verziót céloz meg, ez a kulcs alapértelmezés szerint 1 értéket ad meg. Ez egy biztonságos alapértelmezett beállítás, amelyet javasoljuk. Ha az alkalmazás a 4.5.2-.NET-keretrendszer vagy korábbi verziót célozza meg, a kulcs alapértelmezés szerint 0 lesz. Ebben az esetben explicit módon 1 értékre kell állítania az értékét.

Ennek a kulcsnak csak akkor kell 0 értékűnek lennie, ha olyan örökölt szolgáltatásokhoz kell csatlakoznia, amelyek nem támogatják az erős titkosítást, és nem frissíthetők.

SystemDefaultTlsVersions

A HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\<VERSION>: SystemDefaultTlsVersions beállításkulcs DWORD típusú értékkel rendelkezik. Az 1 érték azt eredményezi, hogy az alkalmazás lehetővé teszi az operációs rendszer számára a protokoll kiválasztását. A 0 érték miatt az alkalmazás a .NET-keretrendszer által kiválasztott protokollokat használja.

<VERSION>4.0.30319-nek kell lennie (.NET-keretrendszer 4-et vagy újabb verziót) vagy 2.0.50727-et (.NET-keretrendszer 3.5 esetén).

Ha az alkalmazás a 4.7-.NET-keretrendszer vagy újabb verziót célozza meg, ez a kulcs alapértelmezés szerint 1 értéket ad meg. Ez egy biztonságos alapértelmezett beállítás, amelyet javasoljuk. Ha az alkalmazás a 4.6.1-.NET-keretrendszer vagy korábbi verziót célozza meg, a kulcs alapértelmezés szerint 0 lesz. Ebben az esetben explicit módon 1 értékre kell állítania az értékét.

További információ: Windows 10 1511-es és Windows Server 2016 Technical Preview 4-es verziójának összegző frissítése: 2016. május 10.

A .NET-keretrendszer 3.5.1-ről további információt a .NET-keretrendszer 3.5.1-ben Windows 7 SP1-en és Server 2008 R2 SP1-en futó TLS-rendszer alapértelmezett verzióinak támogatása című témakörben talál.

Az alábbiakat. A REG-fájl a beállításkulcsokat és azok változatait a legbiztonságosabb értékekre állítja be:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

Schannel-protokollok konfigurálása a Windows Beállításjegyzékben

A beállításjegyzék használatával részletesen szabályozhatja az ügyfél és/vagy a kiszolgálóalkalmazás által egyeztetett protokollokat. Az alkalmazás hálózatkezelése a Schannelen keresztül megy keresztül (ez a Biztonságos csatorna másik neve). Konfigurálásával Schannelkonfigurálhatja az alkalmazás viselkedését.

Start menü a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols beállításkulcsmal. A kulcs alatt bármilyen alkulcsot létrehozhat a készletben SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.1és TLS 1.2. Az egyes alkulcsok alatt alkulcsokat és/vagy Serveralkulcsokat Client hozhat létre. Az Client and alatt és Serveralatt létrehozhat DWORD értékeket DisabledByDefault (0 vagy 1) és Enabled (0 vagy 1).

A SCH_USE_STRONG_CRYPTO jelző

Ha engedélyezve van (alapértelmezés szerint egy AppContext kapcsoló vagy a Windows beállításjegyzéke), a .NET-keretrendszer akkor használja a SCH_USE_STRONG_CRYPTO jelölőt, amikor az alkalmazás TLS-kapcsolatot kezdeményez egy kiszolgálóval. .NET-keretrendszer átadja a jelzőt, hogy Schannel utasítsa az ismert gyenge titkosítási algoritmusok, titkosítási csomagok és TLS/SSL protokollverziók letiltására, amelyek egyébként engedélyezve lehetnek a jobb együttműködés érdekében. További információkért lásd:

A SCH_USE_STRONG_CRYPTO jelölőt az ügyfélkapcsolatok (kimenő) kapcsolatokhoz is átadja Schannel a rendszer, ha explicit módon használja a Tls (TLS 1.0), Tls11illetve Tls12SecurityProtocolType a vagy SslProtocols. A SCH_USE_STRONG_CRYPTO jelző csak olyan kapcsolatokhoz használatos, ahol az alkalmazás az ügyfél szerepét tölti be. Letilthatja a gyenge protokollokat és algoritmusokat, ha az alkalmazások a kiszolgáló szerepét töltik be a gépszintű Schannel beállításjegyzék beállításainak konfigurálásával.

Biztonsági frissítések

A cikkben ismertetett ajánlott eljárások a legutóbbi biztonsági frissítések telepítésétől függenek. Ezek a frissítések magukban foglalják a speciális .NET-keretrendszer 4.7 és újabb funkciók használatát. A legutóbbi biztonsági frissítések akkor fontosak, ha az alkalmazás a .NET-keretrendszer 4.7-es és újabb verzióin fut (még akkor is, ha egy korábbi verziót céloz).

Ha frissíteni szeretné a .NET-keretrendszer, hogy az operációs rendszer kiválaszthassa a TLS legjobb verzióját, legalább a következőket kell telepítenie:

Lásd még:

A TLS 1.2 támogatása

Ahhoz, hogy az alkalmazás egyeztetni tudja a TLS 1.2-t, az operációs rendszernek és a .NET-keretrendszer verziójának egyaránt támogatnia kell a TLS 1.2-t.

Az operációs rendszerre vonatkozó követelmények a TLS 1.2 támogatásához

A TLS 1.2 és/vagy TLS 1.1 engedélyezéséhez vagy újbóli engedélyezéséhez a TLS 1.1-et támogató rendszereken lásd a Transport Layer Security (TLS) beállításjegyzékének beállításait.

OS TLS 1.2-támogatás
Windows 10
Windows Server 2016
Alapértelmezés szerint támogatott és engedélyezett.
Windows 8.1
Windows Server 2012 R2
Alapértelmezés szerint támogatott és engedélyezett.
Windows 8.0
Windows Server 2012
Alapértelmezés szerint támogatott és engedélyezett.
Windows 7 SP1
Windows Server 2008 R2 SP1
Támogatott, de alapértelmezés szerint nincs engedélyezve. A TLS 1.2 engedélyezésének részleteiért tekintse meg a Transport Layer Security (TLS) beállításjegyzék-beállításainak weblapját.
Windows Server 2008 A TLS 1.2 és a TLS 1.1 támogatásához frissítés szükséges. Tekintse meg a Frissítés című témakört a TLS 1.1 és a TLS 1.2 támogatásának hozzáadásához a Windows Server 2008 SP2-ben.
Windows Vista Nem támogatott.

Ha tudni kívánja, hogy mely TLS/SSL protokollok vannak alapértelmezés szerint engedélyezve az Windows minden egyes verziójában, tekintse meg a TLS/SSL protokollok (Schannel SSP) című témakört.

A TLS 1.2 támogatásának követelményei a .NET-keretrendszer 3.5 esetén

Ez a táblázat a TLS 1.2 .NET-keretrendszer 3.5-ös verzióval való támogatásához szükséges operációsrendszer-frissítést mutatja be. Javasoljuk, hogy minden operációsrendszer-frissítést alkalmazzon.

OS A TLS 1.2 3.5-ös .NET-keretrendszer támogatásához szükséges minimális frissítés
Windows 10
Windows Server 2016
Összegző frissítés Windows 10 1511-es és Windows Server 2016 Technical Preview 4-es verziójához: 2016. május 10.
Windows 8.1
Windows Server 2012 R2
A Windows 8.1 és Windows Server 2012 R2 .NET-keretrendszer 3.5-ös verziójában található TLS-rendszer alapértelmezett verzióinak támogatása
Windows 8.0
Windows Server 2012
A TLS rendszer alapértelmezett verzióinak támogatása a .NET-keretrendszer 3.5-ben Windows Server 2012
Windows 7 SP1
Windows Server 2008 R2 SP1
A .NET-keretrendszer 3.5.1 Windows 7 SP1-en és Server 2008 R2 SP1-en futó alapértelmezett TLS-rendszerverziók támogatása
Windows Server 2008 A .NET-keretrendszer 2.0 SP2 Windows Vista SP2-n és Server 2008 SP2-n futó TLS rendszer alapértelmezett verzióinak támogatása
Windows Vista Nem támogatott