tencent cloud

Cloud Virtual Machine

Tencent SGX機密コンピューティング環境の構築

PDF
フォーカスモード
フォントサイズ
最終更新日: 2026-04-21 11:48:49

概要

本稿では、セキュリティ強化メモリ型M6ceインスタンスでTencent SGX機密コンピューティング環境を構築し、Intel SGXSDKを使用してSGX機能を検証する方法について説明します。

前提条件

セキュリティ強化メモリ型M6ceインスタンスを作成し、ログインしました。
インスタンスの作成方法については、購入画面でインスタンスを作成 をご参照ください。
インスタンスのログイン方法については、標準ログイン方式を使用してLinuxインスタンスにログイン(推奨)をご参照ください。
CVMはパブリックネットワーク接続機能が必要です。CVM作成時にパブリックIPアドレスを割り当てるか、またはCVM作成後にEIPを設定することができます。
説明:
本稿では、OSがTencentOS Server 3.1(TK4)のインスタンスを使用する場合を例とします。OSのバージョンによって手順に違いがある場合がありますので、実際の状況に応じて操作してください。

Intel SGXSDKをインストールします。

1. 次のコマンドを実行して、kernelバージョンをチェックします。
uname -a
kernelが5.4.119-19.0008より低いバージョンかどうかを確認します。
「はい」の場合は、次のコマンドを実行して、kernelを更新してください。
警告:
オペレーティングシステムカーネルのアップグレードは複雑でリスクの高い操作となります。システムが不安定になる可能性や互換性の問題が発生する可能性があります。アップグレード前に重要なデータをバックアップし、アップグレード手順や発生しうる問題について理解したうえで、慎重に操作することを推奨します。
yum update kernel
「いいえ」の場合は、次の手順に進んでください。
2. 以下のコマンドを実行して、SGXランタイムに必要なソフトウェアパッケージをインストールします。なお、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. 以下のコマンドを実行して、Intel SGX SDKをインストールします。
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
説明:
以下のコマンド./sgx_linux_x64_sdkを実行する際には、インストールディレクトリを選択する必要があります。現在のディレクトリへのインストールは避け、/opt/intel/にインストールすることを推奨します。この場合、Intel SGX SDKのデフォルトインストールディレクトリは/opt/intel/sgxsdkとなります。Intel SGX SDKユーザーマニュアルを参照して、SGXプログラムを開発できます。
4. SGXランタイムとIntel SGX SDKのインストールが完了したら、インスタンスを再起動してください。詳細については、インスタンスの再起動を参照してください。
注意:
インスタンスの再起動中はサービスを正常に提供できなくなります。そのため、再起動前にCVMが業務リクエストの受付を停止していることを確認してください。

Tencent Cloud SGXリモート認証サービスを設定する

Tencent CloudのSGXリモートアテステーションサービスはリージョンベースでデプロイされています。最適な体験を得るためには、SGX CVMインスタンスが配置されているリージョンのリモートアテステーションサービスにアクセスすることをお勧めします。

注意事項

Tencent CloudのSGXリモートアテステーションサービスは、北京、上海、広州、南京、シンガポールの各地域にデプロイされています。
お客様のSGX CVMインスタンスが上記地域にない場合であっても、SGXリモートアテステーションサービスを正常に利用できます。デプロイ済みのいずれかの地域のサービスに近接アクセスしてください。各地域間のリクエストは相互接続されており、機能の可用性に影響しません。
リージョン
[Region-ID]
北京
bj
上海
sh
広州
gz
南京
nj
シンガポール
sg
Intel Ice Lakeは、Intel SGX DCAPベースのリモートアテステーション方式のみをサポートし、Intel EPIDリモートアテステーション方式はサポートしていません。

Tencent Cloud SGXリモートアテステーションサービスアップグレード

Intelの関連アナウンスによると、Intel®は北京時間2026年4月30日23:00に、Intel® SGX PCS APIバージョン2およびバージョン3のサービスを完全に停止します。現在もSGXリモートアテステーションサービスを利用している場合は、必ずこの時間までにIntel® SGX PCS APIバージョン4にアップグレードするようにしてください。

Intel® SGX PCS APIバージョン4へのアップグレードでは、/etc/sgx_default_qcnl.conf設定ファイル内のリモートアテステーションサービスURLをv3からv4に変更し、保存後にSGXリモートアテステーション機能を再検証するだけでよいです。具体的な設定変更については、操作手順を参照してください。


操作手順

以下の手順に従って、/etc/sgx_default_qcnl.confファイルを手動で変更してください。
説明:
Intel SGXSDKをインストールすると、リモートアテステーションサービスのデフォルト設定ファイル/etc/sgx_default_qcnl.confが自動的に生成されます。
/etc/sgx_default_qcnl.confはrpmパッケージlibsgx-dcap-default-qplに所属し、その形式はtomlとJSONファイルの2つの形式をサポートします。以下では、両方の場合の設定方法について説明します。

JSON設定を使用して/etc/sgx_default_qcnl.confを設定する場合:VIMエディタを使用して/etc/sgx_default_qcnl.confを開き、pccs_urlを見つけて、その行を以下の内容に変更します:
"pccs_url": "https://sgx-dcap-server-tc.[Region-ID].tencent.cn/sgx/certification/v4/"
このうち、選択した地域に応じて[Region-ID]を置き換えてください。北京地域を例にすると、変更例は以下の通りです:
"pccs_url": "https://sgx-dcap-server-tc.bj.tencent.cn/sgx/certification/v4/"

toml設定を使用して/etc/sgx_default_qcnl.confを設定する場合:VIMエディタを使用して/etc/sgx_default_qcnl.confを以下の内容に変更します:
# PCCS server address
PCCS_URL=https://sgx-dcap-server-tc.[Region-ID].tencent.cn/sgx/certification/v4/
# To accept insecure HTTPS cert, set this option to FALSE
USE_SECURE_CERT=TRUE
このうち、選択した地域に応じて[Region-ID]を置き換えてください。北京地域を例として、変更例は以下の通りです。
# PCCS server address
PCCS_URL=https://sgx-dcap-server-tc.bj.tencent.cn/sgx/certification/v4/
# 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生成側(QuoteGenerationSample)とQuote検証側(QuoteVerificationSample)が含まれます。
1. 以下のコマンドを実行して、Intel SGXSDK関連の環境変数を設定します。
source /opt/intel/sgxsdk/environment
2. 次のコマンドを順に実行してgitをインストールし、Intel SGX DCAP code treeをダウンロードします。
cd /root && yum install git -y
git clone https://github.com/intel/SGXDataCenterAttestationPrimitives.git
git checkout DCAP_1.20
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
sgx_sign sign -key ../QuoteGenerationSample/Enclave/Enclave_private_sample.pem -enclave enclave.so -out enclave.signed.so -config Enclave/Enclave.config.xml # DCAP_1.16新しいバージョンのパス
6. 次のコマンドを実行して、QuoteVerificationSampleを実行し、Quoteを検証します。
./app
下図のように結果が返されれば、検証が成功したことを示します。





ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック