Atestado de certificado X.509

Este artigo fornece uma visão geral dos conceitos de DPS (Serviço de Provisionamento de Dispositivos) envolvidos ao provisionar dispositivos usando o certificado X.509. Este artigo é relevante para todas as pessoas envolvidas na preparação de um dispositivo para implantação.

Os certificados X.509 podem ser armazenados em um módulo de segurança de hardware HSM.

Gorjeta

É altamente recomendável usar um HSM com dispositivos para armazenar segredos com segurança, como o certificado X.509, em seus dispositivos em produção.

Certificados X.509

Usar certificados X.509 como um mecanismo de atestado é uma excelente maneira de dimensionar a produção e simplificar o provisionamento de dispositivos. Os certificados X.509 são normalmente organizados em uma cadeia de certificados de confiança na qual cada certificado na cadeia é assinado pela chave privada do próximo certificado superior e assim por diante, terminando em um certificado raiz autoassinado. Esse arranjo estabelece uma cadeia delegada de confiança do certificado raiz gerado por uma autoridade de certificação (CA) raiz confiável através de cada CA intermediária até o certificado "folha" de entidade final instalado em um dispositivo. Para saber mais, consulte Autenticação de dispositivo usando certificados de autoridade de certificação X.509.

Muitas vezes, a cadeia de certificados representa alguma hierarquia lógica ou física associada aos dispositivos. Por exemplo, um fabricante pode:

  • emitir um certificado de autoridade de certificação raiz autoassinado
  • usar o certificado raiz para gerar um certificado de CA intermediário exclusivo para cada fábrica
  • usar o certificado de cada fábrica para gerar um certificado de CA intermediário exclusivo para cada linha de produção na fábrica
  • e, finalmente, usar o certificado da linha de produção, para gerar um certificado de dispositivo exclusivo (entidade final) para cada dispositivo fabricado na linha.

Para saber mais, consulte Compreensão conceitual de certificados de CA X.509 no setor de IoT.

Certificado raiz

Um certificado raiz é um certificado X.509 autoassinado que representa uma autoridade de certificação (CA). É o terminal, ou âncora de confiança, da cadeia de certificados. Os certificados raiz podem ser autoemitidos por uma organização ou comprados de uma autoridade de certificação raiz. Para saber mais, consulte Obter certificados de autoridade de certificação X.509. O certificado raiz também pode ser referido como um certificado de autoridade de certificação raiz.

Certificado intermédio

Um certificado intermediário é um certificado X.509, que foi assinado pelo certificado raiz (ou por outro certificado intermediário com o certificado raiz em sua cadeia). O último certificado intermédio de uma cadeia é utilizado para assinar o certificado em folha. Um certificado intermediário também pode ser referido como um certificado de autoridade de certificação intermediário.

Porque é que os certificados intermédios são úteis?

Os certificados intermediários são usados de várias maneiras. Por exemplo, os certificados intermediários podem ser usados para agrupar dispositivos por linhas de produtos, clientes que compram dispositivos, divisões da empresa ou fábricas.

Imagine que a Contoso é uma grande corporação com sua própria PKI (infraestrutura de chave pública) usando o certificado raiz chamado ContosoRootCert. Cada subsidiária da Contoso tem seu próprio certificado intermediário assinado por ContosoRootCert. Cada filial utilizará então o seu certificado intermédio para assinar os seus certificados de folha para cada dispositivo. Nesse cenário, a Contoso pode usar uma única instância DPS em que ContosoRootCert é um certificado verificado. Eles podem ter um grupo de inscrição para cada subsidiária. Desta forma, cada subsidiária individual não terá que se preocupar com a verificação de certificados.

Certificado "folha" de entidade final

O certificado folha, ou certificado de entidade final, identifica o titular do certificado. Ele tem o certificado raiz em sua cadeia de certificados, bem como zero ou mais certificados intermediários. O certificado de folha não é usado para assinar quaisquer outros certificados. Ele identifica exclusivamente o dispositivo para o serviço de provisionamento e às vezes é chamado de certificado do dispositivo. Durante a autenticação, o dispositivo usa a chave privada associada a esse certificado para responder a um desafio de prova de posse do serviço.

Os certificados de folha usados com entradas de inscrição individual ou grupo de inscrição devem ter o nome comum do assunto (CN) definido para o ID de registro. O ID de registro identifica o registro do dispositivo com o DPS e deve ser exclusivo para a instância do DPS (escopo do ID) onde o dispositivo se registra. O ID de registo é uma cadeia de carateres alfanuméricos que não diferencia maiúsculas de minúsculas mais os carateres especiais: '-', , '.''_', ':'. O último caractere deve ser alfanumérico ou traço ('-'). O DPS suporta IDs de registro de até 128 caracteres; no entanto, o comprimento máximo do nome comum da entidade em um certificado X.509 é de 64 caracteres. O ID de registro, portanto, é limitado a 64 caracteres ao usar certificados X.509.

Para grupos de inscrição, o CN (nome comum da entidade) também define o ID do dispositivo registrado no Hub IoT. O ID do dispositivo será mostrado nos Registros de Registro do dispositivo autenticado no grupo de inscrição. Para inscrições individuais, o ID do dispositivo pode ser definido na entrada de inscrição. Se não estiver definido na entrada de inscrição, o nome comum do assunto (CN) será usado.

