Atestado do certificado X.509

Este artigo fornece uma visão geral dos conceitos do DPS (serviço de provisionamento de dispositivos) envolvidos ao provisionar dispositivos usando o atestado de certificado X. 509. Este artigo é relevante para todas as personas envolvidas na preparação de um dispositivo para implantação.

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

Dica

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

Certificados X.509

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

Geralmente a cadeia de certificados representa alguma hierarquia física ou lógica 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 Autoridade de Certificação intermediária exclusivo para cada alocador
  • usar o certificado de cada alocador para gerar um Certificado de Autoridade de Certificação intermediária exclusivo para cada linha de produção na planta
  • e, finalmente, usar o certificado de linha de produção para gerar um certificado de dispositivo único (entidade final) para cada dispositivo fabricado na linha.

Para saber mais, consulte Entendimento conceitual de certificados de AC X.509 no setor de IoT.

Certificado raiz

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

Certificado intermediário

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 intermediário em uma cadeia é usado para assinar o certificado de folha. Um certificado intermediário também pode ser referenciado como um certificado de AC intermediário.

Por que os certificados intermediários são úteis?

Os certificados intermediários são usados de várias maneiras. Por exemplo, certificados intermediários podem ser usados para agrupar dispositivos por linhas de produtos, dispositivos de compra para clientes, divisões de 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 subsidiária usará seu certificado intermediário para assinar seus certificados folha para cada dispositivo. Nesse cenário, a Contoso pode usar uma única instância do DPS em que ContosoRootCert é um certificado verificado. Eles podem ter um grupo de registro para cada subsidiária. Dessa forma, cada subsidiária individual não precisará se preocupar com a verificação de certificados.

Certificado "secundário" de entidade final

O certificado de folha, ou certificado de entidade final, identifica o proprietário 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 outros certificados. Ele identifica exclusivamente o dispositivo para o serviço de provisionamento e, às vezes, são referenciados como um certificado de dispositivo. Durante a autenticação, o dispositivo usa a chave privada associada ao certificado para responder a um desafio de comprovação de posse do serviço.

Certificados de folha usados com entradas de Registro individual ou Grupo de registros devem ter o CN (nome comum do certificado) definido como a ID de registro. A ID de registro identifica o registro do dispositivo com o DPS e deve ser exclusiva para a instância do DPS (escopo da ID) em que o dispositivo é registrado. A ID de registro é uma cadeia de caracteres alfanuméricos que não diferencia maiúsculas de minúsculas e caracteres especiais: '-', '.', '_' e ':'. O último caractere deve ser alfanumérico ou um traço ('-'). O DPS dá suporte a IDs de registro com até 128 caracteres; no entanto, o comprimento máximo do nome comum da entidade em um certificado X.509 é 64 caracteres. Portanto, a ID de registro é limitada a 64 caracteres ao usar certificados X.509.

Para grupos de registro, o CN (nome comum do certificado) também define a ID do dispositivo que está registrada no Hub IoT. A ID do dispositivo será mostrada nos Registros do dispositivo autenticado no grupo de registro. Para registros individuais, a ID do dispositivo pode ser definida na entrada do registro. Se ela não for definida na entrada do registro, será usado o CN (nome comum do certificado).

Para saber mais, confira Autenticar dispositivos assinados com certificados de AC X.509.

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

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

  • As entradas de registro individual são configuradas com o certificado do dispositivo associado a um dispositivo específico. Essas entradas controlam os registros de dispositivos específicos.
  • As entradas de grupo de registros são associadas a um certificado de AC intermediário ou raiz. Essas entradas controlam os registros de todos os dispositivos que têm esse certificado raiz ou intermediário em sua cadeia de certificados.

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

Suporte mútuo ao TLS

Quando os registros DPS são configurados para atestado X.509, o mTLS (TLS mútuo) tem suporte do DPS.

Requisitos da cadeia de dispositivos do DPS

Quando um dispositivo está tentando registrar por meio 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 poderá falhar.

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

Por exemplo, considere uma empresa usando a seguinte cadeia de dispositivos para um dispositivo.

Example device certificate chain

Neste exemplo, somente 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 dispositivo durante o provisionamento, a autenticação falhará. Porque o DPS não pode tentar a autenticação supondo a validade do certificado intermediate1

Example failing certificate chain

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

Example device certificate chain

Ordem de DPS de operações com certificados

Quando um dispositivo conecta o serviço de provisionamento, o serviço percorre a cadeia de certificados começando com o certificado do dispositivo (folha) e procura uma entrada de registro correspondente. Ele usará a primeira entrada encontrada na cadeia para determinar se deverá provisionar o dispositivo. Ou seja, se houver um registro individual para o certificado do 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 registro que corresponda ao primeiro certificado intermediário. Se encontrar um, o serviço aplicará essa entrada, caso contrário, procurará um grupo de registro para o próximo certificado intermediário, e assim por diante passando pela cadeia até a raiz.

O serviço aplicará a primeira entrada encontrada, de modo que:

  • Se a primeira entrada de registro encontrada estiver habilitada, o serviço provisionará o dispositivo.
  • Se a primeira entrada de registro encontrada estiver desabilitada, o serviço não provisionará o dispositivo.
  • Se nenhuma entrada de registro for encontrada para nenhum certificado 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 poderá ser especificado em uma entrada de registro, mas poderá ser especificado em apenas uma entrada na instância do DPS.

Esse mecanismo e a estrutura hierárquica de cadeias de certificados oferece flexibilidade eficiente em como você pode controlar o acesso a dispositivos individuais, bem como a 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 habilitado para o certificado raiz para habilitar o acesso para todos os cinco dispositivos. Se o certificado B posteriormente for comprometido, você poderá criar uma entrada de grupo de registros desabilitada para o certificado B para impedir que o Dispositivo 4 e o Dispositivo 5 se registrem. Se depois ainda o Dispositivo 3 for comprometido, você poderá criar uma entrada de registro individual desabilitada para este certificado. Isso revoga o acesso para o Dispositivo 3, mas ainda permite que o Dispositivo 1 e o Dispositivo 2 se registrem.