

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 运输安全 AWS IoT Core
<a name="transport-security"></a>

TLS（传输层安全性协议）是一种加密协议，旨在通过计算机网络进行安全通信。 AWS IoT Core 设备网关要求客户在设备与网关的连接中使用 TLS 对传输中的所有通信进行加密。TLS 用于实现所支持的应用程序协议（MQTT、HTTP 和 WebSocket）的 AWS IoT Core机密性。TLS 支持适用于许多编程语言和操作系统。 AWS 其中的数据由特定 AWS 服务加密。有关其他 AWS 服务上的数据加密的更多信息，请参阅该服务的安全文档。

**Topics**
+ [TLS 协议](#tls-ssl-policy)
+ [安全策略](#tls-policy-table)
+ [有关运输安全的重要注意事项 AWS IoT Core](#tls-ssl-core)
+ [LoRaWAN 无线设备的传输安全](#tls-lorawan)

## TLS 协议
<a name="tls-ssl-policy"></a>

AWS IoT Core 支持以下版本的 TLS 协议：
+ TLS 1.3 
+ TLS 1.2

使用 AWS IoT Core，您可以在域配置中配置 TLS 设置（适用于 [TLS 1.2](https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_1.2) [和 TLS 1.3](https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_1.3)）。有关更多信息，请参阅 [在域配置中配置 TLS 设置](iot-endpoints-tls-config.md)。

## 安全策略
<a name="tls-policy-table"></a>

安全策略是 TLS 协议及其密码的组合，此协议及其密码用于确定在客户端和服务器之间的 TLS 协商期间支持哪些协议和密码。您可以根据需要将设备配置为使用预定义的安全策略。请注意， AWS IoT Core 这不支持自定义安全策略。

连接设备时，您可以为设备选择一种预定义的安全策略 AWS IoT Core。中最新的预定义安全策略的名称 AWS IoT Core 包括基于其发布年份和月份的版本信息。默认的预定义安全策略为 `IoTSecurityPolicy_TLS13_1_2_2022_10`。要指定安全策略，您可以使用 AWS IoT 控制台或 AWS CLI。有关更多信息，请参阅 [在域配置中配置 TLS 设置](iot-endpoints-tls-config.md)。

下表描述了 AWS IoT Core 支持的最新预定义安全策略。为了使策略名称能够容纳在标题行中，已将 `IotSecurityPolicy_` 从名称中删除。


| **安全策略** | TLS13\$11\$13\$12022\$110 | TLS13\$11\$12\$12022\$110 | TLS12\$11\$12\$12022\$110 | TLS12\$11\$10\$12016\$101\$1 | TLS12\$11\$10\$12015\$101\$1 | 
| --- | --- | --- | --- | --- | --- | 
| TCP 端口 |  443/8443/8883  |  443/8443/8883  |  443/8443/8883  | 443 | 8443/8883 | 443 | 8443/8883 | 
| TLS 协议 | 
| TLS 1.2 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| TLS 1.3 | ✓ | ✓ |  |  |  |  |  | 
| TLS 密码 | 
| TLS\$1AES\$1128\$1GCM\$1 SHA256 | ✓ | ✓ |  |  |  |  |  | 
| TLS\$1AES\$1256\$1GCM\$1 SHA384 | ✓ | ✓ |  |  |  |  |  | 
| TLS\$1 \$1 \$1 CHACHA20 POLY1305 SHA256 | ✓ | ✓ |  |  |  |  |  | 
| ECDHE-RSA--GCM-AES128 SHA256 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| ECDHE-RSA--AES128 SHA256 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| ECDHE-RSA--SHA AES128 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| ECDHE-RSA--GCM-AES256 SHA384 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| ECDHE-RSA--AES256 SHA384 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| ECDHE-RSA--SHA AES256 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| AES128-GCM-SHA256 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| AES128-SHA256 |  | ✓ | ✓ | ✓ |  | ✓ | ✓ | 
| AES128-SHA |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| AES256-GCM-SHA384 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| AES256-SHA256 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| AES256-SHA |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| DHE-RSA--SHA AES256 |  |  |  |  |  | ✓ | ✓ | 
| ECDHE-ECDSA--GCM-AES128 SHA256 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| ECDHE-ECDSA--AES128 SHA256 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| ECDHE-ECDSA--SHA AES128 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| ECDHE-ECDSA--GCM-AES256 SHA384 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| ECDHE-ECDSA--AES256 SHA384 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 
| ECDHE-ECDSA--SHA AES256 |  | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 

**注意**  
`TLS12_1_0_2016_01`仅在以下版本中可用 AWS 区域：ap-east-1、ap-northeast-2、ap-southeast-1、ap-southeast-2、ca-central-1、cn-northeast-1、cn-northeast-1、eu-west-2、eu-west-2，eu-west-3、me-south-1、sa-east-1、us-east-2、-1、-2、us-west-1、us-west-1。 us-gov-west us-gov-west  
`TLS12_1_0_2015_01`仅在以下版本中可用 AWS 区域：ap-northeast-1、ap-southeast-1、eu-central-1、eu-west-1、us-east-1、us-east-1、us-west-1、us-west-2。

## 有关运输安全的重要注意事项 AWS IoT Core
<a name="tls-ssl-core"></a>

对于 AWS IoT Core 使用 [MQTT](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html) 连接的设备，TLS 会加密设备与代理之间的连接，并 AWS IoT Core 使用 TLS 客户端身份验证来识别设备。有关更多信息，请参阅[客户端身份验证](https://docs.aws.amazon.com//iot/latest/developerguide/client-authentication.html)。对于 AWS IoT Core 使用 [HTTP](https://docs.aws.amazon.com//iot/latest/developerguide/http.html) 连接的设备，TLS 会加密设备与代理之间的连接，并将身份验证委托给 AWS 签名版本 4。有关更多信息，请参阅《AWS 一般参考》**中的[使用签名版本 4 签署请求](https://docs.aws.amazon.com//general/latest/gr/create-signed-request.html)。

将设备连接到时 AWS IoT Core，发送[服务器名称指示 (SNI) 扩展](https://tools.ietf.org/html/rfc3546#section-3.1)名不是必需的，但强烈建议您这样做。要使用[多账户注册](https://docs.aws.amazon.com//iot/latest/developerguide/x509-client-certs.html#multiple-account-cert)、[自定义域](https://docs.aws.amazon.com//iot/latest/developerguide/iot-custom-endpoints-configurable-custom.html)和 [VPC 端点](https://docs.aws.amazon.com//iot/latest/developerguide/IoTCore-VPC.html)以及[配置的 TLS 策略](https://docs.aws.amazon.com//iot/latest/developerguide/iot-endpoints-tls-config.html)等特征，您必须使用 SNI 扩展并在 `host_name` 字段中提供完整的端点地址。`host_name` 字段必须包含您调用的端点。该端点必须是以下端点之一：
+ `aws iot [describe-endpoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-endpoint.html) --endpoint-type iot:Data-ATS` 返回的 `endpointAddress`
+ `aws iot [describe-domain-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-domain-configuration.html) –-domain-configuration-name "domain_configuration_name"` 返回的 `domainName`

使用错误或无效`host_name`值的设备尝试的连接将失败。 AWS IoT Core 会将[自定义](https://docs.aws.amazon.com//iot/latest/developerguide/custom-authentication.html)身份验证类型的失败记录到 CloudWatch 。

AWS IoT Core 不支持 [SessionTicket TLS 扩展](https://www.ietf.org/rfc/rfc5077.txt)。

## LoRaWAN 无线设备的传输安全
<a name="tls-lorawan"></a>

LoRa广域网设备遵循[金雅拓、Actility和Semtech在LoRa广域网™ 安全：为 LoRa 联盟准备的白皮书™ 中描述的安全](https://lora-alliance.org/sites/default/files/2019-05/lorawan_security_whitepaper.pdf)实践。

有关 LoRa WAN 设备传输安全的更多信息，请参阅 [LoRaWAN 数据和传输安全](https://docs.aws.amazon.com/iot-wireless/latest/developerguide/iot-lorawan-security.html)。