如何在 Windows 中禁用旧 TLS 版本?

如何在 Windows 中禁用旧 TLS 版本?

使用 Windows 11,没有服务器或 IIS,只想禁用个人计算机的旧 TLS 版本,这样就无法通过这些版本进行连接,即使这意味着某些连接将失败。

我想完全禁用 TLS v1、TLS v1.1 和 TLS v1.2。

我尝试了 Internet 选项高级设置,但据我所知它们没有任何影响,而且我不知道它们为什么在那里。

我在线阅读的所有文章都是关于 Windows Server 或 IIS 的。

我正在使用 Microsoft Edge 浏览器。

我想禁用那些旧的 TLS 版本,以便在 Wireshark 中看不到除 TLS v1.3 之外的任何 TLS 连接。

答案1

这仍然不能完全满足我的需求,而且不完整,下面的评论部分有一些有价值的信息,如果您有更好的答案,请发布。


到目前为止,只找到了一种在浏览器中禁用 TLS 版本的方法,但仍然不是系统范围的,我仍然看到 Wireshark 中不时通过不安全的 TLS v1 和 TLS v1.1 建立连接,无法阻止它们,这些连接大多是由我安装的程序发起的。

对于 Microsoft Edge,TLS v1 和 TLS v1.1 默认已禁用,为了禁用 TLS v1.2,请在提升的 PowerShell 中运行以下命令:

$RegistryPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Edge\TLSCipherSuiteDenyList\'  
$Name         = '1'  
$Value        = '0xC02B' 
If (-NOT (Test-Path $RegistryPath)) {   New-Item -Path $RegistryPath -Force | Out-Null } 
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType string -Force


$RegistryPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Edge\TLSCipherSuiteDenyList\'  
$Name         = '2'  
$Value        = '0xC02F' 
If (-NOT (Test-Path $RegistryPath)) {   New-Item -Path $RegistryPath -Force | Out-Null } 
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType string -Force



$RegistryPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Edge\TLSCipherSuiteDenyList\'  
$Name         = '3'  
$Value        = '0xC02C' 
If (-NOT (Test-Path $RegistryPath)) {   New-Item -Path $RegistryPath -Force | Out-Null } 
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType string -Force


$RegistryPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Edge\TLSCipherSuiteDenyList\'  
$Name         = '4'  
$Value        = '0xC030' 
If (-NOT (Test-Path $RegistryPath)) {   New-Item -Path $RegistryPath -Force | Out-Null } 
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType string -Force


$RegistryPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Edge\TLSCipherSuiteDenyList\'  
$Name         = '5'  
$Value        = '0xCCA9' 
If (-NOT (Test-Path $RegistryPath)) {   New-Item -Path $RegistryPath -Force | Out-Null } 
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType string -Force


$RegistryPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Edge\TLSCipherSuiteDenyList\'  
$Name         = '6'  
$Value        = '0xCCA8' 
If (-NOT (Test-Path $RegistryPath)) {   New-Item -Path $RegistryPath -Force | Out-Null } 
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType string -Force


$RegistryPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Edge\TLSCipherSuiteDenyList\'  
$Name         = '7'  
$Value        = '0x009E' 
If (-NOT (Test-Path $RegistryPath)) {   New-Item -Path $RegistryPath -Force | Out-Null } 
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType string -Force



$RegistryPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Edge\TLSCipherSuiteDenyList\'  
$Name         = '8'  
$Value        = '0x009F' 
If (-NOT (Test-Path $RegistryPath)) {   New-Item -Path $RegistryPath -Force | Out-Null } 
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType string -Force

使用了以下 2 个资源: https://learn.microsoft.com/en-us/deployedge/microsoft-edge-policies#tlsciphersuitedenylist

https://wiki.mozilla.org/Security/Server_Side_TLS

仍在寻找对整个操作系统执行相同操作的方法。

更新:在 Windows 中,禁用所有密码套件,仅保留属于 TLS v1.3 的密码套件

disable-TlsCipherSuite TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
disable-TlsCipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
disable-TlsCipherSuite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
disable-TlsCipherSuite TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
disable-TlsCipherSuite TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
disable-TlsCipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
disable-TlsCipherSuite TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
disable-TlsCipherSuite TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384


disable-TlsCipherSuite TLS_RSA_WITH_AES_256_CBC_SHA
disable-TlsCipherSuite TLS_RSA_WITH_AES_128_CBC_SHA
disable-TlsCipherSuite TLS_RSA_WITH_NULL_SHA256
disable-TlsCipherSuite TLS_RSA_WITH_NULL_SHA
disable-TlsCipherSuite TLS_PSK_WITH_AES_256_GCM_SHA384
disable-TlsCipherSuite TLS_PSK_WITH_AES_128_GCM_SHA256
disable-TlsCipherSuite TLS_PSK_WITH_AES_256_CBC_SHA384
disable-TlsCipherSuite TLS_PSK_WITH_AES_128_CBC_SHA256
disable-TlsCipherSuite TLS_PSK_WITH_NULL_SHA384
disable-TlsCipherSuite TLS_PSK_WITH_NULL_SHA256


disable-TlsCipherSuite TLS_RSA_WITH_AES_128_CBC_SHA256
disable-TlsCipherSuite TLS_RSA_WITH_AES_256_CBC_SHA256
disable-TlsCipherSuite TLS_RSA_WITH_AES_128_GCM_SHA256
disable-TlsCipherSuite TLS_RSA_WITH_AES_256_GCM_SHA384
disable-TlsCipherSuite TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
disable-TlsCipherSuite TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
disable-TlsCipherSuite TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
disable-TlsCipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
disable-TlsCipherSuite TLS_AES_128_GCM_SHA256
disable-TlsCipherSuite TLS_AES_256_GCM_SHA384



Enable-TlsCipherSuite TLS_AES_128_GCM_SHA256
Enable-TlsCipherSuite TLS_AES_256_GCM_SHA384
# Added in Windows 11 https://learn.microsoft.com/en-us/windows/win32/secauthn/tls-cipher-suites-in-windows-11
Enable-TlsCipherSuite TLS_CHACHA20_POLY1305_SHA256

这导致一些支持 TLS 1.3 和 1.2 的网站改用 1.3,而在此更改之前他们一直使用 1.2。

但是,在 Wireshark 中,这并没有阻止 TLS 1.1 和 1.2 出现,但它们的密码套件被正确执行,这对我来说很奇怪,因为我认为 TLS v1.3 使用的密码套件不能被旧版本 TLS 使用。

相关内容