Ir para o conteúdo principal
Base de conhecimentos do Suporte

Inicializar um enclave Intel® Software Guard Extensions (Intel® SGX) com um tamanho de pilha grande é lento

Tipo de conteúdo: Manutenção e desempenho   |   ID do artigo: 000089477   |   Última revisão: 14/02/2022

Descrição

  • Inicializar um enclave com HeapInitSize de alguns megabytes leva menos de um segundo.
  • Initalizar um enclave com heapInitSize grande, por exemplo, 1 GB, leva vários segundos.

Resolução

Causa:
Espera-se que a inicialização de grandes quantidades de memória para uma pilha de enclave levará muito tempo. Inicializar e adicionar memória ao Enclave Page Cache (EPC) para um enclave é muito mais complexo do que uma simples alocação de memória em uma aplicação regular. Antes que um pedaço de memória seja adicionado ao EPC, ele deve passar por várias verificações de segurança, incluindo ser medido usando uma função de hash segura SHA-2 de 256 bits.

Consulte as seções 5.1, 5.3, 5.6 em SGX explicadas e as instruções EADD e EEXTEND no ciclo de vida Intel SGX enclave.

Mitigação:
Se o processador suportar Intel® Software Guard Extensions (Intel® SGX) SGX2, no Arquivo de configuração do Enclave:

HeapInitSize é a quantidade para inicializar totalmente (ou seja , EADD , a página em seguida , EEXTEND it) no lançamento do enclave, o que leva tempo. Com um tamanho mínimo de inicialização, seria mais rápido, e o resto da memória só seria adicionada utilizando as instruções SGX2 quando alocadas, via malloc, pelo enclave durante o tempo de execução.

Produtos relacionados

Este artigo aplica-se a 1 produtos.

Avisos legais

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.