Megosztás a következőn keresztül:


A Transport Layer Security (TLS) ajánlott eljárásai a .NET-keretrendszerrel

Megjegyzés

Ez a lap .NET-keretrendszer TLS-információkat tartalmaz. Ha .NET TLS-információkat keres, tekintse meg a TLS/SSL ajánlott eljárásait

.NET-keretrendszer támogatja a Transport Layer Security (TLS) protokoll használatát a hálózati kommunikáció védelméhez.

Mi az a Transport Layer Security (TLS)?

Figyelmeztetés

A TLS 1.0 és 1.1 visszavonták az RFC8996 által. Ez a dokumentum csak a TLS 1.2-et és a TLS 1.3-at ismerteti.

A Transport Layer Security (TLS) protokoll a szabvány iparági legújabb verziója, amely az interneten keresztül kommunikáló információk adatvédelmi védelmének elősegítésére lett kialakítva. A TLS 1.3 egy szabvány, amely biztonsági fejlesztéseket biztosít a korábbi verziókhoz képest. Ez a cikk a TLS protokollt használó .NET-keretrendszer alkalmazások védelmére vonatkozó javaslatokat mutat be.

Ki használhatja ezt a dokumentumot?

TLS-támogatás a .NET-keretrendszerben

Mivel a .NET-keretrendszer a Windowstól Schannel függ, az operációs rendszertől függ, hogy mely verziók tárgyalhatók le, és melyik verziót fogja használni.

Íme egy frissített példatábla, amely az operációs rendszer különböző verzióinak és .NET-keretrendszer célverzióinak legmagasabb támogatott TLS-verzióját mutatja be:

.NET-keretrendszer célverzió Windows 10 Windows 11
3,5 TLS 1.2 TLS 1.2
4.6.2 TLS 1.2 TLS 1.3
4.7 TLS 1.2 TLS 1.3
4.7.1 TLS 1.2 TLS 1.3
4.7.2 TLS 1.2 TLS 1.3
4.8 TLS 1.2 TLS 1.3
4.8.1 TLS 1.2 TLS 1.3

További információ: TLS protokollverzió támogatása a Schannelben.

Ajánlások

  • TLS 1.3 esetén a cél .NET-keretrendszer 4.8 vagy újabb. Nézze meg a Kód auditálási szakaszt, hogyan ellenőrizheti target framework.
  • Ne adja meg explicit módon a TLS-verziót, azaz ne használja azoknak a metódusoknak a túlterhelését SslStream , amelyek explicit SslProtocols paramétert vesznek igénybe.
    • Így a kód lehetővé teszi, hogy az operációs rendszer döntsön a TLS-verzióról.
    • Ha be kell állítania a ServicePointManager.SecurityProtocol-t, akkor állítsa be a SecurityProtocolType.SystemDefault-re. Ez az operációs rendszer alapértelmezett beállítását is használja.
    • Ha az SslStream metódus túlterheléseit kell használnia, amelyek egy explicit SslProtocols paramétert fogadnak, akkor a SslProtocols.SystemDefault-t adja meg argumentumként. Ez az operációs rendszer alapértelmezett beállítását is használja.
  • Végezzen alapos kódvizsgálatot annak ellenőrzéséhez, hogy nem ad-e meg kifejezetten TLS- vagy SSL-verziót.

Figyelmeztetés

Ne használja SslProtocols.Default, mert a TLS-verziót SSL3-ra és elavult TLS 1.0-ra állítja be.

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 TLS-protokollokat.
  • Az operációs rendszer blokkolja a nem biztonságosnak talált protokollokat (pl. SSL3 és TLS 1.0).

Ez a cikk bemutatja, hogyan engedélyezheti az alkalmazás által használt és futtatott .NET-keretrendszer verziójához elérhető legerősebb biztonságot. Ha egy alkalmazás kifejezetten beállít egy biztonsági protokollt és -verziót, az minden más alternatívát kizár, és kikapcsolja a .NET-keretrendszer és az operációs rendszer alapértelmezett viselkedését. Ha azt szeretné, hogy az alkalmazás tárgyalni tudjon egy TLS 1.3-kapcsolatról, az alacsonyabb TLS-verzióra való explicit beállítás megakadályozza a TLS 1.3-kapcsolatot.

Ha nem tudja elkerülni a protokollverzió explicit megadását, határozottan javasoljuk, hogy adja meg a TLS 1.2-es vagy a TLS 1.3-at (azaz).currently considered secure 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éma megoldásáról szóló tanulmányt.

