Pular para o conteúdo

SGX

Referência de arquiteturaFeex

O Intel SGX, Software Guard Extensions, fornece recursos de execução de enclaves com um modelo de ameaça e interface de software específicos. O suporte de CPU não é suficiente para estabelecer que um aplicativo de enclave pode ser executado em um sistema específico.

O que você precisa saber

O Intel SGX, Software Guard Extensions, fornece recursos de execução de enclaves com um modelo de ameaça e interface de software específicos. O suporte de CPU não é suficiente para estabelecer que um aplicativo de enclave pode ser executado em um sistema específico.

Como funciona

O SGX define memória de enclave e mecanismos de entrada/saída, com um cache de páginas de enclave gerenciado por meio de suporte da plataforma e do SO. Um aplicativo de enclave separa componentes confiáveis e não confiáveis e pode usar atestação para estabelecer a identidade do enclave. A quantidade de memória de enclave utilizável e a política de inicialização suportada são específicas da plataforma.

Onde é útil

Um aplicativo pode colocar uma computação de escopo restrito e segredos dentro de um enclave enquanto trata o host ao redor como fora de seu limite de confiança. E/S, entradas não confiáveis, comportamento de exceções e considerações de canal lateral ainda exigem projeto explícito.

Como verificar o suporte e a ativação

Verifique CPUID.07H.00H:EBX bit 2 e as informações da folha 12H de CPUID específica de SGX, depois verifique o provisionamento de firmware, o suporte de driver/runtime e os requisitos de atestação do aplicativo. Siga a configuração exata suportada pela plataforma.

Capacidade, habilitação e aplicação devem ser verificadas separadamente. Um processador pode suportar uma proteção enquanto o SO, aplicativo ou política de máquina virtual não a ativa. Um campo de suporte do banco de dados não é uma atestação de um sistema em execução.

O que o recurso não estabelece

Um rótulo SGX não estabelece detalhes de SGX1/SGX2, controle de inicialização flexível, disponibilidade de serviço de atestação ou uma capacidade específica de memória de enclave. Ele não torna confidenciais aplicativos arbitrários não modificados nem elimina todos os canais laterais.

Compatibilidade e desempenho na prática

Mantenha o SO, o firmware e o runtime afetado atualizados. Se uma proteção expuser um problema de compatibilidade, use primeiro os diagnósticos do fornecedor e as atualizações suportadas. Uma alternância ampla de proteção pode afetar aplicativos não relacionados e deve seguir uma política explícita de implantação e recuperação.

Uma lista de verificação prática de verificação

  1. Registre o modelo exato do processador ou da plataforma e as versões envolvidas do aplicativo, SO e runtime. Mantenha o texto exato do erro ou requisito.
  2. Consulte a referência do fabricante para esse modelo exato e, em seguida, inspecione a capacidade efetiva e o estado ativado no ambiente em que o programa é executado.
  3. Compare cada requisito do binário ou backend selecionado. Um recurso com nome semelhante, alias ou rótulo genérico de tecnologia não é suficiente.
  4. Confirme se o aplicativo selecionou a implementação pretendida. Use seus diagnósticos documentados e um fallback suportado quando os requisitos não forem atendidos.
  5. Faça uma alteração suportada por vez e repita a mesma carga de trabalho. Mantenha a configuração original e o caminho de recuperação disponíveis.

Se o recurso estiver listado, mas o software não puder usá-lo

Comece pelo componente exato com falha. Um banco de dados de hardware descreve a capacidade registrada; o sistema operacional ou o hipervisor pode expor um ambiente efetivo diferente. Um erro de instrução ilegal também precisa de investigação da instrução falha real e da compilação do binário, porque corrupção ou uma instrução não suportada não relacionada pode produzir um sintoma semelhante.

Instale a versão do aplicativo, driver ou runtime suportada para a plataforma exata e use a compilação de linha de base ou fallback documentada do fornecedor, se necessário. Uma atualização de software não pode criar uma instrução que o processador não possui. As alterações de firmware e de política de segurança devem seguir o procedimento do fabricante do sistema e um plano de recuperação em vez de uma receita genérica de otimização.

Fontes e escopo desta explicação

Intel 64 and IA-32 Architectures Software Developer's Manual · Implementação de referência para desenvolvedores do Intel SGX

Essas referências estabelecem o comportamento arquitetural e os requisitos de software. Elas não verificam de forma independente cada valor de recurso em uma página de modelo de hardware vinculada. Para obter suporte a modelos, use a evidência do fabricante dessa página e verifique a configuração efetiva do sistema. Este artigo não fornece um benchmark, certificação ou data de análise independente.

Fontes e verificação

Propriedade editorial: Feex. Nenhuma data de revisão independente foi registrada. Como pesquisamos.

Este artigo foi útil?

Um sim ou não é suficiente. Escolha um motivo se desejar, ou adicione uma breve observação.

Este artigo foi útil?