Compartilhar 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 da conexão padrão do protocolo TLS.

Um certificado de autoridade de certificação X.509 (AC) é um certificado digital que pode assinar outros certificados. Um certificado digital será 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 AC X.509 permite a autenticação de dispositivo no Hub IoT usando uma AC (autoridade de certificação). Ele simplifica o processo inicial de regitro de dispositivo e a logística da cadeia de fornecimento durante a fabricação do dispositivo.

Autenticação e autorização

Autenticação é o processo de provar que você é quem diz ser. A autenticação verifica a identidade de um usuário ou dispositivo no Hub IoT. Às vezes, a autenticação é abreviada para AuthN.

A autorização é o processo de confirmação de permissões para um usuário ou dispositivo autenticado no Hub IoT. Ela especifica quais recursos e comandos você tem permissão para acessar e o que você pode fazer com esses recursos e comandos. Às vezes, a autorização é abreviada para AuthZ.

Os certificados X.509 são usados apenas para autenticação no Hub IoT, não para autorização. Ao contrário da ID do Microsoft Entra e das 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 AC (autoridade de certificação) no Hub IoT.

  • X.509 assinado por AC - Essa opção é recomendada para cenários de produção e é o foco deste artigo.

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

  • X.509 autoassinado

    Se o 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 ele conhece.

Importante

A seguinte funcionalidade para dispositivos que usam a autenticação da AC (autoridade de certificação) X.509 ainda não está disponível em geral e o modo de visualização deve estar habilitado:

  • HTTPS, MQTT por WebSockets e AMQP por protocolos WebSockets.
  • Carregamentos de arquivos (todos os protocolos).

Geralmente, esses recursos estão em disponibilidade geral em dispositivos que usam a 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 a 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, defina disableDeviceSAS e disableModuleSAS como true nas propriedades de 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 do Certificado de Autoridade de Certificação X.509

A IoT requer uma identidade exclusiva para cada dispositivo que se conecta. Para a autenticação baseada em certificado, 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 fornecer a todos os parceiros da cadeia de suprimentos as chaves privadas correspondentes. Esse método vem com desafios que devem ser superados para garantir a confiança, da seguinte maneira:

  • Ter de compartilhar as chaves privadas de dispositivo com parceiros da cadeia de fornecimento, além de ignorar práticas recomendadas de PKI de nunca compartilhar as chaves privadas, torna a criação da relação de confiança na cadeia de fornecimento cara. Isso exige sistemas como salas seguras para abrigar chaves privadas de dispositivos e processos como auditorias de segurança periódicas. Ambos aumentam o custo para a cadeia de fornecimento.

  • 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 um-para-um para cada par chave-para-dispositivo. Essa relação impede o gerenciamento de grupo de dispositivos, a menos que o conceito de grupos seja explicitamente integrado ao processo de alguma forma. Portanto, a responsabilidade segura e o gerenciamento de ciclo de vida do dispositivo tornam-se um fardo enorme para as operações.

A autenticação de Certificado de Autoridade de Certificação X.509 oferece soluções elegantes para esses desafios usando cadeias de certificados. Uma cadeia de certificados resulta de uma AC assinando uma AC intermediária que, por sua vez, assina outra AC intermediária e assim por diante até que uma AC intermediária final assina 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 AC X.509 uma vez.

A autenticação de AC X.509 também simplifica a logística da cadeia de suprimentos. Um fluxo de dados de fabricação de dispositivo típico envolve várias etapas e responsáveis. Usando as autoridades de certificação, você pode assinar cada custodiante em uma cadeia criptográfica de confiança em vez de confiar-lhes chaves privadas do dispositivo. Cada responsável inscreve dispositivos na respectiva etapa do fluxo de fabricação. O resultado geral é uma cadeia de fornecimento ideal com responsabilidade interna por meio do uso da cadeia de confiança de criptografia.

Esse processo resulta na maior parte da segurança quando os dispositivos protegem suas chaves privadas exclusivas. Para isso, recomendamos o uso de HSMs (Módulos Seguros de Hardware) capazes de gerar chaves privadas internamente.

O DPS (Serviço de Provisionamento de Dispositivos) no Hub IoT do Azure facilita o provisionamento de grupos de dispositivos para hubs. Para obter mais informações, confira Tutorial: provisionar vários dispositivos X.509 usando grupos de registro.

