Amazon IoT Core 中的传输安全
TLS(传输层安全性协议)是一种加密协议,旨在通过计算机网络进行安全通信。Amazon IoT Core 设备网关要求客户对于从设备到网关的连接使用 TLS 对传输中的所有通信进行加密。TLS 用于实现受 Amazon IoT Core 支持的应用程序协议(MQTT、HTTP 和 WebSocket)的保密性。TLS 支持适用于许多编程语言和操作系统。Amazon 内的数据是由特定的 Amazon 服务加密的。有关其他 Amazon 服务上数据加密的更多信息,请参阅该服务的安全文档。
TLS 协议
Amazon IoT Core 支持以下版本的 TLS 协议:
-
TLS 1.3
-
TLS 1.2
安全策略
注意
此特征在中国不可用。
安全策略是 TLS 协议及其密码的组合,此协议及其密码用于确定在客户端和服务器之间的 TLS 协商期间支持哪些协议和密码。您可以根据需要将设备配置为使用预定义的安全策略。请注意,Amazon IoT Core 不支持自定义安全策略。
在将设备连接到 Amazon IoT Core 时,您可以为设备选择一个预定义的安全策略。Amazon IoT Core 中的最新预定义安全策略的名称包括版本信息(基于发布预定义安全策略的年份和月份)。默认的预定义安全策略为 IoTSecurityPolicy_TLS13_1_2_2022_10。要指定安全策略,可以使用 Amazon IoT 控制台或 Amazon CLI。有关更多信息,请参阅 在域配置中配置 TLS 设置。
下表描述了 Amazon IoT Core 支持的最新预定义安全策略。为了使策略名称能够容纳在标题行中,已将 IotSecurityPolicy_ 从名称中删除。
| 安全策略 | TLS13_1_3_2022_10 | TLS13_1_2_2022_10 | TLS12_1_2_2022_10 | TLS12_1_0_2016_01* | TLS12_1_0_2015_01* | ||
|---|---|---|---|---|---|---|---|
| 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_AES_128_GCM_SHA256 | ✓ | ✓ | |||||
| TLS_AES_256_GCM_SHA384 | ✓ | ✓ | |||||
| TLS_CHACHA20_POLY1305_SHA256 | ✓ | ✓ | |||||
| ECDHE-RSA-AES128- GCM-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ECDHE-RSA-AES128-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ECDHE-RSA-AES128-SHA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ECDHE-RSA-AES256- GCM-SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ECDHE-RSA-AES256-SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ECDHE-RSA-AES256-SHA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| AES128-GCM-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| AES128-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ||
| AES128-SHA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| AES256-GCM-SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| AES256-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| AES256-SHA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| DHE-RSA-AES256-SHA | ✓ | ✓ | |||||
| ECDHE-ECDSA-AES128- GCM-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ECDHE-ECDSA-AES128-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ECDHE-ECDSA-AES128-SHA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ECDHE-ECDSA-AES256- GCM-SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ECDHE-ECDSA-AES256-SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ECDHE-ECDSA-AES256-SHA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
注意
TLS12_1_0_2016_01 仅在以下 Amazon Web Services 区域 中可用:ap-east-1、ap-northeast-2、ap-south-1、ap-southeast-2、ca-central-1、cn-north-1、cn-northwest-1、eu-north-1、eu-west-2、eu-west-3、me-south-1、sa-east-1、us-east-2、us-gov-west-1、us-gov-west-2、us-west-1。
TLS12_1_0_2015_01 仅在以下 Amazon Web Services 区域 中可用:ap-northeast-1、ap-southeast-1、eu-central-1、eu-west-1、us-east-1、us-west-2。
有关 Amazon IoT Core 中的传输安全性的重要注意事项
对于使用 MQTT 连接到 Amazon IoT Core 的设备,TLS 加密设备和代理之间的连接,而 Amazon IoT Core 使用 TLS 客户端身份验证来识别设备。有关更多信息,请参阅客户端身份验证。对于使用 HTTP 连接到 Amazon IoT Core 的设备,TLS 加密设备和代理之间的连接,并将身份验证委派给 Amazon 签名版本 4。有关更多信息,请参阅《Amazon 一般参考》中的使用签名版本 4 签署请求。
当您将设备连接到 Amazon IoT Core 时,不要求发送服务器名称指示(SNI)扩展host_name 字段中提供完整的端点地址。host_name 字段必须包含您调用的端点。该端点必须是以下端点之一:
-
aws iot describe-endpoint返回的--endpoint-type iot:Data-ATS endpointAddress -
aws iot describe-domain-configuration返回的–-domain-configuration-name " domain_configuration_name"domainName
host_name 值不正确或无效的设备尝试的连接将失败。Amazon IoT Core 将针对自定义身份验证的身份验证类型将失败记录到 CloudWatch。
Amazon IoT Core 不支持会话票证 TLS 扩展
LoRaWAN 无线设备的传输安全
LoRaWAN 设备遵循 LoRAWAN™ 安全性:Gemalto、Actility 和 Semtech 为 LoRa Alliance™ 准备的白皮书
有关 LoRaWAN 设备传输安全性的更多信息,请参阅 LoRaWAN 数据和传输安全。
连接安全性
Amazon IoT Core 消息代理和设备影子服务依赖于使用加密和 TLS 1.2
-
ECDHE-ECDSA-AES128-GCM-SHA256(推荐)
-
ECDHE-RSA-AES128-GCM-SHA256(推荐)
-
ECDHE-ECDSA-AES128-SHA256
-
ECDHE-RSA-AES128-SHA256
-
ECDHE-ECDSA-AES128-SHA
-
ECDHE-RSA-AES128-SHA
-
ECDHE-ECDSA-AES256- GCM-SHA384
-
ECDHE-RSA-AES256- GCM-SHA384
-
ECDHE-ECDSA-AES256-SHA384
-
ECDHE-RSA-AES256-SHA384
-
ECDHE-RSA-AES256-SHA
-
ECDHE-ECDSA-AES256-SHA
-
AES128-GCM-SHA256
-
AES128-SHA256
-
AES128-SHA
-
AES256-GCM-SHA384
-
AES256-SHA256
-
AES256-SHA