Bloqueio de configuração de periféricos
Uma configuração de periféricos é um mapeamento de periféricos para núcleos. Os chips do Azure Sphere têm agora a capacidade de bloquear uma configuração de periféricos para fornecer segurança adicional. Todos os futuros chips do Azure Sphere também terão bloqueio de configuração de periféricos.
Durante o arranque do sistema, o runtime do Azure Sphere lê o manifesto da aplicação para determinar quais os periféricos que uma aplicação tem permissão para utilizar e atribui os periféricos a um núcleo ao configurar a firewall de hardware. Quando a configuração do periférico não está bloqueada, poderá ser possível que um atacante reconfigure as atribuições principais dos periféricos e aceda a periféricos arbitrários. No entanto, quando a configuração do periférico está bloqueada, um atacante não pode reatribuir periféricos, mesmo que o código esteja comprometido.
Quando a configuração do periférico está bloqueada
O runtime do Azure Sphere bloqueia a configuração do periférico durante o arranque do sistema, depois de todas as aplicações serem inicializadas, se as duas condições seguintes forem verdadeiras:
- O estado de fabrico do dispositivo está definido como DeviceComplete.
- A capacidade de dispositivo appDevelopment não está presente no dispositivo.
O bloqueio da configuração de periféricos adiciona outra camada de segurança para a defesa em profundidade, que é uma das sete propriedades necessárias para dispositivos altamente seguros. Assim que a configuração do periférico estiver bloqueada, não poderá ser revista até que o dispositivo seja reiniciado.
Atualizações de aplicações e reinício do dispositivo
Uma atualização de aplicação que requer uma alteração na configuração do periférico aciona um reinício do dispositivo quando a configuração do periférico está bloqueada. Assim que a configuração estiver bloqueada, o dispositivo tem de reiniciar antes de poder rever a configuração do periférico em conformidade para a atualização da aplicação.
Uma alteração na configuração de periféricos ocorre quando uma atualização da aplicação requer que os periféricos sejam libertados ou adquiridos. Seguem-se exemplos de atualizações de aplicações que acionam um reinício do dispositivo quando a configuração do periférico está bloqueada:
- Uma nova aplicação que utiliza periféricos é instalada como parte de uma atualização da cloud ou sideload. Neste caso, tem de ser adquirido um novo núcleo e periféricos.
- Uma aplicação atualizada requer um conjunto diferente de periféricos da versão anterior. Neste caso, alguns periféricos têm de ser libertados e outros periféricos têm de ser adquiridos.
- Uma aplicação que utiliza periféricos é eliminada como parte de uma atualização da cloud. Neste caso, todos os periféricos utilizados pela aplicação têm de ser libertados.
Seguem-se exemplos de atualizações de aplicações que não acionam um reinício do dispositivo porque a configuração do periférico permanece inalterada:
- Uma nova aplicação que não utiliza periféricos é instalada como parte de uma atualização da cloud ou sideload.
- Uma aplicação que não utiliza periféricos é eliminada como parte de uma atualização da cloud.
- Uma aplicação atualizada requer o conjunto exato de periféricos utilizados pela versão anterior.