O que é o Azure Sphere?

O Azure Sphere é uma plataforma de aplicativo segura e de alto nível, com recursos internos de comunicação e segurança para dispositivos conectados à Internet. Ele é composto por uma MCU (unidade microcontroladora) cruzada, segura e conectada, por um SO (sistema operacional) personalizado de alto nível baseado em Linux (SO) e por um serviço de segurança baseado em nuvem que fornece segurança contínua e renovável.

A MCU do Azure Sphere integra recursos de processamento em tempo real com a capacidade de executar um sistema operacional de alto nível. Uma MCU do Azure Sphere, em conjunto com seu sistema operacional e sua plataforma de aplicativos, permite criar dispositivos seguros e conectados à Internet que podem ser atualizados, controlados, monitorados e mantidos remotamente. Um dispositivo conectado que inclui um MCU do Azure Sphere, seja juntamente com ou no lugar de um MCU existente, os fabricantes de produtos obtêm oportunidade, produtividade e segurança aprimoradas. Por exemplo:

  • Um ambiente de aplicativo protegido, conexões autenticadas e uso opcional de periféricos minimiza os riscos de segurança devido à falsificação, software não autorizado ou ataques de negação de serviço, entre outros.
  • Atualizações de software podem ser implantadas automaticamente da nuvem para qualquer dispositivo conectado para consertar problemas, fornecer nova funcionalidade ou combater métodos emergentes de ataque, melhorando a produtividade da equipe de suporte.
  • Dados de uso do produto podem ser relatados para a nuvem por uma conexão segura para ajudar a diagnosticar problemas e criar produtos, aumentando a oportunidade para serviço de produtos, interações positivas com os clientes e desenvolvimento futuro.

O serviço de segurança do Azure Sphere é um aspecto integrante do Azure Sphere. Usando esse serviço, as MCUs do Azure Sphere conectam-se com segurança à nuvem e à Web. O serviço garante que o dispositivo seja inicializado apenas com uma versão autorizada do software original e aprovado. Além disso, ele fornece um canal protegido pelo qual a Microsoft pode baixar automaticamente e instalar atualizações do sistema operacional em dispositivos implantados no campo para atenuar problemas de segurança. Não é necessária intervenção do fabricante nem do usuário final, fechando uma lacuna de segurança comum.

Cenário do Azure Sphere

Para entender como o Azure Sphere funciona em uma configuração do mundo real, considere este cenário.

A Contoso Ltd. é um fabricante de produtos brancos que incorpora um MCU do Azure Sphere em suas lavadoras de louça. A lavadora de louça DW100 associa a MCU com vários sensores e um aplicativo integrado de alto nível que é executado no MCU do Azure Sphere. O aplicativo se comunica com o serviço de segurança do Azure Sphere e com os serviços de nuvem da contoso. O diagrama a seguir ilustra este cenário:

Conecta-se ao IoT, ao Serviço de Segurança e ao locatário de nuvem do fabricante

Lavadoras de louça conectadas à rede Contoso

Partindo do canto superior esquerdo e movendo-se no sentido horário:

  • A Microsoft lança atualizações para o sistema operacional do Azure Sphere por meio do Serviço de Segurança do Azure Sphere.

  • A engenharia de produtos da Contoso lança atualizações para seu aplicativo DW100 por meio do Serviço de Segurança do Azure Sphere.

  • O Serviço de Segurança do Azure Sphere implanta de modo seguro o sistema operacional atualizado e o software de aplicativo DW100 da Contoso para as lavadoras de louça em locais de usuário final.

  • O suporte à lavadora de louça Contoso comunica-se com o Serviço de Segurança do Azure Sphere para determinar qual versão do software Azure Sphere e do software de aplicativo DW100 deve estar em execução em cada dispositivo do usuário final e para reunir todos os dados de relatório de erros que foram relatados ao serviço. O suporte à lavadora de louça Contoso também se comunica com o serviço de nuvem da Contoso para obter informações adicionais.

  • Os serviços de nuvem da Contoso dão suporte a aplicativos para solução de problemas, análise de dados e interação do cliente. os serviços de nuvem da contoso podem ser hospedados por Microsoft Azure, pelo serviço de nuvem de outro fornecedor ou pela própria nuvem da Contoso.

  • Modelos DW100 da Contoso em localizações de usuário final baixam sistema operacional e software de aplicativo pelas conexões com o Serviço de Segurança do Azure Sphere. Eles também podem se comunicar com o aplicativo de serviço de nuvem da Contoso para relatar dados adicionais.