Para saber mais, consulte Autenticar dispositivos assinados com certificados de autoridade de certificação X.509.

Controlando o acesso do dispositivo ao serviço de provisionamento com certificados X.509

O serviço de provisionamento expõe dois tipos de registro que você pode usar para controlar o acesso ao dispositivo com o mecanismo de atestado X.509:

  • As entradas de registro individuais são configuradas com o certificado de dispositivo associado a um dispositivo específico. Essas entradas controlam as inscrições para dispositivos específicos.
  • As entradas do grupo de inscrição estão associadas a um certificado de autoridade de certificação intermediário ou raiz específico. Essas entradas controlam os registros para todos os dispositivos que têm esse certificado intermediário ou raiz em sua cadeia de certificados.

Um certificado pode ser especificado em apenas uma entrada de registro em sua instância DPS.

Suporte TLS mútuo

Quando as inscrições DPS são configuradas para o atestado X.509, o TLS mútuo (mTLS) é suportado pelo DPS.

Requisitos da cadeia de dispositivos DPS

Quando um dispositivo está tentando o registro através do DPS usando um grupo de registro, o dispositivo deve enviar a cadeia de certificados do certificado folha para um certificado verificado. Caso contrário, a autenticação falhará.

Por exemplo, se apenas o certificado raiz for verificado e um certificado intermediário for carregado no grupo de inscrição, o dispositivo deverá apresentar a cadeia de certificados do certificado folha até o certificado raiz verificado. Esta cadeia de certificados incluiria quaisquer certificados intermédios. A autenticação falhará se o DPS não puder atravessar a cadeia de certificados para um certificado verificado.

Por exemplo, considere uma corporação usando a seguinte cadeia de dispositivos para um dispositivo.

Example device certificate chain

Neste exemplo, apenas o certificado raiz é verificado e o certificado intermediário2 é carregado no grupo de registro.

Example root verified

Se o dispositivo enviar apenas a seguinte cadeia de dispositivos durante o provisionamento, a autenticação falhará. Porque o DPS não pode tentar a autenticação assumindo a validade do certificado intermediário1

Example failing certificate chain

Se o dispositivo enviar a cadeia completa do dispositivo da seguinte forma durante o provisionamento, o DPS poderá tentar a autenticação do dispositivo.

Example device certificate chain

Ordem de operações DPS com certificados

Quando um dispositivo se conecta ao serviço de provisionamento, o serviço percorre sua cadeia de certificados começando com o certificado do dispositivo (folha) e procura uma entrada de registro correspondente. Ele usa a primeira entrada que encontra na cadeia para determinar se o dispositivo deve ser provisionado. Ou seja, se existir um registro individual para o certificado de dispositivo (folha), o serviço de provisionamento aplicará essa entrada. Se não houver um registro individual para o dispositivo, o serviço procurará um grupo de inscrição que corresponda ao primeiro certificado intermediário. Se encontrar uma, aplica-se essa entrada; caso contrário, ele procura um grupo de inscrição para o próximo certificado intermediário, e assim por diante descendo a cadeia até a raiz.

O serviço aplica a primeira entrada que encontrar, de modo que:

  • Se a primeira entrada de registro encontrada estiver habilitada, o serviço provisiona o dispositivo.
  • Se a primeira entrada de inscrição encontrada estiver desativada, o serviço não provisionará o dispositivo.
  • Se nenhuma entrada de registro for encontrada para qualquer um dos certificados na cadeia de certificados do dispositivo, o serviço não provisionará o dispositivo.

Observe que cada certificado na cadeia de certificados de um dispositivo pode ser especificado em uma entrada de registro, mas pode ser especificado em apenas uma entrada na instância do DPS.

Esse mecanismo e a estrutura hierárquica das cadeias de certificados fornecem uma flexibilidade poderosa em como você pode controlar o acesso para dispositivos individuais, bem como para grupos de dispositivos. Por exemplo, imagine cinco dispositivos com as seguintes cadeias de certificados:

  • Dispositivo 1: certificado raiz - certificado A ->> certificado do dispositivo 1
  • Dispositivo 2: certificado raiz - certificado A ->> certificado do dispositivo 2
  • Dispositivo 3: certificado raiz - certificado A ->> certificado do dispositivo 3
  • Dispositivo 4: certificado raiz - certificado B ->> certificado do dispositivo 4
  • Dispositivo 5: certificado raiz - certificado B ->> certificado do dispositivo 5

Inicialmente, você pode criar uma única entrada de registro de grupo habilitada para o certificado raiz para habilitar o acesso para todos os cinco dispositivos. Se o certificado B for comprometido posteriormente, você poderá criar uma entrada de grupo de inscrição desabilitada para o certificado B para impedir que o Dispositivo 4 e o Dispositivo 5 se inscrevam. Se, ainda mais tarde , o Dispositivo 3 ficar comprometido, você poderá criar uma entrada de inscrição individual desabilitada para seu certificado. Isso revoga o acesso ao Dispositivo 3, mas ainda permite que o Dispositivo 1 e o Dispositivo 2 se inscrevam.