Cenário de uso
Este artigo explica como construir um ambiente de computação confidencial Tencent SGX em instâncias de memória aprimorada para segurança M6ce e usar o Intel SGXSDK para verificar a funcionalidade SGX.
Pré-requisitos
Os servidores em nuvem precisam de capacidade de acesso à Internet externa. Você pode optar por atribuir um IP público ao criar o servidor em nuvem ou configurar um IP público elástico após a criação. Observação:
Este artigo usa uma instância com o sistema operacional TencentOS Server 3.1(TK4) como exemplo. Como os passos podem variar entre diferentes versões do sistema operacional, por favor, adapte de acordo com sua situação específica.
Instalar o Intel SGXSDK
1. Execute o seguinte comando para verificar a versão do kernel.
Verifique se a versão do kernel é inferior a 5.4.119-19.0008:
Sim, execute o seguinte comando para atualizar o kernel.
Aviso:
A atualização do kernel do sistema operacional é uma operação complexa e de alto risco, que pode causar instabilidade do sistema ou problemas de compatibilidade. Antes de prosseguir com a atualização, recomenda-se fazer backup dos dados importantes, compreender o processo de atualização e os possíveis problemas, e proceder com cautela.
Não, por favor, execute o próximo passo.
2. Execute o seguinte comando para instalar os pacotes de software necessários para o SGX runtime. O diretório de instalação padrão para o serviço SGX AESM é /opt/intel/sgx-aesm-service.
yum install \\
libsgx-ae-le libsgx-ae-pce libsgx-ae-qe3 libsgx-ae-qve \\
libsgx-aesm-ecdsa-plugin libsgx-aesm-launch-plugin libsgx-aesm-pce-plugin libsgx-aesm-quote-ex-plugin \\
libsgx-dcap-default-qpl libsgx-dcap-default-qpl-devel libsgx-dcap-ql libsgx-dcap-ql-devel \\
libsgx-dcap-quote-verify libsgx-dcap-quote-verify-devel libsgx-enclave-common libsgx-enclave-common-devel libsgx-epid-devel \\
libsgx-launch libsgx-launch-devel libsgx-pce-logic libsgx-qe3-logic libsgx-quote-ex libsgx-quote-ex-devel \\
libsgx-ra-network libsgx-ra-uefi libsgx-uae-service libsgx-urts sgx-ra-service \\
sgx-aesm-service -y
3. Execute o seguinte comando para instalar o Intel SGXSDK.
wget https://mia-1251783334.cos.ap-shanghai.myqcloud.com/sgx_linux_x64_sdk_2.23.100.2.bin -O sgx_linux_x64_sdk_2.23.100.2.bin
chmod +x ./sgx_linux_x64_sdk_2.23.100.2.bin
./sgx_linux_x64_sdk_2.23.100.2.bin
Observação:
Execute ./sgx_linux_x64_sdk e selecione o diretório de instalação. Não é recomendado instalar no diretório atual; instale em /opt/intel/. Neste caso, o diretório de instalação padrão do Intel SGXSDK será /opt/intel/sgxsdk. Consulte o manual do usuário do Intel SGXSDK para desenvolver programas SGX. 4. Após a instalação do SGX runtime e do Intel SGXSDK, reinicie a instância. Para mais detalhes, consulte Reiniciar a instância. Atenção:
Durante a reinicialização, a instância não poderá fornecer serviços normalmente. Por isso, antes de reiniciar, certifique-se de que o servidor em nuvem já suspendeu as solicitações de serviço.
Configurar o serviço de atestação remota SGX da Tencent Cloud
O serviço de atestação remota SGX da Tencent Cloud adota uma implantação regionalizada. Recomenda-se que você acesse o serviço de atestação remota na região onde a instância do servidor em nuvem SGX está localizada para obter a melhor experiência.
Observações
O serviço de atestação remota SGX da Tencent Cloud está implantado nas regiões de Pequim, Xangai, Cantão, Nanquim e Singapura.
Mesmo que sua instância do servidor em nuvem SGX não esteja nas regiões mencionadas acima, você ainda pode usar normalmente o serviço de atestação remota SGX. Basta escolher qualquer serviço de região implantada próxima para acessar, pois as solicitações entre regiões são interconectadas, o que não afeta a disponibilidade da funcionalidade.|
Pequim | bj |
Xangai | sh |
Cantão | gz |
Nanquim | nj |
Singapura | sg |
O Intel Ice Lake suporta apenas o método de atestação remota baseado em Intel SGX DCAP e não suporta o método de atestação remota Intel EPID.
Atualização do serviço de atestação remota SGX da Tencent Cloud
De acordo com o anúncio relevante da Intel, a Intel descontinuará completamente os serviços da Intel® SGX PCS API versão 2 e versão 3 em 30 de abril de 2026, às 23:00 (horário de Pequim). Se você ainda estiver usando o serviço de atestação remota SGX, certifique-se de atualizar para a Intel® SGX PCS API versão 4 antes desse prazo.
Para atualizar para a Intel® SGX PCS API versão 4, basta modificar a URL do serviço de atestação remota no arquivo de configuração /etc/sgx_default_qcnl.conf, substituindo v3 por v4. Após salvar as alterações, revalide a funcionalidade de atestamento remoto SGX. Para detalhes sobre a modificação da configuração, consulte o procedimento operacional.
Etapas de operação
Por favor, modifique manualmente o arquivo /etc/sgx_default_qcnl.conf seguindo as etapas abaixo.
Observação:
Após a instalação do Intel SGX SDK, o arquivo de configuração padrão do serviço de atestação remota /etc/sgx_default_qcnl.conf será gerado automaticamente.
/etc/sgx_default_qcnl.conf pertence ao pacote rpm libsgx-dcap-default-qpl, cujo formato suporta tanto arquivos toml quanto JSON. A seguir será apresentado como configurar em ambos os casos.
Se estiver usando a configuração JSON em /etc/sgx_default_qcnl.conf: Use o editor VIM para abrir /etc/sgx_default_qcnl.conf, localize pccs_url e modifique essa linha para o seguinte conteúdo:
"pccs_url": "https://sgx-dcap-server-tc.[Region-ID].tencent.cn/sgx/certification/v4/"
Substitua [Region-ID] de acordo com a região selecionada. Tomando a região de Pequim como exemplo, a modificação é a seguinte: "pccs_url": "https://sgx-dcap-server-tc.bj.tencent.cn/sgx/certification/v4/"
Se estiver usando a configuração toml /etc/sgx_default_qcnl.conf: Use o editor VIM para modificar /etc/sgx_default_qcnl.conf para o seguinte conteúdo:
PCCS_URL=https://sgx-dcap-server-tc.[Region-ID].tencent.cn/sgx/certification/v4/
USE_SECURE_CERT=TRUE
Substitua [Region-ID] de acordo com a região selecionada. Tomando a região de Pequim como exemplo, a modificação é a seguinte:
PCCS_URL=https://sgx-dcap-server-tc.bj.tencent.cn/sgx/certification/v4/
USE_SECURE_CERT=TRUE
Exemplo de verificação da funcionalidade SGX
Exemplo 1: Iniciar Enclave
O Intel SGX SDK fornece códigos de exemplo SGX para verificar a funcionalidade SGX, com o diretório padrão sendo /opt/intel/sgxsdk/SampleCode. O código neste exemplo (SampleEnclave) inicia um Enclave para verificar se o SGX SDK instalado está sendo usado corretamente e se os recursos de memória confidencial da instância do servidor em nuvem SGX estão disponíveis.
1. Execute o seguinte comando para configurar as variáveis de ambiente relacionadas ao Intel SGXSDK.
source /opt/intel/sgxsdk/environment
2. Execute o seguinte comando para compilar o código de exemplo SampleEnclave.
cd /opt/intel/sgxsdk/SampleCode/SampleEnclave && make
3. Execute o seguinte comando para executar o arquivo executável compilado.
Retornar o resultado conforme mostrado na figura abaixo significa que foi iniciado com sucesso.
Exemplo 2: SGX atestação remota
A árvore de código do Intel SGX fornece códigos de exemplo para verificar a funcionalidade de atestação remota SGX (DCAP). Este exemplo envolve a geração e verificação de Quote, abrangendo o gerador de Quote (QuoteGenerationSample) e o verificador de Quote (QuoteVerificationSample).
1. Execute o seguinte comando para configurar as variáveis de ambiente relacionadas ao Intel SGXSDK.
source /opt/intel/sgxsdk/environment
2. Execute os seguintes comandos sequencialmente para instalar o git e baixar a árvore de código do intel sgx DCAP.
cd /root && yum install git -y
git clone https://github.com/intel/SGXDataCenterAttestationPrimitives.git
3. Execute os seguintes comandos sequencialmente para compilar e executar o código de exemplo do gerador de Quote, QuoteGenerationSample.
3.1 Entre no diretório QuoteGenerationSample.
cd /root/SGXDataCenterAttestationPrimitives/SampleCode/QuoteGenerationSample
3.2 Compile o QuoteGenerationSample.
3.3 Execute o QuoteGenerationSample e gere o Quote.
4. Execute o seguinte comando para compilar o código de exemplo do verificador de Quote, QuoteVerificationSample.
cd /root/SGXDataCenterAttestationPrimitives/SampleCode/QuoteVerificationSample && make
5. Execute o seguinte comando para assinar o Enclave do QuoteVerificationSample.
sgx_sign sign -key Enclave/Enclave_private_sample.pem -enclave enclave.so -out enclave.signed.so -config Enclave/Enclave.config.xml
sgx_sign sign -key ../QuoteGenerationSample/Enclave/Enclave_private_sample.pem -enclave enclave.so -out enclave.signed.so -config Enclave/Enclave.config.xml
6. Execute o seguinte comando para executar o QuoteVerificationSample e verificar o Quote.
Se retornar o resultado conforme mostrado na figura abaixo, significa que foi verificado com sucesso.