Aracılığıyla paylaş


.NET Framework ile Aktarım Katmanı Güvenliği (TLS) en iyi yöntemleri

Not

Bu sayfa .NET Framework TLS bilgilerini içerir. .NET TLS bilgilerini arıyorsanız bkz. TLS/SSL En İyi Yöntemleri

.NET Framework, ağ iletişimlerinin güvenliğini sağlamak için Aktarım Katmanı Güvenliği (TLS) protokolünün kullanımını destekler.

Aktarım Katmanı Güvenliği (TLS) nedir?

Uyarı

TLS 1.0 ve 1.1 RFC8996 tarafından kullanım dışı bırakılmıştır. Bu belge yalnızca TLS 1.2 ve TLS 1.3'i kapsar.

Aktarım Katmanı Güvenliği (TLS) protokolü, İnternet üzerinden iletişim kuran bilgilerin gizliliğini korumaya yardımcı olmak için tasarlanmış, standardın endüstrinin en son sürümüdür. TLS 1.3 , önceki sürümlere göre güvenlik iyileştirmeleri sağlayan bir standarttır. Bu makalede, TLS protokolünü kullanan .NET Framework uygulamalarının güvenliğini sağlama önerileri sağlanır.

Bu belgeden kimler yararlanabilir?

.NET Framework'te TLS desteği

.NET Framework Windows'a Schannel bağımlı olduğundan, hangi sürümlerin üzerinde anlaşılabileceğini ve hangi sürümün kullanılacağını işletim sistemine bağlıdır.

aşağıda, işletim sistemi sürümlerinin ve .NET Framework hedef sürümlerinin farklı bileşimleri için desteklenen en yüksek TLS sürümünü gösteren güncelleştirilmiş bir örnek tablo verilmiştir:

.NET Framework Hedef Sürümü 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

Daha fazla bilgi için bkz. Schannel'de TLS protokol sürümü desteği.

Öneriler

  • TLS 1.3 için hedef .NET Framework 4.8 veya üzeri. Kodunuzu doğrulamak için Kodunuzu Denetleyin bölümünü kontrol edin ve target framework bölümünü nasıl doğrulayacağınız hakkında bilgi edinin.
  • TLS sürümünü açıkça belirtmeyin; örneğin, açık SslStream bir parametre alan yönteminin SslProtocols aşırı yüklemelerini kullanmayın.
    • Bu şekilde kodunuz işletim sisteminin TLS sürümüne karar vermesine izin verir.
    • Ayarlamanız gerekiyorsa ServicePointManager.SecurityProtocol, onu SecurityProtocolType.SystemDefault olarak ayarlayın. Bu, işletim sistemi varsayılanı da kullanır.
    • Eğer açık bir SslStream parametresi alan SslProtocols yöntem aşırı yüklemelerini kullanmanız gerekiyorsa, SslProtocols.SystemDefault'yi bağımsız değişken olarak geçirin. Bu, işletim sistemi varsayılanı da kullanır.
  • TlS veya SSL sürümünü açıkça belirtmediğinizden emin olmak için kapsamlı bir kod denetimi gerçekleştirin.

Uyarı

TLS sürümünü SSL3 ve TLS 1.0 olarak ayarladığından ve bu sürümün kullanımdan kaldırıldığı için kullanmayın SslProtocols.Default.

Uygulamanız işletim sisteminin TLS sürümünü seçmesine izin veriyorsa:

  • Gelecekte eklenen yeni TLS protokollerinden otomatik olarak yararlanır.
  • İşletim sistemi, güvenli olmadığı bulunan protokolleri engeller (örneğin SSL3 ve TLS 1.0).

Bu makalede, uygulamanızın hedefleyip üzerinde çalıştığı .NET Framework sürümü için kullanılabilir en güçlü güvenliğin nasıl etkinleştirileceği açıklanmaktadır. Bir uygulama açıkça bir güvenlik protokolü ve sürümü belirlediğinde, başka bir alternatiften vazgeçer ve .NET Framework ve işletim sistemi varsayılan davranışından vazgeçer. Uygulamanızın TLS 1.3 bağlantısı anlaşması yapabilmesini istiyorsanız, açıkça daha düşük bir TLS sürümüne ayarlamak TLS 1.3 bağlantısını engeller.

