Topik ini menjelaskan cara membangun lingkungan komputasi rahasia Software Guard Extensions (SGX) pada instans Elastic Compute Service (ECS) yang mendukung Intel® SGX—dikenal sebagai instans vSGX—serta cara memverifikasi fitur SGX pada instans tersebut.
Prasyarat
Instans vSGX telah dibuat, dan Anda telah masuk ke instans tersebut.
Hanya family instans g7t, c7t, r7t, dan g9it yang mendukung fitur SGX. Untuk informasi selengkapnya, lihat Ikhtisar family instans.
Informasi latar belakang
Intel® SGX menyediakan lingkungan komputasi rahasia di tingkat perangkat keras untuk menjamin keamanan data melalui perlindungan berbasis perangkat keras, bukan berbasis firmware atau perangkat lunak. Intel® SGX menggunakan ekstensi set instruksi dan mekanisme kontrol akses untuk mengisolasi lingkungan runtime program SGX, sehingga melindungi kerahasiaan dan integritas kode serta data penting dari serangan malware. Berbeda dengan teknologi keamanan lainnya, Intel® SGX menerapkan root of trust yang hanya mencakup perangkat keras. Pendekatan ini mencegah kelemahan akibat kerentanan keamanan pada perangkat lunak tempat root of trust biasanya dibangun, sehingga meningkatkan keamanan sistem secara keseluruhan.
Family instans g7t, c7t, r7t, dan g9it yang ditingkatkan keamanannya menyediakan memori rahasia berbasis Intel® SGX dan mendukung teknologi SGX untuk mesin virtual. Anda dapat mengembangkan dan menjalankan program SGX pada instans vSGX.
Jika Anda menggunakan kunci (seperti SGX sealing keys) yang terikat pada perangkat keras untuk mengenkripsi data instans dalam enklaf Intel SGX, data terenkripsi tersebut tidak dapat didekripsi setelah host instans diganti. Kami menyarankan agar Anda melakukan redundansi data dan pencadangan di lapisan aplikasi untuk menjamin keandalan aplikasi.
Prosedur
Langkah 1: Periksa apakah SGX diaktifkan
Sebelum membangun lingkungan komputasi rahasia SGX, Anda dapat menggunakan CPUID untuk memeriksa apakah SGX diaktifkan. Bagian ini menjelaskan cara memverifikasi status pengaktifan SGX. Contoh berikut menggunakan citra Alibaba Cloud Linux 2 (UEFI), Alibaba Cloud Linux 3 (UEFI), atau Ubuntu 22.04 (UEFI).
Citra Alibaba Cloud Linux 2/3 (UEFI)
Instal CPUID.
sudo yum install -y cpuidPeriksa apakah SGX diaktifkan.
cpuid -1 -l 0x7 |grep SGXOutput perintah yang mirip dengan contoh berikut menunjukkan bahwa SGX telah diaktifkan.
# cpuid -1 -l 0x7 |grep SGX SGX: Software Guard Extensions supported = true SGX_LC: SGX launch config supported = true SGX-KEYS: SGX attestation services = falseCatatanSetelah SGX diaktifkan, driver SGX diperlukan untuk menjalankan program SGX. Citra khusus yang disediakan oleh Alibaba Cloud telah dilengkapi driver SGX bawaan. Jika Anda tidak ingin menggunakan citra khusus, instal driver SGX secara manual.
Periksa apakah driver SGX telah terinstal.
ls -l /dev/{sgx_enclave,sgx_provision}Output perintah yang mirip dengan contoh berikut menunjukkan bahwa driver SGX telah terinstal.
[ @iZbp1cclxbc` ~ ]# ls -l /dev/{sgx_enclave,sgx_provision} crw-rw-rw- 1 root root 10, 61 Mar 16 09:38 /dev/sgx_enclave crw------- 1 root sgx_prv 10, 62 Mar 16 09:38 /dev/sgx_provision
Citra Ubuntu 22.04 (UEFI)
Instal CPUID.
sudo apt-get update && sudo apt-get install -y --no-install-recommends cpuidPeriksa apakah SGX diaktifkan.
cpuid -1 -l 0x7 |grep SGXOutput perintah yang mirip dengan contoh berikut menunjukkan bahwa SGX telah diaktifkan.
$ cpuid -1 -l 0x7 |grep SGX SGX: Software Guard Extensions supported = true SGX_LC: SGX launch config supported = trueCatatanSetelah SGX diaktifkan, driver SGX diperlukan untuk menjalankan program SGX. Citra khusus yang disediakan oleh Alibaba Cloud telah dilengkapi driver SGX bawaan. Jika Anda tidak ingin menggunakan citra khusus, instal driver SGX secara manual.
Instal driver SGX:
Buat skrip
install_sgx_dcap.sh:cat <<'EOF' > install_sgx_dcap.sh #!/bin/bash version_id=$(cat /etc/os-release|grep "VERSION_ID"|cut -d"=" -f2|tr -d "\"") version_codename=$(cat /etc/os-release|grep "VERSION_CODENAME"|cut -d"=" -f2) apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential dkms curl wget if [ ! -e /dev/sgx/enclave -a ! -e /dev/sgx_enclave ]; then dcap_version=$(curl -s https://download.01.org/intel-sgx/latest/version.xml |grep dcap| sed -r 's/.*>(.*)<.*/\1/') dcap_files=$(curl -s https://download.01.org/intel-sgx/latest/dcap-latest/linux/SHA256SUM_dcap_${dcap_version}.cfg) echo "${dcap_files}" | grep "ubuntu${version_id}-server" |grep "sgx_linux_x64_driver" | awk '{print $2}' | xargs -I{} curl -O -J https://download.01.org/intel-sgx/latest/dcap-latest/linux/{} bash sgx_linux_x64_driver*.bin else echo "driver already installed" fi EOFJalankan skrip untuk menginstal driver SGX:
sudo bash ./install_sgx_dcap.sh
Periksa apakah driver SGX telah terinstal.
ls -l /dev/{sgx_enclave,sgx_provision}Output perintah yang mirip dengan contoh berikut menunjukkan bahwa driver SGX telah terinstal.
ecs-user@iZxxx:~$ ls -l /dev/{sgx_enclave,sgx_provision} crw-rw---- 1 root sgx 10, 125 Mar 20 10:20 /dev/sgx_enclave crw------- 1 root root 10, 126 Mar 20 10:20 /dev/sgx_provision
Langkah 2: Membangun lingkungan komputasi rahasia SGX
Sebelum mengembangkan program SGX, Anda harus menginstal runtime dan SDK SGX pada instans vSGX serta mengonfigurasi layanan remote attestation. Untuk pengalaman pengguna yang lebih baik, kami menyarankan agar Anda menggunakan citra khusus yang disediakan oleh Alibaba Cloud. Citra khusus tersebut telah dilengkapi driver SGX dan menyediakan TEE SDK yang sepenuhnya kompatibel dengan Intel® SGX SDK. Bagian ini menjelaskan cara membangun lingkungan komputasi rahasia SGX. Contoh berikut menggunakan citra Alibaba Cloud Linux 2 (UEFI), Alibaba Cloud Linux 3 (UEFI), atau Ubuntu 22.04 (UEFI). Jika Anda menggunakan citra Linux lain seperti CentOS, instal driver SGX dan Platform Software (PSW). Untuk informasi selengkapnya, lihat Intel® SGX SW Installation Guide for Linux.
Instal modul yang diperlukan untuk membangun lingkungan komputasi rahasia SGX.
Citra Alibaba Cloud Linux 2/3 (UEFI)
(Wajib) Instal Alibaba Cloud SGX runtime.
CatatanSaat membuat instans vSGX di Konsol ECS, Alibaba Cloud SGX runtime akan diinstal secara otomatis. Anda dapat melewati langkah ini dan langsung menginstal Alibaba Cloud TEE SDK.
Impor repositori perangkat lunak Yellowdog Updater Modified (YUM) untuk komputasi rahasia Alibaba Cloud.
CatatanGanti [Region-ID] pada URL berikut dengan ID wilayah instans vSGX Anda:
URL publik repositori memiliki format berikut:
https://enclave-[Region-ID].oss-[Region-ID].aliyuncs.com/repo/alinux/enclave-expr.repo.URL internal repositori memiliki format berikut:
https://enclave-[Region-ID].oss-[Region-ID]-internal.aliyuncs.com/repo/alinux/enclave-expr.repo.
Anda juga dapat membuat dan menjalankan skrip untuk mengimpor repositori YUM untuk komputasi rahasia Alibaba Cloud.
Buat skrip
install_sgx_repo.sh:cat <<'EOF' > install_sgx_repo.sh ID=$(grep -w '^ID' /etc/os-release | awk -F= '{print $2}' | tr -d '"') VERSION_ID=$(grep -w '^VERSION_ID' /etc/os-release | awk -F= '{print $2}' | tr -d '"') # Query the region of the instance. token=$(curl -s -X PUT -H "X-aliyun-ecs-metadata-token-ttl-seconds: 5" "http://100.100.100.200/latest/api/token") region_id=$(curl -s -H "X-aliyun-ecs-metadata-token: $token" http://100.100.100.200/latest/meta-data/region-id) # Enable the Alibaba Cloud experimental repository for the instance if an Alibaba Cloud Linux 2 (UEFI) image is used. if [ "$ID" = "alinux" -a "$VERSION_ID" = "2.1903" ]; then sudo rpmkeys --import http://mirrors.cloud.aliyuncs.com/epel/RPM-GPG-KEY-EPEL-7 sudo yum install -y alinux-release-experimentals fi yum install -y yum-utils && \ yum-config-manager --add-repo \ https://enclave-${region_id}.oss-${region_id}-internal.aliyuncs.com/repo/alinux/enclave-expr.repo EOFImpor repositori YUM untuk komputasi rahasia Alibaba Cloud:
sudo bash ./install_sgx_repo.sh
Instal Alibaba Cloud SGX runtime.
sudo yum install -y 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-ql \ libsgx-dcap-quote-verify libsgx-enclave-common libsgx-launch libsgx-pce-logic \ libsgx-qe3-logic libsgx-quote-ex libsgx-ra-network libsgx-ra-uefi \ libsgx-uae-service libsgx-urts sgx-ra-service sgx-aesm-serviceCatatanSGX Architectural Enclave Service Manager (AESM) digunakan untuk mengelola layanan seperti peluncuran enklaf, konfigurasi kunci, dan remote attestation. Jalur instalasi default SGX AESM adalah /opt/intel/sgx-aesm-service.
Instal Alibaba Cloud TEE SDK.
sudo yum install -y sgxsdk
Alibaba Cloud TEE SDK sepenuhnya kompatibel dengan Intel® SGX SDK. Setelah menginstal Alibaba Cloud TEE SDK, Anda dapat merujuk ke Intel® SGX Developer Reference untuk mengembangkan program SGX. Untuk informasi selengkapnya, lihat Intel® SGX Developer Reference.
CatatanJalur instalasi default Intel® SGX SDK dalam Alibaba Cloud TEE SDK adalah /opt/alibaba/teesdk/intel/sgxsdk/.
Citra Ubuntu 22.04 (UEFI)
Buat skrip
install_sgx_sdk.sh:cat <<'EOF' > install_sgx_sdk.sh #!/bin/bash version_id=$(cat /etc/os-release|grep "VERSION_ID"|cut -d"=" -f2|tr -d "\"") version_codename=$(cat /etc/os-release|grep "VERSION_CODENAME"|cut -d"=" -f2) apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential dkms curl wget dcap_version=$(curl -s https://download.01.org/intel-sgx/latest/version.xml |grep dcap| sed -r 's/.*>(.*)<.*/\1/') linux_version=$(curl -s https://download.01.org/intel-sgx/latest/version.xml |grep linux| sed -r 's/.*>(.*)<.*/\1/') dcap_files=$(curl -s https://download.01.org/intel-sgx/latest/dcap-latest/linux/SHA256SUM_dcap_${dcap_version}.cfg) echo "${dcap_files}" | grep "ubuntu${version_id}-server" | awk '{print $2}' | xargs -I{} curl -O -J https://download.01.org/intel-sgx/latest/dcap-latest/linux/{} # install sgx_sdk bash sgx_linux_x64_sdk*.bin --prefix /opt/intel source /opt/intel/sgxsdk/environment # install psw echo "deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu ${version_codename} main" | tee /etc/apt/sources.list.d/intelsgx.list wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | apt-key add - apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libsgx-launch libsgx-urts libsgx-epid libsgx-quote-ex libsgx-dcap-ql libsgx-dcap-ql-dev systemctl enable --now aesmd.service EOFJalankan skrip untuk menginstal Intel® SGX SDK dan PSW:
sudo bash ./install_sgx_sdk.sh
Konfigurasi layanan remote attestation SGX Alibaba Cloud.
Layanan remote attestation SGX Alibaba Cloud sepenuhnya kompatibel dengan layanan remote attestation berbasis Elliptic Curve Digital Signature Algorithm (ECDSA) Intel® SGX dan Intel® SGX SDK. Instans vSGX yang disediakan oleh Alibaba Cloud dapat memperoleh kepercayaan dari penyedia dan produsen jarak jauh melalui remote attestation. Untuk informasi selengkapnya, lihat Attestation & Provisioning Services.
Layanan remote attestation SGX Alibaba Cloud menyediakan informasi berikut tentang SGX SDK:
Sertifikat SGX: sertifikat SGX.
Daftar pencabutan: daftar sertifikat SGX yang dicabut.
Informasi trusted computing base: informasi tentang root of trust.
CatatanIntel Ice Lake hanya mendukung remote attestation berbasis Intel Software Guard Extensions Data Center Attestation Primitives (Intel SGX DCAP) dan tidak mendukung remote attestation berbasis Intel Enhanced Privacy ID (EPID). Anda harus menyesuaikan aplikasi sebelum menggunakan fitur remote attestation. Untuk informasi selengkapnya tentang remote attestation, lihat Strengthen Enclave Trust with Attestation.
Layanan remote attestation SGX Alibaba Cloud diterapkan per wilayah. Untuk stabilitas optimal, kami menyarankan agar Anda mengakses layanan yang diterapkan di wilayah yang sama dengan instans vSGX Anda. Setelah menginstal Alibaba Cloud TEE SDK, file konfigurasi default /etc/sgx_default_qcnl.conf akan dibuat secara otomatis untuk layanan remote attestation. Anda harus menggunakan salah satu metode berikut untuk menyesuaikan file tersebut dengan layanan remote attestation SGX Alibaba Cloud di wilayah tempat instans vSGX Anda ditempatkan.
CatatanTabel berikut menjelaskan wilayah yang didukung oleh layanan remote attestation SGX Alibaba Cloud.
Wilayah yang didukung
ID Wilayah
China (Qingdao)
cn-qingdao
China (Beijing)
cn-beijing
China (Zhangjiakou)
cn-zhangjiakou
China (Ulanqab)
cn-wulanchabu
China (Hangzhou)
cn-hangzhou
China (Shanghai)
cn-shanghai
China (Shenzhen)
cn-shenzhen
China (Heyuan)
cn-heyuan
China (Guangzhou)
cn-guangzhou
China (Chengdu)
cn-chengdu
China (Hong Kong)
cn-hongkong
Singapura
ap-southeast-1
Indonesia (Jakarta)
ap-southeast-5
(Direkomendasikan) Metode 1: Mengonfigurasi file /etc/sgx_default_qcnl.conf.
Jalankan perintah berikut untuk mengonfigurasi file /etc/sgx_default_qcnl.conf secara otomatis. Untuk informasi selengkapnya, lihat Akses metadata instans.
# View the region of the instance. token=$(curl -s -X PUT -H "X-aliyun-ecs-metadata-token-ttl-seconds: 5" "http://100.100.100.200/latest/api/token") region_id=$(curl -s -H "X-aliyun-ecs-metadata-token: $token" http://100.100.100.200/latest/meta-data/region-id) # Specify the URL of Alibaba Cloud Provisioning Certificate Caching Service (PCCS) for the region in which the instance is deployed. PCCS_URL=https://sgx-dcap-server-vpc.${region_id}.aliyuncs.com/sgx/certification/v4/ sudo bash -c 'cat > /etc/sgx_default_qcnl.conf' << EOF # PCCS server address PCCS_URL=${PCCS_URL} # To accept insecure HTTPS cert, set this option to FALSE USE_SECURE_CERT=TRUE EOFMetode 2: Ubah file /etc/sgx_default_qcnl.conf secara manual.
Jika instans vSGX memiliki Alamat IP publik, ubah konfigurasi dalam file /etc/sgx_default_qcnl.conf menjadi konten berikut. Ganti [Region-ID] dengan ID wilayah instans vSGX Anda.
# PCCS server address PCCS_URL=https://sgx-dcap-server.[Region-ID].aliyuncs.com/sgx/certification/v4/ # To accept insecure HTTPS cert, set this option to FALSE USE_SECURE_CERT=TRUEJika instans vSGX berada dalam virtual private cloud (VPC) dan hanya memiliki alamat IP internal, ubah konfigurasi dalam file /etc/sgx_default_qcnl.conf menjadi konten berikut. Ganti [Region-ID] dengan ID wilayah instans vSGX Anda.
# PCCS server address PCCS_URL=https://sgx-dcap-server-vpc.[Region-ID].aliyuncs.com/sgx/certification/v4/ # To accept insecure HTTPS cert, set this option to FALSE USE_SECURE_CERT=TRUE
Contoh verifikasi fitur SGX
Bagian ini menjelaskan cara memulai enklaf untuk memeriksa apakah SGX SDK yang terinstal berfungsi sebagaimana mestinya. Jika enklaf berhasil dimulai, berarti SDK berfungsi sesuai harapan. Contoh berikut menggunakan file kode sampel bernama SampleEnclave.
Contoh 1: Memulai enklaf
Citra Alibaba Cloud Linux 2/3 (UEFI)
Alibaba Cloud TEE SDK menyediakan kode sampel SGX untuk memverifikasi fitur SGX. Secara default, kode tersebut disimpan di direktori /opt/alibaba/teesdk/intel/sgxsdk/SampleCode.
Instal kompilator.
Konfigurasi variabel lingkungan yang terkait dengan SGX SDK.
if [ "$ID" = "alinux" -a "$VERSION_ID" = "2.1903" ]; then source /opt/rh/devtoolset-9/enable fi source /opt/alibaba/teesdk/intel/sgxsdk/environmentKompilasi kode sampel dalam file SampleEnclave.
Masuk ke direktori SampleEnclave:
cd /opt/alibaba/teesdk/intel/sgxsdk/SampleCode/SampleEnclaveKompilasi kode sampel dalam SampleEnclave:
sudo -E make
Jalankan file yang dapat dieksekusi hasil kompilasi.
sudo ./appJika output perintah berikut dikembalikan, SGX berjalan sesuai harapan.
[ecs-user@ixxxxxxxxxxxx ~ SampleEnclave]$ sudo ./app Checksum(0x0x7ffd25e190a0, 100) = 0xffffd4143 Info: executing thread synchronization, please wait... Info: SampleEnclave successfully returned.
ID=$(grep -w '^ID' /etc/os-release | awk -F= '{print $2}' | tr -d '"')
VERSION_ID=$(grep -w '^VERSION_ID' /etc/os-release | awk -F= '{print $2}' | tr -d '"')
if [ "$ID" = "alinux" ]; then
case "$VERSION_ID" in
"2.1903" )
sudo yum install -y devtoolset-9
;;
"3" )
sudo yum groupinstall -y "Development Tools"
;;
esac
fiCitra Ubuntu 22.04 (UEFI)
Perbarui daftar paket.
sudo apt updateInstal kompilator
build-essential.sudo apt install -y build-essentialKompilasi kode sampel dalam file SampleEnclave.
Masuk ke direktori SampleEnclave:
cd /opt/intel/sgxsdk/SampleCode/SampleEnclave/Kompilasi kode sampel dalam SampleEnclave:
sudo make SGX_DEBUG=1
Jalankan file yang dapat dieksekusi hasil kompilasi.
sudo ./appJika output perintah berikut dikembalikan, SGX berjalan sesuai harapan.
ecs-user@iZ2z..........:/opt/intel/sgxsdk/SampleCode/SampleEnclave$ sudo ./app Checksum(0x0x7ffdfe154760, 100) = 0xfffd4143 Info: executing thread synchronization, please wait... Info: SampleEnclave successfully returned. Enter a character before exit ...
Contoh 2: Menggunakan layanan remote attestation SGX
Alibaba Cloud TEE SDK menyediakan kode sampel SGX untuk memverifikasi fitur SGX. Secara default, kode tersebut disimpan di direktori /opt/alibaba/teesdk/intel/sgxsdk/SampleCode. Bagian ini menjelaskan cara menggunakan layanan remote attestation SGX. Contoh berikut menggunakan citra Alibaba Cloud Linux 2 (UEFI) atau Alibaba Cloud Linux 3 (UEFI).
Hasil yang diharapkan adalah kutipan (quote) dihasilkan menggunakan file QuoteGenerationSample dan diverifikasi menggunakan file QuoteVerificationSample. Contoh ini melibatkan pihak yang ditantang (program SGX yang berjalan di instans vSGX) dan pihak yang menantang (pihak yang ingin memverifikasi apakah program SGX dapat dipercaya). Dalam contoh ini, file kode sampel QuoteGenerationSample digunakan oleh pihak yang ditantang untuk menghasilkan quote, sedangkan file kode sampel QuoteVerificationSample digunakan oleh pihak yang menantang untuk memverifikasi quote tersebut.
Instal kompilator.
Jika menggunakan citra Alibaba Cloud Linux 2 (UEFI), instal devtoolset.
Instal devtoolset.
sudo yum install -y devtoolset-9Konfigurasi variabel lingkungan yang terkait dengan devtoolset.
source /opt/rh/devtoolset-9/enable
Jika menggunakan citra Alibaba Cloud Linux 3 (UEFI), instal Development Tools.
sudo yum groupinstall -y "Development Tools"
Konfigurasi variabel lingkungan yang terkait dengan SGX SDK.
source /opt/alibaba/teesdk/intel/sgxsdk/environmentInstal paket dependensi untuk remote attestation SGX.
sudo yum install -y libsgx-dcap-ql-devel libsgx-dcap-quote-verify-devel libsgx-dcap-default-qpl-develKompilasi kode sampel dalam file QuoteGenerationSample yang digunakan oleh pihak yang ditantang.
Masuk ke direktori QuoteGenerationSample.
cd /opt/alibaba/teesdk/intel/sgxsdk/SampleCode/QuoteGenerationSampleKompilasi kode sampel dalam file QuoteGenerationSample.
sudo -E make
Jalankan file yang dapat dieksekusi hasil kompilasi untuk menghasilkan quote.
sudo ./appJika output perintah berikut dikembalikan, verifikasi quote berhasil.
[ecs-user@iZ2ze4xxx QuoteGenerationSample]$ sudo ./app [APP] Info: sgx_qe_set_enclave_load_policy is valid in in-proc mode only and it is optional: the default enclave load policy is persistent [APP] Info: set the enclave load policy as persistent [APP] Step1: Call sgx_qe_get_target_info: [APP] succeed! [APP] Step2: Call create_app_report [APP] Step3: Call sgx_qe_get_quote_size [APP] Step4: Call sgx_qe_get_quote [APP] cert_key_type = 0x5 [APP] Info: sgx_qe_cleanup_by_policy is valid in in-proc mode only. [APP] Info: Clean up the enclave load policyKompilasi kode sampel dalam file QuoteVerificationSample yang digunakan oleh pihak yang menantang.
Masuk ke direktori QuoteVerificationSample.
cd /opt/alibaba/teesdk/intel/sgxsdk/SampleCode/QuoteVerificationSampleKompilasi kode sampel dalam file QuoteVerificationSample.
sudo -E make
Tandatangani enklaf QuoteVerificationSample.
Untuk merilis versi resmi enklaf, Anda harus menyediakan kunci tanda tangan untuk menandatangani enklaf tersebut.
sudo sgx_sign sign -key Enclave/Enclave_private_sample.pem -enclave enclave.so -out enclave.signed.so -config Enclave/Enclave.config.xmlCatatanJika muncul pesan error
Failed to open file "Enclave/Enclave_private_sample.pem", jalankan perintah berikut untuk menandatangani ulang:sudo sgx_sign sign -key ../QuoteGenerationSample/Enclave/Enclave_private_sample.pem -enclave enclave.so -out enclave.signed.so -config Enclave/Enclave.config.xmlJalankan file yang dapat dieksekusi hasil kompilasi untuk memverifikasi quote.
sudo ./appJika output perintah berikut dikembalikan, verifikasi quote berhasil.
[ecs-user@iZ2zxxx QuoteVerificationSample]$ sudo ./app [APP] Info: ECDSA quote path: ../QuoteGenerationSample/quote.dat Trusted quote verification: [APP] Info: get target info successfully returned. [APP] Info: sgx_qv_set_enclave_load_policy successfully returned. [APP] Info: tee_get_quote_supplemental_data_version_and_size successfully returned. [APP] Info: latest supplemental data major version: 3, minor version: 3
Memperbarui SGX SDK, PSW, dan perangkat lunak DCAP
Tumpukan perangkat lunak Intel® SGX mencakup SGX SDK, SGX PSW, dan SGX Data Center Attestation Primitives (DCAP). Untuk keamanan optimal, kami menyarankan agar Anda memperbarui versi perangkat lunak secara berkala. Contoh berikut menggunakan citra Alibaba Cloud Linux 3 UEFI untuk memperbarui paket perangkat lunak SGX SDK, SGX PSW, dan SGX DCAP.
Perbarui perangkat lunak SGX SDK, SGX PSW, dan SGX DCAP.
sudo rpm -qa --qf "%{NAME}\n"|grep -E "sgxsdk|libsgx-|libtdx-|^sgx-|^tdx-"|sudo xargs bash -c '</dev/tty yum update "$@"' _Lihat versi perangkat lunak SGX SDK, SGX PSW, dan SGX DCAP.
Lihat versi perangkat lunak SGX SDK dan SGX PSW.
sudo rpm -qa|grep -E "sgxsdk|sgx-aesm-service|libsgx-(ae-epid|ae-le|ae-pce|aesm|enclave|epid|headers|launch|quote-ex|uae-service|urts)"Output perintah berikut dikembalikan.
[ecs-user@iZ2zexxxxxxxxxxxxx /]$ sudo rpm -qa|grep -E "sgxsdk|sgx-aesm-service|libsgx-(ae-epid|ae-le|ae-pce|aesm|enclave|epid|headers|launch|quote-ex|uae-service|urts)" sgx-aesm-service-2.23.100.2-1.al8.x86_64 libsgx-epid-2.23.100.2-1.al8.x86_64 libsgx-ae-pce-2.23.100.2-1.al8.x86_64 libsgx-ae-le-2.23.100.2-1.al8.x86_64 libsgx-aesm-launch-plugin-2.23.100.2-1.al8.x86_64 libsgx-launch-2.23.100.2-1.al8.x86_64 libsgx-enclave-common-2.23.100.2-1.al8.x86_64 libsgx-urts-2.23.100.2-1.al8.x86_64 libsgx-aesm-pce-plugin-2.23.100.2-1.al8.x86_64 libsgx-aesm-ecdsa-plugin-2.23.100.2-1.al8.x86_64 libsgx-aesm-quote-ex-plugin-2.23.100.2-1.al8.x86_64 libsgx-quote-ex-2.23.100.2-1.al8.x86_64 libsgx-uae-service-2.23.100.2-1.al8.x86_64 sgxsdk-2.23.100.2-1.al8.x86_64 libsgx-headers-2.23.100.2-1.al8.x86_64Lihat versi perangkat lunak SGX DCAP.
sudo rpm -qa|grep -E "sgx-(dcap-pccs|pck|ra-service)|libsgx-(ae-id-enclave|ae-qe3|ae-qve|ae-tdqe|dcap|pce-logic|qe3-logic|ra-|tdx-)|libtdx-|^tdx-"Output perintah berikut dikembalikan.
[ecs-user@iZ2zexxxxxxxxxxxxx /]$ sudo rpm -qa|grep -E "sgx-(dcap-pccs|pck|ra-service)|libsgx-(ae-id-enclave|ae-qe3|ae-qve|ae-tdqe|dcap|pce-logic|qe3-logic|ra-|tdx-)|libtdx-|^tdx-" libsgx-ra-uefi-1.20.100.2-1.al8.x86_64 libsgx-ra-network-1.20.100.2-1.al8.x86_64 libsgx-ae-qve-1.20.100.2-1.al8.x86_64 libsgx-ae-qe3-1.20.100.2-1.al8.x86_64 libsgx-pce-logic-1.20.100.2-1.al8.x86_64 libsgx-dcap-quote-verify-1.20.100.2-1.al8.x86_64 libsgx-ae-id-enclave-1.20.100.2-1.al8.x86_64 libsgx-qe3-logic-1.20.100.2-1.al8.x86_64 libsgx-dcap-ql-1.20.100.2-1.al8.x86_64 sgx-ra-service-1.20.100.2-1.al8.x86_64 libsgx-dcap-default-qpl-1.20.100.2-2.al8.x86_64 libsgx-dcap-ql-devel-1.20.100.2-1.al8.x86_64 libsgx-dcap-quote-verify-devel-1.20.100.2-1.al8.x86_64 libsgx-dcap-default-qpl-devel-1.20.100.2-2.al8.x86_64
Isu yang diketahui
Kebocoran memori dapat terjadi pada driver SGX yang disertakan dalam Alibaba Cloud Linux 2 dengan versi kernel 4.19.91-23.al7.x86_64. Masalah ini telah diperbaiki pada versi terbaru. Kami menyarankan agar Anda memperbarui kernel ke versi terbaru. Jika Anda tetap ingin menggunakan versi kernel lama ini, kami menyarankan agar Anda menjalankan perintah berikut untuk menginstal patch guna menghindari masalah tersebut:
sudo yum install -y alinux-release-experimentals && \
sudo yum install -y kernel-hotfix-5577959-23.al7.x86_64