Windows 10 TLS/SSL 奇怪问题(BAD_MAC_READ、程序查询中断......)

Windows 10 TLS/SSL 奇怪问题(BAD_MAC_READ、程序查询中断......)

我最近组装完了我的新电脑,并从 Microsoft 实用工具安装了 Windows 10 Pro。

一切顺利,但突然,大约一周后,开始出现错误:

  • 在 Firefox(最新稳定版本 73.0)上,通过 HTTPS 进行的查询失败率约为 90%
  • 在 Steam、Discord、某些游戏启动器等厚客户端上... 服务会随机断开,有时我必须多次启动它才能连接。例如,Discord 或 Spotify 每分钟保持连接/断开 1 或 2 次...
  • 我还注意到 Windows 事件查看器中有很多 ESENT 错误消息:几乎所有这些都引用了图像/数据库版本之间的错误校验和、损坏的 WebCache 数据库、写入日志的段错误等......它很常见,而且变化很多。(我可以为那些询问的人详细发布这些错误)

我确信的事情是:

  • 不是来自我的电脑之外的东西:我通过 USB 在手机上测试了共享的 4G 连接,但问题仍然存在。
  • 再次尝试全新安装 Windows 10,并删除最新的累积更新
  • BIOS 和系统时钟,同步并正常
  • 从制造商网站(华硕)的主板页面下载最新驱动程序
  • 不暗示本地防病毒或防火墙:我尝试禁用所有这些(Windows Defender、防火墙、威胁分析......)

我的设置:

  • 主板华硕 ROG Strix z390-e Gaming
  • CPU 英特尔酷睿 CoffeeLake 9700k
  • GPU 华硕 NVIDIA RTX2070 SUPER
  • 2x8 Go Corsair RGB RAM(3200MHz)
  • 2x 1 至三星 970Evo Plus M.2 SSD

我找到了一个与我的问题类似的帖子: https://www.reddit.com/r/techsupport/comments/4396fz/windows_10_strange_tls_ssl_errors_very_stuck/

并尝试了几种方法来解决 Windows 事件查看器中的 ESENT 错误: https://support.microsoft.com/fr-fr/help/278316/esent-event-ids-1000-1202-412-and-454-are-logged-repeatedly-in-the-app

在浏览 Microsoft 论坛时,我尝试使用 DISM 或 SFC 等工具来恢复图像完整性,到目前为止,这些工具没有出现任何问题。

尝试了 chkdsk,这里也没有什么可报告的。

今天晚上,回到家后,我将尝试在 Linux 实时 USB 密钥上启动,并检查错误是否仍然存在。

我会更新这个帖子,稍后添加我的 Wireshark 和流程分析...以及接下来的发现...谢谢

编辑:我在微软官方论坛上提出了一个问题,并在这里添加了最新的详细信息Windows 10 ESENT 474 事件损坏本地数据文件

EDIT2:我最近取得了突破。我在 Firefox 上强制使用 TLS 1.2,现在很多 HTTPS 网站都可以正确加载了。但是 YouTube 和 Google 以及其他一些网站仍然有加载问题(BAD_MAC_READ)。因此,我检查了用于协商客户端/服务器 TLS 连接的密码:

TLS1.2 上的 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256。使用 TLS1.2 在 HTTPS 上正确加载的网站使用的是 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,而不是 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256。

我想用我的游戏客户端启动器(英雄联盟)进行交叉检查,因此在客户端打开时启动了 Wireshark 扫描。我看到 TLS1.2 上有一个非常有趣的交换,其中失败的调用使用的是 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 密码!我看到我的客户端正确地发送了 Hello 消息(带有可用的密码),然后服务器使用要使用的密码进行响应,之后,服务器发送了类型为“新会话票证,更改密码规范”的查询。然后客户端似乎没有对此做出响应,并且游戏客户端缺少一些 GUI 部分。我非常确信该问题与使用该密码有关,但我不确定。

答案1

我终于在这里找到了罪魁祸首。需要确定是 CPU 驱动程序/芯片组故障还是 CPU 故障,但是:

我运行了英特尔诊断工具扫描,CPU 测试在此处失败: 诊断工具故障

因此,为了测试核心是否有故障,我运行了“msconfig”来尝试禁用 8 个可用 CPU 核心中的 4 个。

我重启后你猜怎么着?加密消息现在没有问题了!我可以启动所有应用程序,所有查询在所有浏览器上都成功!CPU 是全新的,我在将其放入插槽并锁定时格外小心。ventirad 和导热膏也是如此,我检查了一下,从外观上看似乎没有什么问题 :(

我真的希望我不必退回​​它,因为我知道在寄回如此易碎的组件时会发生什么样的魔术(接待处给出的借口:一些针脚被扭曲了,你们把它弄坏了!)。

答案2

遇到的错误与 OP 大致相同。网站加载时断时续,有时出现不同的 SSL 错误代码。与 Chrome 相比,Firefox 给出的错误更详细一些;错误在错误 MAC 读取和错误 MAC 警报之间交替出现。

尝试重新安装 Windows 10,用以太网代替 wifi,用 Linux 代替 Windows。同样的错误。英特尔诊断工具中的 CPU 测试未显示任何错误。

阅读有关 Process Lasso 的提示后,我对其进行了测试。在测试了不同的 CPU(核心)亲和性组合后,我意识到让 Web 浏览器使用核心 6-7 会导致错误。自从使用 Process Lasso 以来,我已经一天没有遇到过任何错误。CPU 是 i7-6700,到现在大约有 8 年的历史了,所以在日常使用中失去几个核心没什么大不了的。

这个错误确实令人沮丧,但事后看来,排除故障和解决问题相当有趣;)

相关内容