Fluxo de certificado X.509

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

  • Obtenha um Certificado de Autoridade de Certificação X.509.
  • Assine dispositivos usando certificados de Autoridade de Certificação X.509.
  • Registre o Certificado de Autoridade de Certificação X.509 no Hub IoT.
  • Autenticar dispositivos assinados com Autoridades de Certificação X.509.
  • Revogue um certificado do dispositivo se ele estiver comprometido.

Obter um certificado de Autoridade de Certificação X.509

O certificado de autoridade de certificação X.509 é a parte superior da cadeia de certificados para cada um dos seus dispositivos. Você pode comprar ou criar um dependendo de como pretende usá-lo.

Para ambientes de produção, recomendamos que você adquira um certificado X.509 da AC de um fornecedor profissional de serviços de certificado.

Você também pode criar um certificado de AC X.509 autoassinado para fins de teste. Para obter mais informações sobre como criar certificados para teste, consulte Criar e fazer upload certificados para teste. Não recomendamos certificados autoassinados para ambientes de produção.

Independentemente de como você obtém o certificado da AC X.509, mantenha sempre a chave privada correspondente secreta e protegida.

Comprar um certificado

Adquirir um Certificado de Autoridade de Certificação tem a vantagem de ter uma AC raiz bem conhecida atuando como um terceiro confiável para garantir a legitimidade de dispositivos IoT quando os dispositivos se conectarem. Escolha essa opção se os dispositivos fizerem parte de uma rede IoT aberta em que interagem com produtos ou serviços de terceiros.

Para adquirir um certificado de AC X.509, escolha um provedor de serviços de certificado raiz. O provedor de AC raiz orienta você sobre como criar o par de chaves pública/privada e como gerar uma CSR (solicitação de assinatura de certificado) para seus serviços. Uma CSR é o processo formal de se candidatar para um certificado de uma autoridade de certificação. O resultado desta aquisição é um certificado para uso como um certificado de autoridade. Por causa da ubiquidade de certificados X.509, é provável que o certificado tenha sido formatado corretamente de acordo com 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 ele não envolve um signatário de terceiros, como a autoridade de certificação raiz.

Você pode escolher essa opção para teste até que esteja pronto para comprar um certificado de autoridade. Você também pode usar um Certificado de Autoridade de Certificação X.509 autoassinado em produção se os dispositivos não se conectarem a nenhum serviço de terceiros fora do Hub IoT.

Inscrever dispositivos em uma cadeia de certificados de confiança

O proprietário de um certificado de AC X.509 pode assinar criptograficamente uma AC intermediária que pode, por sua vez, assinar outra AC intermediária e assim por diante, até que a última AC intermediária assine um certificado de dispositivo. O resultado é uma cadeia em cascata de certificados conhecida como uma cadeia de certificados de confiança. Essa delegação de confiança é importante porque estabelece uma cadeia de custódia e evita o compartilhamento de chaves de assinatura.

Esta cascata de certificados acima na cadeia representa a transmissão de autoridade lógica. Muitas cadeias de suprimentos seguem essa entrega lógica em que cada AC intermediária é assinada na cadeia ao receber todos os certificados de AC upstream. A última AC 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 do dispositivo (também chamado de certificado folha) deve ter seu CN (nome comum) 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 a autenticação X.509, o certificado do módulo deve ter seu CN (nome comum) formatado como CN=deviceId/moduleId.

Saiba como criar uma cadeia de certificados como feito durante a assinatura de dispositivos.

Registrar o Certificado de Autoridade de Certificação X.509 no Hub IoT

Registre seu certificado de AC X.509 no Hub IoT, que o usa para autenticar seus dispositivos. Um certificado de autoridade de certificação X.509 pode autenticar qualquer dispositivo que tenha a AC em sua cadeia de certificados de confiança. O registro do Certificado de Autoridade de Certificação X.509 é um processo de duas etapas que inclui o upload do arquivo do certificado e, em seguida, o estabelecimento da prova de posse.

O processo de upload implica o carregamento de um arquivo que contém o certificado. Esse arquivo nunca deve conter nenhuma chave privada.

A etapa de prova de posse envolve um desafio criptográfico e um processo de resposta entre você e o Hub IoT para verificar se você realmente possui o certificado de AC. Você pode optar por verificar automaticamente ou manualmente a propriedade. Para verificação manual, o Hub IoT gera um desafio aleatório que você assina com a chave privada do certificado de AC. Se você manteve a chave privada em segredo e a protegeu conforme recomendado, somente você tem o conhecimento para concluir esta etapa. A confidencialidade de chaves privadas é a fonte de confiança nesse método. Depois de assinar o desafio, você carrega um arquivo que contém os resultados para concluir a verificação.

