Partilhar via


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 (CA) 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.

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.

Os certificados X.509 são usados apenas 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.

Tipos de autenticação de certificado

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) para o Hub IoT.

  • X.509 CA assinada - Esta opção é recomendada para cenários de produção e é o foco deste artigo.

    Se o dispositivo tiver um certificado X.509 assinado por CA, carregue um certificado de CA raiz ou intermediário na cadeia de assinatura para o Hub IoT antes de registrar o dispositivo. O dispositivo tem um certificado X.509 com a CA X.509 verificada em sua cadeia de confiança de certificados. Quando o dispositivo se conecta, ele apresenta sua cadeia de certificados completa e o hub IoT pode validá-lo porque conhece a CA X.509. Vários dispositivos podem ser autenticados na mesma autoridade de certificação X.509 verificada.

  • X.509 auto-assinado

    Se o seu dispositivo tiver um certificado X.509 autoassinado, você dará ao Hub IoT uma versão do certificado para autenticação. Ao registrar um dispositivo, você carrega uma impressão digital do certificado, que é um hash do certificado X.509 do dispositivo. Quando o dispositivo se conecta, ele apresenta seu certificado e o hub IoT pode validá-lo em relação ao hash que conhece.

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 estar 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.

Impor autenticação X.509

Para segurança extra, 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 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.

Uma maneira válida, mas ineficiente, de fornecer um certificado exclusivo em cada dispositivo é pré-gerar certificados e dar a todos os parceiros da cadeia de suprimentos as chaves privadas correspondentes. 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 por meio da desativação do dispositivo, torna-se uma tarefa individual para cada par chave-para-dispositivo. Essa relação 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. As cadeias de certificados criam uma relação um-para-muitos entre um certificado de autoridade de certificação e seus dispositivos downstream. Essa relação permite que você registre qualquer número de dispositivos no Hub IoT registrando um certificado de CA X.509 uma vez.

A autenticação X.509 CA também simplifica a logística da cadeia de suprimentos. Um fluxo típico de fabricação de dispositivos envolve várias etapas e custodiantes. Usando autoridades de certificação, você pode assinar cada custodiante em uma cadeia criptográfica de confiança em vez de confiar a eles 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.

Fluxo de certificados X.509

Esta seção descreve como usar certificados de CA X.509 para autenticar dispositivos que se conectam ao Hub IoT, que inclui as seguintes etapas:

  • Obtenha um certificado de CA X.509.
  • Assine dispositivos usando certificados de CA X.509.
  • Registre o certificado da CA X.509 no Hub IoT.
  • Autentique dispositivos assinados com CAs X.509.
  • Revogue um certificado de dispositivo se ele estiver comprometido.

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.

Você também pode criar um certificado de autoridade de certificação 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. Não recomendamos 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.

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 fizerem parte de uma rede IoT aberta onde interagem 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 orienta você 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.

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.

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 assine um certificado de dispositivo. O resultado é uma cadeia de certificados em cascata conhecida como cadeia de confiança de certificados. Esta delegação de confiança é importante porque estabelece uma cadeia de custódia e evita a partilha de chaves de assinatura.

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. A última autoridade de certificação intermediária finalmente assina cada dispositivo e injeta todos os certificados de autoridade da cadeia no dispositivo.

Diagrama que mostra os certificados em uma cadeia de confiança.

O certificado de dispositivo (também chamado de certificado folha) deve ter seu nome comum (CN) definido como a ID do dispositivo (CN=deviceId) 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. Um certificado de autoridade de certificação X.509 pode autenticar qualquer dispositivo que tenha a autoridade de certificação em sua cadeia de confiança de certificados. 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 para 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 gera um desafio aleatório que você assina com a chave privada 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ê carrega um arquivo contendo os resultados para concluir a verificação.

Saiba como registrar seu certificado de autoridade de certificação.

Autenticar dispositivos assinados com certificados de autoridade de certificação X.509

Com seu certificado de CA X.509 registrado e dispositivos assinados com uma cadeia de confiança de certificado, a etapa final é a autenticação do dispositivo. Quando um dispositivo assinado pela CA X.509 se conecta, ele carrega sua cadeia de certificados para validação. Com essas informações, o Hub IoT autentica o dispositivo em um processo de duas etapas.

Primeiro, o Hub IoT valida criptograficamente a cadeia de certificados para consistência interna. Em seguida, o Hub IoT 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:

  1. Obtenha o certificado da autoridade de certificação X.509

  2. Registrar o certificado da CA X.509 no Hub IoT

  3. Iniciar sessão de dispositivos numa cadeia de certificados de confiança

  4. Ligue os dispositivos

Essas etapas são demonstradas em Tutorial: Criar e carregar certificados para teste.

Obter 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.

Diagrama mostrando o fluxo para gerar um certificado de CA X.509.

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.

Diagrama mostrando o fluxo do processo para registrar um certificado de autoridade de certificação X.509.

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 para a Empresa-X assinar 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

Em nosso exemplo, a autenticação baseada em certificado significa que cada Smart-X-Widget deve possuir um certificado de dispositivo exclusivo. Em vez de criar pares de certificados/chaves individuais para cada dispositivo, a Company-X decide usar certificados de CA e criar uma cadeia de confiança de certificados para cada dispositivo.

No nosso exemplo, a Empresa-X assina Factory-Y, que por sua vez assina Technician-Z que finalmente assina Smart-X-Widget.

Diagrama mostrando um exemplo de uma hierarquia de cadeia de certificados.

O diagrama a seguir mostra como a cadeia de confiança do certificado se une em nosso exemplo Smart-X-Widget.

Diagrama mostrando a cadeia de confiança de certificados dos certificados de uma empresa para os certificados de outra empresa.

  1. 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.
  2. A Factory-Y agora tem seu próprio certificado de CA intermediário com uma assinatura da Company-X. Ele passa cópias desses itens para cada dispositivo. Ele também usa seu certificado de CA intermediário para assinar o certificado de CA intermediário do Technician-Z e os certificados de dispositivo Smart-X-Widget.
  3. O Técnico-Z agora tem seu próprio certificado de CA intermediário com uma assinatura da Factory-Y. Ele passa cópias desses itens para cada dispositivo. Ele também usa seu certificado de CA intermediário para assinar os certificados de dispositivo Smart-X-Widget.
  4. 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

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.

Em nosso exemplo, cada Smart-X-Widget carrega seu certificado de dispositivo exclusivo junto com os certificados de CA X.509 Factory-Y e Technician-Z e, em seguida, responde ao desafio de prova de posse do Hub IoT.

Usando o certificado de CA X.509 pré-registrado da Company-X, o Hub IoT valida que a cadeia de certificados carregada é internamente consistente e que o proprietário válido do certificado de CA X.509 originou a cadeia. 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.

Diagrama mostrando o fluxo para validar um certificado de dispositivo.

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 de qualquer certificado na cadeia.

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.