Certificados do cliente X.509
Os certificados X.509 fornecem ao AWS IoT a capacidade de autenticar conexões de cliente e de dispositivo. Os certificados de cliente devem ser registrados no AWS IoT antes que um cliente possa se comunicar com o AWS IoT. Um certificado de cliente pode ser registrado em várias Conta da AWS na mesma Região da AWS para facilitar a movimentação de dispositivos entre suas Conta da AWS na mesma região. Consulte Usar certificados de cliente X.509 em várias Conta da AWS com registro de várias contas para obter mais informações.
Recomendamos que cada dispositivo ou cliente receba um certificado exclusivo para habilitar ações de gerenciamento de clientes refinadas, incluindo a revogação de certificados. Os dispositivos e os clientes também devem oferecer suporte à rotação e à substituição de certificados para ajudar a garantir uma operação contínua conforme os certificados expiram.
Para acessar informações sobre como usar certificados X.509 para comportar alguns dispositivos, consulte Provisionamento de dispositivos para conhecer as diferentes opções de gerenciamento e provisionamento de certificados compatíveis com AWS IoT.
AWS IoTO oferece suporte a estes tipos de certificados X.509 de cliente:
-
Certificados X.509 gerados pelo AWS IoT
-
Certificados X.509 assinados por uma CA registrada no AWS IoT.
-
Certificados X.509 assinados por uma CA que não está registrada no AWS IoT.
Esta seção descreve como gerenciar certificados X.509 no AWS IoT. É possível usar o console do AWS IoT ou a AWS CLI para executar estas operações de certificado:
Para obter mais informações sobre os comandos da AWS CLI que executam essas operações, consulte Referência da CLI do AWS IoT
Usar certificados do cliente X.509
Os certificados X.509 autenticam conexões de cliente e de dispositivo com o AWS IoT. Os certificados X.509 oferecem vários benefícios em relação a outros mecanismos de identificação e autenticação. Os certificados X.509 permitem que as chaves assimétricas sejam usadas com os dispositivos. Por exemplo, é possível gravar chaves privadas em um armazenamento seguro de um dispositivo para que o material criptográfico confidencial nunca saia do dispositivo. Os certificados X.509 fornecem opções mais fortes de autenticação de cliente em outros esquemas, como nome de usuário e senha ou tokens do portador, porque a chave privada nunca deixa o dispositivo.
AWS IoTO autentica os certificados usando o modo de autenticação do cliente do protocolo TLS. O suporte do TLS está disponível em muitas linguagens de programação e sistemas operacionais e é comumente usado para a criptografia de dados. Nas autenticações do cliente TLS, o AWS IoT solicita um certificado X.509 de cliente e valida o status do certificado e a Conta da AWS em relação a um registro de certificados. Depois, ele desafia o cliente a provar a propriedade da chave privada que corresponde à chave pública contida no certificado. O AWS IoT exige que os clientes enviem a extensão Server Name Indication (SNI)
Para facilitar uma conexão segura e consistente do cliente com o AWS IoT Core, um certificado de cliente X.509 deve possuir o seguinte:
-
Registro no AWS IoT Core. Para obter mais informações, consulte Registrar um certificado de cliente.
-
Um status de
ACTIVE. Para obter mais informações, consulte Ativar ou desativar um certificado de cliente. -
Ainda não atingiu a data de expiração do certificado.
Você pode criar certificados de cliente que usam a CA raiz da Amazon e usar seus próprios certificados de cliente assinados por outra autoridade de certificação (CA). Para obter mais informações sobre como usar o console do AWS IoT para criar certificados que usam a CA raiz da Amazon, consulte Criar certificados de cliente do AWS IoT. Para obter mais informações sobre como usar seus próprios certificados X.509, consulte Criar seus próprios certificados de cliente.
A data e a hora de quando os certificados assinados por um certificado CA expiram são definidas quando o certificado é criado. Os certificados X.509 gerados pelo AWS IoT expiram à meia-noite UTC em 31 de dezembro de 2049 (2049-12-31T23:59:59Z).
O AWS IoT Device Defender pode realizar auditorias em sua Conta da AWS e em dispositivos compatíveis com as práticas recomendadas comuns de segurança de IoT. Isso inclui gerenciar as datas de expiração dos certificados X.509 assinados pela sua CA ou pela CA raiz da Amazon. Para obter mais informações sobre como gerenciar a data de expiração de um certificado, consulte Certificado de dispositivo expirando e Certificado CA expirando.
No blog oficial do AWS IoT, o gerenciamento da rotação de certificados de dispositivos e as práticas recomendadas de segurança são explorados mais a fundo em Como gerenciar a rotação de certificados de dispositivos de IoT usando o AWS IoT
Usar certificados de cliente X.509 em várias Conta da AWS com registro de várias contas
O registro de várias contas possibilita a movimentação de dispositivos entre suas Conta da AWS na mesma região ou em regiões diferentes. Você pode registrar, testar e configurar um dispositivo em uma conta de pré-produção e, em seguida, registrar e usar o mesmo dispositivo e certificado de dispositivo em uma conta de produção. Você também pode registrar o certificado do cliente no dispositivo ou os certificados do dispositivo sem uma CA registrado com o AWS IoT. Para obter mais informações, consulte Registrar um certificado de cliente assinado por uma CA não registrada (CLI).
nota
Os certificados usados para registro de várias contas são compatíveis com os tipos de endpoint iot:Data-ATS, iot:Data (legado), iot:Jobs e iot:CredentialProvider. Para obter mais informações sobre endpoints de dispositivos de AWS IoT, consulte Dados dos dispositivos de AWS IoT e endpoints de serviço.
Os dispositivos que usam o registro de várias contas deverão enviar a extensão Server Name Indication (SNI)host_name, quando eles se conectarem à AWS IoT. A AWS IoT usa o endereço de endpoint em host_name para direcionar a conexão para a conta da AWS IoT correta. Os dispositivos existentes que não enviarem um endereço de endpoint válido em host_name continuarão a funcionar, mas não poderão usar os recursos que exigem essas informações. Para obter mais informações sobre a extensão SNI e para saber como identificar o endereço de endpoint para o campo host_name, consulte Segurança de transporte no AWS IoT Core.
Como usar o registro de várias contas
-
Você pode registrar os certificados de dispositivo com uma CA. Você pode registrar a CA de assinatura em várias contas no modo
SNI_ONLYe usar essa CA para registrar o mesmo certificado de cliente em várias contas. Para obter mais informações, consulte Registrar um certificado da CA no modo SNI_ONLY (CLI) - Recomendado. -
Você pode registrar os certificados de dispositivo sem uma CA. Consulte Registrar um certificado de cliente assinado por uma CA não registrada (CLI). O registro de uma CA é opcional. Você não é obrigado a registrar a CA que assinou os certificados de dispositivo com o AWS IoT.
Algoritmos de assinatura de certificados compatíveis com o AWS IoT
AWS IoTA oferece suporte aos seguintes algoritmos de assinatura de certificado:
-
SHA256WITHRSA
-
SHA384WITHRSA
-
SHA512WITHRSA
-
SHA256WITHRSAANDMGF1 (RSASSA-PSS)
-
SHA384WITHRSAANDMGF1 (RSASSA-PSS)
-
SHA512WITHRSAANDMGF1 (RSASSA-PSS)
-
DSA_WITH_SHA256
-
ECDSA-WITH-SHA256
-
ECDSA-WITH-SHA384
-
ECDSA-WITH-SHA512
Para obter mais informações sobre autenticação e segurança de certificados, consulte Qualidade da chave de certificado do dispositivo.
nota
A solicitação de assinatura de certificado (CSR) deve incluir uma chave pública. A chave pode ser uma chave RSA com um comprimento de pelo menos 2.048 bits ou uma chave ECC das curvas do NIST P-256, NIST P-384 ou NIST P-521. Para obter mais informações, consulte CreateCertificateFromCsr no Guia de referência da API de AWS IoT.
Algoritmos de chave com suporte por AWS IoT
A tabela abaixo mostra o suporte para os principais algoritmos:
| Algoritmo de chave | Algoritmo de assinatura de certificado | Versão do TLS | Compatível? Yes ou No |
|---|---|---|---|
| RSA com um tamanho de chave de pelo menos 2048 bits | Todos | TLS 1.2 TLS 1.3 | Sim |
| ECC NIST P-256/P-384/P-521 | Todos | TLS 1.2 TLS 1.3 | Sim |
| RSA-PSS com um tamanho de chave de pelo menos 2048 bits | Todos | TLS 1.2 | Não |
| RSA-PSS com um tamanho de chave de pelo menos 2048 bits | Todos | TLS 1.3 | Sim |
Para criar um certificado usando CreateCertificateFromCSR, você pode usar um algoritmo de chave compatível para gerar uma chave pública para sua CSR. Para registrar seu próprio certificado usando RegisterCertificate ou RegisterCertificateWithoutCA, você pode usar um algoritmo de chave compatível para gerar uma chave pública para o certificado.
Para obter mais informações, consulte Políticas de segurança.