Como rolar certificados de dispositivo X.509

Durante o ciclo de vida de sua solução de IoT, você precisará rolar certificados. Duas das principais razões para a rolagem de certificados seriam uma violação de segurança e expirações de certificados.

A emissão contínua de certificados é uma prática recomendada de segurança para ajudar a proteger o seu sistema em caso de violação. Como parte da Metodologia Assumir Violação, a Microsoft defende a necessidade de ter processos de segurança reativos em vigor, juntamente com medidas preventivas. A rolagem de certificados de dispositivo deve ser incluída como parte desses processos de segurança. A frequência com que você lança seus certificados dependerá das necessidades de segurança da sua solução. Os clientes com soluções que envolvem dados altamente confidenciais podem rolar certificados diariamente, enquanto outros rolam seus certificados a cada dois anos.

Os certificados de dispositivo contínuo envolverão a atualização do certificado armazenado no dispositivo e no hub IoT. Depois, o dispositivo pode se reprovisionar com o hub IoT usando o provisionamento normal com o Device Provisioning Service (DPS).

Obter novos certificados

Há muitas maneiras de obter novos certificados para seus dispositivos IoT. Isso inclui obter certificados da fábrica de dispositivos, gerar seus próprios certificados e ter um terceiro gerenciando a criação de certificados para você.

Os certificados são assinados entre si para formar uma cadeia de confiança de um certificado de autoridade de certificação raiz para um certificado folha. Um certificado de assinatura é o certificado usado para assinar o certificado folha no final da cadeia de confiança. Um certificado de assinatura pode ser um certificado de autoridade de certificação raiz ou um certificado intermediário na cadeia de confiança. Para obter mais informações, consulte Certificados X.509.

Há duas maneiras diferentes de obter um certificado de assinatura. A primeira maneira, que é recomendada para sistemas de produção, é comprar um certificado de assinatura de uma autoridade de certificação (CA) raiz. Desta forma, a segurança é reduzida a uma fonte fidedigna.

A segunda maneira é criar seus próprios certificados X.509 usando uma ferramenta como OpenSSL. Essa abordagem é ótima para testar certificados X.509, mas fornece poucas garantias em relação à segurança. Recomendamos que você use essa abordagem apenas para testes, a menos que esteja preparado para agir como seu próprio provedor de autoridade de certificação.

Rolar o certificado no dispositivo

Os certificados em um dispositivo devem ser sempre armazenados em um local seguro, como um módulo de segurança de hardware (HSM). A maneira como você rola certificados de dispositivo dependerá de como eles foram criados e instalados nos dispositivos em primeiro lugar.

Se você obteve seus certificados de terceiros, você deve verificar como eles rolam seus certificados. O processo pode ser incluído no seu acordo com eles, ou pode ser um serviço separado que eles oferecem.

Se você estiver gerenciando seus próprios certificados de dispositivo, terá que criar seu próprio pipeline para atualizar certificados. Certifique-se de que tanto os certificados de folha antigos como os novos têm o mesmo nome comum (NC). Ao ter o mesmo CN, o dispositivo pode se reprovisionar sem criar um registro de registro duplicado.

A mecânica de instalação de um novo certificado em um dispositivo geralmente envolve uma das seguintes abordagens:

  • Você pode acionar os dispositivos afetados para enviar uma nova solicitação de assinatura de certificado (CSR) para sua autoridade de certificação (CA) PKI. Nesse caso, cada dispositivo provavelmente poderá baixar seu novo certificado de dispositivo diretamente da autoridade de certificação.

  • Você pode manter um CSR de cada dispositivo e usá-lo para obter um novo certificado de dispositivo da autoridade de certificação PKI. Nesse caso, você precisará enviar o novo certificado para cada dispositivo em uma atualização de firmware usando um serviço de atualização OTA seguro, como a Atualização de Dispositivo para o Hub IoT.

Rolar o certificado no DPS

O certificado do dispositivo pode ser adicionado manualmente a um hub IoT. O certificado também pode ser automatizado usando uma instância do Serviço de Provisionamento de Dispositivo. Neste artigo, assumiremos que uma instância do Serviço de Provisionamento de Dispositivo está sendo usada para dar suporte ao provisionamento automático.

Quando um dispositivo é inicialmente provisionado por meio do provisionamento automático, ele é inicializado e entra em contato com o serviço de provisionamento. O serviço de provisionamento responde executando uma verificação de identidade antes de criar uma identidade de dispositivo em um hub IoT usando o certificado folha do dispositivo como credencial. Em seguida, o serviço de provisionamento informa ao dispositivo a qual hub IoT está atribuído e, em seguida, o dispositivo usa seu certificado folha para autenticar e se conectar ao hub IoT.

