Autenticação do servidor - AWS IoT Core

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Autenticação do servidor

Quando seu dispositivo ou outro cliente tentar se conectar AWS IoT Core, o AWS IoT Core servidor enviará um certificado X.509 que seu dispositivo usa para autenticar o servidor. A autenticação ocorre na camada TLS por meio da validação da cadeia de certificados X.509. Esse é o mesmo método usado pelo seu navegador ao acessar uma URL HTTPS. Para usar certificados de sua própria autoridade de certificação, consulte Gerenciar os certificados CA.

Quando seus dispositivos ou outros clientes estabelecem uma conexão TLS com um AWS IoT Core endpoint, AWS IoT Core apresenta uma cadeia de certificados que os dispositivos usam para verificar se estão se comunicando AWS IoT Core e não se passando por outro servidor. AWS IoT Core A cadeia apresentada depende de uma combinação do tipo de endpoint ao qual o dispositivo está se conectando e do conjunto de cifras que o cliente AWS IoT Core negociou durante o handshake TLS.

Tipos de endpoint

AWS IoT Core suporta dois tipos diferentes de endpoints de dados iot:Data e. iot:Data-ATS iot:Dataos endpoints apresentam um certificado assinado pelo certificado CA raiz G5 Public Primary de VeriSign Classe 3. iot:Data-ATSos endpoints apresentam um certificado de servidor assinado por uma CA da Amazon Trust Services.

Os certificados apresentados pelos endpoints ATS são assinados por Starfield. Algumas implementações de cliente TLS exigem a validação da raiz da confiança e exigem que os certificados da CA Starfield estejam instalados nos armazenamentos de confiança do cliente.

Atenção

O uso de um método de fixação de certificado que adiciona hash a todo o certificado (incluindo o nome do emissor, etc.) não é recomendado porque isso fará com que a verificação do certificado falha, pois os certificados ATS que fornecemos são de assinatura cruzada Starfield e têm um nome de emissor diferente.

Importante

Use endpoints iot:Data-ATS, a menos que seu dispositivo exija certificados da CA Symantec ou Verisign. Os certificados Symantec e Verisign foram preteridos e não têm mais suporte para a maioria dos navegadores da web.

Você pode usar o comando describe-endpoint para criar seu endpoint ATS.

aws iot describe-endpoint --endpoint-type iot:Data-ATS

O comando describe-endpoint retorna um endpoint no seguinte formato.

account-specific-prefix.iot.your-region.amazonaws.com
nota

Na primeira vez que describe-endpoint for chamado, um endpoint será criado. Todas as chamadas subsequentes para describe-endpoint retornam o mesmo endpoint.

Para compatibilidade com versões anteriores, AWS IoT Core ainda oferece suporte aos endpoints da Symantec. Para obter mais informações, consulte Como o AWS IoT Core está ajudando os clientes a lidar com a desconfiança futura das autoridades de certificação Symantec. Os dispositivos que operam com endpoints do ATS são totalmente inoperáveis com dispositivos que operam com endpoints do Symantec na mesma conta e não exigem registrar novamente.

nota

Para ver seu iot:Data-ATS endpoint no AWS IoT Core console, escolha Configurações. O console exibe somente o endpoint iot:Data-ATS. Por padrão, o comando describe-endpoint exibe o endpoint iot:Data para compatibilidade com versões anteriores. Para ver o endpoint iot:Data-ATS, especifique o parâmetro --endpointType, como no exemplo anterior.

Criando um IotDataPlaneClient com o AWS SDK for Java

Por padrão, o AWS SDK para Java versão 2 cria um IotDataPlaneClient usando um endpoint iot:Data. Para criar um cliente que use um endpoint iot:Data-ATS, faça o seguinte.

  • Crie um iot:Data-ATS endpoint usando a DescribeEndpointAPI.

  • Especifique esse endpoint ao criar o IotDataPlaneClient.

O exemplo a seguir executa as duas operações.

