Autenticar identidades com certificados X.509
O Hub IoT usa certificados X.509 para autenticar dispositivos. A autenticação X.509 permite a autenticação de um dispositivo IoT como parte do estabelecimento de conexão padrão TLS (Transport Layer Security).
Um certificado de autoridade de certificação X.509 é um certificado digital que pode assinar outros certificados. Um certificado digital é considerado um certificado X.509 se estiver em conformidade com o padrão de formatação de certificado prescrito pelo padrão RFC 5280 da IETF. Uma autoridade de certificação (AC) significa que o seu titular pode assinar outros certificados.
Este artigo descreve como usar certificados de autoridade de certificação (CA) X.509 para autenticar dispositivos que se conectam ao Hub IoT, que inclui as seguintes etapas:
- Como obter um certificado de CA X.509
- Como registrar o certificado de CA X.509 no Hub IoT
- Como assinar dispositivos usando certificados de autoridade de certificação X.509
- Como os dispositivos assinados com a autoridade de certificação X.509 são autenticados
Importante
A seguinte funcionalidade para dispositivos que usam a autenticação de autoridade de certificação (CA) X.509 ainda não está disponível em geral e o modo de visualização deve ser habilitado:
- HTTPS, MQTT sobre WebSockets e AMQP sobre protocolos WebSockets.
- Upload de arquivos (todos os protocolos).
Esses recursos estão geralmente disponíveis em dispositivos que usam autenticação de impressão digital X.509. Para saber mais sobre a autenticação X.509 com o Hub IoT, consulte Certificados X.509 suportados.
O recurso de CA X.509 permite a autenticação de dispositivos no Hub IoT usando uma autoridade de certificação (CA). Ele simplifica o processo inicial de registro de dispositivos e a logística da cadeia de suprimentos durante a fabricação de dispositivos.
Autenticação e autorização
A autenticação é o processo de provar que você é quem diz ser. A autenticação verifica a identidade de um usuário ou dispositivo para o Hub IoT. Às vezes é encurtado para AuthN. Autorização é o processo de confirmação de permissões para um usuário ou dispositivo autenticado no Hub IoT. Ele especifica quais recursos e comandos você tem permissão para acessar e o que você pode fazer com esses recursos e comandos. A autorização às vezes é encurtada para AuthZ.
Este artigo descreve a autenticação usando certificados X.509. Você pode usar qualquer certificado X.509 para autenticar um dispositivo com o Hub IoT carregando uma impressão digital de certificado ou uma autoridade de certificação (CA) no Hub IoT do Azure.
Os certificados X.509 são usados para autenticação no Hub IoT, não para autorização. Ao contrário do Microsoft Entra ID e assinaturas de acesso compartilhado, você não pode personalizar permissões com certificados X.509.
Impor autenticação X.509
Para segurança adicional, um hub IoT pode ser configurado para não permitir autenticação SAS para dispositivos e módulos, deixando X.509 como a única opção de autenticação aceita. Atualmente, esse recurso não está disponível no portal do Azure. Para configurar, definir disableDeviceSAS
e disableModuleSAS
usar true
as propriedades do recurso do Hub IoT:
az resource update -n <iothubName> -g <resourceGroupName> --resource-type Microsoft.Devices/IotHubs --set properties.disableDeviceSAS=true properties.disableModuleSAS=true
Benefícios da autenticação de certificado de CA X.509
A autenticação de autoridade de certificação (CA) X.509 é uma abordagem para autenticar dispositivos no Hub IoT usando um método que simplifica drasticamente a criação de identidade de dispositivo e o gerenciamento do ciclo de vida na cadeia de suprimentos.
Um atributo distintivo da autenticação de autoridade de certificação X.509 é a relação um-para-muitos que um certificado de autoridade de certificação tem com seus dispositivos downstream. Essa relação permite o registro de qualquer número de dispositivos no Hub IoT registrando um certificado de CA X.509 uma vez. Caso contrário, certificados exclusivos teriam que ser pré-registrados para cada dispositivo antes que um dispositivo possa se conectar. Essa relação um-para-muitos também simplifica as operações de gerenciamento do ciclo de vida dos certificados de dispositivos.
Outro atributo importante da autenticação X.509 CA é a simplificação da logística da cadeia de suprimentos. A autenticação segura de dispositivos requer que cada dispositivo tenha um segredo exclusivo, como uma chave, como base para a confiança. Na autenticação baseada em certificado, esse segredo é uma chave privada. Um fluxo típico de fabricação de dispositivos envolve várias etapas e custodiantes. Gerenciar com segurança as chaves privadas do dispositivo em vários custodiantes e manter a confiança é difícil e caro. O uso de autoridades de certificação resolve esse problema assinando cada custodiante em uma cadeia criptográfica de confiança em vez de confiar a eles as chaves privadas do dispositivo. Cada custodiante assina dispositivos em sua respetiva etapa do fluxo de fabricação. O resultado geral é uma cadeia de suprimentos ideal com responsabilidade integrada através do uso da cadeia criptográfica de confiança.
Esse processo gera mais segurança quando os dispositivos protegem suas chaves privadas exclusivas. Para este fim, recomendamos o uso de módulos seguros de hardware (HSM) capazes de gerar chaves privadas internamente.
O Serviço de Provisionamento de Dispositivo (DPS) do Hub IoT do Azure facilita o provisionamento de grupos de dispositivos para hubs. Para obter mais informações, consulte Tutorial: Provisionar vários dispositivos X.509 usando grupos de registro.
Obter um certificado de autoridade de certificação X.509
O certificado de autoridade de certificação X.509 é o topo da cadeia de certificados para cada um dos seus dispositivos. Você pode comprar ou criar um, dependendo de como você pretende usá-lo.
Para ambientes de produção, recomendamos que você adquira um certificado de CA X.509 de um provedor de serviços de certificado profissional. A compra de um certificado de autoridade de certificação tem o benefício de a autoridade de certificação raiz agir como um terceiro confiável para garantir a legitimidade de seus dispositivos. Considere esta opção se os seus dispositivos fizerem parte de uma rede IoT aberta onde interagem com produtos ou serviços de terceiros.
Você também pode criar um certificado de CA X.509 autoassinado para fins de teste. Para obter mais informações sobre como criar certificados para teste, consulte Criar e carregar certificados para teste.
Nota
Não recomendamos o uso de certificados autoassinados para ambientes de produção.
Independentemente de como você obtém seu certificado de CA X.509, certifique-se de manter sua chave privada correspondente secreta e protegida sempre. Essa precaução é necessária para criar confiança na autenticação da autoridade de certificação X.509.
Iniciar dispositivos na cadeia de confiança de certificados
O proprietário de um certificado de autoridade de certificação X.509 pode assinar criptograficamente uma autoridade de certificação intermediária que, por sua vez, pode assinar outra autoridade de certificação intermediária, e assim por diante, até que a última autoridade de certificação intermediária encerre esse processo assinando um certificado de dispositivo. O resultado é uma cadeia de certificados em cascata conhecida como cadeia de confiança de certificados. Essa delegação de confiança é importante porque estabelece uma cadeia de custódia criptograficamente variável e evita o compartilhamento de chaves de assinatura.
O certificado de dispositivo (também chamado de certificado folha) deve ter seu nome comum (CN) definido como a ID do dispositivo (CN=deviceId
) que foi usada ao registrar o dispositivo IoT no Hub IoT do Azure. Essa configuração é necessária para autenticação.
Para módulos que usam autenticação X.509, o certificado do módulo deve ter seu nome comum (CN) formatado como CN=deviceId/moduleId
.
Saiba como criar uma cadeia de certificados como feito ao assinar dispositivos.
Registrar o certificado da CA X.509 no Hub IoT
Registe o seu certificado X.509 CA no Hub IoT, que o utiliza para autenticar os seus dispositivos durante o registo e a ligação. O registro do certificado X.509 CA é um processo de duas etapas que inclui o upload do arquivo de certificado e, em seguida, o estabelecimento da prova de posse.
O processo de carregamento implica o carregamento de um ficheiro que contém o seu certificado. Este ficheiro nunca deve conter chaves privadas.
A etapa de prova de posse envolve um processo criptográfico de desafio e resposta entre você e o Hub IoT. Dado que o conteúdo do certificado digital é público e, portanto, suscetível a escutas, o Hub IoT precisa verificar se você realmente possui o certificado da autoridade de certificação. Você pode optar por verificar a propriedade automática ou manualmente. Para verificação manual, o Hub IoT do Azure gera um desafio aleatório que você assina com a chave privada correspondente do certificado da autoridade de certificação. Se você manteve a chave privada secreta e protegida conforme recomendado, então apenas você possui o conhecimento para concluir esta etapa. O sigilo das chaves privadas é a fonte de confiança neste método. Depois de assinar o desafio, você conclui esta etapa e verifica manualmente seu certificado carregando um arquivo contendo os resultados.
Saiba como registrar seu certificado de autoridade de certificação.
Autenticar dispositivos assinados com certificados de autoridade de certificação X.509
Cada hub IoT tem um registro de identidade que armazena informações sobre os dispositivos e módulos permitidos para se conectar a ele. Antes que um dispositivo ou módulo possa se conectar, deve haver uma entrada para esse dispositivo ou módulo no registro de identidade do hub IoT. Um dispositivo ou módulo é autenticado com o hub IoT com base em credenciais armazenadas no registro de identidade.
Com seu certificado de CA X.509 registrado e dispositivos conectados a uma cadeia de confiança de certificados, a etapa final é a autenticação do dispositivo quando o dispositivo se conecta. Quando um dispositivo assinado pela CA X.509 se conecta, ele carrega sua cadeia de certificados para validação. A cadeia inclui todos os certificados intermediários de CA e dispositivo. Com essas informações, o Hub IoT autentica o dispositivo em um processo de duas etapas. O Hub IoT valida criptograficamente a cadeia de certificados para consistência interna e, em seguida, emite um desafio de prova de posse para o dispositivo. O Hub IoT declara o dispositivo autêntico em uma resposta de prova de posse bem-sucedida do dispositivo. Esta declaração pressupõe que a chave privada do dispositivo está protegida e que apenas o dispositivo pode responder com êxito a este desafio. Recomendamos o uso de chips seguros como Hardware Secure Modules (HSM) em dispositivos para proteger chaves privadas.
Uma conexão de dispositivo bem-sucedida com o Hub IoT conclui o processo de autenticação e também é indicativa de uma configuração adequada. Sempre que um dispositivo se conecta, o Hub IoT renegocia a sessão TLS e verifica o certificado X.509 do dispositivo.
Revogar um certificado de dispositivo
O Hub IoT não verifica as listas de revogação de certificados da autoridade de certificação ao autenticar dispositivos com autenticação baseada em certificados. Se você tiver um dispositivo que precisa ser impedido de se conectar ao Hub IoT devido a um certificado potencialmente comprometido, desative o dispositivo no registro de identidade. Para obter mais informações, consulte Desabilitar ou excluir um dispositivo.
Cenário de exemplo
Company-X faz Smart-X-Widgets que são projetados para instalação profissional. A empresa-X terceiriza a fabricação e a instalação. A Factory-Y fabrica os Smart-X-Widgets e o Technician-Z instala-os. A Company-X quer que o Smart-X-Widget seja enviado diretamente do Factory-Y para o Technician-Z para instalação e, em seguida, para que ele se conecte diretamente à instância do Hub IoT da Company-X. Para que isso aconteça, a Company-X precisa concluir algumas operações de configuração única para preparar o Smart-X-Widget para conexão automática. Esse cenário de ponta a ponta inclui as seguintes etapas:
Adquira o certificado da autoridade de certificação X.509
Registrar o certificado da CA X.509 no Hub IoT
Iniciar sessão de dispositivos numa cadeia de certificados de confiança
Ligue os dispositivos
Essas etapas são demonstradas em Tutorial: Criar e carregar certificados para teste.
Adquira o certificado
A Company-X pode comprar um certificado de CA X.509 de uma autoridade de certificação raiz pública ou criar um por meio de um processo autoassinado. Qualquer uma das opções envolve duas etapas básicas: gerar um par de chaves públicas/privadas e assinar a chave pública em um certificado.
Os detalhes sobre como realizar essas etapas diferem com vários provedores de serviços.
Comprar um certificado
A compra de um certificado de autoridade de certificação tem o benefício de ter uma autoridade de certificação raiz bem conhecida atuando como um terceiro confiável para garantir a legitimidade dos dispositivos IoT quando os dispositivos se conectam. Escolha esta opção se os seus dispositivos interagirem com produtos ou serviços de terceiros.
Para comprar um certificado de autoridade de certificação X.509, escolha um provedor de serviços de certificado raiz. O provedor de autoridade de certificação raiz irá orientá-lo sobre como criar o par de chaves pública/privada e como gerar uma solicitação de assinatura de certificado (CSR) para seus serviços. Um CSR é o processo formal de solicitação de um certificado de uma autoridade de certificação. O resultado desta compra é um certificado para uso como um certificado de autoridade. Dada a ubiquidade dos certificados X.509, é provável que o certificado tenha sido formatado corretamente para o padrão RFC 5280 da IETF.
Criar um certificado autoassinado
O processo para criar um certificado de autoridade de certificação X.509 autoassinado é semelhante à compra de um, exceto que não envolve um signatário de terceiros como a autoridade de certificação raiz. Em nosso exemplo, a empresa-X assinaria seu certificado de autoridade em vez de uma autoridade de certificação raiz.
Você pode escolher essa opção para teste até estar pronto para comprar um certificado de autoridade. Você também pode usar um certificado de CA X.509 autoassinado em produção se seus dispositivos não se conectarem a nenhum serviço de terceiros fora do Hub IoT.
Registrar o certificado no Hub IoT
A Company-X precisa registrar a CA X.509 no Hub IoT, onde serve para autenticar Smart-X-Widgets à medida que eles se conectam. Este processo único permite a capacidade de autenticar e gerenciar qualquer número de dispositivos Smart-X-Widget. A relação um-para-muitos entre o certificado da autoridade de certificação e os certificados do dispositivo é uma das principais vantagens do uso do método de autenticação da autoridade de certificação X.509. A alternativa seria carregar impressões digitais de certificados individuais para cada dispositivo Smart-X-Widget, aumentando assim os custos operacionais.
O registro do certificado de CA X.509 é um processo de duas etapas: carregue o certificado e forneça prova de posse.
Carregue o certificado
O processo de carregamento do certificado da autoridade de certificação X.509 é exatamente isso: carregar o certificado da autoridade de certificação no Hub IoT. O Hub IoT espera o certificado em um arquivo.
O ficheiro de certificado não deve, em circunstância alguma, conter chaves privadas. As práticas recomendadas dos padrões que regem a Infraestrutura de Chave Pública (PKI) exigem que o conhecimento da chave privada da Empresa-X resida exclusivamente na Empresa-X.
Comprovar a posse
O certificado X.509 CA, assim como qualquer certificado digital, é uma informação pública suscetível a escutas. Como tal, um espião pode intercetar um certificado e tentar carregá-lo como seu. No nosso exemplo, o Hub IoT tem de se certificar de que o certificado de AC carregado pela Company-X pertence realmente à Company-X. Fá-lo desafiando a empresa-X a provar que possui o certificado através de um fluxo de prova de posse (PoP).
Para o fluxo de prova de posse, o Hub IoT gera um número aleatório a ser assinado pela Empresa-X usando sua chave privada. Se a Empresa X seguisse as melhores práticas de PKI e protegesse sua chave privada, somente ela seria capaz de responder corretamente ao desafio de prova de posse. O Hub IoT procede ao registro do certificado de CA X.509 após uma resposta bem-sucedida do desafio de prova de posse.
Uma resposta bem-sucedida ao desafio de prova de posse do Hub IoT conclui o registro da CA X.509.
Iniciar sessão de dispositivos numa cadeia de certificados de confiança
A IoT requer uma identidade exclusiva para cada dispositivo que se conecta. Para autenticação baseada em certificados, essas identidades estão na forma de certificados. Em nosso exemplo, a autenticação baseada em certificado significa que cada Smart-X-Widget deve possuir um certificado de dispositivo exclusivo.
Uma maneira válida, mas ineficiente, de fornecer certificados exclusivos em cada dispositivo é pré-gerar certificados para Smart-X-Widgets e confiar aos parceiros da cadeia de suprimentos as chaves privadas correspondentes. Para a Empresa-X, isso significa confiar tanto a Fábrica-Y quanto o Técnico-Z. Este método vem com desafios que devem ser superados para garantir a confiança, como segue:
Ter que compartilhar chaves privadas de dispositivos com parceiros da cadeia de suprimentos, além de ignorar as melhores práticas de PKI de nunca compartilhar chaves privadas, torna a construção de confiança na cadeia de suprimentos cara. Requer sistemas como salas seguras para abrigar chaves privadas do dispositivo e processos como auditorias de segurança periódicas. Ambos acrescentam custos à cadeia de abastecimento.
Contabilizar com segurança os dispositivos na cadeia de suprimentos e, posteriormente, gerenciá-los na implantação, torna-se uma tarefa individual para cada par chave-para-dispositivo, desde o ponto de geração de certificado exclusivo do dispositivo (e chave privada) até a desativação do dispositivo. Isso impede o gerenciamento de grupos de dispositivos, a menos que o conceito de grupos seja explicitamente incorporado ao processo de alguma forma. A contabilidade segura e o gerenciamento do ciclo de vida do dispositivo, portanto, tornam-se um fardo pesado para as operações.
A autenticação de certificado de CA X.509 oferece soluções elegantes para esses desafios usando cadeias de certificados. Uma cadeia de certificados resulta de uma autoridade de certificação assinando uma autoridade de certificação intermediária que, por sua vez, assina outra autoridade de certificação intermediária, e assim por diante, até que uma autoridade de certificação intermediária final assine um dispositivo. No nosso exemplo, a Empresa-X assina Factory-Y, que por sua vez assina Technician-Z que finalmente assina Smart-X-Widget.
Esta cascata de certificados na cadeia representa a transferência lógica da autoridade. Muitas cadeias de suprimentos seguem essa transferência lógica pela qual cada autoridade de certificação intermediária é conectada à cadeia enquanto recebe todos os certificados de autoridade de certificação upstream, e a última autoridade de certificação intermediária finalmente assina cada dispositivo e injeta todos os certificados de autoridade da cadeia no dispositivo. Essa transferência é comum quando a empresa contratada com uma hierarquia de fábricas contrata uma determinada fábrica para fazer a fabricação. Embora a hierarquia possa ter vários níveis de profundidade (por exemplo, por geografia/tipo de produto/linha de fabricação), apenas a fábrica no final consegue interagir com o dispositivo, mas a cadeia é mantida a partir do topo da hierarquia.
As cadeias alternativas podem ter diferentes autoridades de certificação intermediárias interagindo com o dispositivo, caso em que a autoridade de certificação que interage com o dispositivo injeta o conteúdo da cadeia de certificados nesse ponto. Modelos híbridos também são possíveis onde apenas parte do CA tem interação física com o dispositivo.
O diagrama a seguir mostra como a cadeia de confiança do certificado se une em nosso exemplo Smart-X-Widget.
- A Company-X nunca interage fisicamente com nenhum dos Smart-X-Widgets. Ele inicia a cadeia de confiança de certificados assinando o certificado de CA intermediário do Factory-Y.
- A Factory-Y agora tem seu próprio certificado de CA intermediário e uma assinatura da Company-X. Ele passa cópias desses itens para o dispositivo. Ele também usa seu certificado de CA intermediário para assinar o certificado de CA intermediário do Technician-Z e o certificado de dispositivo Smart-X-Widget.
- O Technician-Z agora tem seu próprio certificado de CA intermediário e uma assinatura da Factory-Y. Ele passa cópias desses itens para o dispositivo. Ele também usa seu certificado de CA intermediário para assinar o certificado de dispositivo Smart-X-Widget.
- Cada dispositivo Smart-X-Widget agora tem seu próprio certificado de dispositivo exclusivo e cópias das chaves públicas e assinaturas de cada certificado de CA intermediário com o qual interagiu em toda a cadeia de suprimentos. Esses certificados e assinaturas podem ser rastreados até a raiz original da Company-X.
O método de autenticação da autoridade de certificação infunde responsabilidade segura na cadeia de suprimentos de fabricação de dispositivos. Devido ao processo da cadeia de certificados, as ações de cada membro da cadeia são criptograficamente registradas e verificáveis.
Esse processo baseia-se na suposição de que o par de chaves público/privado exclusivo do dispositivo é criado independentemente e que a chave privada está sempre protegida dentro do dispositivo. Felizmente, existem chips de silício seguros na forma de Módulos Seguros de Hardware (HSM) que são capazes de gerar chaves internamente e proteger chaves privadas. A Company-X só precisa adicionar um desses chips seguros na lista de materiais de componentes do Smart-X-Widget.
Autenticar dispositivos
Depois que o certificado de CA de nível superior é registrado no Hub IoT e os dispositivos têm seus certificados exclusivos, como eles se conectam? Ao registrar um certificado de CA X.509 no Hub IoT uma vez, como potencialmente milhões de dispositivos se conectam e são autenticados desde a primeira vez? Através do mesmo fluxo de upload de certificado e prova de posse que encontramos anteriormente com o registro do certificado de CA X.509.
Os dispositivos fabricados para autenticação X.509 CA são equipados com certificados de dispositivo exclusivos e uma cadeia de certificados de sua respetiva cadeia de suprimentos de fabricação. A conexão do dispositivo, mesmo pela primeira vez, acontece em um processo de duas etapas: carregamento da cadeia de certificados e prova de posse.
Durante o carregamento da cadeia de certificados, o dispositivo carrega seu certificado exclusivo e sua cadeia de certificados no Hub IoT. Usando o certificado de CA X.509 pré-registrado, o Hub IoT valida se a cadeia de certificados carregada é internamente consistente e se a cadeia foi originada pelo proprietário válido do certificado de CA X.509. Assim como no processo de registro da CA X.509, o Hub IoT usa um processo de desafio-resposta de prova de posse para verificar se a cadeia e, portanto, o certificado do dispositivo, pertence ao dispositivo que o carrega. Uma resposta bem-sucedida aciona o Hub IoT para aceitar o dispositivo como autêntico e conceder-lhe conexão.
Em nosso exemplo, cada Smart-X-Widget carregaria seu certificado exclusivo do dispositivo junto com os certificados de CA X.509 Factory-Y e Technician-Z e, em seguida, responderia ao desafio de prova de posse do Hub IoT.
A base da confiança reside na proteção de chaves privadas, incluindo chaves privadas de dispositivos. Portanto, não podemos enfatizar o suficiente a importância de chips de silício seguros na forma de Módulos Seguros de Hardware (HSM) para proteger as chaves privadas do dispositivo e a melhor prática geral de nunca compartilhar chaves privadas, como uma fábrica confiando a outra sua chave privada.
Próximos passos
Use o Serviço de Provisionamento de Dispositivos para provisionar vários dispositivos X.509 usando grupos de registro.
Para saber mais sobre os campos que compõem um certificado X.509, consulte Certificados X.509.
Se você tiver um certificado de autoridade de certificação raiz ou um certificado de autoridade de certificação subordinada e quiser carregá-lo em seu hub IoT, deverá verificar se possui esse certificado. Para obter mais informações, consulte Tutorial: Criar e carregar certificados para teste.