Açıkça bir protokol sürümü belirtmekten kaçınamıyorsanız, TLS 1.2 veya TLS 1.3 (yani currently considered secure) belirtmenizi kesinlikle öneririz. TLS 1.0 bağımlılıklarını tanımlama ve kaldırma konusunda rehberlik için TLS 1.0 Sorununu Çözme teknik incelemesini indirin.

WCF, .NET Framework 4.7'de varsayılan olarak TLS 1.2'yi destekler. .NET Framework 4.7.1'den başlayarak, WCF varsayılan olarak işletim sistemi tarafından yapılandırılmış sürümü kullanır. Bir uygulama ile SslProtocols.Noneaçıkça yapılandırılmışsa, WCF NetTcp aktarımını kullanırken işletim sistemi varsayılan ayarını kullanır.

GitHub sorununda aktarım katmanı güvenliği (TLS) en iyi yöntemleri hakkında .NET Framework ile bu belge hakkında sorular sorabilirsiniz.

Kodunuzu denetleme ve kod değişiklikleri yapma

ASP.NET uygulamaları için web.config dosyasının elementini inceleyerek .NET Framework'ün hedeflenen sürümünü kullandığınızdan emin olun.

Windows Forms ve diğer uygulamalar için bkz Nasıl Yapılır: .NET Framework'ün Bir Sürümünü Hedefleme.

Belirli bir TLS veya SSL sürümü kullanmadığınızı doğrulamak için aşağıdaki bölümleri kullanın.

Açıkça bir Güvenlik Protokolü ayarlamanız gerekiyorsa

.NET'in veya işletim sisteminin güvenlik protokollerini seçmesine izin vermek yerine açıkça bir güvenlik protokolü ayarlamanız gerekiyorsa şu protokolleri seçin:

  • .NET Framework 3.5 için: TLS 1.2
  • .NET Framework 4.6.2 veya üzeri için: TLS 1.3

Belirtilen protokolleri sabit listesinde bulamazsanız, bunları bir uzantı dosyası olarak ekleyebilirsiniz. Aşağıya bakın:

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;
    }
}

Daha fazla bilgi için bkz . Windows 8.1 ve Windows Server 2012 R2 üzerinde .NET Framework 3.5'te bulunan TLS Sistem Varsayılan Sürümleri desteği.

System.Net API'leri için (HttpClient, SslStream)

Uygulamanız .NET Framework 4.7 veya sonraki sürümleri hedeflediyse

Aşağıdaki bölümlerde, uygulamanızın TLS'nin currently considered secure versions'ünü kullanacak şekilde nasıl yapılandırılacağı gösterilmektedir. (TLS 1.2, TLS 1.3)

HttpClient ve HttpWebRequest için

ServicePointManager, .NET Framework 4.7 ve sonraki sürümlerini kullanarak işletim sisteminde yapılandırılan varsayılan güvenlik protokollerini kullanır. Varsayılan işletim sistemi seçimini almak için, mümkünse ServicePointManager.SecurityProtocol özelliği için değer ayarlamayın; bu varsayılan olarak SecurityProtocolType.SystemDefault olarak ayarlıdır.

Ayarın SecurityProtocolType.SystemDefault işletim sistemi tarafından yapılandırılan varsayılan güvenlik protokollerini kullanmasına neden olduğundan ServicePointManager , uygulamanız üzerinde çalıştırıldığı işletim sistemine göre farklı çalışabilir. Örneğin, Windows 10 TLS 1.2 kullanırken Windows 11 TLS 1.3 kullanır.

SslStream için

SslStream, .NET Framework 4.7 ve sonraki sürümleri kullanarak varsayılan olarak en iyi güvenlik protokol ve sürümünü seçen işletim sistemidir. Varsayılan işletim sistemi en iyi seçimini elde etmek için, mümkünse SslStream ile açıkça belirtilmiş SslProtocols parametresi alan metodun aşırı yüklemelerini kullanmayın. Aksi takdirde, devam edin SslProtocols.None. kullanmamanızı Defaultöneririz; ayarı SslProtocols.Default SSL 3.0 /TLS 1.0 kullanımını zorlar ve TLS 1.2'yi engeller.

