Como implantar certificados de dispositivo X.509

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

A implantação de certificados é uma prática recomendada de segurança para ajudar a proteger seu sistema no caso de uma violação. Como parte da Metodologia Assume Breach, a Microsoft defende a necessidade de ter processos reativos de segurança em vigor, juntamente com medidas preventivas. Implantar seus certificados de dispositivo deve ser incluído como parte desses processos de segurança. A frequência em que você implantar seus certificados dependerá de necessidades de segurança da sua solução. Os clientes com soluções que envolvem dados altamente confidenciais podem implantar certificado diariamente, enquanto outros revertem seus certificados a cada dois anos.

Implantar certificados de dispositivo envolverá atualizar o certificado armazenado no dispositivo e IoT Hub. Depois disso, o dispositivo pode um reprovisionamento de si mesmo com o Hub IoT usando provisionamento normal com o Serviço de provisionamento do dispositivo.

Obter novos certificados

Há várias maneiras de obter novos certificados para seus dispositivos IoT. Isso inclui a obtenção de certificados de fábrica do dispositivo, gerar seus próprios certificados e contratar outras empresas para gerenciar a criação de certificado para você.

Os certificados são assinados por cada um para formar uma cadeia de confiança de um certificado de autoridade de certificação raiz para um certificado de folha. Um certificado de autenticação é o certificado usado para assinar o certificado de folha no final da cadeia de confiança. Um certificado de autenticação pode ser um certificado de autoridade de certificação raiz ou um certificado intermediário na cadeia de confiança. Para saber mais, confira 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. Dessa forma encadeia segurança até uma fonte confiável.

A segunda maneira é criar seus próprios certificados X.509 usando uma ferramenta como o OpenSSL. Essa abordagem é ótima para testar os certificados x.509, mas fornece algumas garantias em relação à segurança. É recomendável que você só use essa abordagem para teste, a menos que você preparou atuar como seu próprio provedor de autoridade de certificação.

Implantar o certificado no dispositivo

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

Se você obter seus certificados de terceiros, você deve examinar como distribuição seus certificados. O processo pode ser incluído em sua organização com eles, ou pode ser um serviço separado que oferecem.

Se você estiver gerenciando seus próprios certificados de dispositivo, você precisará criar seu próprio pipeline para a atualização de certificados. Verifique se ambos os certificados de folha antiga e nova têm o mesmo nome comum (CN). Por ter o mesmo CN, o dispositivo pode Reprovisionar em si sem criar um registro duplicado.

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

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

  • Você pode reter um CSR de cada dispositivo e usá-lo para obter um novo certificado de dispositivo da AC 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 Hub IoT.

Rolar o certificado no DPS

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

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

Depois que um novo certificado de folha for revertido para o dispositivo, ele pode não mais se conectar ao Hub IoT porque ele 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 do dispositivo para a conta para o novo certificado de folha do dispositivo. Em seguida, o serviço de provisionamento pode atualizar as informações de registro de dispositivo Hub IoT conforme necessário, quando o dispositivo for provisionado novamente.

Uma possível exceção para essa falha de conexão seria um cenário que você criou um Grupo de Registro para seu dispositivo no serviço de provisionamento. Nesse caso, se você não estiver implatando a raiz ou os certificados intermediários na cadeia de certificados do dispositivo de confiança, em seguida, 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ê deverá 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

Como tratar a atualização da entrada de registro dependerá se você estiver usando registros individuais ou registros em grupo. Além disso, os procedimentos recomendados diferem dependendo se você estiver implantando certificados devido a uma violação de segurança ou expiração do certificado. As seções a seguir descrevem como manusear essas atualizações.

Certificados de matrícula 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 para dispositivos que tentam provisionar. Posteriormente, quando o certificado secundário se aproxima da expiração e precisa ser rolado, você pode alternar para usar a configuração primária. Girar entre os certificados primários e secundários dessa maneira reduz o tempo de inatividade para dispositivos de tentativa de provisionar.

