Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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).
Este artigo descreve como utilizar certificados X.509 CA geridos por terceiros para autenticar dispositivos que se ligam ao IoT Hub.
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 IoT Hub, não para autorização. Ao contrário do Microsoft Entra ID e assinaturas de acesso partilhado, não pode personalizar permissões com certificados X.509.
Microsoft vs PKI de terceiros
A infraestrutura de chave pública (PKI) utiliza certificados digitais para autenticar e encriptar dados entre dispositivos e serviços. Certificados PKI garantem a segurança de cenários como VPN, Wi-Fi, email, web e identidade de dispositivos. Gerir certificados PKI é desafiante, dispendioso e complexo, especialmente para organizações com muitos dispositivos e utilizadores.
O IoT Hub suporta dois tipos de fornecedores de PKI para autenticação de certificados X.509:
| Fornecedor de PKI | Integração necessária | Azure Device Registry (ADR) é necessário | Serviço de Provisionamento de Dispositivos (DPS) necessário |
|---|---|---|---|
| PKI gerida pela Microsoft | Não. Configure as autoridades certificadoras diretamente no Azure Device Registry (ADR). | Yes | Yes |
| PKI de terceiros (DigiCert, GlobalSign, etc.) | Yes. É necessária integração manual. | Não | Não |
Este artigo foca-se em fornecedores de PKI de terceiros. Se quiser usar PKI gerida pela Microsoft com certificados X.509, veja O que é a gestão de certificados?.
Tipos de autenticação de certificados
Um certificado de autoridade certificadora (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.
Pode usar qualquer certificado X.509 para autenticar um dispositivo com o IoT Hub, carregando uma impressão digital do certificado ou uma autoridade certificadora (CA) para o IoT Hub.
X.509 assinado pela CA - Esta opção é recomendada para cenários de produção e é o foco deste artigo.
Se o seu dispositivo tiver um certificado X.509 assinado pela CA, então deve carregar um certificado root ou intermédio da cadeia de certificação para o IoT Hub antes de registar o dispositivo. O dispositivo possui um certificado X.509 com a autoridade de certificação X.509 verificada na sua cadeia de confiança. Quando o dispositivo se liga, apresenta toda a sua cadeia de certificados e o hub IoT pode validá-lo porque conhece a CA X.509. Múltiplos dispositivos podem autenticar-se contra a mesma CA X.509 verificada.
X.509 autoassinado
Se o seu dispositivo tiver um certificado X.509 auto-assinado, então dá ao IoT Hub uma versão do certificado para autenticação. Quando regista um dispositivo, carrega uma impressão digital do certificado, que é um hash do certificado X.509 do dispositivo. Quando o dispositivo se liga, apresenta o seu certificado e o hub IoT pode validá-lo contra o hash que conhece.
Impor autenticação X.509
Para maior segurança, um hub IoT pode ser configurado para não permitir autenticação SAS para dispositivos e módulos, deixando o X.509 como a única opção aceite de autenticação. 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
O IoT Hub exige uma identidade única para cada dispositivo que se liga. Para autenticação baseada em certificados, essas identidades estão na forma de certificados.
Uma forma válida, mas ineficiente, de fornecer um certificado único em cada dispositivo é pré-gerar certificados e dar a todos os parceiros da cadeia de abastecimento 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 de forma segura os dispositivos na cadeia de fornecimento e mais tarde geri-los na implementação até à retirada dos dispositivos torna-se uma tarefa individual para cada par chave-dispositivo. Esta relação impede a gestão de grupos de dispositivos, a menos que o conceito de grupos esteja explicitamente incorporado no 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 de um-para-muitos entre um certificado CA e os seus dispositivos subsequentes. Esta relação permite-lhe registar qualquer número de dispositivos no IoT Hub, registando uma única vez um certificado de CA X.509.
A autenticação AC X.509 também simplifica a logística da cadeia de abastecimento. Um fluxo típico de fabricação de dispositivos envolve várias etapas e custodiantes. Ao utilizar as autoridades certificadoras, pode assinar cada custodiante numa cadeia criptográfica de confiança em vez de lhes confiar 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.
Fluxo de certificados X.509
Esta secção descreve como usar certificados de CA X.509 para autenticar dispositivos que se ligam ao IoT Hub, incluindo os seguintes passos:
- Obtenha um certificado CA X.509.
- Assinar dispositivos usando certificados CA X.509.
- Registe o certificado de CA X.509 no IoT Hub.
- Autenticar dispositivos assinados com CAs X.509.
- Revogue um certificado de dispositivo se este for 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. Podes comprar ou criar um, dependendo de como pretendes 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.
Também pode criar um certificado de CA X.509 auto-assinado 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 auto-assinados 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 fazem 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 fornecedor de CA raiz orienta-o sobre como criar o par de chaves pública/privada e como gerar um pedido de assinatura de certificados (CSR) para os 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 titular de um certificado de CA X.509 pode assinar criptograficamente uma CA intermédia que por sua vez pode assinar outra CA intermédia, e assim sucessivamente, até que a última CA intermédia 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 das chaves de assinatura.
Esta cascata de certificados na cadeia representa a transferência lógica da autoridade. Muitos fluxos de abastecimento seguem esta passagem lógica, em que cada CA intermédio é assinado na cadeia enquanto recebe todos os certificados de CA de um nível superior. A última CA intermédia finalmente assina cada dispositivo e injeta todos os certificados de autoridade da cadeia no dispositivo.
O certificado do dispositivo (também chamado de certificado folha) deve ter o seu nome comum (CN) definido para o ID do dispositivo (CN=deviceId) que é usado ao registar o dispositivo IoT no Azure IoT Hub. 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
Regista o teu certificado de CA X.509 no IoT Hub, que o utiliza para autenticar os teus dispositivos. Um certificado de CA X.509 pode autenticar qualquer dispositivo que tenha a CA na 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 de desafio e resposta criptográfica entre si e o IoT Hub para verificar se é realmente proprietário do certificado CA. Você pode optar por verificar a propriedade automática ou manualmente. Para verificação manual, o IoT Hub gera um desafio aleatório que é assinado com a chave privada do certificado da CA. 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, carrega um ficheiro 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 o seu certificado de CA X.509 registado e os dispositivos assinados com uma cadeia de certificados de confiança, o passo 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 IoT Hub valida criptograficamente a cadeia de certificados para consistência interna. Depois, o IoT Hub emite um desafio de prova de posse ao 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 tiver um dispositivo que precise de ser bloqueado para se ligar ao IoT Hub devido a um certificado potencialmente comprometido, desative o dispositivo no registo 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 necessita realizar algumas operações de configuração pontual para preparar o Smart-X-Widget para conexão automática. Esse cenário de ponta a ponta inclui as seguintes etapas:
Obtenha o certificado CA 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.
Obtenha 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.
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. Assim, um escutador pode interceptar 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 IoT Hub gera um número aleatório para a Company-X assiná-lo usando a 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 individuais de certificados/chaves para cada dispositivo, Company-X decide usar certificados 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.
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.
- Factory-Y agora tem o seu próprio certificado intermédio de CA com assinatura da Empresa-X. Ele passa cópias destes itens para cada dispositivo. Também utiliza o seu certificado de CA intermédia para assinar o certificado de CA intermédio do Technician-Z e os certificados de dispositivo Smart-X-Widget.
- Technician-Z tem agora o seu próprio certificado intermédio de CA com uma assinatura da Factory-Y. Ele passa cópias destes itens para cada dispositivo. Também utiliza o seu certificado intermédio de CA para assinar os certificados do 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
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.
No nosso exemplo, cada Smart-X-Widget carrega o seu certificado de dispositivo único juntamente com os certificados CA X.509 da Factory-Y e do Technician-Z e, em seguida, responde ao desafio de comprovação de posse do IoT Hub.
Utilizando o certificado de CA X.509 pré-registado da Company-X, o IoT Hub 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.
A base da confiança reside na proteção de chaves privadas, incluindo chaves privadas de dispositivos. Por isso, não podemos sublinhar o suficiente a importância dos chips de silício seguros sob a forma de Módulos Seguros de Hardware (HSM) para proteger as chaves privadas dos dispositivos, e a melhor prática geral de nunca partilhar chaves privadas de qualquer certificado da 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.