özelliği için SecurityProtocol bir değer ayarlamayın (HTTP ağı için).

Açıkça belirtilen SslProtocols parametresi alan SslStream yöntemi aşırı yüklemelerini kullanmayın (TCP soket ağı için). Uygulamanızı .NET Framework 4.7 veya sonraki sürümlerine yeniden hedeflediğinizde en iyi yöntemler önerisini izlersiniz.

WCF Uygulamaları için

Uygulamanız .NET Framework 4.7 veya sonraki sürümleri hedeflediyse

Uygulamanızı currently considered secure versions TLS kullanacak şekilde yapılandırmanın nasıl yapılacağı aşağıdaki bölümlerde gösterilmektedir. (TLS 1.2, TLS 1.3)

Sertifika kimlik bilgileriyle aktarım güvenliğini kullanarak TCP aktarımını kullanma

WCF, .NET Framework'ün geri kalanıyla aynı ağ yığınını kullanır.

4.7.1'i hedeflediyseniz WCF, açıkça yapılandırılmadığı sürece işletim sisteminin varsayılan olarak en iyi güvenlik protokollerini seçmesine izin verecek şekilde yapılandırılır:

  • Uygulama yapılandırma dosyanızda.
  • Veya kaynak kodundaki uygulamanızda.

Varsayılan olarak, .NET Framework 4.7 ve sonraki sürümleri TLS 1.2 kullanacak şekilde yapılandırılır ve TLS 1.1 veya TLS 1.0 kullanan bağlantılara izin verir. WCF'yi, bağlamanızı kullanacak SslProtocols.Noneşekilde yapılandırarak işletim sisteminin en iyi güvenlik protokollerini seçmesine izin verecek şekilde yapılandırın. Bu, SslProtocols üzerinde ayarlanabilir. SslProtocols.None 'den Transporterişilebilir. NetTcpSecurity.Transport 'den Securityerişilebilir.

Özel bağlama kullanıyorsanız:

  • WCF'yi, işletim sisteminin en iyi güvenlik protokolünü seçmesine izin verecek şekilde, SslProtocols kullanarak SslProtocols.None ayarlayın.
  • Veya yapılandırma yolu system.serviceModel/bindings/customBinding/binding/sslStreamSecurity:sslProtocolsile kullanılan protokolü yapılandırın.

Özel bir bağlama kullanmıyorsanız ve WCF bağlamanızı yapılandırma kullanarak ayarlıyorsanız, kullanılan protokolü system.serviceModel/bindings/netTcpBinding/binding/security/transport:sslProtocols yapılandırma yoluyla ayarlayın.

İleti Güvenliği'ni sertifika kimlik bilgileriyle kullanma

.NET Framework 4.7 ve sonraki sürümleri varsayılan olarak özelliğinde SecurityProtocol belirtilen protokolü kullanır. AppContextSwitchSwitch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols olarak ayarlandığında trueWCF, TLS 1.0'a kadar en iyi protokolü seçer.

Uygulamanız 4.7'den önceki bir .NET Framework sürümünü hedeflediyse

Aşağıdaki bölümlerde uygulamanızı TLS kullanacak currently considered secure versions şekilde yapılandırmanın nasıl yapılacağı gösterilmektedir. (TLS 1.2, TLS 1.3)

Sertifika Kimlik Bilgileri ile TCP aktarım güvenliğini kullanarak .NET Framework 4.6.2 kullanma

WCF çerçevesi, açıkça bir protokol sürümü yapılandırmadığınız sürece TLS 1.2'ye kadar kullanılabilen en yüksek protokolü otomatik olarak seçer. Daha fazla bilgi için, sertifika kimlik bilgileriyle aktarım güvenliği kullanılarak WCF TCP aktarımı için önceki bölüme bakın.

