認証 (attestation)
認証は、仮想インスタンスの作成時にデフォルトで開始されるプロセスであり、仮想サーバー・インスタンス・イメージが実際に IBMによって作成され、変更されていないことを確認します。 このプロセスは、情報も提供し、デプロイメント時にインスタンスに提供されるすべてのデータの検証を可能にします。
IBM Hyper Protect Container Runtime イメージを使用して仮想サーバー・インスタンスを作成する場合、イメージは、暗号化によって保護され、 IBM Secure Execution によって署名された初期ファイル・システムを使用します。 詳しくは、 Confidential computing with LinuxONE を参照してください。 認証プロセスについて詳しくは、この ビデオ を参照してください。
ブート・プロセスでは、ルート・ディスクを確実に保護するために、固有のルート・ディスク暗号鍵が作成されます。 認証を実行するために、仮想サーバー・インスタンス・イメージには、ビルド時の認証署名鍵とルート区画のハッシュが含まれています。 ブート・プロセスは、ルート区画を検証します。 ルート区画のハッシュが一致しない場合、ブート前にイメージが変更されたと想定されるため、ブート・プロセスは続行されません。 認証署名鍵は、 Hyper Protect Crypto Servicesで保持されている IBM ルート鍵によって署名されたランダム RSA 4 K 鍵です。 IBM ルート鍵は Digicert によって署名されます。
クラウドでの仮想サーバー・インスタンスのデプロイメント中に、認証レコードが作成されます。 以下の項目のハッシュが含まれています。
- 元の基本イメージ
- 最初のブートの時点でのルート・パーティション
- ビルド時のルート・パーティション
- クラウド初期化オプション
認証レコードは、認証キーによって署名されます。 追加の保護層として、デプロイメント時に公開鍵を提供できます。この公開鍵に対して、認証レコードが暗号化されます。 この公開鍵のハッシュが認証記録に追加され、その記録はコンプライアンス・オーソリティのみが閲覧できるようになる。 そのハッシュによって、期待される権威を簡単に特定することができる。
インスタンスにワークロードをアップロードする前に、認証レコードを検証する必要があります。 インスタンスが作成された後、作成されたインスタンス内の認証レコードを検証できます。 インスタンスには、 /var/hyperprotect
ディレクトリーへのアクセス権限が必要です。 その場合は、以下の手順に従ってください。
- 認証レコードは、認証署名鍵によって署名されます。
- 認証署名鍵は、 IBM 中間証明書によって確認できます。 のIBM中間証明書は、DigiCert,これはルート証明書によって証明されますDigiCert,こうして信頼の連鎖が完成します。
暗号化証明書と認証証明書は、 IBM 中間証明書によって署名され、 IBM Digicert 中間証明書によって署名される。 IBM Digicert 中間証明書は、 DigiCert 信頼されるルート G4 によって署名される。 証明書の詳細については、 DigiCert Trusted Root Authority Certificatesを 参照のこと。
認証レコードとハッシュを検証するには、以下の手順を使用します。
- VPC インスタンスの Hyper Protect Virtual Servers から、認証レコード
se-checksums.txt
および署名ファイルse-signature.bin
を取得します。 これを行うために、認証レコードと署名ファイルを提供するコンテナーを実装できます。 認証レコードと署名ファイルが、/var/hyperprotect
ディレクトリー内のコンテナーで使用できるようになります。 - IBM 認証証明書を取得します。 以下の表に、イメージのバージョンに基づく認証証明書の有効期限日付をリストします。
2025年3月25日以降、証明書リンクが変更される。
イメージのバージョン | 証明書リンク | 有効期限日付 |
---|---|---|
ibm-hyper-protect-container-runtime-1-0-s390x-23 |
証明書 | 2026年4月25日 |
ibm-hyper-protect-container-runtime-1-0-s390x-22 |
証明書 | 2026年3月21日 |
ibm-hyper-protect-container-runtime-1-0-s390x-21 |
証明書 | 2026年3月4日 |
ibm-hyper-protect-container-runtime-1-0-s390x-20 |
証明書 | 2025年11月20日 |
ibm-hyper-protect-container-runtime-1-0-s390x-19 |
証明書 | 2025年9月19日 |
ibm-hyper-protect-container-runtime-1-0-s390x-18 |
証明書 | 01 2025年8月 |
ibm-hyper-protect-container-runtime-1-0-s390x-17 |
証明書 | 04 2025年7月 |
-
ここ の手順に従って、認証証明書を検証します。
-
以下のコマンドを使用して、認証証明書から認証公開鍵を抽出する:
openssl x509 -pubkey -noout -in ibm-hyper-protect-container-runtime-1-0-s390x-23-attestation.crt > contract-public-key.pub
-
認証レコードの署名を検証します。
openssl sha256 -verify contract-public-key.pub -signature se-signature.bin se-checksums.txt
署名検証は、 暗号化解除された認証ファイル で行う必要があります。
-
これで、認証レコードからのハッシュを検証に使用できます。
認証レコードを暗号化するための公開鍵を指定した場合は、以下のスクリプトがレコードの暗号化解除に役立つことがあります。
#!/bin/bash
#
# Example script to decrypt attestation document.
#
# Usage:
# ./decrypt-attestation.sh <rsa-priv-key.pem> [file]
#
# Token Format:
# hyper-protect-basic.<ENC_AES_KEY_BASE64>.<ENC_MESSAGE_BASE64>
RSA_PRIV_KEY="$1"
if [ -z "$RSA_PRIV_KEY" ]; then
echo "Usage: $0 <rsa-priv-key.pem>"
exit 1
fi
INPUT_FILE="${2:-se-checksums.txt.enc}"
TMP_DIR="$(mktemp -d)"
#trap 'rm -r $TMP_DIR' EXIT
PASSWORD_ENC="${TMP_DIR}/password_enc"
MESSAGE_ENC="${TMP_DIR}/message_enc"
# extract encrypted AES key and encrypted message
cut -d. -f 2 "$INPUT_FILE"| base64 -d > "$PASSWORD_ENC"
cut -d. -f 3 "$INPUT_FILE"| base64 -d > "$MESSAGE_ENC"
# decrypt password
PASSWORD=$(openssl pkeyutl -decrypt -inkey "$RSA_PRIV_KEY" -in "$PASSWORD_ENC")
# decrypt message
echo -n "$PASSWORD" | openssl aes-256-cbc -d -pbkdf2 -in "$MESSAGE_ENC" -pass stdin --out se-checksums.txt
docker コンテナーの場合は、docker コンテナーに /var/hyperprotect
をマウントすることで decrypt-attestation.sh
ファイルにアクセスできます。 以下に例を示します。
volumes:
- "/var/hyperprotect/:/var/hyperprotect/:ro"
Podman コンテナーの場合、 decrypt-attestation.sh
ファイルにアクセスするには、 Podman コンテナーに /var/hyperprotect
をマウントします。 以下に例を示します。
volumeMounts:
- name: attestation
readOnly: true
mountPath: /var/hyperprotect:Z,U
認証文書です。
認証文書は、VPC インスタンスの Hyper Protect Virtual Servers 内の /var/hyperprotect/se-checksums.txt
で入手できます。 その他の関連ファイルも同じディレクトリーにあります。
/var/hyperprotect/
ディレクトリーには、以下の情報があります。
/var/hyperprotect/
|-- cidata
| |-- meta-data
| |-- vendor-data
|-- se-checksums.txt
|-- se-signature.bin
|-- se-version
|-- user-data.decrypted
チェックサムは、メッセージ・ダイジェストの SHA256 であり、以下の Linux コマンド行ユーティリティーを使用して計算できます。
sha256sum <file>
認証文書の例を以下のスニペットに示します。
25.4.0
Machine Type/Plant/Serial: 3932/02/8A018
Image age: 11 days since creation.
Ultravisor CUID: 0x580f2286ec628711ec828b17b31a572c
Host HKD: HKD-3932-028A018.crt (HKD-3932-028A018.crt)
HKD is valid until: Feb 27 18:11:39 2025 GMT
AP device present: true
Number of configured APs: 1
e23a548070908ae09eb8b42df1865c2bc03c2f7135ddbae56b9064ec015fc867 AP(1):secret
84ae048bc5d88e99f6ec13b4c4ba3e2ffe5f10285f7dd71a65ea99eaa1838ce0 root.tar.gz
3e13f7658ef790dbc040e90ff4f8d537c9c10da879b0b16df9e98265c7b5170a baseimage
348f4e1c9ff891956ab23f4dbec91b3cc46a761afc1187d06c2d77ef87ed44b9 /dev/disk/by-label/cidata
58d327a44a3a13a679b153900ab215c4a163c7f9ca8f4152074027f9d1d2d33a cidata/meta-data
c2530f161027a25e948a82b50e1b7fd4a0df74449d0317c315e30d9e089f2f23 cidata/user-data
5a2b8897d00e4f03436494a36304776a637bf3f134ae10107f2a47e9859ed0fb cidata/vendor-data
a17a6ea7d8fdd9831c345510c1ceb4823c929ccef89bfab3d43fdf1b6a87871f contract:attestationPublicKey
23364d8558c5d151e15963543c82c8127d05f2635720fd559a76e5cc20290ab7 contract:env
e568d46f563a0afc41059f71e4c9e9eab26c4f4dffde24701dc3e7d5b14a16ae contract:workload
Machine Type/Plant/Serial
Machine Type/Plant/Serial
は、セキュア実行 VM のホスト・キー文書を取得するために必要な情報です。 これは、セキュア実行 VM が現在実行されているマシンを反映します。
baseimage
baseimage
は、 IBM 内部 QEMU コピー・オン・ライト・バージョン 2 (QCOW2) ファイルです。これは、Hyper Protect Container Runtime イメージのほとんどのオペレーティング・システム・ファイルのソースとして使用されます。 これは、イネーブラー・プロセスによってイメージ・ビルド時にのみ使用されます。 イネーブラーは、このソースを他の Debian パッケージと一緒に使用して、 root.tar.gz
および暗号化されたセキュア実行カーネルまたは「initrd」イメージを作成します。
以下は ibm-hyper-protect-container-runtime-1-0-s390x-23 baseimage
のシャスムである:
3e13f7658ef790dbc040e90ff4f8d537c9c10da879b0b16df9e98265c7b5170a baseimage
以下は ibm-hyper-protect-container-runtime-1-0-s390x-22 baseimage
のシャズムである:
538170f79b7bd44553847e81afce7ae14c8ea8857df243e4f8656c9d06d42c18 baseimage
以下は、 ibm-hyper-protect-container-runtime-1-0-s390x-21 baseimage
のシャサムです
538170f79b7bd44553847e81afce7ae14c8ea8857df243e4f8656c9d06d42c18 baseimage
以下は、ibm-ibm-hyper-protect-container-runtime-1-0-s390x-20-protect-container-runtime-1-0-s390x-20 'baseimage
のshasumである:
080f817231fe4bc40021d24e20af9f1135a36711047212f9374664b86ab406ac baseimage
以下はibm-hyper-protect-container-runtime-1-0-s390x-19 baseimage
のshasumである:
b3fb54a3bb57fcbba070c456d7394fb5e7a4f9b1febaec0efc32c5aa0e325071 baseimage
以下はibm-hyper-protect-container-runtime-1-0-s390x-18 baseimage
のshasumである:
f9940321d043d133ddf2f22cd4794bc56be9d54b2e9c7893a6d6a4813635024c baseimage
以下は、ibm-hyper-protect-container-runtime-1-0-s390x-17そしてibm-hyper-protect-container-runtime-1-0-s390x-16baseimage
:
f9940321d043d133ddf2f22cd4794bc56be9d54b2e9c7893a6d6a4813635024c baseimage
root.tar.gz
root.tar.gz
は、最終的な Secure Execution Enabled IBM Hyper Protect Container Runtime イメージの一部であり、すべてのオペレーティング・システム・ファイルが含まれています。 これは、イメージの最初のパーティション (ブート・パーティション) に /boot/root.tar.gz
として保管されます。
以下は ibm-hyper-protect-container-runtime-1-0-s390x-23 root.tar.gz
のシャスムである。
84ae048bc5d88e99f6ec13b4c4ba3e2ffe5f10285f7dd71a65ea99eaa1838ce0 root.tar.gz
以下は ibm-hyper-protect-container-runtime-1-0-s390x-22 root.tar.gz
のシャズムである。
ff09f53f19d0f82ca24d4f2d5277c851516734c3d55ae7f8db47cde378a51ec9 root.tar.gz
以下は、 ibm-hyper-protect-container-runtime-1-0-s390x-21 root.tar.gz
のシャームです。
024ff109be23e1e4e7b9f07dc553afc60a5a93645939eedf2a936930cc8a44ae root.tar.gz
以下は、ibm-ibm-hyper-protect-container-runtime-1-0-s390x-20-protect-container-runtime-1-0-s390x-20 'root.tar.gz
のshasumである。
ad65a3820d4a233c84e6d201ce537b8020435ccefe26682809da5ef9b176b8ae root.tar.gz
以下は、ibm-hyper-protect-container-runtime-1-0-sibm-hyper-protect-container-runtime-1-0-s390x-19x-19 'root.tar.gz
のshasumである。
d8e069345618143ce0948044cab27ba52ffc53eaba987d353bb5ab59f3ad2390 root.tar.gz
以下は、ibm-ibm-hyper-protect-container-runtime-1-0-s390x-18-protect-container-runtime-1-0-s390x-18 'root.tar.gz
のshasumである。
4802242b82dce78d11c4b02129a9b9c1e62598b1cb8073f8e7b097449644bbb4 root.tar.gz
以下は、ibm-hyper-protect-container-ibm-hyper-protect-container-runtime-1-0-s390x-17-1-0-s390x-17とibm-hyper-protect-ibm-hyper-protect-container-runtime-1-0-s390x-16-runtime-1-0-s390x-16 'root.tar.gz
のshasumである。
4802242b82dce78d11c4b02129a9b9c1e62598b1cb8073f8e7b097449644bbb4 root.tar.gz
/dev/disk/by-label/cidata
/dev/disk/by-label/cidata
は、 IBM Cloud® Virtual Private Cloud (VPC) によって提供される cloud-init ファイルを含む実行中のインスタンスに接続されるブロック・デバイスです。 Cloud-Init について詳しくは、 ユーザー・データ、または cloud-init の資料 を参照してください。
cidata
58d327a44a3a13a679b153900ab215c4a163c7f9ca8f4152074027f9d1d2d33a cidata/meta-data
c2530f161027a25e948a82b50e1b7fd4a0df74449d0317c315e30d9e089f2f23 cidata/user-data
5a2b8897d00e4f03436494a36304776a637bf3f134ae10107f2a47e9859ed0fb cidata/vendor-data
attestationPublicKey
attestationPublicKey
は、認証文書の暗号化に使用される公開鍵である。 attestationPublicKey
はユーザーデータファイルの一部である。 認証文書の暗号化は任意である。
a17a6ea7d8fdd9831c345510c1ceb4823c929ccef89bfab3d43fdf1b6a87871f contract:attestationPublicKey
認証文書の暗号化解除
ユーザーデータに公開RSAキー(属性:attestationPublicKey)、次に証明書類(se-checksums.txt ) は指定されたキーで暗号化されます。 暗号化は、契約暗号化と同じプロセスで行われます。 詳しくは、 契約の暗号化 を参照してください。 パブリック RSA 鍵自体も、契約のように暗号化できます。
暗号化された認証文書は、 se-checksums.txt.enc
という名前になります。
docker コンテナーの場合は、docker コンテナーに /var/hyperprotect
をマウントすることで decrypt-attestation.sh
ファイルにアクセスできます。 以下に例を示します。
volumes:
- "/var/hyperprotect/:/var/hyperprotect/:ro"
Podman コンテナーの場合、 decrypt-attestation.sh
ファイルにアクセスするには、 Podman コンテナーに /var/hyperprotect
をマウントします。 以下に例を示します。
volumeMounts:
- name: attestation
readOnly: true
mountPath: /var/hyperprotect:Z,U
認証フローの理解
以下の図は、監査員の観点から、デプロイメントが予期されるものであることを検証するための認証の 2 つのシナリオを示しています。 図の左側は、サード・パーティーの認証局をルートとする監査員による信頼の確立を示しています。 使用される鍵はすべて Hyper Protect Crypto Service に保持され、サード・パーティーの認証局に基づいて証明書チェーンに署名されます。 Hyper Protect で使用されるビルド環境は、 IBM Secure Execution Technology を使用して、信頼できる実行環境で実行されます。
結果として、図の最後に表示されるセキュアな実行イメージが生成されます。これは、暗号化されたセキュアな実行イメージです。 ダイアグラムの右側に、デプロイメントの検証の概要が示されます。 そのために、監査員は、 IBM Hyper Protect インスタンスの暗号化されたワークロード契約に、監査員のみが制御権を持つシークレットの公開鍵を含めます。 このようなシークレットは、Hyper Protect Crypto Service、HSM、または単なるランダム・キーなどの適切な手段によって保護される可能性があります。 提供される信頼できる実行環境で実行されるHyper Protectブートローダーのみが、IBM安全な実行Linuxの上IBMLinuxONE,の安全な実行イメージを実行できますIBM CloudHyper Protect Virtual ServersのためにIBM Cloud® Virtual Private Cloud 。 ブート・ローダーには、契約を暗号化解除するための秘密が含まれています。
ブート時に、いくつかのコンポーネントのハッシュとコードの測定が取得され、認証レコードに追加されます。 この認証レコードをさらに保護するために、レコードは監査員が提供した公開鍵を使用して暗号化されます。 これにより、監査員のみが認証レコードを復号することができ、エンクレーブにデプロイされたワークロードが、VPC インスタンスの Hyper Protect Virtual Servers にデプロイされることが予期されるワークロードの予期される改ざんされていないバージョンであることを検証できます。
