tencent cloud

フィードバック

Tencent SGXコンフィデンシャル・コンピューティング環境の構築

最終更新日:2022-12-01 14:21:34

    概要

    ここでは、M6ceインスタンスでTencent SGXコンフィデンシャル・コンピューティング環境を構築する方法と、Intel SGXSDKを使用してSGX機能を検証する方法をデモンストレーションします。

    前提条件

    M6ceインスタンス が作成され、ログインしていること。 -インスタンスの作成方法については、購入画面でインスタンスを作成 をご参照ください。 -インスタンスのログイン方法については、標準ログイン方式を使用してLinuxインスタンスにログイン(推奨)をご参照ください。
    説明:
    ここでの手順は、OSがTencentOS Server 3.1(TK4)のインスタンスを使用した例であり、OSのバージョンが異なると手順も異なる場合がありますので、実際の状況に応じて操作してください。

    操作手順

    1. 次のコマンドを実行して、kernelバージョンをチェックします。
    uname -a
    kernelが5.4.119-19.0008より低いバージョンかどうかを確認します。
    「はい」の場合は、次のコマンドを実行して、kernelを更新してください。
    yum update kernel
    「いいえ」の場合は、次の手順に進んでください。
    2. 次のコマンドを実行して、SGX runtimeに必要なパッケージをインストールします。
    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
    説明:
    SGX AESMサービスのデフォルトのインストールディレクトリは、/opt/intel/sgx-aesm-serviceです。
    3. 次のコマンドを実行して、Intel SGXSDKをインストールします。
    yum install sgx-linux-x64-sdk
    説明:
    Intel SGXSDKのデフォルトのインストールディレクトリは、/opt/intel/sgxsdkです。Intel SGXSDK ユーザーマニュアルを参照して、SGXプログラムを開発することができます。
    4. SGX runtimeとIntel SGXSDKのインストールが完了したら、インスタンスを再起動してください。詳細については、インスタンスの再起動 をご参照ください。
    5. Tencent Cloud SGXリモートアテステーションサービスを構成します。 Tencent Cloud SGXリモートアテステーションサービスは、リージョン化デプロイを採用しています。SGX CVMインスタンスが配置されているリージョンでTencent Cloud SGXリモートアテステーションサービスにアクセスすれば、最高のカスタマーエクスペリエンスを体験できます。Intel SGXSDKをインストールすると、リモートアテステーションサービスのデフォルト構成ファイル/etc/sgx_default_qcnl.confが自動的に生成されます。SGX CVMインスタンスが配置されているリージョンのTencent Cloud SGXリモートアテステーションサービスに適応するように、以下の手順に従ってこのファイルを手動で変更してください。
    説明:
    現在、北京、上海および広州リージョンのみで、Tencent Cloud SGXリモートアテステーションサービスがサポートされています。
    Intel Ice Lakeは、Intel SGX DCAPベースのリモートアテステーション方式のみをサポートし、Intel EPIDリモートアテステーション方式はサポートしていません。
    VIMエディタを使用して、/etc/sgx_default_qcnl.confを以下のように変更します。
    # PCCS server address
    PCCS_URL=https://sgx-dcap-server-tc.[Region-ID].tencent.cn/sgx/certification/v3/
    # To accept insecure HTTPS cert, set this option to FALSE
    USE_SECURE_CERT=TRUE
    [Region-ID]をSGX CVMインスタンスが配置されているリージョンのIDに置き換えてください。 例:<br> 北京リージョンの変更例は次のとおりです。
    # PCCS server address
    PCCS_URL=https://sgx-dcap-server-tc.bj.tencent.cn/sgx/certification/v3/
    # To accept insecure HTTPS cert, set this option to FALSE
    USE_SECURE_CERT=TRUE
    上海リージョンの変更例は次のとおりです。
    # PCCS server address
    PCCS_URL=https://sgx-dcap-server-tc.sh.tencent.cn/sgx/certification/v3/
    # To accept insecure HTTPS cert, set this option to FALSE
    USE_SECURE_CERT=TRUE
    広州リージョンの変更例は次のとおりです。
    # PCCS server address
    PCCS_URL=https://sgx-dcap-server-tc.gz.tencent.cn/sgx/certification/v3/
    # To accept insecure HTTPS cert, set this option to FALSE
    USE_SECURE_CERT=TRUE

    SGX機能の検証例

    例1:Enclaveの起動

    Intel SGXSDKは、SGX機能を検証するためのSGXサンプルコードを提供します。デフォルトのディレクトリは、/opt/intel/sgxsdk/SampleCodeです。この例のコード(SampleEnclave)の効果は、Enclaveを起動して、インストールされたSGXSDKが正常に使用されているか、また、SGX CVMインスタンスの機密メモリリソースが使用可能かどうかを検証することです。
    1. 次のコマンドを実行して、Intel SGXSDKに関連する環境変数を設定します。
    source /opt/intel/sgxsdk/environment
    2. 次のコマンドを実行して、サンプルコードSampleEnclaveをコンパイルします。
    cd /opt/intel/sgxsdk/SampleCode/SampleEnclave && make
    3. 次のコマンドを実行して、コンパイルされた実行可能ファイルを実行します。
    ./app
    以下のような結果が返されれば、起動に成功しています。
    
    

    例2:SGXリモートアテステーション

    Intel SGXのcode treeは、SGXリモートアテステーション機能(DCAP)を検証するためのサンプルコードを提供します。この例は、Quoteを発行および検証するためのもので、Quote Generator(QuoteGenerationSample)とQuote Verifier(QuoteVerificationSample)が含まれます。
    1. 次のコマンドを実行して、Intel SGXSDKに関連する環境変数を設定します。
    source /opt/intel/sgxsdk/environment
    2. 次のコマンドを順に実行してgitをインストールし、Intel SGX DCAP code treeをダウンロードします。
    cd /root && yum install git
    git clone https://github.com/intel/SGXDataCenterAttestationPrimitives.git
    3. 次のコマンドを順に実行して、Quote GeneratorのサンプルコードQuoteGenerationSampleをコンパイルして実行します。
    3.1 QuoteGenerationSampleディレクトリに入ります。
    cd /root/SGXDataCenterAttestationPrimitives/SampleCode/QuoteGenerationSample
    3.2 QuoteGenerationSampleをコンパイルします。
    make
    3.3 QuoteGenerationSampleを実行し、Quoteを発行します。
    ./app
    4. 次のコマンドを実行して、QuoteVerifierのサンプルコードQuoteVerificationSampleをコンパイルします。
    cd /root/SGXDataCenterAttestationPrimitives/SampleCode/QuoteVerificationSample && make
    5. 次のコマンドを実行して、QuoteVerificationSample Enclaveに署名します。
    sgx_sign sign -key Enclave/Enclave_private_sample.pem -enclave enclave.so -out enclave.signed.so -config Enclave/Enclave.config.xml
    6. 次のコマンドを実行して、QuoteVerificationSampleを実行し、Quoteを検証します。
    ./app
    以下のような結果が返されれば、検証に成功しています。
    
    
    お問い合わせ

    カスタマーサービスをご提供できるため、ぜひお気軽にお問い合わせくださいませ。

    テクニカルサポート

    さらにサポートが必要な場合は、サポートチケットを送信して弊社サポートチームにお問い合わせください。24時間365日のサポートをご提供します。

    電話サポート(24 時間365日対応)