All Products
Search
Document Center

Elastic Compute Service:Membangun lingkungan komputasi rahasia SGX

Last Updated:Sep 03, 2026

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.

Catatan

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.

Penting

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)

  1. Instal CPUID.

    sudo yum install -y cpuid
  2. Periksa apakah SGX diaktifkan.

    cpuid -1 -l 0x7 |grep SGX

    Output 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            = false
    Catatan

    Setelah 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.

  3. 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)

  1. Instal CPUID.

    sudo apt-get update && sudo apt-get install -y --no-install-recommends cpuid
  2. Periksa apakah SGX diaktifkan.

    cpuid -1 -l 0x7 |grep SGX

    Output 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
    Catatan

    Setelah 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.

  3. Instal driver SGX:

    1. 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
      EOF
    2. Jalankan skrip untuk menginstal driver SGX:

      sudo bash ./install_sgx_dcap.sh
  4. 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.

  1. Instal modul yang diperlukan untuk membangun lingkungan komputasi rahasia SGX.

    Citra Alibaba Cloud Linux 2/3 (UEFI)

    1. (Wajib) Instal Alibaba Cloud SGX runtime.

      Catatan

      Saat 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.

      1. Impor repositori perangkat lunak Yellowdog Updater Modified (YUM) untuk komputasi rahasia Alibaba Cloud.

        Catatan

        Ganti [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.

        1. 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
          
          EOF
        2. Impor repositori YUM untuk komputasi rahasia Alibaba Cloud:

          sudo bash ./install_sgx_repo.sh
      2. 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-service
        Catatan

        SGX 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.

    2. 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.

    Catatan

    Jalur instalasi default Intel® SGX SDK dalam Alibaba Cloud TEE SDK adalah /opt/alibaba/teesdk/intel/sgxsdk/.

    Citra Ubuntu 22.04 (UEFI)

    1. 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
      EOF
    2. Jalankan skrip untuk menginstal Intel® SGX SDK dan PSW:

      sudo bash ./install_sgx_sdk.sh
  2. 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.

    Catatan

    Intel 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.

    Catatan

    Tabel 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
      EOF
    • Metode 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=TRUE
      • Jika 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.

  1. Instal kompilator.

  2. 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
    fi
  3. 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/environment
  4. Kompilasi kode sampel dalam file SampleEnclave.

    1. Masuk ke direktori SampleEnclave:

      cd /opt/alibaba/teesdk/intel/sgxsdk/SampleCode/SampleEnclave
    2. Kompilasi kode sampel dalam SampleEnclave:

      sudo -E make
  5. Jalankan file yang dapat dieksekusi hasil kompilasi.

    sudo ./app

    Jika 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.

Citra Ubuntu 22.04 (UEFI)

  1. Perbarui daftar paket.

    sudo apt update
  2. Instal kompilator build-essential.

    sudo apt install -y build-essential
  3. Kompilasi kode sampel dalam file SampleEnclave.

    1. Masuk ke direktori SampleEnclave:

      cd /opt/intel/sgxsdk/SampleCode/SampleEnclave/
    2. Kompilasi kode sampel dalam SampleEnclave:

      sudo make SGX_DEBUG=1
  4. Jalankan file yang dapat dieksekusi hasil kompilasi.

    sudo ./app

    Jika 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.

  1. Instal kompilator.

    • Jika menggunakan citra Alibaba Cloud Linux 2 (UEFI), instal devtoolset.

      1. Instal devtoolset.

        sudo yum install -y devtoolset-9
      2. Konfigurasi 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"
  2. Konfigurasi variabel lingkungan yang terkait dengan SGX SDK.

    source /opt/alibaba/teesdk/intel/sgxsdk/environment
  3. Instal paket dependensi untuk remote attestation SGX.

    sudo yum install -y libsgx-dcap-ql-devel libsgx-dcap-quote-verify-devel libsgx-dcap-default-qpl-devel
  4. Kompilasi kode sampel dalam file QuoteGenerationSample yang digunakan oleh pihak yang ditantang.

    1. Masuk ke direktori QuoteGenerationSample.

      cd /opt/alibaba/teesdk/intel/sgxsdk/SampleCode/QuoteGenerationSample
    2. Kompilasi kode sampel dalam file QuoteGenerationSample.

      sudo -E make
  5. Jalankan file yang dapat dieksekusi hasil kompilasi untuk menghasilkan quote.

    sudo ./app

    Jika 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 policy
  6. Kompilasi kode sampel dalam file QuoteVerificationSample yang digunakan oleh pihak yang menantang.

    1. Masuk ke direktori QuoteVerificationSample.

      cd /opt/alibaba/teesdk/intel/sgxsdk/SampleCode/QuoteVerificationSample
    2. Kompilasi kode sampel dalam file QuoteVerificationSample.

      sudo -E make
  7. 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.xml
    Catatan

    Jika 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.xml
  8. Jalankan file yang dapat dieksekusi hasil kompilasi untuk memverifikasi quote.

    sudo ./app

    Jika 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.

  1. 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 "$@"' _
  2. Lihat versi perangkat lunak SGX SDK, SGX PSW, dan SGX DCAP.

    1. 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_64
    2. Lihat 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