A WCF a TLS 1.2-t támogatja alapértelmezettként a .NET-keretrendszer 4.7-ben. A 4.7.1-es .NET-keretrendszer kezdve a WCF alapértelmezés szerint az operációs rendszer által konfigurált verzióra lesz beállítva. Ha egy alkalmazás kifejezetten a SslProtocols.None beállítással van konfigurálva, a WCF az operációs rendszer alapértelmezett beállítását használja a NetTcp-átvitel során.

A dokumentummal kapcsolatos kérdéseket a GitHub Transport Layer Security (TLS) ajánlott eljárások a .NET-keretrendszerrel című kérdésbe teheti fel.

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

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 célként megadott verzióját használja-e.

Windows Forms és egyéb alkalmazások esetén lásd: A .NET-keretrendszer egy 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 explicit módon kell beállítania egy biztonsági protokollt

Ha explicit módon kell beállítania egy biztonsági protokollt ahelyett, hogy engedélyezi a .NET vagy az operációs rendszer számára a biztonsági protokoll kiválasztását, válassza az alábbi protokollokat:

  • A .NET-keretrendszer 3.5 esetén: TLS 1.2
  • .NET-keretrendszer 4.6.2 vagy újabb verzió esetén: TLS 1.3

Ha nem találja a megadott protokollokat az enumerálásban, bővítményfájlként is hozzáadhatja őket. Lásd alább:

SslProtocolExtensions.cs

namespace System.Security.Authentication
{
    public static class SslProtocolsExtensions
    {
        // For .NET Framework 3.5
        public const SslProtocols Tls12 = (SslProtocols)3072;
        // For .NET Framework 4.6.2 and later
        public const SslProtocols Tls13 = (SslProtocols)12288;
    }
}

SecurityProtocolExtensions.cs

using System.Security.Authentication;

namespace System.Net
{
    public static class SecurityProtocolTypeExtensions
    {
        // For .NET Framework 3.5
        public const SecurityProtocolType Tls12 = (SecurityProtocolType)SslProtocolsExtensions.Tls12;
        // For .NET Framework 4.6.2 and later
        public const SecurityProtocolType Tls13 = (SecurityProtocolType)SslProtocolsExtensions.Tls13;
    }
}

További információ: A TLS rendszer alapértelmezett verzióinak támogatása a Windows 8.1 és Windows Server 2012 R2 .NET-keretrendszer 3.5-ös verziójában.

System.Net API-khoz (HttpClient, SslStream)

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

Az alábbi szakaszok bemutatják, hogyan konfigurálhatja az alkalmazást a TLS használatára currently considered secure versions . (TLS 1.2, TLS 1.3)

HttpClient és HttpWebRequest esetén

ServicePointManager.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 lehetséges, ne állítson be értéket a ServicePointManager.SecurityProtocol tulajdonsághoz, mert alapértelmezés szerint SecurityProtocolType.SystemDefault az értéke.

Mivel a SecurityProtocolType.SystemDefault beállítás miatt 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. A Windows 10 például TLS 1.2-t, míg a Windows 11 TLS 1.3-at használ.

SslStream esetén

SslStreama .NET-keretrendszer 4.7-es és újabb verzióival az operációs rendszer alapértelmezés szerint a legjobb biztonsági protokollt és verziót választja. Ha meg akarja szerezni az operációs rendszer alapértelmezett legjobb választását, lehetőség szerint ne használja a SslStream metódus túlterheléseit, amelyek explicit SslProtocols paramétert igényelnek. Ellenkező esetben adja át 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 azoknak a metódusoknak vagy függvényeknek a túlterhelését SslStream, amelyek explicit SslProtocols paramétert vesznek figyelembe (TCP foglalatok esetén történő hálózatkezeléshez). Amikor áttéríti az alkalmazást a .NET-keretrendszer 4.7 vagy későbbi verzióira, a bevált gyakorlatok szerint jár el.

WCF-alkalmazásokhoz

Ha az alkalmazás a .NET Framework 4.7 vagy újabb verzióit célozza meg

Az alábbi szakaszok bemutatják, hogyan konfigurálhatja az alkalmazást a TLS használatára currently considered secure versions . (TLS 1.2, TLS 1.3)

