Gerenciador de segurança do Azure IoT Edge

Aplica-se a:Marca de seleção do IoT Edge 1.5 IoT Edge 1.5 marca de seleção do IoT Edge 1.4 IoT Edge 1.4

Importante

O IoT Edge 1.5 LTS e o IoT Edge 1.4 LTS são versões com suporte. O IoT Edge 1.4 LTS chegará ao fim da vida útil em 12 de novembro de 2024. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.

O gerenciador de segurança do Azure IoT Edge é um núcleo de segurança bem delimitado para proteger o dispositivo IoT Edge e todos os seus componentes, abstraindo o hardware de silício seguro. O gerenciador de segurança é o ponto focal para proteção de segurança e fornece integração de tecnologia para os fabricantes de equipamentos originais (OEM).

O gerenciador de segurança abstrai o hardware de silício seguro em um dispositivo IoT Edge e fornece uma estrutura de extensibilidade para serviços de segurança adicionais.

O gerenciador de segurança do IoT Edge visa defender a integridade do dispositivo IoT Edge e todas as operações de software inerentes. O gerenciador de segurança faz a transição da confiança do hardware raiz de confiança subjacente (se disponível) para inicializar o runtime do IoT Edge e monitorar as operações em andamento. O gerenciador de segurança IoT Edge inclui software que trabalha em conjunto com hardware de silício seguro, quando disponível, para ajudar a fornecer as mais altas garantias de segurança possíveis.

Além disso, o gerenciador de segurança do IoT Edge fornece uma estrutura segura para extensões do serviço de segurança por meio de módulos no nível do host. Esses serviços incluem monitoramento de segurança e atualizações que exigem agentes dentro do dispositivo com acesso privilegiado a alguns componentes do dispositivo. A estrutura de extensibilidade garante que essas integrações manterão consistentemente a segurança geral do sistema.

As responsabilidades do gerenciador de segurança do IoT Edge incluem (mas sem limitação):

  • Inicialização do dispositivo Azure IoT Edge.
  • Controla o acesso à raiz de hardware de confiança do dispositivo por meio de serviços notariais.
  • Monitora a integridade das operações do IoT Edge no runtime.
  • Provisione a identidade do dispositivo e gerencie a transição de confiança, quando aplicável.
  • Garanta a operação segura dos agentes cliente para os serviços, incluindo Atualização de Dispositivo para Hub IoT e Microsoft Defender para IoT.

O gerenciador de segurança do IoT Edge consiste em três componentes:

  • Runtime do módulo do IoT Edge
  • Abstrações HSM (módulo de segurança de hardware) por meio de implementações padrão, como PKCS 11 e Trusted Platform Module (TPM)
  • Uma raiz de confiança de silício de hardware ou HSM (opcional, mas altamente recomendado)

Alterações na versão 1.2 e posterior

Nas versões 1.0 e 1.1 do IoT Edge, um componente chamado daemon de segurança era responsável pelas operações de segurança lógicas do gerenciador de segurança. Na atualização para a versão 1.2, várias responsabilidades principais foram delegadas ao subsistema de segurança do Serviço de Identidade da Internet das Coisas do Azure. Depois que essas tarefas baseadas em segurança foram removidas do daemon de segurança, seu nome não faz mais sentido. Para refletir melhor o trabalho que esse componente faz na versão 1.2 e posterior, foi renomeado como runtime do módulo.

Runtime do módulo do IoT Edge

O runtime do módulo do IoT Edge delega a confiança do subsistema de segurança do Serviço de Identidade da Internet das Coisas do Azure para proteger o ambiente de runtime do contêiner do IoT Edge. Um serviço, agora delegado ao Serviço de Identidade da Internet das Coisas do Azure, é o serviço automatizado de renovação e registro de certificado por meio de um servidor EST. Para ver como isso funciona e criar um servidor EST de exemplo feito para um dispositivo IoT Edge, experimente o tutorial Configurar registro no Servidor de Transporte Seguro para o Azure IoT Edge.

O runtime do módulo é responsável pelas operações de segurança lógicas do gerenciador de segurança. Ele representa uma parte significativa da base de computação confiável do dispositivo IoT Edge. O runtime do módulo usa serviços de segurança do Serviço de Identidade de IoT, que, por sua vez, é protegido pela escolha do HSM (módulo de segurança de hardware) do fabricante do dispositivo. É fortemente recomendável o uso do HSMs para proteger o dispositivo.

Princípios de design

O IoT Edge segue dois princípios básicos: maximizar a integridade operacional e minimizar a sobrecarga e a rotatividade.

Maximizar a integridade operacional

O runtime do módulo do IoT Edge funciona com a mais alta integridade possível dentro da capacidade de defesa de qualquer hardware de raiz de confiança. Com a integração adequada, a raiz do hardware de confiança mede e monitora o daemon de segurança estaticamente e em runtime para resistir à violação.

O acesso físico mal-intencionado a dispositivos é sempre uma ameaça na Internet das Coisas. A raiz de hardware de confiança desempenha um papel importante na defesa da integridade do dispositivo IoT Edge. A raiz de hardware de confiança tem duas variedades:

  • Elementos seguros para a proteção de informações confidenciais, como segredos e chaves criptográficas.
  • Enclaves seguros para a proteção de segredos, como chaves e cargas de trabalho confidenciais, como modelos de machine learning confidenciais e operações de medição.

Existem dois tipos de ambientes de execução para utilizar a raiz de hardware de confiança:

  • O ambiente de REE (ambiente de execução rich) ou padrão que depende do uso de elementos seguros para proteger informações confidenciais.
  • O TEE (ambiente de execução confiável) que depende do uso da tecnologia Secure Enclave para proteger informações confidenciais e oferecer proteção à execução de software.

Para dispositivos que usam enclaves seguros como raiz de hardware de confiança, espera-se que a lógica confidencial do runtime do módulo do IoT Edge esteja dentro do enclave. As partes não confidenciais do runtime do módulo podem estar fora do TEE. Em qualquer caso, é extremamente recomendável que os ODMs (fabricantes originais do projeto) e os OEMs (fabricantes de equipamentos originais) estendam a confiança do HSM para medir e defender a integridade do runtime do módulo do IoT Edge na inicialização e no runtime.

Minimizar a sobrecarga e a variação

Outro princípio fundamental para o runtime do módulo do IoT Edge é minimizar a rotatividade. Para obter o mais alto nível de confiança, o runtime do módulo do IoT Edge pode se associar à raiz de hardware do dispositivo e operar como código nativo. Nesses casos, é comum atualizar o software IoT Edge por meio dos caminhos de atualização seguros da raiz de hardware de confiança em vez dos mecanismos de atualização do sistema operacional, o que pode ser desafiador. A renovação de segurança é recomendada para dispositivos IoT, mas os requisitos de atualização excessivos ou grandes cargas de atualização podem expandir a superfície de ameaças de várias maneiras. Por exemplo, você pode ficar tentado a ignorar algumas atualizações para maximizar a disponibilidade do dispositivo. Como tal, o design do runtime do módulo do IoT Edge é conciso para manter pequena e bem isolada a base de computação confiável, bem como para encorajar atualizações frequentes.

Arquitetura

O runtime do módulo do IoT Edge aproveita qualquer tecnologia disponível da raiz de hardware de confiança para proteção de segurança. Ele também permite a operação em ambientes divididos entre um REE (ambiente de execução rich)/padrão e um TEE (ambiente de execução confiável) quando as tecnologias de hardware oferecem ambientes de execução confiáveis. As interfaces específicas da função permitem os principais componentes do IoT Edge para garantir a integridade do dispositivo IoT Edge e suas operações.

Arquitetura do runtime do módulo do Azure IoT Edge

Interface de nuvem

A interface de nuvem permite o acesso a serviços de nuvem que complementam a segurança do dispositivo. Por exemplo, essa interface permite o acesso ao Serviço de Provisionamento de Dispositivos para o gerenciamento do ciclo de vida de identidades do dispositivo.

API de gerenciamento

A API de gerenciamento é chamada pelo agente do IoT Edge ao criar/iniciar/parar/remover um módulo do IoT Edge. O runtime do módulo armazena “registros” para todos os módulos ativos. Esses registros mapeiam a identidade de um módulo para algumas propriedades do módulo. Por exemplo, essas propriedades do módulo incluem o identificador do processo (pid) em execução no contêiner e o hash do conteúdo do contêiner do docker.

Essas propriedades são usadas pela API de carga de trabalho (descrita abaixo) para atestar que o responsável pela chamada está autorizado a executar uma ação.