Por exemplo, os sensores no dishwasher podem monitorar a temperatura da água, a temperatura de secagem e o nível do agente aplique e carregar esses dados nos serviços de nuvem da Contoso, onde um aplicativo de serviço de nuvem o analisa para obter possíveis problemas. Se a temperatura de secagem parece muito quente ou fria (o que pode indicar uma peça com falha) a Contoso executa o diagnóstico remotamente e notifica o cliente que reparos são necessários. Se o dishwasher estiver sob garantia, o aplicativo de serviço de nuvem também poderá garantir que a loja de reparos local do cliente tenha a peça de substituição, reduzindo assim as visitas de manutenção e os requisitos de inventário. Da mesma forma, se o nível do agente de enxágue estiver baixo, a lavadora de louça poderá sinalizar o cliente para comprar mais agente diretamente do fabricante.

Todas as comunicações ocorrem em conexões seguras e autenticadas. A equipe de engenharia e suporte da Contoso pode visualizar dados usando o Serviço de Segurança do Azure Sphere, recursos do Microsoft Azure ou um aplicativo de serviço de nuvem específico da Contoso. A Contoso também pode fornecer aplicativos móveis e Web voltados para o cliente, com os quais os proprietários de lavadoras de louça podem solicitar serviços, monitorar o uso de recursos da lavadora de louças e interagir de diferentes modos com a empresa.

Usando ferramentas de implantação do Azure Sphere, a Contoso tem como alvo cada atualização de software de aplicativo para o modelo de lavadora de louça apropriado e o serviço de segurança do Azure Sphere distribui as atualizações de software para os dispositivos corretos. Somente atualizações de software assinadas e verificadas podem ser instaladas nas lavadoras de louça.

Azure Sphere e as sete propriedades dos dispositivos altamente protegidos

O objetivo da plataforma Azure Sphere é fornecer segurança de alto valor a baixo custo para que dispositivos com base em microcontrolador sensíveis aos preços possam se conectar com segurança e confiabilidade à Internet. À medida que brinquedos conectados à rede, dispositivos e outros dispositivo de clientes se tornam mais comuns, a segurança é de extrema importância. Não só o próprio hardware do dispositivo deve estar protegido; seu software e suas conexões de nuvem também devem estar protegidas. Um lapso de segurança em qualquer lugar no ambiente operacional ameaça todo o produto e, potencialmente, qualquer coisa ou qualquer pessoa nas proximidades.

Com base nas décadas de experiência da Microsoft com a segurança da Internet, a equipe de Azure Sphere identificou sete Propriedades de dispositivos altamente protegidos. A plataforma Azure Sphere foi criada em torno destas sete propriedades:

Raiz de confiança baseada em hardware. Uma raiz de confiança baseada em hardware garante que o dispositivo e sua identidade não possam ser separados, evitando, assim, a falsificação do dispositivo. Cada MCU do Azure Sphere é identificado por uma chave de criptografia impossível de falsificar gerada e protegida pelo hardware do subsistema de segurança Pluton criado pela Microsoft. Isso garante uma raiz de confiança de hardware protegida e resistente a falsificação da fábrica ao usuário final.

Defesa profunda. A defesa completa fornece várias camadas de segurança e, portanto, várias atenuações em relação a cada ameaça. Cada camada de software na plataforma Azure Sphere verifica se a camada acima está protegida.