Saiba como registrar o Certificado de Autoridade de Certificação.

Autenticar dispositivos assinados com certificados de AC X.509

Com o certificado de autoridade de certificação X.509 registrado e os dispositivos assinados com uma cadeia de certificados de confiança, a etapa final é a autenticação do dispositivo. Quando um dispositivo assinado pela AC X.509 se conecta, ele carrega a 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 como autêntico em uma resposta bem-sucedida de prova de posse do dispositivo. Esta declaração pressupõe que a chave privada do dispositivo é protegida e que somente o dispositivo pode responder a esse desafio. Recomendamos o uso de chips seguros como HSM (Módulos Seguros de Hardware) em dispositivos para proteger as chaves privadas.

Uma conexão bem-sucedida do dispositivo com o Hub IoT conclui o processo de autenticação e também é uma indicação de uma configuração apropriada. Toda vez 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 certificados revogados da autoridade certificadora ao autenticar dispositivos com a autenticação baseada em certificado. Se você tiver um dispositivo que precise ser impedido de se conectar ao Hub IoT devido a um certificado potencialmente comprometido, desabilite o dispositivo no registro de identidade. Para saber mais, confira Desabilitar ou excluir um dispositivo.

Cenário de exemplo

A empresa X faz Widgets inteligentes X projetados para instalação profissional. A empresa X terceiriza a instalação e a produção. A fábrica Y produz Widgets inteligentes X e o técnico Z os instala. A empresa X deseja que o Widget inteligente X seja enviado diretamente da fábrica Y para o técnico Z para instalação e, em seguida, que ele se conecte diretamente à instância de Hub IoT da empresa X. Para fazer isso, a Empresa X precisa concluir algumas operações de instalação única para preparar o Widget inteligente X para conexão automática. Esse cenário de ponta a ponta inclui as seguintes etapas:

  1. Obter o certificado de autoridade de certificação X.509

  2. Registrar o Certificado de Autoridade de Certificação X.509 no Hub IoT

  3. Inscrever dispositivos em uma cadeia de certificados de confiança

  4. Conectar os dispositivos

Estas etapas são demonstradas no Tutorial: Criar e carregar certificados para teste.

Obter o certificado

A empresa X pode adquirir um Certificado de Autoridade de Certificação X.509 de uma autoridade de certificado 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ública/privada e assinar a chave pública em um certificado.

Detalhes sobre como realizar essas etapas diferem com vários provedores de serviço.

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

Registrar o certificado no Hub IoT

A Company-X precisa registrar a AC X.509 no Hub IoT, onde serve para autenticar Widgets Smart-X à medida que eles se conectam. Este processo único habilita a capacidade de autenticar e gerenciar qualquer quantidade de dispositivos do Widget inteligente X. A relação um para muitos entre certificados de autoridade de certificação e certificados de dispositivo é uma das principais vantagens de usar o método de autenticação de AC X.509. A alternativa seria carregar impressões digitais do certificado individuais para cada dispositivo do Widget inteligente X, aumentando assim os custos operacionais.

Registrar o Certificado de Autoridade de Certificação X.509 é um processo de duas etapas: carregar o certificado e fornecer a prova de posse.

Diagrama mostrando o fluxo de processo para registrar um certificado de AC X.509.

Carregar o certificado

O processo de upload do Certificado de Autoridade de Certificação X.509 é apenas isso: carregar o Certificado de Autoridade de Certificação para o Hub IoT. O Hub IoT espera o certificado em um arquivo.

O arquivo de certificado não deve, em hipótese alguma, conter nenhuma chave privada. Práticas recomendadas de padrões que regem a PKI (Infraestrutura de chave pública) exigem que o conhecimento da chave privada da empresa X resida exclusivamente dentro dela.

Provar posse

O Certificado de Autoridade de Certificação X.509, assim como qualquer certificado digital, é de informações públicas que são suscetíveis à interceptação. Dessa forma, um interceptador pode interceptar um certificado e tentar carregá-lo como seu próprio. Em nosso exemplo, o Hub IoT precisa garantir que o Certificado de Autoridade de Certificação carregado pela empresa X realmente pertence a ela. Ele o faz ao desafiar a empresa X a provar que ela tem a posse do certificado por meio de um fluxo de PoP (prova de posse).

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 práticas recomendadas de PKI e protegesse a chave privada, somente ela seria capaz de responder corretamente ao desafio da prova de posse. O Hub IoT prossegue para registrar o Certificado de Autoridade de Certificação X.509 após uma resposta bem-sucedida do desafio de prova de posse.