Sertifika Kimlik Bilgileri ile TCP aktarım güvenliğini kullanarak .NET Framework 3.5 kullanma

WCF çerçevesinin bu sürümleri SSL 3.0 ve TLS 1.0 değerlerini kullanmak için açıkça belirtilir. Bu değerler değiştirilemez. TLS 1.2 kullanmak için NET Framework 4.6.2 veya sonraki sürümleri güncelleştirmeniz ve yeniden hedeflemeniz gerekir.

AppContext anahtarları aracılığıyla güvenliği yapılandırma (.NET Framework 4.6.2 veya sonraki sürümleri için)

Bu bölümde açıklanan AppContext anahtarları, uygulamanızın .NET Framework 4.6.2 veya sonraki sürümlerini hedeflemesi veya üzerinde çalışması durumunda geçerlidir. İster varsayılan olsun, ister açıkça ayarlayın, anahtarlar mümkünse false olmalıdır. Güvenliği bir veya her iki anahtar aracılığıyla yapılandırmak istiyorsanız, kodunuzda bir güvenlik protokolü değeri belirtmeyin; bunu yaptığınızda anahtar(lar) geçersiz kılınırdı.

System.Net API'leri için (HttpClient, SslStream)

HTTP ağ iletişimi (ServicePointManager) veya TCP soket ağ iletişimi (SslStream) yapıyor olun, anahtarlar aynı etkiye sahiptir.

Switch.System.Net.DontEnableSchUseStrongCrypto

Switch.System.Net.DontEnableSchUseStrongCrypto için false değeri, uygulamanızın güçlü şifreleme kullanmasına neden olur. için false değeri DontEnableSchUseStrongCrypto daha güvenli ağ protokolleri (TLS 1.2 ve TLS 1.1) kullanır ve güvenli olmayan protokolleri engeller. Daha fazla bilgi için bkz . SCH_USE_STRONG_CRYPTO bayrağı. değeri true , uygulamanız için güçlü şifrelemeyi devre dışı bırakır. Uygulamanızdaki bu anahtar yalnızca istemci (dışa giden) bağlantılarını etkiler.

Uygulamanız .NET Framework 4.6.2 veya daha sonraki sürümleri hedefliyorsa, bu anahtar varsayılan olarak false olur. Bu, güvenli bir varsayılan değerdir ve bunu öneririz. Uygulamanız .NET Framework 4.6.2 üzerinde çalışıyorsa, ancak daha önceki bir sürümünü hedefliyorsa, ayar varsayılan olarak true olur. Bu durumda, bunu açıkça olarak falseolarak ayarlamanız gerekir.

DontEnableSchUseStrongCrypto değeri yalnızca güçlü şifrelemeyi desteklemeyen ve yükseltilemeyen eski hizmetlere bağlanmanız gerekiyorsa true olmalıdır.

Switch.System.Net.DontEnableSystemDefaultTlsVersions

false değeri için Switch.System.Net.DontEnableSystemDefaultTlsVersions uygulamanız, işletim sisteminin protokolü seçmesine izin verir. true değeri, uygulamanızın .NET Framework tarafından seçilen protokolleri kullanmasına neden olur.

Uygulamanız .NET Framework 4.7 veya sonraki sürümleri hedefliyorsa, bu anahtar varsayılan değer olarak false ayarlanır. Bu, önerdiğimiz güvenli bir varsayılan değerdir. Uygulamanız .NET Framework 4.7 veya sonraki sürümlerinde çalışıyorsa ancak önceki bir sürümü hedefliyorsa, ayar varsayılan olarak true şeklindedir. Bu durumda, bunu açıkça olarak falseolarak ayarlamanız gerekir.

WCF uygulamaları için

Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols

Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols için false değeri, uygulamanızın sertifika kimlik bilgilerini kullanarak mesaj güvenliği için ServicePointManager.SecurityProtocols içinde tanımlanan değeri kullanmasına neden olur. değeri true , TLS1.0'a kadar kullanılabilir en yüksek protokolü kullanır