Depois que um novo certificado folha for rolado no dispositivo, ele não poderá mais se conectar ao hub IoT porque está usando um novo certificado para se conectar. O hub IoT só reconhece o dispositivo com o certificado antigo. O resultado da tentativa de conexão do dispositivo será um erro de conexão "não autorizado". Para resolver esse erro, você deve atualizar a entrada de registro para o dispositivo para levar em conta o novo certificado folha do dispositivo. Em seguida, o serviço de provisionamento pode atualizar as informações de registro do dispositivo do Hub IoT conforme necessário quando o dispositivo for reprovisionado.

Uma possível exceção a essa falha de conexão seria um cenário em que você criou um Grupo de Registro para seu dispositivo no serviço de provisionamento. Nesse caso, se você não estiver rolando os certificados raiz ou intermediários na cadeia de confiança de certificados do dispositivo, o dispositivo será reconhecido se o novo certificado fizer parte da cadeia de confiança definida no grupo de registro. Se esse cenário surgir como uma reação a uma violação de segurança, você deve pelo menos não permitir os certificados de dispositivo específicos no grupo que são considerados violados. Para obter mais informações, consulte Não permitir dispositivos específicos em um grupo de registro

A forma como você lida com a atualização da entrada de inscrição dependerá se você estiver usando inscrições individuais ou em grupo. Além disso, os procedimentos recomendados diferem dependendo se você está rolando certificados devido a uma violação de segurança ou expiração de certificado. As seções a seguir descrevem como lidar com essas atualizações.

Certificados de registro para inscrições individuais

Se você estiver rolando certificados em resposta a uma violação de segurança, exclua todos os certificados comprometidos imediatamente.

Se você estiver rolando certificados para lidar com expirações de certificados, deverá usar a configuração de certificado secundário para reduzir o tempo de inatividade de dispositivos que tentam provisionar. Mais tarde, quando o certificado secundário se aproximar da expiração e precisar ser rolado, você poderá alternar para usar a configuração primária. Alternar entre os certificados primário e secundário dessa forma reduz o tempo de inatividade dos dispositivos que tentam provisionar.

A atualização das entradas de inscrição para certificados registrados é realizada na página Gerenciar inscrições . Para aceder a essa página, siga estes passos:

  1. Entre no portal do Azure e navegue até a instância do Serviço de Provisionamento de Dispositivo que tem a entrada de registro para seu dispositivo.

  2. Selecione Gerir inscrições.

    Captura de tela que mostra a página Gerenciar inscrições no portal do Azure.

  3. Selecione a guia Inscrições individuais e selecione a entrada ID de registro na lista.

  4. Marque as caixas de seleção Remover ou substituir certificado primário/secundário se quiser excluir um certificado existente. Selecione o ícone da pasta de arquivos para procurar e carregar os novos certificados.

    Se algum dos seus certificados tiver sido comprometido, deve removê-los o mais rapidamente possível.

    Se um dos seus certificados estiver prestes a expirar, você poderá mantê-lo em vigor desde que o segundo certificado ainda esteja ativo após essa data.

    Captura de ecrã que mostra como remover um certificado e carregar novos.

  5. Selecione Salvar quando terminar.

  6. Se você removeu um certificado comprometido do serviço de provisionamento, o certificado ainda poderá ser usado para fazer conexões de dispositivo com o hub IoT, desde que exista um registro de dispositivo para ele lá. Você pode abordar isso de duas maneiras:

    A primeira maneira seria navegar manualmente até o hub IoT e remover imediatamente o registro do dispositivo associado ao certificado comprometido. Em seguida, quando o dispositivo for provisionado novamente com um certificado atualizado, um novo registro de dispositivo será criado.

    A segunda maneira seria usar o suporte de reprovisionamento para reprovisionar o dispositivo para o mesmo hub IoT. Essa abordagem pode ser usada para substituir o certificado para o registro do dispositivo no hub IoT. Para obter mais informações, consulte Como reprovisionar dispositivos.

Registrar certificados para grupos de inscrição

Para atualizar um registro de grupo em resposta a uma violação de segurança, você deve excluir a autoridade de certificação raiz comprometida ou o certificado intermediário imediatamente.

Se você estiver rolando certificados para lidar com expirações de certificados, deverá usar a configuração de certificado secundário para garantir que não haja tempo de inatividade para dispositivos que tentam provisionar. Mais tarde, quando o certificado secundário também estiver perto da expiração e precisar ser rolado, você poderá alternar para usar a configuração primária. Alternar entre os certificados primário e secundário dessa forma garante que não haja tempo de inatividade para os dispositivos que tentam provisionar.

