Microsoft 安全咨询4338110

Microsoft CBC 对称加密安全功能绕过指南

发布时间: 2018 年 6 月 12 日

版本: 1.0

常规信息

执行摘要

Microsoft 宣布改进了有关将 Cipher-Block-Chaining (CBC) 模式与对称加密配合使用的指导。 如果使用填充的 CBC 块密码而不使用其他数据完整性检查,则在某些情况下可能存在“填充 oracle”安全功能绕过漏洞。 这可能导致攻击者在不知道加密密钥的情况下解密和篡改加密数据。 此漏洞可以在本地和基于网络的攻击中使用。

该漏洞源于对加密进行编码的方式,由于数据不可预知,因此无法以编程方式识别误报率。 该漏洞依赖于具有一个“填充 oracle”,该 oracle 可以自由响应有关消息是否已正确填充的查询。 攻击依赖于更改加密数据并使用 oracle 测试结果的能力。 完全缓解攻击的唯一方法是检测加密数据的更改并拒绝对其执行任何操作。 执行此操作的标准方法是为数据创建可验证签名,并在执行任何操作之前验证签名。

潜在问题可能适用于静态数据或传输中的数据,Microsoft 建议传输中具有机密性的任何数据都需要通过传输层安全性(TLS、安全套接字层(SSL)的继任者) 传输。 鼓励无法更改其消息格式但执行未经身份验证的 CBC 解密的应用程序尝试合并缓解措施。 根据目前的研究,人们普遍认为,当身份验证和加密步骤独立执行(对于非 AE 加密模式)时,对密码文本(加密时签名)进行身份验证是最佳常规选项。 但是,对加密没有一刀切的正确答案,这种通用化不像专业加密家的定向建议那样好。

总之,若要安全地使用填充的 CBC 块密码,必须将它们与密钥哈希消息身份验证代码(HMAC)(或其他数据完整性检查)结合使用,在尝试解密数据之前使用常量时间比较进行验证。 由于所有更改的消息需要花费相同的时间来生成响应,因此会阻止攻击。 为了帮助查找此漏洞的实例,Microsoft 发布了指导,指示如何按照更新的文档中所述执行代码评审: 使用填充使用 CBC 模式对称解密的计时漏洞。 Microsoft 产品和服务已审查,并且不受影响。

  1. 使 Microsoft 应用程序保持更新。
  2. 确定自定义应用程序是否执行自己的加密和解密。
  3. 阅读引用的文档以确定如何识别易受攻击的代码。

其他建议的操作

  • 保护电脑
    我们将继续鼓励客户遵循“保护计算机”指南,了解如何启用防火墙、获取软件更新和安装防病毒软件。 有关详细信息,请参阅 Microsoft 保险箱ty & 安全中心

  • 使 Microsoft 软件更新保持更新
    运行 Microsoft 软件的用户应应用最新的 Microsoft 安全更新,以帮助确保其计算机尽可能受到保护。 如果你不确定你的软件是否是最新的,请访问 Microsoft 更新,扫描计算机以获取可用更新,并安装你提供的任何高优先级更新。 如果已启用自动更新并配置为提供 Microsoft 产品的更新,则更新会在发布时向你传递,但应验证它们是否已安装。

其他信息

Microsoft Active Protections 计划 (MAPP)

为了改善客户的安全保护,Microsoft 在每月安全更新发布之前向主要安全软件提供商提供漏洞信息。 然后,安全软件提供商可以使用此漏洞信息通过其安全软件或设备(如防病毒、基于网络的入侵检测系统或基于主机的入侵防护系统)为客户提供更新的保护。 若要确定安全软件提供商是否提供主动保护,请访问计划合作伙伴提供的活动保护网站,这些网站在 Microsoft Active Protections 计划 (MAPP) 合作伙伴列出。

反馈

支持

免责声明

此公告中提供的信息“按原样”提供,没有任何担保。 Microsoft 不明确或暗示所有保证,包括适销性和针对特定用途的适用性和适用性的保证。 在任何情况下,Microsoft Corporation 或其供应商都应对任何损害负责,包括直接、间接、附带、后果性、业务利润损失或特殊损害,即使 Microsoft Corporation 或其供应商被告知存在此类损害的可能性。 某些州不允许排除或限制后果性或附带性损害的责任,因此上述限制可能不适用。

修订

  • V1.0(2018 年 6 月 12 日):已发布公告。