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ó:
- Közvetlenül az System.Net API-k használatával (például System.Net.Http.HttpClient és System.Net.Security.SslStream).
- WCF-ügyfelek és -szolgáltatások közvetlen használata a System.ServiceModel névtér használatá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:sslProtocols
haszná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:sslProtocols
haszná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 DontEnableSystemDefaultTlsVersions
AppContext
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 false
Switch.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 false
DontEnableSchUseStrongCrypto
. 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 true
vá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 false
Switch.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 true
vá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 Schannel
konfigurá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 Server
alkulcsokat Client
hozhat létre. Az Client
and alatt és Server
alatt 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), Tls11
illetve Tls12
SecurityProtocolType 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:
- A .NET-keretrendszer 2017. augusztusi összegző minőségi frissítés előzetese.
- Vagy a 2017. szeptemberi biztonsági és minőségi összegző .NET-keretrendszer.
Lásd még:
- .NET Framework Versions and Dependencies
- Útmutató: A telepített .NET-keretrendszer verziók meghatározása.
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 |