TCP protokoll használata átviteli biztonsággal tanúsítvány-alapú hitelesítéssel

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-s és újabb verziói a TLS 1.2 használatára vannak konfigurálva, és engedélyezik a kapcsolatokat a TLS 1.1 vagy a TLS 1.0 használatával. Konfigurálja a WCF-et úgy, hogy az operációs rendszer a legjobb biztonsági protokollt válassza ki, az Ön kötését SslProtocols.None használatára konfigurálva. Ez beállítható a következőn: SslProtocols. SslProtocols.None elérhető Transport-ről/-ról. NetTcpSecurity.Transport elérhető Security-ból/-ből.

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 azáltal, hogy beállítja a SslProtocols használatát SslProtocols.None-re.
  • 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 útvonalhoz system.serviceModel/bindings/netTcpBinding/binding/security/transport:sslProtocolshasznált protokollt.

Az Üzenetbiztonság használata 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. Amikor a AppContextSwitchSwitch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols be van állítva true, a WCF a legjobb protokollt választja, legfeljebb TLS 1.0-ig.

Ha az alkalmazás 4.7-nél korábbi .NET-keretrendszer-verziót céloz meg

Az alábbi szakaszok bemutatják, hogyan konfigurálhatja az alkalmazást a TLS használatára currently considered secure versions . (TLS 1.2, TLS 1.3)

A 4.6.2-.NET-keretrendszer használata TCP átviteli biztonság használatával tanúsítvány hitelesítő adataival

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 lásd az előző szakaszt: WCF TCP-átvitel használata átvitelbiztonsággal és tanúsítványhitelesítő adatokkal.

A 3.5-ös .NET-keretrendszer használata a TCP-átvitel biztonságával tanúsítvány hitelesítő adataival

A WCF-keretrendszer ezen verziói kifejezetten az SSL 3.0 és a TLS 1.0 értékek használatára vannak megadva. Ezek az értékek nem módosíthatók. A TLS 1.2 használatához frissítenie kell a .NET Framework 4.6.2-es vagy újabb verzióira, és át kell állnia ezekre.

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

Az ebben a szakaszban ismertetett AppContext-kapcsolók akkor relevánsak, ha az alkalmazás a 4.6.2-es vagy újabb verziót .NET-keretrendszer célozza vagy futtatja. Akár alapértelmezés szerint, akár explicit módon, a kapcsolóknak lehetőség szerint 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ó(ok)t.

System.Net API-khoz (HttpClient, SslStream)

A kapcsolók ugyanazt a hatást érik el, függetlenül attól, hogy HTTP-hálózatkezelést (ServicePointManager) vagy TCP-hálózatkezelést (SslStream) használ.

Switch.System.Net.DontEnableSchUseStrongCrypto

Ez az falseSwitch.System.Net.DontEnableSchUseStrongCrypto érték azt eredményezi, hogy az alkalmazás erős titkosítást használ. A false értéke a DontEnableSchUseStrongCrypto esetén biztonságosabb hálózati protokollokat használ (TLS 1.2 és TLS 1.1), és blokkolja a nem biztonságos protokollokat. További információ: A SCH_USE_STRONG_CRYPTO jelző. A true érték letiltja az alkalmazás erős titkosítását. Az alkalmazásban ez a kapcsoló csak a kimenő ügyfélkapcsolatokat érinti.

Ha az alkalmazás .NET-keretrendszer 4.6.2-s vagy újabb verziót céloz 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 a .NET-keretrendszer 4.6.2-es verzióján fut, de egy korábbi verziót céloz meg, akkor a kapcsoló alapértelmezettként a true értékre van állítva. Ebben az esetben explicit módon állítsa be a következőre false: .

DontEnableSchUseStrongCrypto csak akkor kapjon értéket true, ha olyan régebbi 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

Ha a Switch.System.Net.DontEnableSystemDefaultTlsVersions mezőhöz a false értéket állítja be, az alkalmazás lehetővé teszi az operációs rendszer számára, hogy kiválassza a protokollt. Egy érték azt true eredményezi, hogy az alkalmazás a .NET-keretrendszer által kiválasztott protokollokat használja.

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

WCF-alkalmazásokhoz

Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols

Az Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols esetében az false érték azt eredményezi, hogy az alkalmazás a ServicePointManager.SecurityProtocols-ben meghatározott értéket használja az üzenetbiztonsághoz tanúsítvány hitelesítő adatokkal. A legmagasabb rendelkezésre álló protokollt használó érték true , legfeljebb TLS1.0

A .NET-keretrendszer 4.7 és újabb verziókat megcélzó alkalmazások esetében ez az érték alapértelmezés szerint false. 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