A API de gerenciamento é uma API privilegiada, que pode ser chamada somente pelo agente IoT Edge. Como o runtime do módulo do IoT Edge inicializa e inicia o agente IoT Edge, ele verifica se o agente IoT Edge não foi adulterado e, em seguida, pode criar um registro implícito para o agente IoT Edge. O mesmo processo de atestado usado pela API da carga de trabalho também restringe o acesso à API de gerenciamento apenas ao agente do IoT Edge.

Contêiner de API

A API do contêiner interage com o sistema de contêiner em uso para o gerenciamento de módulo, como Moby ou Docker.

API de carga de trabalho

A API de carga de trabalho está acessível a todos os módulos. Ele fornece uma prova de identidade, seja um token assinado baseado em HSM, seja um certificado X509, bem como um pacote de confiança correspondente para um módulo. O pacote confiável contém certificados de Autoridade de Certificação para todos os outros servidores nos quais os módulos devem confiar.

O runtime do módulo do IoT Edge usa um processo de atestado para proteger essa API. Quando um módulo chama essa API, o runtime do módulo tenta localizar um registro para a identidade. Se bem sucedido, usa as propriedades do registro para medir o módulo. Se o resultado do processo de medição corresponder ao registro, uma nova prova de identidade será gerada. Os certificados de Autoridade de Certificação correspondentes (pacote confiável) serão retornados ao módulo. O módulo usa esse certificado para se conectar ao Hub IoT, outros módulos ou iniciar um servidor. Quando o token ou certificado assinado estiver próximo do término, é de responsabilidade do módulo solicitar um novo certificado.

Integração e manutenção

A Microsoft mantém a base de código principal do runtime do módulo do IoT Edge e do serviço de identidade da Internet das Coisas do Azure no GitHub.

Ao ler a base de código do IoT Edge, lembre-se de que o runtime do módulo evoluiu do daemon de segurança. A base de código ainda pode conter referências ao daemon de segurança.

Instalação e as atualizações

A instalação e as atualizações do runtime do módulo do IoT Edge são gerenciadas por meio do sistema de gerenciamento de pacotes do sistema operacional. Os dispositivos IoT Edge com raiz de hardware de confiança devem fornecer proteção adicional ao runtime do módulo, gerenciando seu ciclo de vida por meio dos sistemas de gerenciamento seguro de inicialização e de atualizações. Os criadores de dispositivos devem explorar esses caminhos com base nas respectivas funcionalidades de dispositivo.

Controle de versão

O runtime do IoT Edge rastreia e relata a versão do runtime do módulo do IoT Edge. A versão é relatada como o atributo runtime.platform.version da propriedade relatada do módulo do agente IoT Edge.

Módulo de segurança de hardware

O gerenciador de segurança do IoT Edge implementa os padrões da interface Trusted Platform Module e PKCS 11 para a integração de HSMs (módulos de segurança de hardware). Com esses padrões, praticamente qualquer HSM, incluindo aqueles com interfaces proprietárias, pode ser integrado. É altamente recomendável usar HSMs para fortalecer a segurança.

Raiz de silício seguro do hardware de confiança

O silício seguro é necessário para ancorar a confiança dentro do hardware do dispositivo IoT Edge. O silício seguro é variado para incluir o Trusted Platform Module (TPM), o Secure Element (eSE) incorporado, o Arm TrustZone, o Intel SGX e as tecnologias de silício seguras personalizadas. O uso de raiz de silício seguro de confiança em dispositivos é recomendado, dadas as ameaças associadas à acessibilidade física de dispositivos IoT.

O objetivo do gerenciador de segurança do IoT Edge é identificar e isolar os componentes que defendem a segurança e a integridade da plataforma Azure IoT Edge para proteção personalizada. Terceiros, como fabricantes de dispositivos, devem fazer uso de recursos de segurança personalizados disponíveis com o hardware do dispositivo.

Saiba como proteger o gerenciador de segurança da IoT do Azure com o TPM (Trusted Platform Module) usando software ou TPMs virtuais:

Crie e provisione um dispositivo do IoT Edge com uma TPM virtual no Linux ou no Linux no Windows.

Próximas etapas

Para saber mais sobre como proteger os dispositivos IoT Edge, leia as postagens de blog a seguir: