증명
VPC용 IBM Cloud Hyper Protect Virtual Servers 은 더 이상 사용되지 않습니다. 2026년 2월 28일부터는 새 인스턴스를 만들 수 없습니다. 기존 인스턴스는 2027년 2월 20일까지 지원됩니다. 해당 날짜에 여전히 존재하는 모든 인스턴스는 삭제됩니다. IBM 기밀 컴퓨팅 컨테이너 런타임(이전의 Hyper Protect Virtual Servers ) 또는 IBM 기밀 컴퓨팅 컨테이너 런타임 for Red Hat 가상화 솔루션(이전의 Red Hat 가상화 솔루션용 Hyper Protect 컨테이너 런타임 )을 사용하여 워크로드를 재배치할 수 있습니다. 데이터 마이그레이션에 대한 자세한 내용은 마이그레이션 가이드를 참조하세요. 자세한 내용은 서비스 사용 중단 공지를 참조하세요.
인증은 가상 인스턴스 생성 시 기본적으로 시작되는 프로세스로, 가상 서버 인스턴스 이미지가 실제로 에 IBM 의해 빌드되었으며 수정되지 않았음을 보장합니다. 이 프로세스는 또한 정보를 제공하고 배치 시 인스턴스에 제공되는 데이터의 유효성 검증을 허용합니다.
IBM Hyper Protect Container Runtime 이미지를 사용하여 가상 서버 인스턴스를 작성할 때 이미지는 암호화로 보호되고 IBM Secure Execution에서 서명된 초기 파일 시스템을 사용합니다. 자세한 정보는 LinuxONE을 사용한 기밀 컴퓨팅 을 참조하십시오. 증명 프로세스에 대해 자세히 알려면 이 비디오 를 참조하십시오.
부트 프로세스는 고유 루트 디스크 암호화 키를 작성하여 루트 디스크의 보호를 보장합니다. 증명을 수행하기 위해 가상 서버 인스턴스 이미지에는 빌드 시 루트 파티션의 해시 및 증명 서명 키가 포함됩니다. 부트 프로세스는 루트 파티션의 유효성을 검증합니다. 루트 파티션의 해시가 일치하지 않으면 부트 프로세스는 부트 전에 이미지가 수정되었다고 가정하므로 계속되지 않습니다. 증명 서명 키는 Hyper Protect Crypto Services에서 유지보수되는 IBM 루트 키로 서명되는 무작위 RSA 4K키입니다. IBM 루트 키는 Digicert에 의해 서명됩니다.
클라우드에서 가상 서버 인스턴스를 배치하는 동안 증명 레코드가 작성됩니다. 다음 항목의 해시를 포함합니다.
- 원래 기본 이미지
- 첫 번째 부트 시 루트 파티션
- 빌드 시 루트 파티션
- 클라우드 초기화 옵션
증명 레코드는 증명 키로 서명됩니다. 추가 보호 계층으로서 배치 중에 증명 레코드가 암호화되는 공개 키를 제공할 수 있습니다. 이 공개 키의 해시는 인증 레코드에 추가되어 규정 준수 기관만 레코드를 볼 수 있습니다. 예상되는 권한은 해당 해시를 통해 쉽게 식별할 수 있습니다.
인스턴스에 워크로드를 업로드하기 전에 증명 레코드의 유효성을 검증해야 합니다. 인스턴스가 작성된 후에는 작성된 인스턴스 내에서 증명 레코드의 유효성을 검증할 수 있습니다. 인스턴스에 /var/hyperprotect 디렉토리에 대한 액세스 권한이 있어야 합니다. 이 경우 다음 프로시저를 따르십시오.
- 증명 레코드는 증명 서명 키에 의해 서명됩니다.
- 증명 서명 키는 IBM 중간 인증서로 확인할 수 있습니다. 그만큼IBM 중간 인증서는 다음에 의해 서명됩니다.DigiCert, 이는 루트 인증서로 입증됩니다.DigiCert, 이로써 신뢰의 사슬이 완성됩니다.
암호화 및 증명 인증서는 IBM 중간 인증서로 서명되며, IBM Digicert 중간 인증서로 서명됩니다. IBM Digicert 중간 인증서는 DigiCert 신뢰할 수 있는 루트 G4 에서 서명합니다. 인증서에 대한 자세한 내용은 DigiCert 신뢰할 수 있는 루트 기관 인증서를 참조하세요.
다음 프로시저를 사용하여 증명 레코드 및 해시의 유효성을 검증하십시오.
- 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-29 |
인증서 | 2027년 7월 6일 |
ibm-hyper-protect-container-runtime-1-0-s390x-28 |
인증서 | 2027년 6월 15일 |
ibm-hyper-protect-container-runtime-1-0-s390x-26 |
인증서 | 2027년 2월 24일 |
ibm-hyper-protect-container-runtime-1-0-s390x-25 |
인증서 | 2026년 11월 26일 |
-
여기 의 지시사항에 따라 증명 인증서의 유효성을 검증하십시오.
-
다음 명령을 사용하여 증명 인증서에서 증명 공개 키를 추출합니다:
openssl x509 -pubkey -noout -in ibm-hyper-protect-container-runtime-1-0-s390x-29-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 컨테이너의 경우 Podman 컨테이너에서 /var/hyperprotect 를 마운트하여 decrypt-attestation.sh 파일에 액세스할 수 있습니다. 예를 들면 다음과 같습니다.
volumeMounts:
- name: attestation
readOnly: true
mountPath: /var/hyperprotect:Z,U
증명 문서
증명 문서는 /var/hyperprotect/se-checksums.txt 에서 VPC 인스턴스의 Hyper Protect Virtual Servers 내에 있습니다. 기타 관련 파일도 동일한 디렉토리에 있습니다.
다음 정보는 /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
체크섬은 메시지 다이제스트의 SHA256 이며, 다음 Linux 명령줄 유틸리티를 사용하여 계산할 수 있습니다:
sha256sum <file>
다음 스니펫은 증명 문서의 예입니다.
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 는 보안 실행을 위한 호스트 키 문서를 얻기 위해 필요한 정보입니다 VM. 보안 실행( VM )이 현재 실행 중인 컴퓨터가 반영됩니다.
baseimage
baseimage 은 Hyper Protect Container Runtime 이미지의 대부분의 운영 체제 파일에 대한 소스로 사용되는 IBM 내부 QEMU Copy On Write 버전 2 (QCOW2) 파일입니다. 인에이블러 프로세스에 의해 이미지 빌드 시에만 사용됩니다. 인에이블러는 이 소스를 다른 Debian 패키지와 함께 사용하여 root.tar.gz 및 암호화된 보안
실행 커널 또는 'initrd' 이미지를 생성합니다.
다음은 ‘ ibm-hyper-protect-container-runtime-1-0-s390x-29 ’ baseimage 의 샤솜입니다:
87cba102a31c9131a5e04c4d555ef93ff4294aa28faedecb7b94bb726e6a9f4a baseimage
다음은 ibm-hyper-protect-container-runtime-1-0-s390x-28 baseimage 의 샤솜입니다:
334549f6dfcf8e0e2132c0eb9a5281e9e0b335e319fe2f66158be5b524acdc48 baseimage
다음은 ibm-hyper-protect-container-runtime-1-0-s390x-26 baseimage 의 샤섬입니다:
f8614f9f6a39302b97b0a590e14b2e64affddb0f98ef459bf0f8c7f185c98bd5 baseimage
다음은 ibm-hyper-protect-container-runtime-1-0-s390x-25 baseimage 의 샤섬입니다:
f73df7d02327896fbda67f6e7368c3e27fe5e15b580cdfdb60e7310afeed5b75 baseimage
다음은 ibm-hyper-protect-container-runtime-1-0-s390x-24 baseimage 의 샤섬입니다:
14d2a725746bf9a6cbf9847e09422f5a97609d03f15b373519a16015619f227d baseimage
다음은 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
root.tar.gz
root.tar.gz 은 IBM 하이퍼 프로텍트 컨테이너 런타임 이미지에 의해 활성화되는 최종 보안 실행의 일부이며 모든 운영 체제 파일을 포함합니다. 이미지의 첫 번째 파티션(부팅 파티션)에 /boot/root.tar.gz 로 저장됩니다.
다음은 ibm-hyper-protect-container-runtime-1-0-s390x-29 root.tar.gz 의 샤솜입니다.
44d9ccbb009ba581a391ec569f4cce97b365c5ca63c47574c3a3168ddb4115b3 root.tar.gz
다음은 ibm-hyper-protect-container-runtime-1-0-s390x-28 root.tar.gz 의 샤솜입니다.
692f9724bb6c6fb855d6724c903e080998997b3a8aa2350fd5cb95b1c967ea92 root.tar.gz
다음은 ibm-hyper-protect-container-runtime-1-0-s390x-26 root.tar.gz 의 샤섬입니다.
f700d860d931d953bffa6a7f2593ec53074a757c0184bcfbea0648de7f2b501b root.tar.gz
다음은 ibm-hyper-protect-container-runtime-1-0-s390x-25 root.tar.gz 의 샤섬입니다.
3c5866a25d0e64c47e56ba29238b96435c6a81933d4e19bf3bc0704c0504d16b root.tar.gz
다음은 ibm-hyper-protect-container-runtime-1-0-s390x-24 root.tar.gz 의 샤섬입니다.
a93839d82b98323665740a12ca2b30107bd8488e02eb411a6db6c17703b9b5cf 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
/dev/disk/by-label/cidata
/dev/disk/by-label/cidata 는 IBM Cloud® Virtual Private Cloud (VPC) 에서 제공하는 대로 cloud-init 파일을 포함하는 실행 중인 인스턴스에 연결되는 블록 디바이스입니다. Cloud-Init에 대한 자세한 정보는 사용자 데이터 또는 cloud-init 문서 를 참조하십시오.
cidata
f95185cc25937c43d0b912cfcae1934996785f5ecbeed07c1cca3cb8cefd4e0e cidata/meta-data
98a916c28414671a04623ee1a6902dda41777fbb0cd56ebb5ab3c5cb399bc163 cidata/user-data
3bee754bb0c58bb691242b0d1787bc5b1f71d22885d9444b581e4b51adecac0d cidata/vendor-data
attestationPublicKey
attestationPublicKey 은 증명 문서를 암호화하는 데 사용되는 공개 키입니다. attestationPublicKey 은 사용자 데이터 파일의 일부입니다. 증명 문서를 암호화하는 것은 선택 사항입니다.
d879515efa1fb1b94bf00f3e03855539d169c54f4beb4dad3fff91b39467c461 contract:attestationPublicKey
의 샤 계산 certificate_expiry_date.json
certificate_expiry_date.json 의 sha256sum 값을 계산하려면:
- 디렉토리에서
certificate_expiry_date.json파일을 가져옵니다:/var/hyperprotect - 다음 명령을 실행합니다:
sha256sum certificate_expiry_date.json se-checksum.txt파일로 출력 콘텐츠의 유효성을 검사합니다
증명 문서 복호화
사용자 데이터에 공개 RSA 키(속성: attestationPublicKey )가 포함된 경우, 인증 문서( se-checksums.txt )는 지정된 키로 암호화됩니다. 암호화는 계약 암호화의 프로세스와 동일한 프로세스에 의해 수행됩니다. 자세한 정보는 계약 암호화 를 참조하십시오. 공용 RSA키 자체도 계약과 같이 암호화할 수 있습니다.
그런 다음 암호화된 증명 문서의 이름은 se-checksums.txt.enc 로 지정됩니다.
Docker 컨테이너의 경우 Docker 컨테이너에서 /var/hyperprotect 를 마운트하여 decrypt-attestation.sh 파일에 액세스할 수 있습니다. 예를 들면 다음과 같습니다.
volumes:
- "/var/hyperprotect/:/var/hyperprotect/:ro"
Podman 컨테이너의 경우 Podman 컨테이너에서 /var/hyperprotect 를 마운트하여 decrypt-attestation.sh 파일에 액세스할 수 있습니다. 예를 들면 다음과 같습니다.
volumeMounts:
- name: attestation
readOnly: true
mountPath: /var/hyperprotect:Z,U
증명 플로우 이해
다음 다이어그램은 감사자의 관점에서 증명에 대한 두 가지 시나리오를 표시하여 배치가 예상된 것인지 유효성을 검증합니다. 다이어그램의 왼쪽에는 써드파티 인증 기관에 기반한 감사자의 신뢰 설정이 표시되어 있습니다. 사용되는 키는 Hyper Protect Crypto Service에 보관되며 써드파티 기관을 기반으로 인증서 체인에 서명됩니다. Hyper Protect에서 사용되는 빌드 환경은 IBM Secure Execution Technology를 사용하여 신뢰할 수 있는 실행 환경에서 실행됩니다.
결과는 다이어그램 끝에 표시되는 보안 실행 이미지이며, 이는 암호화된 보안 실행 이미지입니다. 다이어그램의 오른쪽에 배치의 유효성 검증에 대한 개요가 표시됩니다. 이를 위해 감사자는 IBM Hyper Protect 인스턴스의 암호화된 워크로드 계약에 감사자만 제어할 수 있는 시크릿의 공개 키를 포함합니다. 이러한 시크릿은 Hyper Protect Crypto Service, HSM 또는 무작위 키와 같은 적절한 방법으로 보호될 수 있습니다. IBM LinuxONE 에서 Linux 에 대한 IBM 보안 실행을 통해 제공되는 신뢰할 수 있는 실행 환경에서 실행되는 Hyper Protect 부트로더만 IBM Cloud Hyper Protect Virtual Servers 의 보안 실행 이미지를 IBM Cloud® Virtual Private Cloud 에서 실행할 수 있습니다. 부트 로더에는 계약을 복호화하기 위한 시크릿이 포함되어 있습니다.
부팅 중에 구성요소의 여러 해시 및 코드 측정이 수행되어 증명 레코드에 추가됩니다. 이 증명 레코드를 추가로 보호하기 위해 감사자가 제공한 공개 키를 사용하여 레코드가 암호화됩니다. 이를 수행하면 감사자만 증명 레코드를 복호화할 수 있으며 enclave에 배치된 워크로드가 VPC 인스턴스에 대해 Hyper Protect Virtual Servers 에 배치될 것으로 예상되는 워크로드의 예상되는 버전이고 변경되지 않은 버전인지 유효성 검증할 수 있습니다.
{: caption="보여주는 그림증명 프로세스증명 " caption-side="bottom"}