.NET Framework 4.7 ve sonraki sürümleri hedefleyen uygulamalar için bu değer varsayılan olarak kullanılır false. .NET Framework 4.6.2 ve önceki sürümleri hedefleyen uygulamalar için bu değer varsayılan olarak kullanılır true.

Switch.System.ServiceModel.DontEnableSystemDefaultTlsVersions

false değeri, Switch.System.ServiceModel.DontEnableSystemDefaultTlsVersions işletim sisteminin protokolü seçmesine izin vermek için varsayılan yapılandırmayı ayarlar. değeri true varsayılan değeri tls1.2'ye kadar kullanılabilir en yüksek protokol olarak ayarlar.

.NET Framework 4.7.1 ve sonraki sürümleri hedefleyen uygulamalar için bu değer varsayılan olarak kullanılır false. .NET Framework 4.7 ve önceki sürümleri hedefleyen uygulamalar için bu değer varsayılan olarak kullanılır true.

TLS protokolleri hakkında daha fazla bilgi için bkz . Risk Azaltma: TLS Protokolleri. Anahtarlar hakkında AppContext daha fazla bilgi için bkz <AppContextSwitchOverrides> Element. .

Windows Kayıt Defteri aracılığıyla güvenliği yapılandırma

Uyarı

Kayıt defteri anahtarlarının ayarlanması sistemdeki tüm uygulamaları etkiler. Bu seçeneği yalnızca makinenin tam denetimindeyseniz ve kayıt defterindeki değişiklikleri denetleyebiliyorsanız kullanın.

Anahtarlardan birini veya her ikisini AppContext birden ayarlamak bir seçenek değilse, uygulamanızın kullandığı güvenlik protokollerini bu bölümde açıklanan Windows Kayıt Defteri anahtarlarıyla denetleyebilirsiniz. Uygulamanız .NET Framework 3.5 üzerinde çalışıyorsa veya yapılandırma dosyasını düzenleyemiyorsanız anahtarlardan birini veya ikisini AppContext birden kullanamayabilirsiniz. Kayıt defteriyle güvenliği yapılandırmak istiyorsanız, kodunuzda bir güvenlik protokolü değeri belirtmeyin; bunu yapmak kayıt defteri ayarını geçersiz kılar.

Kayıt defteri anahtarlarının adları, karşılık gelen AppContext anahtarların adlarına benzer, ancak önüne DontEnable eklenmiş değildir. Örneğin, AppContextDontEnableSchUseStrongCrypto anahtarı, SchUseStrongCrypto adlı kayıt defteri anahtarıdır.

Bu anahtarlar tüm .NET Framework sürümlerinde kullanılabilir.

Http ağı () veya TCP yuva ağı (ServicePointManager) yapıyor olmanız fark etmeksizin, aşağıda açıklanan tüm kayıt defteri anahtarları aynı etkiye sahiptirSslStream.

SchUseStrongCrypto

HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\<VERSION>: SchUseStrongCrypto Kayıt defteri girdisi DWORD türünde bir değere sahiptir. 1 değeri uygulamanızın güçlü şifreleme kullanmasına neden olur. Güçlü şifreleme daha güvenli ağ protokolleri (TLS 1.2 ve TLS 1.1) kullanır ve güvenli olmayan protokolleri engeller. 0 değeri güçlü şifrelemeyi devre dışı bırakır. Daha fazla bilgi için bkz . SCH_USE_STRONG_CRYPTO bayrağı. Bu kayıt defteri ayarı yalnızca uygulamanızdaki istemci (giden) bağlantıları etkiler.

Uygulamanız .NET Framework 4.6 veya sonraki sürümleri hedeflediyse, bu anahtar varsayılan olarak 1 değerine sahiptir. Bu, önerdiğimiz güvenli bir varsayılan değerdir. Uygulamanız .NET Framework 4.5.2 veya önceki sürümleri hedeflediyse, anahtar varsayılan olarak 0'dır. Bu durumda, değerini açıkça 1 olarak ayarlamanız gerekir.

