【Tecnologia de Computação Confidencial】ARM Arquitetura de Computação Confidencial de Próxima Geração CCA

prefácio

        Nos últimos dez anos, o TEE tem sido usado principalmente no lado móvel, que pode ser chamado de computação confidencial 1.0 , para garantir a segurança das raízes de confiança de pagamento Alipay, WeChat e FIDO, para garantir a segurança da privacidade pessoal, como face e impressões digitais, e para proteger o DRM de direitos autorais digitais de mídia de alta definição.       

        Em 2008, a ARM lançou a tecnologia trustzone, que isola o estado operacional do processador em um estado seguro (seguro) e um estado não seguro (não seguro) por meio do design do hardware. A memória pode ser dividida em memória segura e não segura. memória segura. Com base na tecnologia Trustzone, os fabricantes criaram um TEE de ambiente de execução confiável.

       Nos próximos dez anos, entraremos na era da economia de dados. Dados confidenciais indo para a nuvem e transfronteiriços e a transferência de dados são a única maneira de liberar maior valor dos dados. Como solução técnica principal para computação de privacidade, serviços confidenciais A computação tornou-se popular de repente, nós a chamamos de computação confidencial 2.0 .

        Em 2021, após 13 anos, a ARM lançou a arquitetura de computação confidencial CCA (Confidential Compute Architecture), que adicionou a divisão de atributos de memória física sob a arquitetura do conjunto de instruções. O CCA é um novo recurso proposto pela ARM para computação confidencial e também é uma parte importante da arquitetura ARM V9. O CCA pode fornecer uma base de computação confidencial para nuvem e centros de dados e constituir uma plataforma de computação onde as arquiteturas ARM e x86 coexistem.

1. Fundo

        O software aplicativo dos dispositivos modernos tornou-se cada vez mais complexo. Diferentes aplicativos e serviços podem ser executados no mesmo dispositivo, e os provedores de aplicativos, serviços, sistemas, firmware etc. também são diferentes, o que leva à confiança mútua desses fornecedores. Perguntas como:

  • Aplicativos hospedados no mesmo sistema não confiam uns nos outros
  • O aplicativo não confia no ambiente de tempo de execução
  • O ambiente de tempo de execução (sistema) não confia em aplicativos que possam interferir e interromper o sistema e outros serviços
  • O serviço de segurança não confia no aplicativo

        As soluções de hipervisor existentes podem executar aplicativos na caixa de proteção vm, protegendo o sistema contra interferência e destruição de aplicativos. A tecnologia Trustzone resolve o problema dos serviços de segurança contra interferência e destruição de aplicativos não seguros, mas as tecnologias acima não resolvem o problema do aplicativo Os programas são protegidos de serviços de segurança e ambientes de tempo de execução, ou seja, os aplicativos precisam confiar no ambiente de tempo de execução .

        ARM CCA resolve os problemas acima através dos seguintes aspectos:

  • Cadeia mínima de confiança: os aplicativos só precisam confiar em si mesmos e nas partes do sistema que fornecem garantias de segurança CCA
  • Verificação de confiabilidade em tempo de execução: os aplicativos implantados no CCA podem verificar a confiabilidade do firmware do CCA
  • Certificável: A segurança implementada pelo hardware e firmware CCA tem as características de desenvolvimento, certificação e inspeção

A força do ARM CCA é que, por meio do mecanismo de hardware e da cooperação com o firmware relacionado, o aplicativo não precisa confiar no sistema operacional, hipervisor e serviços de segurança, e o mecanismo fornecido pelo CCA e o endossante confiável realizam a redução da cadeia de confiança.

2. Arquitetura de hardware CCA

        Podemos ver as semelhanças e diferenças entre a arquitetura Trustzone e a arquitetura CCA:

Figura 1 Arquitetura de segurança Trustzone

Figura 2 Arquitetura de segurança CCA

        CCA ainda suporta sistema operacional rico + modo de sistema operacional confiável, o modo do sistema ainda é EL0~EL3, hipervisor também é chamado de hipervisor, monitor ainda é monitor;

        O CCA adiciona uma área isolada adicional à esquerda, que é logicamente equivalente à área confiável à direita, que chamamos de área Realm (R); existem vários RVMs correspondentes à área R no domínio do meio (será usado para o Realm Confidential Computing VM).

        A principal diferença também pode ser considerada a diferença no modelo de programação: sob o modelo Trustzone, o programa aplicativo é dividido em lógica de negócios comum CA e lógica de negócios sensível TA para realizar a computação confidencial 1.0; enquanto o CCA pode colocar programas de negócios completamente em a área privada do Realm, enquanto outros programas de negócios e gerenciamento não confidenciais são executados no RVM.

