

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

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

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

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

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

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

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

**注意**  
此特征在中国不可用。

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

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

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

[See the AWS documentation website for more details](http://docs.amazonaws.cn/iot/latest/developerguide/transport-security.html)

**注意**  
`TLS12_1_0_2016_01`仅在以下版本中可用 Amazon Web Services 区域：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`仅在以下版本中可用 Amazon Web Services 区域：ap-northeast-1、ap-southeast-1、eu-central-1、eu-west-1、us-east-1、us-east-1、us-west-1、us-west-2。

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

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

将设备连接到时 Amazon IoT Core，发送[服务器名称指示 (SNI) 扩展](https://tools.ietf.org/html/rfc3546#section-3.1)名不是必需的，但强烈建议您这样做。要使用[多账户注册](https://docs.amazonaws.cn//iot/latest/developerguide/x509-client-certs.html#multiple-account-cert)、[自定义域](https://docs.amazonaws.cn//iot/latest/developerguide/iot-custom-endpoints-configurable-custom.html)和 [VPC 端点](https://docs.amazonaws.cn//iot/latest/developerguide/IoTCore-VPC.html)以及[配置的 TLS 策略](https://docs.amazonaws.cn//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`值的设备尝试的连接将失败。 Amazon IoT Core 将为 “[自定义](https://docs.amazonaws.cn//iot/latest/developerguide/custom-authentication.html)身份验证” CloudWatch 的身份验证类型记录失败。

Amazon 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.amazonaws.cn/iot-wireless/latest/developerguide/iot-lorawan-security.html)。

## 连接安全性
<a name="connection-security-bjs"></a>

Amazon IoT Core 消息代理和 Device Shadow 服务依赖使用加密以及 [TLS 1.2 和 TLS 1.](https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_1.2) [3](https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_1.3) 的通信。 Amazon IoT Core 支持以下 TLS 密码套件：
+ ECDHE-ECDSA--GCM-（推荐）AES128SHA256 
+ ECDHE-RSA--GCM-AES128（推荐）SHA256 
+ ECDHE-ECDSA--AES128 SHA256
+ ECDHE-RSA--AES128 SHA256
+ ECDHE-ECDSA--SHA AES128
+ ECDHE-RSA--SHA AES128
+ ECDHE-ECDSA--GCM-AES256 SHA384
+ ECDHE-RSA--GCM-AES256 SHA384
+ ECDHE-ECDSA--AES256 SHA384
+ ECDHE-RSA--AES256 SHA384
+ ECDHE-RSA--SHA AES256
+ ECDHE-ECDSA--SHA AES256
+ AES128-GCM-SHA256
+ AES128-SHA256
+ AES128-SHA
+ AES256-GCM-SHA384
+ AES256-SHA256
+ AES256-SHA