Partilhar via


Atestado de certificado X.509

Este artigo descreve os conceitos envolvidos ao provisionar dispositivos usando o atestado de certificado X.509 no Serviço de Provisionamento de Dispositivo (DPS). 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.

Compreender a cadeia de 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 acordo estabelece uma cadeia de confiança delegada desde o certificado raiz gerado por uma autoridade de certificação (CA) confiável até o certificado 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 uma hierarquia lógica ou física associada aos dispositivos. Por exemplo, um fabricante pode criar a seguinte hierarquia de certificados:

  • Um certificado de autoridade de certificação raiz autoassinado inicia a cadeia de certificados.
  • O certificado raiz gera um certificado de CA intermediário exclusivo para cada fábrica.
  • O certificado de cada fábrica gera um certificado de CA intermediário exclusivo para cada linha de produção na fábrica.
  • O certificado da linha de produção gera 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. O certificado raiz também pode ser chamado de 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) e também pode assinar novos certificados. O último certificado intermédio de uma cadeia assina o certificado em folha. Um certificado intermediário também pode ser chamado de certificado de autoridade de certificação intermediário.

Os certificados intermédios são utilizados de várias formas. 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 pela ContosoRootCert. Cada subsidiária usa seu certificado intermediário para assinar seus certificados de folha para cada dispositivo. Nesse cenário, a Contoso pode usar uma única instância do DPS onde ContosoRootCert é um certificado verificado. Eles podem ter um grupo de inscrição para cada subsidiária. Desta forma, cada subsidiária individual não precisa se preocupar em verificar certificados.

Certificado "folha" de entidade final

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

Preparar certificados

Os dispositivos usam dois tipos diferentes de certificados quando se conectam ao Hub IoT por meio do DPS. Ao preparar seu dispositivo, verifique se você tem todos os certificados adequados criados e adicionados ao dispositivo antes de se conectar.

  • Certificados raiz públicos: todos os dispositivos precisam de uma cópia dos certificados raiz públicos que o Hub IoT, o IoT Central e o Serviço de Provisionamento de Dispositivos usam para autorizar conexões.
  • Certificados de autenticação: os certificados X.509 são o método recomendado para autenticar uma identidade de dispositivo.

Certificados raiz públicos necessários

Os dispositivos IoT do Azure usam TLS para verificar a autenticidade do hub IoT ou ponto de extremidade DPS ao qual estão se conectando. Cada dispositivo precisa de uma cópia do certificado raiz que o Hub IoT e o DPS usam. Recomendamos que todos os dispositivos incluam as seguintes CAs raiz em seu armazenamento de certificados confiáveis:

  • DigiCert Global G2 raiz CA
  • Raiz do Microsoft RSA CA 2017

Para obter mais informações sobre práticas de certificado recomendadas, consulte Suporte a TLS.

Autenticação usando 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 do algoritmo de encriptação DPS

O Serviço de Provisionamento de Dispositivos só aceita certificados X.509 que usam o algoritmo Rivest-Shamir-Adleman (RSA) ou o algoritmo ECC (Elliptic Curve Cryptography) para criptografia. O ECC e o RSA fornecem níveis equivalentes de força de criptografia, mas o ECC usa um comprimento de chave mais curto.

Se você usar métodos ECC para gerar certificados X.509 para certificado de dispositivo, recomendamos as seguintes curvas elípticas:

  • nistP256
  • nistP384
  • nistP521

Requisitos de nomenclatura do certificado DPS

Os certificados de folha usados com entradas de inscrição individuais 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.

Para grupos de inscrição, o CN (nome comum da entidade) 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.

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 que usa a seguinte cadeia de dispositivos para um dispositivo.

Diagrama que mostra um exemplo de cadeia de certificados de dispositivo.

Neste exemplo, o certificado raiz é verificado com o DPS e intermediate2 o certificado é carregado no grupo de registro.

Diagrama que destaca os certificados raiz e intermediário 2 como sendo carregados no DPS.

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 intermediate1 certificado.

Diagrama que mostra uma cadeia de certificados falhando na autenticação porque não é encadeada à raiz.

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

Diagrama que mostra uma cadeia de certificados de dispositivo bem-sucedida.

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

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