Esta rota técnica é semelhante a Intel SGX -> TDX~

 2.1 Introdução

        A arquitetura de hardware CCA apresenta dois novos estados, Realm e Root, onde os programas de computação confidenciais são executados no estado Realm e o firmware EL3 é executado no Root.

        A arquitetura de hardware Armv9 é dividida em 4 modos privilegiados e 4 estados: os modos privilegiados são EL3, EL2, EL1, EL0; os estados são Root, Realm, Secure, Non-Secure. O registrador de controle de status está localizado nos bits NS e NSE de SCR_EL3, e a relação de status é mostrada na figura.

Figura 3 Registro de controle de status do sistema 

  • O estado raiz contém o modo EL3
  • O estado do reino contém os modos EL2, EL1, EL0
  • O estado seguro inclui os modos EL2, EL1, EL0
  • O estado não seguro inclui os modos EL2, EL1, EL0

        Existem também quatro tipos de atributos de memória física, ou seja, Root PA, Realm PA, Secure PA e Non-Secure PA.Os direitos de acesso são mostrados na figura.

Figura 4 Controle de acesso à memória 

2.2 Gerenciamento de memória

        ARM CCA apresenta os conceitos de Granule Protection Table (GPT) e Granule Protection Check (GPC) para fornecer um mecanismo de particionamento dinâmico para atributos de memória física. GPT é uma tabela usada para gerenciar os atributos do espaço de memória física, que só pode ser operado pelo monitor no modo EL3. O GPC é um módulo de verificação no nível do hardware. Quando o processador acessar a memória física, o GPC fará a verificação de acordo com a configuração do atributo no GPT (o SMMU também apresenta o GPC).

Figura 5 Inspetor de partículas GPC 

2.3 Mecanismo de Criptografia de Memória

        ARM CCA fornece um mecanismo de criptografia de memória. Os dados são armazenados na DRAM na forma de texto cifrado. Cada espaço de endereço usa uma chave diferente para isolar os dados em diferentes espaços. O MPE (Memory Protection Engine) criptografa e descriptografa os dados acessados ​​da DRAM.

Figura 6 Mecanismo de criptografia de memória 

2.4 Mecanismo de Interrupção

        A introdução do mecanismo ARM CCA não altera o módulo ARM GIC. O hipervisor não seguro distribui interrupções para o Realm por meio do mecanismo de interrupção virtual (vGIC) (o hipervisor agenda o Realm como uma VM normal).

3. Arquitetura de software CCA

        Sistemas e aplicativos de computação confidenciais podem ser executados no Realm;

        RMM é o gerente do Realm, que fornece serviços de interface RSI para aplicativos no Realm e fornece serviços para hipervisores não seguros;

        O monitor adiciona gerenciamento GPT e um mecanismo de troca de contexto entre o estado Realm e o estado não seguro com base no TF-A original.

Figura 7 Arquitetura de software Realm 

3.1 Reino

        O hipervisor pode criar dinamicamente o Realm e a fase de inicialização do Realm pode atestar o ambiente operacional por meio da Interface de gerenciamento do Realm (Realm Management Interface, RMI). O processo de prova não depende do hipervisor no estado não seguro e do TEE no estado seguro (na era 1.0, o aplicativo deve confiar nesses dois componentes incondicionalmente). O hipervisor pode criar, destruir e agendar o Realm por meio do RMM, mas não pode alterar as instruções e os dados do Realm.

        O ambiente de tempo de execução do Realm pode usar um sistema operacional convencional semelhante ao Linux ou um sistema operacional de biblioteca (libos), como Enarx, Occlum e Graphene.

3.2 Monitorar

        Sob a arquitetura não CCA, o firmware confiável em execução no modo EL3 é chamado  TF-A (Trust Firmware for A Profile). Para o mecanismo ARM CCA, o TF-A concluiu as seguintes modificações:

  • Carregue e execute a imagem RMM
  • Alternar o contexto de estado não seguro, seguro e realm
  • Gerenciar tabelas de páginas GPT

3,3 RMM

