Bloqueio de configuração periférico
Uma configuração periférica é um mapeamento de periféricos para núcleos. Os chips do Azure Sphere agora têm a capacidade de bloquear uma configuração periférica para fornecer segurança adicional. Todos os futuros chips do Azure Sphere também terão bloqueio de configuração periférico.
Durante a inicialização do sistema, o runtime do Azure Sphere lê o manifesto do aplicativo para verificar quais periféricos um aplicativo pode usar e atribui os periféricos a um núcleo configurando o firewall de hardware. Quando a configuração periférica não estiver bloqueada, talvez seja possível que um invasor reconfigure as atribuições principais dos periféricos e acesse periféricos arbitrários. No entanto, quando a configuração periférica é bloqueada, um invasor não pode reatribuir periféricos mesmo que o código esteja comprometido.
Quando a configuração periférica é bloqueada
O runtime do Azure Sphere bloqueia a configuração periférica durante a inicialização do sistema, depois que todos os aplicativos forem inicializados, se as duas condições a seguir forem verdadeiras:
- O estado de fabricação do dispositivo está definido como DeviceComplete.
- A funcionalidade do dispositivo appDevelopment não está presente no dispositivo.
O bloqueio de configuração periférico adiciona outra camada de segurança para defesa em profundidade, que é uma das sete propriedades necessárias para dispositivos altamente protegidos. Depois que a configuração periférica estiver bloqueada, ela não poderá ser revisada até que o dispositivo seja reiniciado.
Atualizações de aplicativo e reinicialização do dispositivo
Uma atualização de aplicativo que requer uma alteração na configuração periférica dispara uma reinicialização do dispositivo quando a configuração periférica é bloqueada. Depois que a configuração estiver bloqueada, o dispositivo deve ser reiniciado antes de poder revisar a configuração periférica de acordo com a atualização do aplicativo.
Uma alteração na configuração periférica ocorre quando uma atualização do aplicativo exige que os periféricos sejam liberados ou adquiridos. Veja a seguir exemplos de atualizações de aplicativo que disparam uma reinicialização do dispositivo quando a configuração periférica é bloqueada:
- Um novo aplicativo que usa periféricos é instalado como parte de uma atualização de nuvem ou sideload. Nesse caso, um novo núcleo e periféricos devem ser adquiridos.
- Um aplicativo atualizado requer um conjunto diferente de periféricos de sua versão anterior. Nesse caso, alguns periféricos devem ser liberados e outros periféricos devem ser adquiridos.
- Um aplicativo que usa periféricos é excluído como parte de uma atualização de nuvem. Nesse caso, todos os periféricos usados pelo aplicativo devem ser liberados.
Veja a seguir exemplos de atualizações de aplicativo que não disparam uma reinicialização do dispositivo porque a configuração periférica permanece inalterada:
- Um novo aplicativo que não usa periféricos é instalado como parte de uma atualização de nuvem ou sideload.
- Um aplicativo que não usa periféricos é excluído como parte de uma atualização de nuvem.
- Um aplicativo atualizado requer o conjunto exato de periféricos usados pela versão anterior.