Atualizar certificados de autoridade de certificação raiz

  1. Selecione Certificados na seção Configurações do menu de navegação para sua instância do Serviço de Provisionamento de Dispositivo.

    Captura de ecrã que mostra a página de certificados.

  2. Selecione o certificado comprometido ou expirado na lista e, em seguida, selecione Excluir. Confirme a exclusão inserindo o nome do certificado e selecione OK.

  3. Siga as etapas descritas em Configurar certificados de CA verificados para adicionar e verificar novos certificados de CA raiz.

  4. Selecione Gerenciar inscrições na seção Configurações do menu de navegação da instância do Serviço de Provisionamento de Dispositivo e selecione a guia Grupos de registro.

  5. Selecione o nome do seu grupo de inscrição na lista.

  6. Na seção Configurações do certificado X.509 e selecione seu novo certificado de autoridade de certificação raiz para substituir o certificado comprometido ou expirado ou para adicionar como um certificado secundário.

    Captura de tela que mostra a seleção de um novo certificado carregado para um grupo de inscrição.

  7. Selecione Guardar.

  8. Se você removeu um certificado comprometido do serviço de provisionamento, o certificado ainda poderá ser usado para fazer conexões de dispositivo com o hub IoT, desde que existam registros de dispositivo para ele lá. Você pode abordar isso de duas maneiras:

    A primeira maneira seria navegar manualmente para seu hub IoT e remover imediatamente os registros de dispositivo associados ao certificado comprometido. Em seguida, quando seus dispositivos provisionarem novamente com certificados atualizados, um novo registro de dispositivo será criado para cada um.

    A segunda maneira seria usar o suporte de reprovisionamento para reprovisionar seus dispositivos para o mesmo hub IoT. Essa abordagem pode ser usada para substituir certificados para registros de dispositivos no hub IoT. Para obter mais informações, consulte Como reprovisionar dispositivos.

Atualizar certificados intermediários

  1. Selecione Gerenciar inscrições na seção Configurações do menu de navegação da instância do Serviço de Provisionamento de Dispositivo e selecione a guia Grupos de registro.

  2. Selecione o nome do grupo na lista.

  3. Marque as caixas de seleção Remover ou substituir certificado primário/secundário se quiser excluir um certificado existente. Selecione o ícone da pasta de arquivos para procurar e carregar os novos certificados.

    Se algum dos seus certificados tiver sido comprometido, deve removê-los o mais rapidamente possível.

    Se um dos seus certificados estiver prestes a expirar, você poderá mantê-lo em vigor desde que o segundo certificado ainda esteja ativo após essa data.

    Cada certificado intermediário deve ser assinado por um certificado de autoridade de certificação raiz verificado que já tenha sido adicionado ao serviço de provisionamento. Para obter mais informações, consulte Certificados X.509.

    Captura de tela que mostra a substituição de um certificado intermediário para um grupo de inscrição.

  4. Se você removeu um certificado comprometido do serviço de provisionamento, o certificado ainda poderá ser usado para fazer conexões de dispositivo com o hub IoT, desde que existam registros de dispositivo para ele lá. Você pode abordar isso de duas maneiras:

    A primeira maneira seria navegar manualmente até o hub IoT e remover imediatamente o registro do dispositivo associado ao certificado comprometido. Em seguida, quando seus dispositivos provisionarem novamente com certificados atualizados, um novo registro de dispositivo será criado para cada um.

    A segunda maneira seria usar o suporte de reprovisionamento para reprovisionar seus dispositivos para o mesmo hub IoT. Essa abordagem pode ser usada para substituir certificados para registros de dispositivos no hub IoT. Para obter mais informações, consulte Como reprovisionar dispositivos.

Reprovisionar o dispositivo

Depois que o certificado é rolado no dispositivo e no Serviço de Provisionamento de Dispositivo, o dispositivo pode se reprovisionar entrando em contato com o Serviço de Provisionamento de Dispositivo.

Uma maneira fácil de programar dispositivos para reprovisionamento é programar o dispositivo para entrar em contato com o serviço de provisionamento para passar pelo fluxo de provisionamento se o dispositivo receber um erro "não autorizado" ao tentar se conectar ao hub IoT.

Outra maneira é que os certificados antigos e novos sejam válidos por uma breve sobreposição e usem o hub IoT para enviar um comando aos dispositivos para que eles se registrem novamente por meio do serviço de provisionamento para atualizar suas informações de conexão do Hub IoT. Como cada dispositivo pode processar comandos de forma diferente, você precisa programar seu dispositivo para saber o que fazer quando o comando é invocado. Há várias maneiras de comandar seu dispositivo via Hub IoT, e recomendamos o uso de métodos ou trabalhos diretos para iniciar o processo.

Quando o reprovisionamento estiver concluído, os dispositivos poderão se conectar ao Hub IoT usando seus novos certificados.

Não permitir certificados

Em resposta a uma violação de segurança, talvez seja necessário não permitir um certificado de dispositivo. Para não permitir um certificado de dispositivo, desative a entrada de registro para o dispositivo/certificado de destino. Para obter mais informações, consulte Cancelar a permissão de dispositivos no artigo Gerenciar cancelamento de registro.

Depois que um certificado for incluído como parte de uma entrada de registro desabilitada, todas as tentativas de registro em um hub IoT usando esses certificados falharão, mesmo que ele esteja habilitado como parte de outra entrada de registro.

Próximos passos