O RMM (Realm Management Monitor) é executado no modo EL2 e é responsável principalmente pelas seguintes funções:

  • Gerenciar o ciclo de vida do Reino: incluindo a criação e destruição do Reino. No processo de execução/inicialização do Realm, o Realm pode chamar o serviço de prova por meio da interface RSI para concluir a prova do ambiente de tempo de execução
  • Gerenciar o contexto do Realm: o mecanismo de agendamento do vcpu é gerenciado pelo hipervisor, ou seja, os recursos de computação são alocados pelo lado não seguro. Ao entrar no Realm, o RMM restaura o contexto do Realm; ao sair do Realm, o RMM salva o estado do contexto do Realm. Realm se comunica com o lado não seguro por meio de memória compartilhada
  • Gerenciar memória: a memória de tempo de execução do Realm é dividida em duas categorias:
    • Intervalos protegidos: A área onde o código do Realm, etc.
    • Intervalos desprotegidos: áreas de armazenamento compartilhado, como memória que implementa virtio, podem ser acessadas pelo lado não seguro
  • Gerenciar interrupções
    • A introdução do recurso ARM CCA não altera o mecanismo original do GIC. A interrupção do Realm é realizada pela interrupção virtual do hipervisor GIC. O CCA se concentra na segurança dos dados do processo de cálculo e não afeta a operação comercial original do lado não seguro. Portanto, a disponibilidade da CPU e da interrupção não interfere muito

4. Processo de inicialização do sistema

        No processo de inicialização do sistema, quando o sistema não introduz o mecanismo ARM CCA, o BL2 é executado no modo EL3 ou Secure EL0/EL1/EL2, inicializa dispositivos como DRAM e conclui o carregamento e a verificação das imagens BL31, BL32 e BL33. BL31 completa a inicialização do sistema TEE e do sistema REE.

Figura 8 Processo de inicialização não CCA 

        No processo de inicialização do sistema, quando o sistema introduz o mecanismo ARM CCA, o BL2 deve ser executado no modo EL3, inicializar a DRAM e outros dispositivos e concluir o carregamento e a verificação das imagens BL31, BL32, BL33 e RMM. BL31 completa a inicialização do sistema TEE, sistema RMM e sistema REE.

Figura 9 Processo de inicialização do CCA

5. Atestado

       O atestado é um conceito no campo da computação confiável. Com base em certificados de endosso, é uma solução técnica para fazer declarações confiáveis ​​sobre software, firmware, dados de configuração, etc., para obter verificação confiável. O ARM CCA fornece funcionalidade de atestado para garantir que o Realm perceba a autenticidade da plataforma em que está sendo executado. A ARM CCA recomenda o uso do módulo HES (HARDWARE ENFORCED SECURITY) para garantir a segurança da plataforma.

Figura 10 Processo de certificação CCA 

        O processo de prova é mostrado na figura e todo o relatório de instrução coletado dinamicamente inclui principalmente duas partes:

  • Declarações relacionadas a plataformas fornecidas por TF-A e HES
  • Uma declaração do estado do tempo de execução do Realm fornecida pelo RMM

6. Exemplo de implementação de CCA

        EL3 executa o monitor TF-A no estado Raiz;

        EL2 executa TF-RMM, Linux KVM e Hafnium SPM nos estados Realm, Non-secure e Secure, respectivamente;

        EL1 executa Linux VM, OS VM e OP-TEE nos estados Realm, Non-secure e Secure, respectivamente

Figura 11 Exemplo de CCA 

       Linux KVM pode interagir com VM por meio de RMI de TF RMM e agendar VM (Linux KVM cria duas VMs, cada uma executando em seu próprio domínio independente).

       Por meio da criptografia de memória e do mecanismo GPC fornecido pelo ARM CCA, o sistema pode garantir que o hipervisor não seguro não obtenha os dados em execução no Realm. Durante a inicialização e operação do Realm, o ambiente operacional pode ser certificado para garantir a autenticidade do ambiente operacional.

7. Cenários de aplicação

7.1 Centro de dados

• O ambiente de hospedagem é um servidor físico

• Realms são máquinas virtuais convidadas protegidas ou instâncias de serviço em nuvem

• Uma parte confiável é um cliente remoto que se conecta a um Realm para executar alguma tarefa

  • 7.2 Cliente móvel

• O ambiente de hospedagem pode ser um dispositivo móvel físico

• Realm pode ser um aplicativo ou serviço cliente protegido

• Uma parte confiável pode ser um serviço remoto que se conecta a um Realm para executar alguma tarefa.

8. Apêndice: Ecologia CCA

A psicologia do efeito Pigmalião aponta que o elogio e a aprovação podem produzir milagres, quanto mais específico, melhor o efeito~
"Favoritos comendo cinzas" é uma maneira muito inteligente de aprender "ferramentas" e praticar "habilidades", ajudando-nos a evitar a diligência ineficiente diária ~

Acho que você gosta

Origin blog.csdn.net/BillyThe/article/details/131892694
Recomendado
Clasificación