Skenario Operasi
Artikel ini memperkenalkan cara membangun lingkungan komputasi rahasia Tencent SGX pada instans berkinerja tinggi memori tipe M6ce yang ditingkatkan keamanannya, serta menggunakan Intel SGXSDK untuk memverifikasi fungsionalitas SGX.
Prasyarat
CVM memerlukan kemampuan akses internet eksternal. Anda dapat memilih untuk mengalokasikan IP publik saat membuat CVM, atau mengonfigurasi Elastic Public IP untuk CVM setelah pembuatan. Catatan:
Artikel ini menggunakan instans dengan sistem operasi TencentOS Server 3.1(TK4) sebagai contoh. Langkah-langkah mungkin berbeda pada versi sistem operasi lain. Silakan sesuaikan operasi berdasarkan situasi aktual Anda.
Menginstal Intel SGXSDK
1. Jalankan perintah berikut untuk memeriksa versi kernel.
Periksa apakah versi kernel lebih rendah dari 5.4.119-19.0008:
Ya, jalankan perintah berikut untuk memperbarui kernel:
Peringatan:
Memutakhirkan kernel sistem operasi merupakan operasi yang cukup kompleks dan berisiko tinggi, dapat menyebabkan ketidakstabilan sistem atau masalah kompatibilitas. Sebelum melakukan pemutakhiran, disarankan untuk mencadangkan data penting, memahami proses pemutakhiran dan potensi masalah yang mungkin timbul, serta beroperasi dengan berhati-hati.
Tidak, lakukan langkah berikutnya.
2. Jalankan perintah berikut untuk memasang paket perangkat lunak yang diperlukan untuk SGX runtime. Di antaranya, direktori instalasi default untuk layanan SGX AESM adalah /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. Jalankan perintah berikut untuk memasang 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
Catatan:
Jalankan ./sgx_linux_x64_sdk, pilih direktori instalasi. Disarankan tidak menginstal di direktori saat ini, tetapi ke /opt/intel/. Dalam hal ini, direktori instalasi default Intel SGXSDK adalah /opt/intel/sgxsdk. Anda dapat merujuk ke panduan pengguna Intel SGXSDK untuk mengembangkan program SGX. 4. Setelah pemasangan SGX runtime dan Intel SGXSDK selesai, silakan reboot instance. Untuk detailnya, lihat Reboot Instance. Perhatian:
Selama reboot, layanan tidak dapat diberikan, oleh karena itu sebelum reboot, pastikan bahwa CVM telah menghentikan permintaan bisnis.
Mengonfigurasi Layanan Attestasi Jarak Jauh SGX Tencent Cloud
Tencent Cloud SGX Remote Attestation Service dideploy secara regional. Disarankan untuk mengakses layanan atestasi jarak jauh di region tempat instance CVM SGX berada, guna memperoleh pengalaman terbaik.
Hal-hal yang Perlu Diperhatikan
Layanan atestasi jarak jauh SGX Tencent Cloud dideploy di region Beijing, Shanghai, Guangzhou, Nanjing, dan Singapura.
Meskipun instance CVM SGX Anda tidak berada di region tersebut di atas, Anda tetap dapat menggunakan layanan atestasi jarak jauh SGX secara normal. Cukup pilih layanan di region terdekat yang telah dideploy untuk diakses. Permintaan antar region saling terhubung dan tidak memengaruhi ketersediaan fungsi.|
Beijing | bj |
Shanghai | sh |
Guangzhou | gz |
Nanjing | nj |
Singapore | sg |
Intel Ice Lake hanya mendukung metode atestasi jarak jauh berbasis Intel SGX DCAP, tidak mendukung metode atestasi jarak jauh Intel EPID.
Peningkatan Layanan Atestasi Jarak Jauh SGX Tencent Cloud
Menurut pengumuman resmi Intel, layanan Intel® SGX PCS API versi 2 dan versi 3 akan dihentikan sepenuhnya pada 30 April 2026 pukul 23:00 Waktu Beijing. Jika Anda masih menggunakan layanan atestasi jarak jauh SGX, harap memastikan untuk meningkatkan ke Intel® SGX PCS API versi 4 sebelum waktu tersebut.
Untuk meningkatkan ke versi 4 Intel® SGX PCS API, Anda hanya perlu memodifikasi URL layanan atestasi jarak jauh dalam file konfigurasi /etc/sgx_default_qcnl.conf dengan mengganti v3 menjadi v4. Setelah disimpan, verifikasi ulang fungsi atestasi jarak jauh SGX. Untuk modifikasi konfigurasi spesifik, silakan lihat langkah-langkah operasional.
Langkah-langkah Operasi
Silakan modifikasi file /etc/sgx_default_qcnl.conf secara manual berdasarkan langkah-langkah berikut.
Catatan:
Setelah menginstal Intel SGXSDK, file konfigurasi default untuk layanan atestasi jarak jauh /etc/sgx_default_qcnl.conf akan dihasilkan secara otomatis.
/etc/sgx_default_qcnl.conf merupakan bagian dari paket rpm libsgx-dcap-default-qpl, dan formatnya mendukung baik file toml maupun JSON. Bagian berikut akan memperkenalkan cara konfigurasi dalam kedua kasus tersebut.
Jika menggunakan konfigurasi JSON untuk /etc/sgx_default_qcnl.conf: Gunakan editor VIM untuk membuka /etc/sgx_default_qcnl.conf, temukan pccs_url, dan modifikasi baris tersebut menjadi konten berikut:
"pccs_url": "https://sgx-dcap-server-tc.[Region-ID].tencent.cn/sgx/certification/v4/"
Di sini, silakan ganti [Region-ID] sesuai dengan wilayah yang Anda pilih. Sebagai contoh, untuk wilayah Beijing, modifikasi contohnya adalah sebagai berikut: "pccs_url": "https://sgx-dcap-server-tc.bj.tencent.cn/sgx/certification/v4/"
Jika menggunakan konfigurasi toml untuk /etc/sgx_default_qcnl.conf: Gunakan editor VIM untuk memodifikasi /etc/sgx_default_qcnl.conf menjadi konten berikut:
PCCS_URL=https://sgx-dcap-server-tc.[Region-ID].tencent.cn/sgx/certification/v4/
USE_SECURE_CERT=TRUE
Di sini, silakan ganti [Region-ID] sesuai dengan wilayah yang Anda pilih. Sebagai contoh, untuk wilayah Beijing, modifikasi contohnya adalah sebagai berikut:
PCCS_URL=https://sgx-dcap-server-tc.bj.tencent.cn/sgx/certification/v4/
USE_SECURE_CERT=TRUE
Verifikasi Contoh Fungsi SGX
Contoh I: Memulai Enclave
Intel SGXSDK menyediakan kode contoh SGX untuk memverifikasi fungsi SGX, dengan direktori default di /opt/intel/sgxsdk/SampleCode. Kode dalam contoh ini (SampleEnclave) berfungsi untuk menjalankan sebuah Enclave, guna memverifikasi apakah SGXSDK yang terinstal berfungsi normal serta apakah sumber daya memori rahasia pada contoh CVM SGX tersedia.
1. Jalankan perintah berikut untuk mengatur variabel lingkungan terkait Intel SGXSDK.
source /opt/intel/sgxsdk/environment
2. Jalankan perintah berikut untuk mengkompilasi kode contoh SampleEnclave.
cd /opt/intel/sgxsdk/SampleCode/SampleEnclave && make
3. Jalankan perintah berikut untuk menjalankan file yang dapat dieksekusi yang telah dikompilasi.
Jika menampilkan hasil seperti gambar berikut, berarti sistem telah berhasil dijalankan.
Contoh II: SGX Remote Attestation
Intel SGX code tree menyediakan kode contoh untuk memverifikasi fungsi attestasi jarak jauh SGX (DCAP). Contoh ini bertujuan menghasilkan dan memverifikasi Quote, yang melibatkan pihak pembuat Quote (QuoteGenerationSample) dan pihak verifikasi Quote (QuoteVerificationSample).
1. Jalankan perintah berikut untuk mengatur variabel lingkungan terkait Intel SGXSDK.
source /opt/intel/sgxsdk/environment
2. Jalankan perintah berikut secara berurutan untuk memasang git dan mengunduh pohon kode intel sgx DCAP.
cd /root && yum install git -y
git clone https://github.com/intel/SGXDataCenterAttestationPrimitives.git
git checkout DCAP_1.20
3. Jalankan perintah berikut secara berurutan untuk mengkompilasi dan menjalankan kode contoh pembuat Quote, QuoteGenerationSample.
3.1 Masuk ke direktori QuoteGenerationSample.
cd /root/SGXDataCenterAttestationPrimitives/SampleCode/QuoteGenerationSample
3.2 Mengkompilasi QuoteGenerationSample.
3.3 Menjalankan QuoteGenerationSample dan menghasilkan Quote.
4. Jalankan perintah berikut untuk mengkompilasi kode contoh verifikasi Quote, QuoteVerificationSample.
cd /root/SGXDataCenterAttestationPrimitives/SampleCode/QuoteVerificationSample && make
5. Jalankan perintah berikut untuk menandatangani Enclave 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. Jalankan perintah berikut untuk menjalankan QuoteVerificationSample guna memverifikasi Quote.
Jika menampilkan hasil seperti gambar berikut, berarti telah berhasil diverifikasi.