Pequena base de computação confiável. A maior parte do software do dispositivo permanece fora da base de computação confiável, reduzindo assim a área de superfície para ataques. Apenas o Monitor de segurança protegido, o runtime e o subsistema do Pluton — todos esses fornecidos pela Microsoft — são executados na base de computação confiável.

Compartimentos dinâmicos. Compartimentos dinâmicos limitam o alcance de qualquer erro único. Os MCUs do Azure Sphere contêm contramedidas de silicone, incluindo firewalls de hardware, para impedir que uma violação de segurança em um componente seja propagada para outros componentes. Um ambiente de tempo de execução restrito e "em área restrita" impede que os aplicativos corrompam código ou dados protegidos.

Autenticação sem senha. O uso de certificados assinados, validados por uma chave de criptografia impossível de falsificar, fornece uma autenticação muito mais forte do que senhas. A plataforma Azure Sphere exige que todo elemento de software seja assinado. As comunicações do dispositivo para a nuvem e da nuvem para o dispositivo exigem autenticação adicional, o que é obtido com certificados.

Relatório de erros. Erros no software do dispositivo ou no hardware são típicos em ataques de segurança emergentes; erros que resultam em falha do dispositivo constituem um ataque de negação de serviço. A comunicação do dispositivo para a nuvem fornece um aviso antecipado de possíveis erros. Azure Sphere dispositivos podem relatar automaticamente dados e erros operacionais a um sistema de análise baseado em nuvem, e atualizações e manutenção podem ser executadas remotamente.

Segurança renovável. O software do dispositivo é atualizado automaticamente para corrigir vulnerabilidades conhecidas ou violações de segurança, não exigindo nenhuma intervenção do fabricante do produto ou do usuário final. O Serviço de Segurança do Azure Sphere atualiza o sistema operacional do Azure Sphere e os aplicativos automaticamente.

Arquitetura do Azure Sphere

Trabalhando juntos, o hardware, o software e o serviço de segurança Azure Sphere permitem abordagens exclusivas e integradas à manutenção, ao controle e à segurança do dispositivo.

A arquitetura de hardware fornece uma base de computação fundamentalmente segura para dispositivos conectados, permitindo que você se concentre em seu produto.

A arquitetura de software, com um kernel do sistema operacional personalizado protegido em execução no Monitor de Segurança escrito pela Microsoft, permite que você concentre seus esforços de software em recursos de IoT com valor agregado e específicos do dispositivo.

O serviço de segurança Azure Sphere dá suporte à autenticação, à atualização de software e ao relatório de erros sobre canais protegidos de nuvem para dispositivo e de dispositivo para nuvem. O resultado é uma infraestrutura de comunicações segura que verifica se os seus produtos estão executando o sistema operacional Azure Sphere mais atualizado.

Arquitetura de hardware

Uma MCU cruzada do Azure Sphere consiste em vários núcleos em uma única unidade, como mostra a figura a seguir.

Arquitetura de hardware

Arquitetura de hardware da MCU do Azure Sphere

Cada núcleo e seu subsistema associado está em um domínio de confiança diferente. A raiz de confiança reside no subsistema de segurança Pluton. Cada camada da arquitetura pressupõe que a camada superior pode ser comprometida. Em cada camada, o isolamento de recursos e os compartimentos dinâmicos fornecem segurança adicional.

Subsistema de segurança do Microsoft Pluton

O subsistema de segurança Pluton é a raiz protegida (ou seja, em silício) baseada em hardware de confiança para o Azure Sphere. Inclui um núcleo de processador de segurança, mecanismos de criptografia, um gerador de número aleatório de hardware, geração de chaves públicas/privadas, criptografias assimétrica e simétrica, suporte para verificação de ECDSA (algoritmo de assinatura digital de curva elíptica) para inicialização protegida e inicialização medida em silício para dar suporte a atestado remoto com um serviço de nuvem, bem como várias contramedidas a violações, incluindo uma unidade de detecção de entropia.

