Segurança de transporte no AWS IoT Core
O Transport Layer Security (TLS) é um protocolo criptográfico projetado para comunicação segura em uma rede de computadores. O AWS IoT Core Device Gateway exige que os clientes criptografem toda a comunicação em trânsito usando TLS para conexões de dispositivos ao Gateway. O TLS é usado para garantir a confidencialidade dos protocolos de aplicativos (MQTT, HTTP e WebSocket) compatíveis com o AWS IoT Core. O suporte ao TLS está disponível em várias de linguagens de programação e sistemas operacionais. Os dados na AWS são criptografados pelo serviço da AWS específico. Para obter mais informações sobre criptografia de dados em outros serviços da AWS, consulte a documentação de segurança desse serviço.
Índice
Protocolos TLS
O AWS IoT Core é compatível com as seguintes versões do protocolo TLS:
-
TLS 1.3
-
TLS 1.2
Com o AWS IoT Core, você pode definir as configurações de TLS (para TLS 1.2
Políticas de segurança
Uma política de segurança é uma combinação de protocolos TLS e suas cifras que determinam quais protocolos e cifras são compatíveis durante as negociações de TLS entre um cliente e um servidor. Você pode configurar seus dispositivos para usar políticas de segurança predefinidas com base em suas necessidades. Observe que o AWS IoT Core não é compatível com as políticas de segurança personalizadas.
Você pode escolher uma das políticas de segurança predefinidas para seus dispositivos ao conectá-los ao AWS IoT Core. Os nomes das políticas de segurança predefinidas mais recentes no AWS IoT Core incluem informações da versão com base no ano e no mês em que foram lançadas. A política de segurança padrão predefinida é IoTSecurityPolicy_TLS13_1_2_2022_10
. Para especificar uma política de segurança, você pode usar o console do AWS IoT ou a AWS CLI. Para obter mais informações, consulte Definir configurações de TLS nas configurações de domínio.
A tabela a seguir descreve as políticas de segurança predefinidas mais recentes compatíveis com o AWS IoT Core. O IotSecurityPolicy_
foi removido dos nomes de política na linha de cabeçalho para que se ajustem ao espaço.
Política de segurança | 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* | ||
---|---|---|---|---|---|---|---|
Porta TCP |
443/8443/8883 |
443/8443/8883 |
443/8443/8883 |
443 | 8443/8883 | 443 | 8443/8883 |
Protocolos TLS | |||||||
TLS 1.2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
TLS 1.3 | ✓ | ✓ | |||||
Cifras 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 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
nota
TLS12_1_0_2016_01
só está disponível nas seguintes Regiões da AWS: 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
só está disponível nas seguintes Regiões da AWS: ap-northeast-1, ap-southeast-1, eu-central-1, eu-west-1, us-east-1, us-west-2.
Notas importantes para a segurança do transporte no AWS IoT Core
Para dispositivos que se conectam ao AWS IoT Core usando MQTT, o TLS criptografa a conexão entre os dispositivos e o agente, e o AWS IoT Core usa a autenticação de cliente TLS para identificar os dispositivos. Para obter mais informações, consulte Autenticação do cliente. Para dispositivos que se conectam ao AWS IoT Core usando HTTP, o TLS criptografa a conexão entre os dispositivos e o agente, e a autenticação é delegada ao AWS Signature Versão 4. Para obter mais informações, consulte Assinatura de solicitações com o SignatAre Versão 4 na Referência geral da AWS.
Ao conectar dispositivos ao AWS IoT Core, o envio da extensão SNI (Server Name Indication)host_name
. O campo host_name
deve conter o endpoint que você está chamando. Esse endpoint deve ser um dos seguintes:
-
O
endpointAddress
retornado poraws iot describe-endpoint
--endpoint-type iot:Data-ATS -
O
domainName
retornado poraws iot describe-domain-configuration
–-domain-configuration-name " domain_configuration_name
"
As conexões tentadas por dispositivos com o valor host_name
incorreto ou inválido não funcionarão. O AWS IoT Core registrará falhas no CloudWatch para o tipo de Autenticação personalizada.
O AWS IoT Core não é compatível com a extensão SessionTicket TLS
Segurança de transporte para dispositivos sem fio LoRaWAN
Os dispositivos LoRaWAN seguem as práticas de segurança descritas em LoRaWAN ™ SECURITY: A White Paper Prepared for the LoRa Alliance™ de Gemalto, Actility e Semtech
Para obter mais informações sobre segurança de transporte com dispositivos LoRaWAN, consulte Segurança de dados e transporte LoRaWAN.