Autenticación del servidor - AWS IoT Core

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Autenticación del servidor

Cuando el dispositivo u otro cliente intenta conectarse a AWS IoT Core, el servidor de AWS IoT Core enviará un certificado X.509 que el dispositivo utiliza para autenticar el servidor. La autenticación se lleva a cabo en la capa TLS mediante la validación de la cadena de certificados X.509. Este es el mismo método que utiliza el navegador cuando visita una URL HTTPS. Si desea utilizar certificados de su propia autoridad de certificación, consulte Administración de sus certificados de entidad de certificación.

Cuando sus dispositivos u otros clientes establecen una conexión TLS con un punto de enlace de AWS IoT Core, AWS IoT Core presenta una cadena de certificados que los dispositivos utilizan para verificar si se están comunicando con AWS IoT Core y no con otro servidor que suplante a AWS IoT Core . La cadena que se presenta depende de una combinación del tipo de punto de enlace al que se conecta el dispositivo y del conjunto de cifrado que el cliente y AWS IoT Core negociaron durante el protocolo TLS.

Tipo de punto de enlace

AWS IoT Coreadmite dos tipos de terminales de datos diferentes,iot:Datayiot:Data-ATS.iot:Datalos endpoints presentan un certificado firmado por elVeriSign Certificado de CA raíz G5 principal pública de clase 3.iot:Data-ATSlos endpoints presentan un certificado de servidor firmado por unServicios de Amazon TrustCA.

Los certificados presentados por los puntos de enlace de ATS están firmados por Starfield. Algunas implementaciones de cliente TLS requieren la validación de la raíz de confianza y requieren que los certificados de CA de Starfield estén instalados en los almacenes de confianza del cliente.

aviso

No se recomienda utilizar un método de fijación de certificados que aplica hash en todo el certificado (incluido el nombre del emisor, etc.) porque esto provocará un error en la verificación del certificado porque los certificados ATS que proporcionamos están firmados de forma cruzada por Starfield y tienen un nombre de emisor diferente.

Use puntos de enlace iot:Data-ATS a menos que su dispositivo requiera certificados de CA de Symantec o Verisign. Los certificados de Symantec y Verisign han quedado obsoletos y ya no son compatibles con la mayoría de los navegadores web.

Puede utilizar el comando describe-endpoint para crear el punto de enlace de ATS.

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

El comando describe-endpoint devuelve un punto de enlace en el formato siguiente.

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

La primera vez que se llama a describe-endpoint, se crea un punto de enlace. Todas las llamadas posteriores a describe-endpoint devuelven el mismo punto de enlace.

En lo que se refiere a la compatibilidad con versiones anteriores, AWS IoT Core sigue siendo compatible con los puntos de enlace de Symantec. Para obtener más información, consulte How AWS IoT Core is Helping Customers Navigate the Upcoming Distrust of Symantec Certificate Authorities. Los dispositivos que funcionan en los puntos de enlace de ATS son totalmente interoperables con los dispositivos que funcionan en los puntos de enlace de Symantec en la misma cuenta y no es necesario volver a registrarlos.

nota

Para ver el punto de enlace iot:Data-ATS en la consola de AWS IoT Core, elija Settings (Configuración). La consola solo muestra el punto de enlace iot:Data-ATS. De forma predeterminada, el comando describe-endpoint muestra el punto de enlace iot:Data para garantizar la compatibilidad con versiones anteriores. Para ver el punto de enlace iot:Data-ATS, especifique el parámetro --endpointType como en el ejemplo anterior.

Crear un IotDataPlaneClient con el AWS SDK para Java

De forma predeterminada, el AWS SDK para Java - Versión 2 crea un IotDataPlaneClient utilizando un punto de enlace iot:Data. Para crear un cliente que utilice un punto de enlace iot:Data-ATS, debe hacer lo siguiente.

  • Crear uniot:Data-ATSpunto final mediante elDescribeEndpointAPI.

  • Especifique ese punto de enlace al crear el IotDataPlaneClient.

En el ejemplo siguiente se realizan ambas operaciones.

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 de entidad de certificación para autenticación de servidor

En función del tipo de punto de enlace de datos que esté utilizando y del conjunto de cifrado que haya negociado, los certificados de autenticación del servidor de AWS IoT Core estarán firmados por uno de los siguientes certificados de la entidad de certificación raíz:

VeriSign Puntos de enlace (heredado)

Puntos de enlace de Amazon Trust Services (preferidos)

nota

Es posible que tenga que hacer clic con el botón derecho en estos enlaces y seleccionar Guardar enlace como... para guardar estos certificados como archivos.

  • Clave de 2048 bits RSA:Amazon Root CA 1.

  • Clave de bits RSA 4096: Amazon Root CA 2. Reservada para futura utilización.

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

  • Clave ECC de 384 bits: Amazon Root CA 4. Reservada para futura utilización.

Todos estos certificados tienen firma cruzada del Certificado Starfield Root CA. A partir del lanzamiento de AWS IoT Core en la región de Asia Pacífico (Mumbai) el 9 de mayo de 2018, todas las regiones nuevas de AWS IoT Core proporcionan exclusivamente certificados de ATS.

Directrices de autenticación de servidores

Hay muchas variables que pueden afectar a la capacidad de un dispositivo para validar el certificado de autenticación del servidor de AWS IoT Core. Por ejemplo, los dispositivos pueden tener demasiada memoria limitada para contener todos los certificados de CA raíz posibles, o los dispositivos pueden implementar un método no estándar de validación de certificados. Por estas razones, sugerimos seguir estas directrices:

  • Le recomendamos que utilice su punto de conexión ATS e instale todos losAmazon Root CACertificados.

  • Si no puede almacenar todos estos certificados en su dispositivo y si sus dispositivos no utilizan la validación basada en ECC, puede omitir laAmazon Root CA 3yAmazon Root CA 4Certificados ECC. Si sus dispositivos no implementan la validación de certificados basada en RSA, puede omitir laAmazon Root CA 1yAmazon Root CA 2Certificados RSA. Es posible que tenga que hacer clic con el botón derecho en estos enlaces y seleccionar Guardar enlace como... para guardar estos certificados como archivos.

  • Si tiene problemas de validación de certificados de servidor al conectarse a su punto de enlace de ATS, intente agregar el certificado Amazon Root CA correspondiente con firma cruzada a su almacén de confianza. Es posible que tenga que hacer clic con el botón derecho en estos enlaces y seleccionar Guardar enlace como... para guardar estos certificados como archivos.

  • Si experimenta problemas de validación de certificados de servidor, es posible que el dispositivo deba confiar explícitamente en la CA raíz. Prueba a añadir elStarfield Root CA Certificatea tu tienda fiduciaria.

  • Si sigue teniendo problemas después de ejecutar los pasos anteriores, póngase en contacto conAWSSupport desarrolladores.

nota

Los certificados de CA tienen una fecha de vencimiento posterior que no pueden usar para validar un certificado del servidor. Los certificados de CA podrían tener que reemplazarse antes de su fecha de vencimiento. Asegúrese de que puede actualizar los certificados de entidad de certificación raíz en todos sus dispositivos o clientes para asegurarse de que la conectividad se mantenga y esté al día de las prácticas recomendadas de seguridad.

nota

Cuando se conecte a AWS IoT Core en el código del dispositivo, pase el certificado a la API que está utilizando para realizar la conexión. La API que use variará según el SDK. Para obtener más información, consulte los SDK de dispositivo de AWS IoT Core.