Como parte do processo de inicialização segura, o subsistema Pluton inicializa diversos componentes de software. Ele também fornece serviços de runtime, processa as solicitações de outros componentes do dispositivo e gerencia componentes críticos para outras partes do dispositivo.

Núcleo do aplicativo de alto nível

O núcleo de alto nível do aplicativo apresenta um subsistema Cortex-A ARM que tem uma MMU (unidade de gerenciamento de memória) cheia. Ele habilita a compartimentalização de processos baseada em hardware usando a funcionalidade de zona de confiança e é responsável por executar o sistema operacional, aplicativos de alto nível e serviços. Ele dá suporte a dois ambientes operacionais: o mundo normal (NW), que executa o código no modo de usuário e no modo de supervisor, e no mundo seguro (SW), que executa apenas o monitor de segurança fornecido pela Microsoft. Seus aplicativos de alto nível são executados no modo de usuário do NW.

Núcleos em tempo real

Núcleos em tempo real apresentam um subsistema de E/S do ARM Cortex-M que usa o código de bare-metal ou um RTOS (sistema operacional em tempo real). Esses aplicativos podem mapear os periféricos e se comunicarem com aplicativos de alto nível, mas não podem acessar a Internet diretamente.

Conectividade e comunicações

A primeira MCU do Azure Sphere fornece uma opção de Wi-Fi 802.11 b/g/n que opera em 2,4 GHz e 5 GHz. Aplicativos cliente de alto nível podem configurar, usar e consultar o subsistema de comunicação sem fio, mas não podem programá-lo diretamente. Além ou em vez de usar o Wi-Fi, os dispositivos do Azure Sphere equipados adequadamente podem se comunicar em uma rede Ethernet.

E/S multiplexada

A plataforma do Azure Sphere dá suporte a uma variedade de recursos de E/S para que os fabricantes possam configurar dispositivos incorporados para atender às suas necessidades de mercado. Periféricos de E/E podem ser mapeados para o núcleo do aplicativo de alto nível ou para um núcleo em tempo real.

Firewalls da Microsoft

Firewalls de hardware são contramedidas de silício que fornecem proteção de "área restrita" para garantir que os periféricos de e/s sejam acessíveis somente para o núcleo no qual eles estão mapeados. Os firewalls impõem a compartimentalização, impedindo assim que uma ameaça de segurança localizada no núcleo do aplicativo de alto nível afete o acesso dos núcleos em tempo real aos seus periféricos.

RAM e flash integradas

MCUs do Azure Sphere incluem um mínimo de 4 MB de RAM integrada e 16 MB de memória flash integrada.

Arquitetura de software e SO

A plataforma de aplicativos de alto nível executa o SO do Azure Sphere, juntamente com um aplicativo de alto nível específico do dispositivo que pode se comunicar com a Internet e com aplicativos com capacidade para tempo real que são executados nos núcleos em tempo real. A figura a seguir mostra os elementos dessa plataforma.

Elementos fornecidos pela Microsoft são mostrados em cinza.

Plataforma de aplicativos

Plataforma do aplicativo de alto nível

A Microsoft fornece e mantém todos os softwares que não sejam de seus aplicativos específicos do dispositivo. Todos os aplicativos de software executados no dispositivo, incluindo o aplicativo, são assinados pela AC (autoridade de certificação) da Microsoft. As atualizações de aplicativo são entregues por meio do pipeline confiável da Microsoft e a compatibilidade de cada atualização com o hardware de dispositivo do Azure Sphere é verificada antes da instalação.

runtime do aplicativo

O runtime do aplicativo fornecido pela Microsoft baseia-se em um subconjunto do padrão POSIX. Ele consiste em bibliotecas e serviços de tempo de execução que são executados no modo de usuário do NW. Esse ambiente oferece suporte aos aplicativos de alto nível que você cria.