Uma resposta bem-sucedida para o desafio de prova de posse do Hub IoT conclui o registro da AC X.509.

Inscrever dispositivos em uma cadeia de certificados de confiança

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

Em nosso exemplo, a Empresa X assina a Fábrica-Y, que, por sua vez, assina o Técnico Z que assina finalmente o Widget inteligente X.

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

O diagrama a seguir mostra como a cadeia de certificados de confiança se reúne em nosso exemplo de Widget inteligente X.

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

  1. A empresa X nunca interage fisicamente com nenhum dos Widgets inteligentes X. Ele inicia a cadeia de certificados de confiança assinando o Certificado de Autoridade de Certificação intermediário da fábrica Y.
  2. A Fábrica Y agora tem seu próprio Certificado de Autoridade de Certificação intermediária com uma assinatura da Empresa X. Ele passa cópias desses itens para cada dispositivo. Ele também usa o Certificado de Autoridade de Certificação intermediário para assinar o Certificado de Autoridade de Certificação intermediário do Técnico Z e os certificados de dispositivo do Widget inteligente X.
  3. O Técnico Z agora tem seu próprio Certificado de Autoridade de Certificação intermediária com uma assinatura da Fábrica Y. Ele passa cópias desses itens para cada dispositivo. Ele também usa o Certificado de Autoridade de Certificação intermediário para assinar os certificados de dispositivo do Widget inteligente X.
  4. Cada dispositivo do Widget inteligente X agora tem o próprio certificado de dispositivo exclusivo e cópias das chaves públicas e assinaturas de cada Certificado de Autoridade de Certificação intermediário com o qual interagiu em toda a cadeia de fornecimento. Esses certificados e assinaturas podem ser rastreados até a raiz da empresa X original.

O método de AC de autenticação introduz a responsabilidade segura sobre a cadeia de fornecimento de fabricação do dispositivo. Por causa do processo de cadeia de certificados, as ações de cada membro da cadeia são registradas criptograficamente e podem ser verificadas.

Esse processo se baseia na suposição de que o par de chaves pública/privada do dispositivo exclusivo é criado de maneira independente e que a chave privada está sempre protegida dentro do dispositivo. Felizmente, existem chips de silício seguros na forma de HSM (Módulos Seguros de Hardware) que são capazes de gerar chaves internamente e proteger chaves privadas. A empresa X somente precisa adicionar um desses chips seguros na lista de materiais de componentes do Widget inteligente X.

Autenticar dispositivos

Dispositivos fabricados para autenticação de AC X.509 são equipados com certificados de dispositivo exclusivos e uma cadeia de certificados de sua respectiva cadeia de fornecimento de fabricação. A conexão do dispositivo, mesmo pela primeira vez, acontece em um processo de duas etapas: o upload da cadeia de certificados e a prova de posse.

Em nosso exemplo, cada Widget inteligente X carrega seu certificado de dispositivo exclusivo junto com certificados de AC X.509 da Fábrica Y e do Técnico Z e responde ao desafio de prova de posse do Hub IoT.

Usando o certificado de AC X.509 pré-registrado da Empresa X, o Hub IoT valida que a cadeia de certificados carregada é internamente consistente e que o proprietário válido do certificado de AC X.509 originou a cadeia. Tal como acontece com o processo de registro de AC X.509, o Hub IoT usa um processo de resposta de desafio 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 conceda a ele a conexão.

Diagrama mostrando o fluxo para validar um certificado de dispositivo.

A base da confiança depende da proteção de chaves privadas, incluindo as chaves privadas de dispositivo. Portanto, não podemos enfatizar o suficiente a importância de chips de silício seguros na forma de HSM (Hardware Secure Modules) para proteger chaves privadas do dispositivo e a melhor prática geral de nunca compartilhar chaves privadas de qualquer certificado na cadeia.

Próximas etapas

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 CA raiz ou um certificado de CA subordinado e quiser carregá-lo no seu hub IoT, verifique se você é o proprietário desse certificado. Para obter mais informações, consulte Tutorial: Criar e carregar certificados para teste.