

# 设备证书密钥质量
<a name="audit-chk-device-cert-key-quality"></a>

AWS IoT 客户通常依赖使用 X.509 证书的 TLS 相互身份验证，用于对 AWS IoT 消息代理进行身份验证。这些证书及其证书颁发机构证书必须先在其 AWS IoT 账户中注册，然后才能使用。在注册这些证书时，AWS IoT 对这些证书执行基本的完整性检查。这些检查包括：
+ 必须采用有效的格式。
+ 必须由注册的证书颁发机构签名。
+ 必须仍然在其有效期内（换句话说，尚未过期）。
+ 其加密密钥大小必须满足所需的最小大小（对于 RSA 密钥，它们必须为 2048 位或更大）。

此审计检查为您的加密密钥质量提供了以下附加测试：
+ CVE-2008-0166 — 检查是否在基于 Debian 的操作系统上，使用 OpenSSL 0.9.8c-1 到 0.9.8g-9 之间的版本生成了密钥。这些版本的 OpenSSL 使用随机数生成器生成可预测的数字，使远程攻击者更容易对加密密钥进行暴力猜测攻击。
+ CVE-2017-15361 - 检查密钥是否由 Infineon RSA 库 1.02.013 在 Infineon Trusted Platform Module (TPM) 固件中生成，例如 0000000000000422 - 4.34 之前的版本、000000000000062b - 6.43 之前的版本以及 0000000000008521 - 133.33 之前的版本。该库不当地处理 RSA 密钥生成，使攻击者更容易通过针对性的攻击，破解某些加密保护机制。受影响的技术示例包括使用 TPM 1.2 的 BitLocker、YubiKey 4（4.3.5 之前）PGP 密钥生成以及 Chrome 操作系统中的缓存用户数据加密功能。

AWS IoT Device Defender如果证书未通过这些测试， 会将证书报告为不合规。

此检查在 CLI 和 API 中显示为 `DEVICE_CERTIFICATE_KEY_QUALITY_CHECK`。

**严重性：**严重

## Details
<a name="audit-chk-device-cert-key-quality-details"></a>

此检查适用于状态为“ACTIVE”或“PENDING\$1TRANSFER”的设备证书。

此检查发现不合规的证书时，会返回以下原因代码：
+ CERTIFICATE\$1KEY\$1VULNERABILITY\$1CVE-2017-15361
+ CERTIFICATE\$1KEY\$1VULNERABILITY\$1CVE-2008-0166

## 为什么这非常重要
<a name="audit-chk-device-cert-key-quality-why-it-matters"></a>

当设备使用易受攻击的证书时，攻击者会更容易盗用该设备。

## 如何修复
<a name="audit-chk-device-cert-key-quality-how-to-fix"></a>

更新您的设备证书以替换具有已知漏洞的这些证书。

如果在多个设备上使用同一证书，则需要执行以下操作：

1. 预置新的唯一证书并将其附加到每个设备。

1. 验证新证书是否有效，以及设备能否使用它们进行连接。

1. 使用 [UpdateCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateCertificate.html) 在 AWS IoT 中将旧证书标记为“REVOKED”。您还可以使用缓解操作实现以下目的：
   + 对您的审计查找结果应用 `UPDATE_DEVICE_CERTIFICATE` 缓解操作以进行此更改。
   + 应用 `ADD_THINGS_TO_THING_GROUP` 缓解操作，以将设备添加到可以对其执行操作的组。
   + 如果要实现自定义响应以响应 Amazon SNS 消息，请应用 `PUBLISH_FINDINGS_TO_SNS` 缓解操作。

   有关更多信息，请参阅 [缓解操作](dd-mitigation-actions.md)。

1. 将旧证书从各个设备中分离。