public void setup() throws Exception { IotClient client = IotClient.builder().credentialsProvider(CREDENTIALS_PROVIDER_CHAIN).region(Region.US_EAST_1).build(); String endpoint = client.describeEndpoint(r -> r.endpointType("iot:Data-ATS")).endpointAddress(); iot = IotDataPlaneClient.builder() .credentialsProvider(CREDENTIALS_PROVIDER_CHAIN) .endpointOverride(URI.create("https://" + endpoint)) .region(Region.US_EAST_1) .build(); }

Certificados CA para autenticação do servidor

Dependendo do tipo de endpoint de dados que você está usando e do pacote de criptografia negociado, os certificados de autenticação AWS IoT Core do servidor são assinados por um dos seguintes certificados CA raiz:

Endpoints do Amazon Trust Services (preferencial)

nota

Talvez seja necessário clicar com o botão direito do mouse nesses links e selecionar Salvar link como... para salvar esses certificados como arquivos.

  • Chave RSA de 2.048 bits: Amazon Root CA 1.

  • Chave RSA de 4.096 bits: Amazon Root CA 2. Reservado para uso futuro.

  • Chave ECC de 256 bits: Amazon Root CA 3.

  • Chave ECC de 384 bits: Amazon Root CA 4. Reservado para uso futuro.

Esses certificados são todos assinados pelo Certificado da CA raiz Starfield. Todas as novas AWS IoT Core regiões, começando com o lançamento em 9 de maio de 2018 AWS IoT Core na região Ásia-Pacífico (Mumbai), oferecem somente certificados ATS.

VeriSign Endpoints (antigos)

Diretrizes de autenticação do servidor

Há muitas variáveis que podem afetar a capacidade de um dispositivo de validar o certificado de autenticação do servidor do AWS IoT Core . Por exemplo, os dispositivos podem ter memória muito limitada para armazenar todos os certificados da CA raiz possíveis ou os dispositivos podem implementar um método não padrão de validação de certificado. Por estas razões, sugerimos seguir estas diretrizes:

  • Recomendamos usar seu endpoint do ATS e instalar todos os certificados Amazon Root CA compatíveis.

  • Se você não puder armazenar todos esses certificados em seu dispositivo, e se seus dispositivos não usarem a validação baseada em ECC, será possível omitir os certificados ECC Amazon Root CA 3 e Amazon Root CA 4. Se seus dispositivos implementarem a validação de certificado baseada em RSA, será possível omitir os certificados RSA Amazon Root CA 1 e Amazon Root CA 2. Talvez seja necessário clicar com o botão direito do mouse nesses links e selecionar Salvar link como... para salvar esses certificados como arquivos.

  • Se você estiver tendo problemas de validação de certificado do servidor ao se conectar ao endpoint do ATS, tente adicionar o certificado da CA raiz da Amazon relevante ao armazenamento confiável. Talvez seja necessário clicar com o botão direito do mouse nesses links e selecionar Salvar link como... para salvar esses certificados como arquivos.

  • Se você estiver tendo problemas de validação de certificado do servidor, talvez seja necessário confiar explicitamente na CA raiz. Tente adicionar o Starfield Root CA Certificate ao seu armazenamento confiável.

  • Se você ainda tiver problemas depois de executar as etapas acima, entre em contato com o Suporte ao desenvolvedor da AWS.

nota

Os certificados CA têm uma data de expiração depois da qual não podem ser usados para validar um certificado de servidor. O certificados da CA podem precisar ser substituídos antes da data de expiração. Você deve verificar se é possível atualizar o certificado CA raiz em todos os seus dispositivos ou clientes para ajudar a garantir uma conectividade contínua e manter-se atualizado com as melhores práticas de segurança.

nota

Ao se conectar ao AWS IoT Core código do seu dispositivo, passe o certificado para a API que você está usando para se conectar. A API usada varia conforme o SDK. Para obter mais informações, consulte os SDKs de dispositivos do AWS IoT Core.