Az alapértelmezett konfiguráció értéke falseSwitch.System.ServiceModel.DontEnableSystemDefaultTlsVersions , amely lehetővé teszi az operációs rendszer számára a protokoll kiválasztását. A true értéket az alapértelmezett beállításként megadva a rendelkezésre álló legmagasabb protokollt állíthatjuk be, legfeljebb a TLS1.2-ig.

A 4.7.1-es és az újabb verziójú .NET-keretrendszer alkalmazásait 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 célzó alkalmazások esetében ez az érték alapértelmezés szerint a következő.true

A TLS-protokollokkal kapcsolatos további információkért lásd : Kárenyhítés: TLS-protokollok. További információkért a AppContext kapcsolókról 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 mértékben 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 3.5-ös verzión 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 nincs DontEnable előtag a névnél. Például a AppContext kapcsoló DontEnableSchUseStrongCrypto a SchUseStrongCrypto nevű beállításkulcs.

Ezek a kulcsok minden .NET-keretrendszer verzióban elérhetők.

Az alábbiakban ismertetett összes beállításkulcsnak ugyanaz a hatása van, függetlenül attól, hogy HTTP-hálózati kommunikációt (ServicePointManager) vagy TCP aljzatokat (SslStream) használ.

SchUseStrongCrypto

A HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\<VERSION>: SchUseStrongCrypto beállításjegyzék-bejegyzésnek DWORD típusú értéke van. 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 és TLS 1.1) használ, és blokkolja a nem biztonságos protokollokat. A 0 érték letiltja az erős titkosítást. További információ: The SCH_USE_STRONG_CRYPTO flag. Ez a beállításjegyzék-beállítás csak az alkalmazás ügyfélkapcsolatait (kimenő) érinti.

Ha az alkalmazás .NET-keretrendszer 4.6-os vagy újabb verziót céloz meg, ez a kulcs alapértelmezett értéke 1. 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 0 értékűnek kell 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.

RendszerAlapértelmezettTlsVerziók

A HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\<VERSION>: SystemDefaultTlsVersions beállításjegyzék-bejegyzésnek DWORD típusú értéke van. Az 1 érték azt eredményezi, hogy az alkalmazás engedélyezi 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>V4.0.30319-nek (4..NET-keretrendszer vagy újabb esetén) vagy 2.0.50727-nek kell lennie (.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ékű. 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ó: Kumulatív frissítés a Windows 10 1511-es és a Windows Server 2016 Technical Preview 4-es verziójához: 2016. május 10.

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

A következő . A REG-fájl a beállításjegyzék bejegyzéseit és változatait a legbiztonságosabb értékekre állítja:

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 kiszolgálóalkalmazás által egyeztetett protokollokat. Az alkalmazás hálózatkezelése a Schannelen keresztül történik (ami a Biztonságos csatorna másik neve). A(z) Schannel beállításával konfigurálhatja az alkalmazás viselkedését.

Kezdje a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols beállításkulcsgal. A kulcs alatt létrehozhatja a készlet TLS 1.2bármely alkulcsát. TLS 1.3 Mindegyik alkulcs alatt létrehozhat alkulcsokat Client és/vagy Server. Alatta és alatta Client létrehozhat DWORD-értékeket Server (0 vagy 1) és DisabledByDefault (0 vagy Enabled1).

További információ: TLS beállításjegyzék-beállítások – Schannel

A SCH_USE_STRONG_CRYPTO jelző

Ha engedélyezve van (alapértelmezés szerint egy kapcsoló vagy a Windows Registry által), a .NET-keretrendszer a SCH_USE_STRONG_CRYPTO jelölőt használja, amikor az alkalmazás TLS-kapcsolatot kezdeményez egy kiszolgálóval. .NET-keretrendszer átadja a jelzőt a Schannel elemnek, hogy letiltsa az ismert gyenge titkosítási algoritmusokat, titkosítási csomagokat és TLS/SSL protokollverziókat, amelyek egyébként engedélyezve lehetnek a jobb együttműködés érdekében. További információk:

A SCH_USE_STRONG_CRYPTO jelölőt a rendszer a kliens (kimenő) kapcsolatokhoz is továbbítja Schannel, amikor explicit módon az Tls11 vagy az Tls12 enumerált értékeket használja SecurityProtocolType vagy SslProtocols. A SCH_USE_STRONG_CRYPTO jelző csak olyan kapcsolatokhoz használható, 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.