使用 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 使用。