Atualização das entradas de registro para certificados implantados é realizada na página Gerenciar Registros. Para acessar essa página, siga essas etapas:

  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 Gerenciar registros.

    Screenshot that shows the Manage enrollments page in the Azure portal.

  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 foi comprometido, você deve removê-los o mais rápido possível.

    Se um dos seus certificados estiver perto de expirar, você poderá mantê-lo no lugar enquanto o segundo certificado ainda estiver ativo após essa data.

    Screenshot that shows how to remove a certificate and upload new ones.

  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. Há duas maneiras de abordar isso:

    A primeira maneira seria acessar manualmente seu hub IoT e remover imediatamente o registro de dispositivo associado ao certificado comprometido. Em seguida, quando o dispositivo provisionar novamente com um certificado atualizado, será criado um novo registro de dispositivo.

    A segunda maneira seria usar o reprovisionamento de suporte para reprovisionar o dispositivo para o mesmo hub IoT. Essa abordagem pode ser usada para substituir o certificado para o registro de dispositivo no hub IoT. Para obter mais informações, confira 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, exclua imediatamente a CA raiz comprometida ou o certificado intermediário.

Se você estiver rolando certificados para lidar com expirações de certificado, 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 se aproximar da expiração e precisar ser rolado, você poderá alternar para usar a configuração primária. Girar entre os certificados primários e secundários dessa maneira garante o tempo de inatividade para dispositivos de tentativa de provisionar.

Atualizar certificados de autoridade de certificação raiz

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

    Screenshot that shows the certificates page.

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

  3. Siga as etapas descritas em Configura Certificados de Autoridade de Certificação para adicionar e verificar os novos certificados de autoridade de certificação raiz.

  4. Selecione Gerenciar registros 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 registros.

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

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

    Screenshot that shows selecting a new uploaded certificate for an enrollment group.

  7. Selecione Salvar.

  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 haja registros de dispositivo para ele. Há duas maneiras de abordar isso:

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

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

Atualizar certificados intermediários

  1. Selecione Gerenciar registros 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 registros.

  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 foi comprometido, você deve removê-los o mais rápido possível.

    Se um dos seus certificados estiver perto de expirar, você poderá mantê-lo no lugar enquanto o segundo certificado ainda estiver ativo após essa data.

    Cada certificado intermediário deve ser assinado por um certificado de CA raiz verificado que já tenha sido adicionado ao serviço de provisionamento. Para saber mais, confira Certificados X.509.

    Screenshot that shows replacing an intermediate certificate for an enrollment group.

  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 haja registros de dispositivo para ele. Há duas maneiras de abordar isso:

    A primeira maneira seria acessar manualmente seu hub IoT e remover imediatamente o registro de dispositivo associado ao certificado comprometido. Em seguida, quando os dispositivos forem provisionados novamente com certificados atualizados, um novo registro de dispositivo será criado para cada um deles.

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

Reprovisionar o dispositivo

Depois que o certificado for lançado no dispositivo e no Serviço de Provisionamento de Dispositivos, o dispositivo poderá ser reprovisionado contatando o Serviço de Provisionamento de Dispositivos.

Uma maneira fácil de programação de dispositivos para reprovisionar é programar o dispositivo para contatar o serviço de provisionamento para percorrer o fluxo de provisionamento se o dispositivo recebe um erro "não autorizado" de tentar se conectar ao hub IoT.

Outra maneira são os antigos e os novos certificados para que seja válido a uma sobreposição curta e usar o hub IoT para enviar um comando para dispositivos registrá-los novamente por meio do serviço de provisionamento para atualizar as 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 é chamado. Há várias maneiras que você pode comandar o seu dispositivo por meio do Hub IoT, e é recomendável usar métodos diretos ou trabalhos para iniciar o processo.

Quando o reprovisionamento for 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 remover permissões de um certificado de dispositivo. Para remover permissões de um certificado de dispositivo, desabilite a entrada de registro para o dispositivo/certificado de destino. Para obter mais informações, consulte dispositivos na lista de bloqueios no artigo Gerenciar o Cancelamento do Registro.

Depois que um certificado é incluído como parte de uma entrada de registro desabilitado, qualquer tentativa de registrar com um hub IoT usando esses certificados falhará mesmo se ela estiver habilitada como parte de outra entrada de registro.

Próximas etapas