Bu anahtar yalnızca güçlü şifrelemeyi desteklemeyen ve yükseltilmeyen eski hizmetlere bağlanmanız gerekiyorsa 0 değerine sahip olmalıdır.

Sistem Varsayılan TLS Sürümleri

HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\<VERSION>: SystemDefaultTlsVersions Kayıt defteri girdisi DWORD türünde bir değere sahiptir. 1 değeri uygulamanızın işletim sisteminin protokolü seçmesine izin vermesine neden olur. 0 değeri uygulamanızın .NET Framework tarafından seçilen protokolleri kullanmasına neden olur.

<VERSION> v4.0.30319 (.NET Framework 4 ve üzeri için) veya v2.0.50727 (.NET Framework 3.5 için) olmalıdır.

Uygulamanız .NET Framework 4.7 veya sonraki sürümleri hedeflediyse, bu anahtar varsayılan olarak 1 değerini kullanır. Bu, önerdiğimiz güvenli bir varsayılan değerdir. Uygulamanız .NET Framework 4.6.1 veya önceki sürümleri hedeflediyse, anahtar varsayılan olarak 0'dır. Bu durumda, değerini açıkça 1 olarak ayarlamanız gerekir.

Daha fazla bilgi için bkz Windows 10 Sürüm 1511 ve Windows Server 2016 Teknik Önizleme 4: 10 Mayıs 2016 toplu güncelleştirmesi.

.NET Framework 3.5.1 hakkında daha fazla bilgi için bkz . Windows 7 SP1 ve Server 2008 R2 SP1 üzerinde .NET Framework 3.5.1'de bulunan TLS Sistem Varsayılan Sürümleri desteği.

Aşağıdaki . REG dosyası, kayıt defteri girdilerini ve bunların değişkenlerini en güvenli değerlerine ayarlar:

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

Windows Kayıt Defteri'nde Schannel protokollerini yapılandırma

İstemci ve/veya sunucu uygulamanızın anlaşma yaptığı protokoller üzerinde ayrıntılı denetim için kayıt defterini kullanabilirsiniz. Uygulamanızın ağı Schannel üzerinden gider (Güvenli Kanal için başka bir addır). Schannel öğesini ayarlayarak uygulamanızın davranışını yapılandırabilirsiniz.

Kayıt defteri anahtarıyla HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols başlayın. Bu anahtarın altında, TLS 1.2kümesinde TLS 1.3herhangi bir alt anahtar oluşturabilirsiniz. Bu alt anahtarların her birinin altında Client ve/veya Server alt anahtarlarını oluşturabilirsiniz. Client ve Server altında DWORD değerlerini DisabledByDefault (0 veya 1) ve Enabled (0 veya 1) oluşturabilirsiniz.

Daha fazla bilgi için bkz. TLS Kayıt Defteri Ayarları - Schannel

SCH_USE_STRONG_CRYPTO bayrağı

Etkinleştirildiğinde (varsayılan olarak, bir anahtar ile veya Windows Kayıt Defteri aracılığıyla), uygulamanız bir sunucuya TLS bağlantısı başlattığında .NET Framework SCH_USE_STRONG_CRYPTO bayrağını kullanır. .NET Framework, daha iyi birlikte çalışabilirlik için aksi takdirde etkinleştirilebilen bilinen zayıf şifreleme algoritmalarını, şifreleme paketlerini ve TLS/SSL protokolü sürümlerini devre dışı bırakmasını bildirmek için bayrağını Schannel iletir. Daha fazla bilgi için bkz.

SecurityProtocolType veya SslProtocols numaralandırılmış değerlerini açıkça kullandığınızda, SCH_USE_STRONG_CRYPTO bayrağı da istemci (giden) bağlantıları için SchannelTls11 ile Tls12 öğesine geçirilir. SCH_USE_STRONG_CRYPTO Bayrağı yalnızca uygulamanızın istemcinin rolünü üstlendiği bağlantılar için kullanılır. Uygulamalarınız sunucu rolünü üstlendiğinde makine genelinde Schannel kayıt defteri ayarlarını yapılandırarak zayıf protokolleri ve algoritmaları devre dışı bırakabilirsiniz.