.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?
- Doğrudan API'leri System.Net kullanarak (örneğin, System.Net.Http.HttpClient ve System.Net.Security.SslStream).
- Doğrudan ad alanını kullanan WCF istemcilerini ve hizmetlerini kullanma System.ServiceModel .
.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 denetleme bölümünü kontrol edin ve kodunuzu
target framework
doğrulamayı öğrenin. - TLS sürümünü açıkça belirtmeyin; örneğin, açık
SslProtocols
bir parametre alan yöntemininSslStream
aşırı yüklemelerini kullanmayın.- Bu şekilde kodunuz işletim sisteminin TLS sürümüne karar vermesine izin verir.
- ayarlamanız ServicePointManager.SecurityProtocolgerekiyorsa olarak ayarlayın SecurityProtocolType.SystemDefault. Bu, işletim sistemi varsayılanı da kullanır.
- Açık
SslProtocols
bir parametre alan yöntemininSslStream
aşırı yüklemelerini kullanmanız gerekiyorsa bağımsız değişken olarak geçirinSslProtocols.SystemDefault
. 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.None
açıkça yapılandırılmışsa, WCF NetTcp aktarımını kullanırken işletim sistemi varsayılan ayarını kullanır.
GitHub sorunu aktarım katmanı güvenliği (TLS) en iyi yöntemleri .NET Framework ile bu belge hakkında sorular sorabilirsiniz.
Kodunuzu denetleme ve kod değişiklikleri yapma
ASP.NET uygulamaları için web.config öğesini inceleyerek <system.web><httpRuntime targetFramework>
.NET Framework'ün hedeflenen sürümünü kullandığınızı doğrulayın.
Windows Forms ve diğer uygulamalar için bkz . Nasıl yapılır: .NET Framework 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ı TLS kullanacak currently considered secure versions
şekilde yapılandırma 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 özelliği için ServicePointManager.SecurityProtocol varsayılan SecurityProtocolType.SystemDefaultolarak olarak ayarlanmış bir değer ayarlamayın.
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çeneğini elde etmek için, mümkünse, açık SslProtocols bir parametre alan yönteminin aşırı yüklemelerini SslStream kullanmayın. Aksi takdirde, geçirin 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 SslProtocols bir parametre alan yönteminin aşırı yüklemelerini SslStream kullanmayın (TCP yuva 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
Aşağıdaki bölümlerde uygulamanızı TLS kullanacak currently considered secure versions
şekilde yapılandırma 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, üzerinde SslProtocolsayarlanabilir. SslProtocols.None
'den Transporterişilebilir. NetTcpSecurity.Transport
'den Securityerişilebilir.
Özel bağlama kullanıyorsanız:
- WCF'yi, işletim sisteminin kullanılacak SslProtocols.Noneşekilde ayarlayarak SslProtocols en iyi güvenlik protokollerini seçmesine izin verecek şekilde yapılandırın.
- Veya yapılandırma yolu
system.serviceModel/bindings/customBinding/binding/sslStreamSecurity:sslProtocols
ile kullanılan protokolü yapılandırın.
Özel bağlama kullanmıyorsanız ve WCF bağlamanızı yapılandırmayı kullanarak ayarlıyorsunuzsa, yapılandırma yolu system.serviceModel/bindings/netTcpBinding/binding/security/transport:sslProtocols
ile kullanılan protokolü 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. AppContextSwitch Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols
olarak ayarlandığında true
WCF, 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ırma 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 olarak ister bunları açıkça ayarlayarak, mümkünse anahtarlar olmalıdır false
. 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)
İSTER HTTP ağı () ister TCP yuva ağı (ServicePointManagerSslStream ) yapıyor olun, anahtarlar aynı etkiye sahiptir.
Switch.System.Net.DontEnableSchUseStrongCrypto
değeri, Switch.System.Net.DontEnableSchUseStrongCrypto
uygulamanızın false
güçlü şifreleme kullanmasına neden olur. için DontEnableSchUseStrongCrypto
değeri false
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. Bu anahtar yalnızca uygulamanızdaki istemci (giden) bağlantılarını etkiler.
Uygulamanız .NET Framework 4.6.2 veya sonraki sürümleri hedeflediyse, bu anahtar varsayılan olarak olur false
. Bu, güvenli bir varsayılan değerdir ve bunu öneririz. Uygulamanız .NET Framework 4.6.2 üzerinde çalışıyorsa ancak önceki bir sürümü hedeflediyse, anahtar varsayılan olarak olur true
. Bu durumda, bunu açıkça olarak false
olarak ayarlamanız gerekir.
DontEnableSchUseStrongCrypto
yalnızca true
güçlü şifrelemeyi desteklemeyen ve yükseltilmeyen eski hizmetlere bağlanmanız gerekiyorsa değeri olmalıdır.
Switch.System.Net.DontEnableSystemDefaultTlsVersions
değeri, Switch.System.Net.DontEnableSystemDefaultTlsVersions
uygulamanızın false
işletim sisteminin protokolü seçmesine izin vermesine neden olur. değeri, uygulamanızın true
.NET Framework tarafından seçilen protokolleri kullanmasına neden olur.
Uygulamanız .NET Framework 4.7 veya sonraki sürümleri hedeflediyse, bu anahtar varsayılan olarak olur false
. 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ü hedeflediyse, anahtar varsayılan olarak olur true
. Bu durumda, bunu açıkça olarak false
olarak ayarlamanız gerekir.
WCF uygulamaları için
Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols
değeri, Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols
uygulamanızın false
sertifika kimlik bilgilerini kullanarak ileti güvenliği için içinde ServicePointManager.SecurityProtocols
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 DontEnable
ada eklenmemiştir. Örneğin, AppContext
anahtar DontEnableSchUseStrongCrypto
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.
SystemDefaultTlsVersions
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 Technical Preview 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). yapılandırarak Schannel
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.3
kümesinde TLS 1.2
herhangi bir alt anahtar oluşturabilirsiniz. Bu alt anahtarların her biri altında ve/veya Server
alt anahtarları Client
oluşturabilirsiniz. ve altında Client
DWORD değerleri DisabledByDefault
(0 veya 1) ve Enabled
(0 veya 1) oluşturabilirsinizServer
.
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 veya Windows Kayıt Defteri tarafından), uygulamanız bir sunucuya SCH_USE_STRONG_CRYPTO
TLS bağlantısı başlattığında .NET Framework bayrağını kullanır.AppContext
.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.
veya öğesinin SCH_USE_STRONG_CRYPTO
veya numaralandırılmış değerlerini SslProtocolsSecurityProtocolType açıkça kullandığınızda Tls11
istemci (giden) bağlantıları için bayrağı da geçirilir Schannel
Tls12
. 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.