Testificación
La dirección IBM Cloud Hyper Protect Virtual Servers para VPC está obsoleta. A partir del 28 de febrero de 2026, no se podrán crear nuevas instancias. Las instancias existentes se admitirán hasta el 20 de febrero de 2027. Se eliminarán todas las instancias que aún existan en esa fecha. Puede redistribuir sus cargas de trabajo utilizando IBM Confidential Computing Container Runtime(antes conocido como Hyper Protect Virtual Servers) o IBM Confidential Computing Container Runtime para soluciones de virtualización Red Hat(antes conocido como Hyper Protect Container Runtime para soluciones de virtualización Red Hat). Para obtener información sobre la migración de datos, consulte la Guía de migración. Para más información, consulte el anuncio de eliminación de servicios.
La certificación es un proceso que se inicia de forma predeterminada al crear una instancia virtual, garantiza que la imagen de la instancia del servidor virtual ha sido creada por IBM y que no ha sido modificada. Este proceso también proporciona información y permite la validación de los datos que se proporcionan a la instancia en el momento del despliegue.
Cuando crea una instancia de servidor virtual utilizando la imagen de IBM Hyper Protect Container Runtime, la imagen utiliza un sistema de archivos inicial que está protegido mediante cifrado y firmado por IBM Secure Execution. Para obtener más información, consulte Computación confidencial con LinuxONE. Para obtener más información sobre el proceso de testificación, consulte este vídeo.
El proceso de arranque crea una clave de cifrado de disco raíz exclusiva para garantizar la protección del disco raíz. Para realizar la testificación, la imagen de instancia de servidor virtual contiene una clave de firma de testificación y el hash de la partición raíz en el momento de la compilación. El proceso de arranque valida la partición raíz. Si el hash de la partición raíz no coincide, el proceso de arranque no continúa porque presupone que la imagen se ha modificado antes del arranque. La clave de firma de testificación es una clave RSA 4 K aleatoria firmada por una clave raíz de IBM que se mantiene en Hyper Protect Crypto Services. La clave raíz de IBM está firmada por Digicert.
Durante el despliegue de la instancia de servidor virtual en la nube, se crea un registro de testificación. Contiene hashes de los elementos siguientes:
- La imagen base original
- La partición raíz en el momento del primer arranque
- La partición raíz en el momento de la compilación
- Opciones de inicialización de nube
El registro de testificación está firmado por la clave de testificación. Como capa de protección adicional, puede proporcionar una clave pública durante el despliegue, en la que se cifra el registro de testificación. El hash de esta clave pública se añade al registro de atestación para que el registro sólo pueda ser visto por la autoridad de cumplimiento. La autoridad esperada puede identificarse fácilmente a través de ese hash.
Antes de cargar cualquier carga de trabajo en la instancia, debe validar el registro de testificación. Después de crear una instancia, puede validar el registro de testificación dentro de la instancia creada. La instancia debe tener acceso al
directorio /var/hyperprotect. Si es así, siga estos procedimientos:
- El registro de testificación está firmado por la clave de firma de testificación.
- El certificado intermedio de IBM puede confirmar la clave de firma de testificación. ElIBM El certificado intermedio está firmado porDigiCert, lo cual está demostrado por el certificado raíz deDigiCert, completando así la cadena de confianza.
Los certificados de cifrado y atestación están firmados por el certificado intermedio IBM, que a su vez está firmado por el certificado intermedio IBM Digicert. El certificado intermedio IBM Digicert está firmado por DigiCert Trusted Root G4. Para obtener más información sobre los certificados, consulte DigiCert Certificados de autoridad raíz de confianza.
Utilice el procedimiento siguiente para validar el registro de testificación y los hashes:
- Obtenga el registro de testificación
se-checksums.txty el archivo de firmasse-signature.binde la instancia de Hyper Protect Virtual Servers para VPC. Para ello, puede implementar el contenedor para proporcionar el registro de testificación y el archivo de firmas. El registro de testificación y el archivo de firmas se ponen a disposición del contenedor en el directorio/var/hyperprotect. - Obtenga el certificado de testificación de IBM. La tabla siguiente lista las fechas de caducidad de los certificados de testificación basándose en la versión de la imagen.
A partir del 25 de marzo de 2025, se modifican los enlaces de los certificados.
| Versión de imagen | Enlace al certificado | Fecha de caducidad |
|---|---|---|
ibm-hyper-protect-container-runtime-1-0-s390x-29 |
certificate | 6 de julio de 2027 |
ibm-hyper-protect-container-runtime-1-0-s390x-28 |
certificate | 15 de junio de 2027 |
ibm-hyper-protect-container-runtime-1-0-s390x-26 |
certificate | 24 de febrero de 2027 |
ibm-hyper-protect-container-runtime-1-0-s390x-25 |
certificate | 26 de noviembre de 2026 |
-
Valide el certificado de testificación siguiendo las instrucciones aquí.
-
Extraiga la clave pública de atestación del certificado de atestación mediante el siguiente comando:
openssl x509 -pubkey -noout -in ibm-hyper-protect-container-runtime-1-0-s390x-29-attestation.crt > contract-public-key.pub -
Verifique la firma del registro de testificación:
openssl sha256 -verify contract-public-key.pub -signature se-signature.bin se-checksums.txtLa verificación de firma debe realizarse en un archivo de testificación descifrado.
-
Ahora puede utilizar los hashes del registro de testificación para la validación.
En caso de que haya proporcionado una clave pública para cifrar el registro de testificación, el script siguiente puede ayudarle a descifrar el registro.
#!/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
En el caso de un contenedor Docker, se puede acceder al archivo decrypt-attestation.sh montando /var/hyperprotect en el contenedor Docker. Por ejemplo:
volumes:
- "/var/hyperprotect/:/var/hyperprotect/:ro"
En el caso de un contenedor Podman, se puede acceder al archivo decrypt-attestation.sh montando /var/hyperprotect en el contenedor Podman. Por ejemplo:
volumeMounts:
- name: attestation
readOnly: true
mountPath: /var/hyperprotect:Z,U
El documento de testificación
El documento de testificación está disponible en /var/hyperprotect/se-checksums.txt, dentro de la instancia de Hyper Protect Virtual Servers para VPC. Los otros archivos relacionados también se encuentran en el mismo directorio.
La siguiente información está disponible en el directorio /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
Las sumas de comprobación son el SHA256 del compendio de mensajes y puede calcularlo utilizando la siguiente utilidad comando Linux:
sha256sum <file>
El siguiente fragmento de código es un ejemplo de un documento de testificación:
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 es la información necesaria para obtener un documento de clave de host para la ejecución segura VM. Refleja en qué máquina se está ejecutando actualmente la ejecución segura VM.
baseimage
baseimage es el archivo interno de IBM QEMU Copy On Write Versión 2 (QCOW2), que se utiliza como origen para la mayoría de los archivos del sistema operativo de la imagen de Hyper Protect Container Runtime. Sólo se utiliza en
el momento de la creación de la imagen por el proceso habilitador. El habilitador utiliza esta fuente con otros paquetes de Debian para crear el root.tar.gz y el núcleo de ejecución segura cifrado o una imagen 'initrd'.
A continuación se muestra el resumen del artículo « ibm-hyper-protect-container-runtime-1-0-s390x-29 » ( baseimage):
87cba102a31c9131a5e04c4d555ef93ff4294aa28faedecb7b94bb726e6a9f4a baseimage
A continuación se muestra el resumen del artículo « ibm-hyper-protect-container-runtime-1-0-s390x-28 » ( baseimage):
334549f6dfcf8e0e2132c0eb9a5281e9e0b335e319fe2f66158be5b524acdc48 baseimage
El siguiente es el shasum de la ibm-hyper-protect-container-runtime-1-0-s390x-26 baseimage:
f8614f9f6a39302b97b0a590e14b2e64affddb0f98ef459bf0f8c7f185c98bd5 baseimage
El siguiente es el shasum de la ibm-hyper-protect-container-runtime-1-0-s390x-25 baseimage:
f73df7d02327896fbda67f6e7368c3e27fe5e15b580cdfdb60e7310afeed5b75 baseimage
El siguiente es el shasum de la ibm-hyper-protect-container-runtime-1-0-s390x-24 baseimage:
14d2a725746bf9a6cbf9847e09422f5a97609d03f15b373519a16015619f227d baseimage
El siguiente es el shasum de la ibm-hyper-protect-container-runtime-1-0-s390x-23 baseimage:
3e13f7658ef790dbc040e90ff4f8d537c9c10da879b0b16df9e98265c7b5170a baseimage
El siguiente es el shasum de la ibm-hyper-protect-container-runtime-1-0-s390x-22 baseimage:
538170f79b7bd44553847e81afce7ae14c8ea8857df243e4f8656c9d06d42c18 baseimage
El siguiente es el shasum de la ibm-hyper-protect-container-runtime-1-0-s390x-21 baseimage:
538170f79b7bd44553847e81afce7ae14c8ea8857df243e4f8656c9d06d42c18 baseimage
root.tar.gz
El root.tar.gz es parte de la ejecución final segura que es habilitada por una imagen IBM Hyper Protect Container Runtime y contiene todos los archivos del sistema operativo. Se almacena en la primera partición (partición de arranque)
de la imagen como /boot/root.tar.gz.
A continuación se muestra el «shasum» de la « ibm-hyper-protect-container-runtime-1-0-s390x-29 » root.tar.gz.
44d9ccbb009ba581a391ec569f4cce97b365c5ca63c47574c3a3168ddb4115b3 root.tar.gz
A continuación se muestra el «shasum» de la página ibm-hyper-protect-container-runtime-1-0-s390x-28 root.tar.gz.
692f9724bb6c6fb855d6724c903e080998997b3a8aa2350fd5cb95b1c967ea92 root.tar.gz
El siguiente es el shasum de la ibm-hyper-protect-container-runtime-1-0-s390x-26 root.tar.gz.
f700d860d931d953bffa6a7f2593ec53074a757c0184bcfbea0648de7f2b501b root.tar.gz
El siguiente es el shasum de la ibm-hyper-protect-container-runtime-1-0-s390x-25 root.tar.gz.
3c5866a25d0e64c47e56ba29238b96435c6a81933d4e19bf3bc0704c0504d16b root.tar.gz
El siguiente es el shasum de la ibm-hyper-protect-container-runtime-1-0-s390x-24 root.tar.gz.
a93839d82b98323665740a12ca2b30107bd8488e02eb411a6db6c17703b9b5cf root.tar.gz
El siguiente es el shasum de la ibm-hyper-protect-container-runtime-1-0-s390x-23 root.tar.gz.
84ae048bc5d88e99f6ec13b4c4ba3e2ffe5f10285f7dd71a65ea99eaa1838ce0 root.tar.gz
El siguiente es el shasum de la ibm-hyper-protect-container-runtime-1-0-s390x-22 root.tar.gz.
ff09f53f19d0f82ca24d4f2d5277c851516734c3d55ae7f8db47cde378a51ec9 root.tar.gz
El siguiente es el shasum de la 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 es un dispositivo de bloque que está conectado a la instancia en ejecución que contiene los archivos cloud-init proporcionados por IBM Cloud® Virtual Private Cloud (VPC). Para obtener más información
sobre Cloud-Init, consulte Datos de usuario o la documentación de cloud-init.
cidata
f95185cc25937c43d0b912cfcae1934996785f5ecbeed07c1cca3cb8cefd4e0e cidata/meta-data
98a916c28414671a04623ee1a6902dda41777fbb0cd56ebb5ab3c5cb399bc163 cidata/user-data
3bee754bb0c58bb691242b0d1787bc5b1f71d22885d9444b581e4b51adecac0d cidata/vendor-data
attestationPublicKey
attestationPublicKey es la clave pública que usted proporciona y que se utiliza para cifrar el documento de atestación. La dirección attestationPublicKey forma parte del archivo de datos del usuario. El cifrado del
documento de certificación es opcional.
d879515efa1fb1b94bf00f3e03855539d169c54f4beb4dad3fff91b39467c461 contract:attestationPublicKey
cálculo de sha de certificate_expiry_date.json
para calcular el valor sha256sum de certificate_expiry_date.json:
- tome el archivo
certificate_expiry_date.jsondel directorio:/var/hyperprotect - ejecute el siguiente comando :
sha256sum certificate_expiry_date.json - valide el contenido de salida con el archivo
se-checksum.txt
Descifrado del documento de testificación
Si los datos del usuario contienen una clave RSA pública (atributo: attestationPublicKey ), el documento de certificación ( se-checksums.txt ) se cifra con la clave especificada. El cifrado se realiza mediante el mismo proceso que el cifrado de contrato. Para obtener más información, consulte Cifrado de contrato. La propia clave RSA pública también se puede cifrar como el contrato.
A continuación, el documento de testificación cifrado se denomina se-checksums.txt.enc.
En el caso de un contenedor Docker, se puede acceder al archivo decrypt-attestation.sh montando /var/hyperprotect en el contenedor Docker. Por ejemplo:
volumes:
- "/var/hyperprotect/:/var/hyperprotect/:ro"
En el caso de un contenedor Podman, se puede acceder al archivo decrypt-attestation.sh montando /var/hyperprotect en el contenedor Podman. Por ejemplo:
volumeMounts:
- name: attestation
readOnly: true
mountPath: /var/hyperprotect:Z,U
Visión general de los flujos de testificación
El diagrama siguiente muestra dos escenarios para la testificación desde el punto de vista del auditor para validar que el despliegue es el esperado. El lado izquierdo del diagrama muestra el establecimiento de confianza por parte del auditor que está arraigado en una entidad emisora de certificados de terceros. Cualquier clave utilizada se conserva en un Hyper Protect Crypto Service y se firma en una cadena de certificados basada en la autoridad de terceros. El entorno de compilación utilizado por Hyper Protect se ejecuta en un entorno de ejecución fiable utilizando IBM Secure Execution Technology.
El resultado es una imagen de ejecución segura que se ve al final del diagrama, que es una imagen de ejecución segura cifrada. A la derecha del diagrama, se describe la validación del despliegue. Para ello, el auditor incluye en el contrato de carga de trabajo cifrado de la instancia de IBM Hyper Protect, la clave pública de un secreto, sobre la que solo el auditor tiene control. Estos secretos pueden estar protegidos por medios adecuados, como un Hyper Protect Crypto Service, HSM o simplemente una clave aleatoria. Sólo el gestor de arranque Hyper Protect que se ejecuta en el entorno de ejecución de confianza proporcionado a través de IBM Secure Execution para Linux en IBM LinuxONE, puede ejecutar la imagen de ejecución segura de IBM Cloud Hyper Protect Virtual Servers para IBM Cloud® Virtual Private Cloud. El cargador de arranque contiene el secreto para descifrar el contrato.
Durante el arranque se toman varios hashes de componentes y medidas de código y se añaden al registro de testificación. Para proteger más este registro de testificación, el registro se cifra con la clave pública que ha proporcionado el auditor. Al hacerlo, solo el auditor está en posición de descifrar el registro de testificación y puede validar que la carga de trabajo desplegada en el enclave es la versión esperada y no manipulada de la carga de trabajo que se espera que se despliegue en la instancia de Hyper Protect Virtual Servers para VPC.
{: caption="