La primera pregunta que debemos responder es: ¿por qué debería utilizar la autenticación basada en certificados? Hay dos razones principales: primero, la autenticación basada en contraseña ha demostrado no ser lo suficientemente segura para los dispositivos IoT con ataques, como la Botnet Mirai IoT. En segundo lugar, una vez que descubre la autenticación de certificados, en realidad es más fácil administrar y rotar certificados que usar contraseñas.
Lo siguiente que tenemos que hacer es intentar comprender cómo funciona la autenticación basada en certificados. La autenticación de certificados funciona mediante el uso de claves criptográficas para demostrar la identidad de el titular del certificado; si se implementa con una Autoridad Certificadora, puede probar la identidad del cliente verificando que el certificado haya sido emitido por una autoridad certificadora confiable y, por lo general, el El nombre del sujeto del certificado (o el nombre alternativo del sujeto) tiene la identidad del cliente (en este caso, el ID del dispositivo IoT). Esto significa que no es necesario registrar cada certificado en Azure IoT Hub; en su lugar, solo tiene que registrar su autoridad de certificación en Azure IoT hub y luego Azure sabrá qué dispositivo está autenticado al verificar que el certificado fue emitido por la CA confiable y luego verificar el ID del dispositivo en el certificado. .
El primer paso (después de crear su Autoridad certificadora para Azure IoT) es crear los certificados dentro de los dispositivos IoT. Como se menciona en nuestro blog sobre mejores prácticas de seguridad de IoT, debe tener su sistema de programación de IoT en el registro de fábrica, el dispositivo en su CA y emita el primer certificado para el dispositivo. Después del primer certificado, su dispositivo IoT puede renovar su certificado con su certificado existente.
Azure IoT tiene 3 formas de autenticar dispositivos: claves simétricas (contraseñas), X.509 autofirmado (tener que registrar manualmente cada certificado) y X.509 CA firmado (la forma correcta). Aquí se incluyen instrucciones detalladas sobre cómo agregar un dispositivo a Azure IoT Hub con autenticación firmada por CA con certificado en Azure Portal. Si bien es importante ver cómo se registra, recomendamos usar código para automatizar el registro del dispositivo IoT Hub. Tenga en cuenta que es importante hacerlo directamente en Azure IoT Hub; mientras que el servicio Azure Device Provisioning suena como una excelente opción para registrar dispositivos, solo admite X.509 autofirmado y no puede realizar la autenticación de certificado firmado por CA. Esto significa que cada vez que rota el certificado, debe registrar el nuevo certificado en Azure.
Como se menciona en nuestro blog mejores prácticas de seguridad de IoT, la parte más difícil de este diseño es agregar la primera certificado al dispositivo IoT. Es por eso que hemos creado un ejemplo de código y instrucciones detalladas sobre cómo crear el primer certificado para su dispositivo IoT.
Si está utilizando una autoridad de certificación basada en la nube como EZCA, puede hacer que sus dispositivos se comuniquen directamente con la autoridad de certificación a través de protocolos modernos, como un REST simple. llamar. Para hacerlo más fácil para los usuarios, hemos creado un C# paquete NuGet que hace que la renovación del certificado sea una simple línea de código. Si no está utilizando C#, puede utilizar el código de muestra o la página de Swagger para escribir su propio código para renovar automáticamente sus certificados de IoT. Recuerde, dado que utilizamos una autoridad certificadora confiable, no necesitamos registrar el nuevo certificado en Azure, ¡todo sucede automáticamente!
Si leyó la documentación de Azure IoT probablemente se encontró con que Microsoft menciona que no siguen el RFC 5280. estándar para la revocación de certificados (dato curioso, esta vulnerabilidad fue encontrada y divulgada por un ingeniero de Keytos). Esto significa que si revoca un certificado en su CA, Azure IoT Hub no sabrá que el certificado ha sido revocado y seguirá permitiendo que el dispositivo se autentique. En lugar de solucionar el problema, recomiendan deshabilitar manualmente el dispositivo en Azure IoT Hub. Nos complace anunciar que EZCA es la única CA de Azure que deshabilita automáticamente el dispositivo cuando se revoca el certificado, lo que significa que si está utilizando EZCA como su autoridad certificadora de Azure IoT, entonces no tiene que preocuparse sobre cómo desactivar sus dispositivos una vez que se revoca un certificado.