Bibliotecas de aplicativos dão suporte a recursos de rede, armazenamento e as comunicações que são exigidos por aplicativos de alto nível, mas não têm suporte a E/S de arquivo genérico direto ou acesso de shell, entre outras restrições. Essas restrições garantem que a plataforma permaneça protegida e que a Microsoft possa fornecer segurança e atualizações de manutenção. Além disso, as bibliotecas restritas fornecem uma superfície de API estável em longo prazo para que o software do sistema possa ser atualizado para melhorar a segurança enquanto mantém a compatibilidade binária com aplicativos cliente.

Serviços de sistema operacional

Serviços de sistema operacional hospedam o contêiner de aplicativo de alto nível e são responsáveis pela comunicação com o Serviço de Segurança do Azure Sphere. Eles gerenciam a autenticação de rede o firewall de rede para todo o tráfego de saída. Durante o desenvolvimento de aplicativos, os serviços de sistema operacional também se comunicam com um PC conectado e o aplicativo que está sendo depurado.

Kernel personalizado do Linux

O kernel personalizado baseado em Linux é executado no modo de supervisor, juntamente com um carregador de inicialização. O kernel é cuidadosamente ajustado para o volume de memória RAM e flash da MCU do Azure Sphere. Ele fornece uma superfície para execução recuperável de processos de espaço do usuário nos espaços de endereço virtual separados. O modelo de driver expõe periféricos da MCU aos serviços e aplicativos do sistema operacional. Drivers do Azure Sphere incluem Wi-Fi (que inclui uma pilha de rede TCP/IP), UART, SPI, I2C, GPIO, entre outros.

Monitor de segurança

O Monitor de Segurança fornecido pela Microsoft é executado em SW. Ele é responsável por proteger o hardware sensível à segurança, como memória, flash e outros recursos de MCU compartilhados e por expor com segurança acesso limitado a esses recursos. O Monitor de Segurança intermedia e retransmite o acesso ao Subsistema de Segurança Pluton e à raiz de hardware da confiança e atua como um watchdog para o ambiente NW. Ele inicia o carregador de inicialização, expõe os serviços de runtime para NW e gerencia firewalls de hardware e outros componentes de silício não acessíveis para NW.

Serviço de Segurança do Azure Sphere

O serviço de segurança Azure Sphere consiste em três componentes: autenticação sem senha, atualização e relatório de erros.

  • Autenticação sem senha. O componente de autenticação fornece atestado remoto e autenticação sem senha. O serviço de atestado remoto conecta-se por meio de um protocolo de desafio/resposta que usa o recurso de inicialização medida no subsistema de Pluton. Ele verifica não apenas se o dispositivo foi inicializado com o software correto, mas com a versão correta do software.

    Depois de o atestado ser bem-sucedido, o serviço de autenticação assume o comando. O serviço de autenticação comunica-se por uma conexão TLS segura e emite um certificado que o dispositivo pode apresentar aos serviços Web, como o Microsoft Azure ou uma nuvem privada da empresa. O serviço Web valida a cadeia de certificados, verificando se o dispositivo é original, se o software está atualizado e se a Microsoft é sua origem. O dispositivo então pode se conectar com segurança ao serviço online.

  • Cumulativo. O serviço de atualização distribui atualizações automáticas para o sistema operacional Azure Sphere e para aplicativos. O serviço de atualização garante a continuidade do funcionamento e permite a manutenção remota e a atualização de software de aplicativo.

  • Relatório de erros. O serviço de relatório de erros fornece relatórios de falhas simples para o software implantado. Para obter dados mais avançados, use os recursos de análise e relatórios incluídos na assinatura do Microsoft Azure.

Todos os dados armazenados com o serviço de segurança Azure Sphere são criptografados em repouso por padrão. o serviço de segurança armazena dados no Azure Armazenamento, Cosmos DBe Azure Key Vault, usando a implementação de criptografia de dados em repouso para cada serviço desse tipo.