Attestation
Le site IBM Cloud Hyper Protect Virtual Servers pour VPC est obsolète. À partir du 28 février 2026, vous ne pourrez plus créer de nouvelles instances. Les instances existantes seront prises en charge jusqu’au 20 février 2027. Toutes les instances qui existeront encore à cette date seront supprimées. Vous pouvez redéployer vos charges de travail en utilisant IBM Confidential Computing Container Runtime(anciennement connu sous le nom de Hyper Protect Virtual Servers ) ou IBM Confidential Computing Container Runtime for Red Hat Virtualization Solutions(anciennement connu sous le nom de Hyper Protect Container Runtime for Red Hat Virtualization Solutions). Pour plus d'informations sur la migration des données, voir le guide Migration. Pour plus d'informations, voir l'annonce de dépréciation du service.
L'attestation est un processus qui démarre par défaut lors de la création d'une instance virtuelle. Il garantit que l'image de l'instance du serveur virtuel a bien été créée par IBM et qu'elle n'a pas été modifiée. Ce processus fournit également des informations et permet la validation des données fournies à l'instance au moment du déploiement.
Lorsque vous créez une instance de serveur virtuel à l'aide de l'image IBM Hyper Protect Container Runtime, l'image utilise un système de fichiers initial qui est protégé par le chiffrement et signé par IBM Secure Execution. Pour plus d'informations, voir Informatique confidentielle avec LinuxONE. Pour en savoir plus sur le processus d'attestation, voir cette vidéo.
Le processus d'amorçage crée une clé de chiffrement de disque racine unique pour garantir la protection du disque racine. Pour effectuer l'attestation, l'image de l'instance de serveur virtuel contient une clé d'attestation-signature et le hachage de la partition racine lors de la génération. Le processus d'amorçage valide la partition racine. Si le hachage de la partition racine ne correspond pas, le processus d'amorçage ne se poursuit pas car il suppose que l'image a été modifiée avant l'amorçage. La clé de signature d'attestation est une clé RSA 4 K aléatoire signée par une clé racine IBM qui est gérée dans Hyper Protect Crypto Services. La clé racine IBM est signée par Digicert.
Lors du déploiement de l'instance de serveur virtuel dans le cloud, un enregistrement d'attestation est créé. Il contient des hachages des éléments suivants:
- L'image de base d'origine
- La partition racine au moment du premier amorçage
- Partition racine au moment de la génération
- Options d'initialisation du cloud
L'enregistrement d'attestation est signé par la clé d'attestation. En tant que couche de protection supplémentaire, vous pouvez fournir une clé publique lors du déploiement, par rapport à laquelle l'enregistrement d'attestation est chiffré. Le hachage de cette clé publique est ajouté à l'enregistrement d'attestation afin que celui-ci ne puisse être consulté que par l'autorité de conformité. L'autorité attendue peut être facilement identifiée grâce à ce hachage.
Avant de télécharger une charge de travail dans votre instance, vous devez valider l'enregistrement d'attestation. Une fois qu'une instance a été créée, vous pouvez valider l'enregistrement d'attestation dans l'instance créée. Votre instance doit
avoir accès au répertoire /var/hyperprotect. Si tel est le cas, procédez comme suit:
- L'enregistrement d'attestation est signé par la clé de signature d'attestation.
- La clé de signature d'attestation peut être confirmée par le certificat intermédiaire IBM. LeIBM le certificat intermédiaire est signé parDigiCert, ce qui est prouvé par le certificat racine deDigiCert, complétant ainsi la chaîne de confiance.
Les certificats de chiffrement et d'attestation sont signés par le certificat intermédiaire IBM, qui est signé par le certificat intermédiaire Digicert IBM. Le certificat intermédiaire Digicert IBM est signé par la racine de confiance DigiCert G4. Pour plus d'informations sur les certificats, voir DigiCert Trusted Root Authority Certificates.
Utilisez la procédure suivante pour valider l'enregistrement d'attestation et les hachages:
- Obtenez l'enregistrement d'attestation
se-checksums.txtet le fichier de signaturese-signature.binde votre instance Hyper Protect Virtual Servers for VPC. Pour ce faire, vous pouvez implémenter votre conteneur pour fournir l'enregistrement d'attestation et le fichier de signature. L'enregistrement d'attestation et le fichier de signature sont mis à la disposition de votre conteneur dans le répertoire/var/hyperprotect. - Obtenez le certificat d'attestation IBM. Le tableau suivant répertorie les dates d'expiration des certificats d'attestation en fonction de la version de l'image.
A partir du 25 mars 2025, les liens du certificat sont modifiés.
| Version de l'image | Lien vers le certificat | Date expiration |
|---|---|---|
ibm-hyper-protect-container-runtime-1-0-s390x-29 |
certificate | 6 juillet 2027 |
ibm-hyper-protect-container-runtime-1-0-s390x-28 |
certificate | 15 juin 2027 |
ibm-hyper-protect-container-runtime-1-0-s390x-26 |
certificate | 24 février 2027 |
ibm-hyper-protect-container-runtime-1-0-s390x-25 |
certificate | 26 novembre 2026 |
-
Validez le certificat d'attestation en suivant les instructions ici.
-
Extraire la clé publique d'attestation du certificat d'attestation à l'aide de la commande suivante :
openssl x509 -pubkey -noout -in ibm-hyper-protect-container-runtime-1-0-s390x-29-attestation.crt > contract-public-key.pub -
Vérifiez la signature de l'enregistrement d'attestation:
openssl sha256 -verify contract-public-key.pub -signature se-signature.bin se-checksums.txtLa vérification de signature doit être effectuée sur un fichier d'attestation déchiffré.
-
Vous pouvez maintenant utiliser les hachages de l'enregistrement d'attestation pour la validation.
Si vous avez fourni une clé publique pour le chiffrement de l'enregistrement d'attestation, le script suivant peut vous aider à déchiffrer l'enregistrement.
#!/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
Dans le cas d'un conteneur Docker, le fichier decrypt-attestation.sh est accessible en montant /var/hyperprotect dans le conteneur Docker. Par exemple :
volumes:
- "/var/hyperprotect/:/var/hyperprotect/:ro"
Dans le cas d'un conteneur Podman, le fichier decrypt-attestation.sh est accessible en montant /var/hyperprotect dans le conteneur Podman. Par exemple :
volumeMounts:
- name: attestation
readOnly: true
mountPath: /var/hyperprotect:Z,U
Le document d'attestation
Le document d'attestation est disponible à l'adresse /var/hyperprotect/se-checksums.txt, dans l'instance Hyper Protect Virtual Servers pour VPC. Les autres fichiers associés se trouvent également dans le même répertoire.
Les informations suivantes sont disponibles dans le répertoire /var/hyperprotect/:
/var/hyperprotect
/var/hyperprotect/
|-- certificate_expiry_date.json
|-- cidata
| |-- meta-data
| |-- vendor-data
|-- se-checksums.txt
|-- se-signature.bin
|-- se-version
|-- user-data.decrypted
Les sommes de contrôle sont les SHA256 du résumé du message et vous pouvez les calculer à l'aide de l'utilitaire de ligne de commande suivant : Linux:
sha256sum <file>
Le fragment suivant est un exemple de document d'attestation:
26.7.1
Machine Type/Plant/Serial: 8562/02/4C598
Image age: 10 days since creation.
Encryption Certificate valid until: Jul 06 06:44:41 2027 UTC
Attestation Certificate valid until: Jul 06 12:28:59 2027 UTC
5df88e43e3b0819f05c4a2d90253f26fe72308c7102f1cafe60cf2902f26cc06 certificate_expiry_date.json
44d9ccbb009ba581a391ec569f4cce97b365c5ca63c47574c3a3168ddb4115b3 root.tar.gz
87cba102a31c9131a5e04c4d555ef93ff4294aa28faedecb7b94bb726e6a9f4a baseimage
fe40ba8362e570e5caa533b7cbed3cb5f8fa67ed2e7022a678c1c06760821c8f sbom
65b99110547298d3f6fec2888664dcf74fdf53b52e27fa2f9e4e97c274055ac2 /dev/disk/by-label/cidata
f95185cc25937c43d0b912cfcae1934996785f5ecbeed07c1cca3cb8cefd4e0e cidata/meta-data
98a916c28414671a04623ee1a6902dda41777fbb0cd56ebb5ab3c5cb399bc163 cidata/user-data
3bee754bb0c58bb691242b0d1787bc5b1f71d22885d9444b581e4b51adecac0d cidata/vendor-data
6c338061a8a39a9d0d6ca6e8c0ee5b758741b01484abd7403e1481ae75ed1ca1 contract:workload
7f326b4f780652d77e7d2d22631b9da7ec000b97f5363030ed1d7fab4378bb6c contract:env
d879515efa1fb1b94bf00f3e03855539d169c54f4beb4dad3fff91b39467c461 contract:attestationPublicKey
Machine Type/Plant/Serial
Machine Type/Plant/Serial est l'information requise pour obtenir un document clé de l'hôte pour l'exécution sécurisée VM. Il indique sur quelle machine l'exécution sécurisée VM s'exécute actuellement.
baseimage
baseimage est le fichier IBM interne QEMU Copy On Write Version 2 (QCOW2), qui est utilisé comme source pour la plupart des fichiers du système d'exploitation de l'image Hyper Protect Container Runtime. Il est utilisé uniquement
au moment de la génération de l'image par le processus d'activation. L'enabler utilise cette source avec d'autres paquets Debian pour créer le root.tar.gz et le noyau d'exécution sécurisé crypté ou une image "initrd".
Voici le résumé de l'article « ibm-hyper-protect-container-runtime-1-0-s390x-29 » ( baseimage):
87cba102a31c9131a5e04c4d555ef93ff4294aa28faedecb7b94bb726e6a9f4a baseimage
Voici le résumé de l'article « ibm-hyper-protect-container-runtime-1-0-s390x-28 » ( baseimage):
334549f6dfcf8e0e2132c0eb9a5281e9e0b335e319fe2f66158be5b524acdc48 baseimage
Voici le shasum du site ibm-hyper-protect-container-runtime-1-0-s390x-26 baseimage:
f8614f9f6a39302b97b0a590e14b2e64affddb0f98ef459bf0f8c7f185c98bd5 baseimage
Voici le shasum du site ibm-hyper-protect-container-runtime-1-0-s390x-25 baseimage:
f73df7d02327896fbda67f6e7368c3e27fe5e15b580cdfdb60e7310afeed5b75 baseimage
Voici le shasum du site ibm-hyper-protect-container-runtime-1-0-s390x-24 baseimage:
14d2a725746bf9a6cbf9847e09422f5a97609d03f15b373519a16015619f227d baseimage
Voici le shasum du site ibm-hyper-protect-container-runtime-1-0-s390x-23 baseimage:
3e13f7658ef790dbc040e90ff4f8d537c9c10da879b0b16df9e98265c7b5170a baseimage
Voici le shasum du site ibm-hyper-protect-container-runtime-1-0-s390x-22 baseimage:
538170f79b7bd44553847e81afce7ae14c8ea8857df243e4f8656c9d06d42c18 baseimage
Voici le shasum du site ibm-hyper-protect-container-runtime-1-0-s390x-21 baseimage:
538170f79b7bd44553847e81afce7ae14c8ea8857df243e4f8656c9d06d42c18 baseimage
root.tar.gz
Le site root.tar.gz fait partie de l'exécution sécurisée finale qui est activée par une image Hyper Protect Container Runtime ( IBM ) et contient tous les fichiers du système d'exploitation. Il est stocké sur la première partition
(partition de démarrage) de l'image sous la forme /boot/root.tar.gz.
Voici le résumé de l'article « ibm-hyper-protect-container-runtime-1-0-s390x-29 » ( root.tar.gz).
44d9ccbb009ba581a391ec569f4cce97b365c5ca63c47574c3a3168ddb4115b3 root.tar.gz
Voici le résumé de l'article « ibm-hyper-protect-container-runtime-1-0-s390x-28 » ( root.tar.gz).
692f9724bb6c6fb855d6724c903e080998997b3a8aa2350fd5cb95b1c967ea92 root.tar.gz
Voici le shasum du site ibm-hyper-protect-container-runtime-1-0-s390x-26 root.tar.gz.
f700d860d931d953bffa6a7f2593ec53074a757c0184bcfbea0648de7f2b501b root.tar.gz
Voici le shasum du site ibm-hyper-protect-container-runtime-1-0-s390x-25 root.tar.gz.
3c5866a25d0e64c47e56ba29238b96435c6a81933d4e19bf3bc0704c0504d16b root.tar.gz
Voici le shasum du site ibm-hyper-protect-container-runtime-1-0-s390x-24 root.tar.gz.
a93839d82b98323665740a12ca2b30107bd8488e02eb411a6db6c17703b9b5cf root.tar.gz
Voici le shasum du site ibm-hyper-protect-container-runtime-1-0-s390x-23 root.tar.gz.
84ae048bc5d88e99f6ec13b4c4ba3e2ffe5f10285f7dd71a65ea99eaa1838ce0 root.tar.gz
Voici le shasum du site ibm-hyper-protect-container-runtime-1-0-s390x-22 root.tar.gz.
ff09f53f19d0f82ca24d4f2d5277c851516734c3d55ae7f8db47cde378a51ec9 root.tar.gz
Voici le shasum du site ibm-hyper-protect-container-runtime-1-0-s390x-21 root.tar.gz.
024ff109be23e1e4e7b9f07dc553afc60a5a93645939eedf2a936930cc8a44ae root.tar.gz
/dev/disk/by-label/cidata
/dev/disk/by-label/cidata est une unité par bloc connectée à l'instance en cours d'exécution qui contient les fichiers cloud-init fournis par IBM Cloud® Virtual Private Cloud (VPC). Pour plus d'informations sur Cloud-Init, voir
User data ou la documentation cloud-init.
cidata
f95185cc25937c43d0b912cfcae1934996785f5ecbeed07c1cca3cb8cefd4e0e cidata/meta-data
98a916c28414671a04623ee1a6902dda41777fbb0cd56ebb5ab3c5cb399bc163 cidata/user-data
3bee754bb0c58bb691242b0d1787bc5b1f71d22885d9444b581e4b51adecac0d cidata/vendor-data
attestationPublicKey
Le attestationPublicKey est la clé publique que vous fournissez et qui est utilisée pour crypter le document d'attestation. Le site attestationPublicKey fait partie du fichier de données utilisateur. Le cryptage du
document d'attestation est facultatif.
d879515efa1fb1b94bf00f3e03855539d169c54f4beb4dad3fff91b39467c461 contract:attestationPublicKey
calcul du sha de certificate_expiry_date.json
pour calculer la valeur sha256sum de certificate_expiry_date.json:
- prenez le fichier
certificate_expiry_date.jsondans le répertoire :/var/hyperprotect - exécutez la commande suivante :
sha256sum certificate_expiry_date.json - valider le contenu de la sortie avec le fichier
se-checksum.txt
Déchiffrement du document d'attestation
Si les données utilisateur contiennent une clé RSA publique (attribut : attestationPublicKey ), le document d'attestation ( se-checksums.txt ) est alors crypté à l'aide de la clé spécifiée. Le chiffrement est effectué par le même processus que celui du chiffrement de contrat. Pour plus d'informations, voir Chiffrement de contrat. La clé RSA publique elle-même peut également être chiffrée comme le contrat.
Le document d'attestation chiffré est alors nommé se-checksums.txt.enc.
Dans le cas d'un conteneur Docker, le fichier decrypt-attestation.sh est accessible en montant /var/hyperprotect dans le conteneur Docker. Par exemple :
volumes:
- "/var/hyperprotect/:/var/hyperprotect/:ro"
Dans le cas d'un conteneur Podman, le fichier decrypt-attestation.sh est accessible en montant /var/hyperprotect dans le conteneur Podman. Par exemple :
volumeMounts:
- name: attestation
readOnly: true
mountPath: /var/hyperprotect:Z,U
Description des flux d'attestation
Le diagramme suivant illustre deux scénarios d'attestation du point de vue de l'auditeur pour confirmer que le déploiement est celui attendu. La partie gauche du diagramme montre l'établissement de la confiance par l'auditeur qui est enraciné dans une autorité de certification tierce. Toute clé utilisée est conservée dans un service Hyper Protect Crypto Service et signée dans une chaîne de certificats basée sur l'autorité tierce. L'environnement de génération utilisé par Hyper Protect s'exécute dans un environnement d'exécution sécurisé à l'aide d' IBM Secure Execution Technology.
Le résultat est une image d'exécution sécurisée visible à la fin du diagramme, qui est une image d'exécution sécurisée chiffrée. A droite du diagramme, la validation du déploiement est décrite. Pour cela, l'auditeur inclut dans le contrat de charge de travail chiffré de l'instance IBM Hyper Protect, la clé publique d'un secret, sur laquelle seul l'auditeur a le contrôle. Ces secrets peuvent être protégés par des moyens appropriés, comme un Hyper Protect Crypto Service, un HSM ou simplement une clé aléatoire. Seul le chargeur de démarrage Hyper Protect exécuté dans l'environnement d'exécution de confiance fourni par IBM Secure Execution pour Linux sur IBM LinuxONE, peut exécuter l'image d'exécution sécurisée de IBM Cloud Hyper Protect Virtual Servers pour IBM Cloud® Virtual Private Cloud. Le chargeur d'amorçage contient le secret permettant de déchiffrer le contrat.
Lors du démarrage, plusieurs hachages de composants et de mesures de code sont effectués et ajoutés à l'enregistrement d'attestation. Pour protéger davantage cet enregistrement d'attestation, l'enregistrement est chiffré avec la clé publique fournie par l'auditeur. Ainsi, seul l'auditeur est en mesure de déchiffrer l'enregistrement d'attestation et peut valider que la charge de travail déployée dans l'enclave est la version attendue et non modifiée de la charge de travail qui doit être déployée dans l'instance Hyper Protect Virtual Servers pour VPC.
{: caption="attestationProcessus " caption-side="bottom"}'attestation