NitroTPM Attestation Document 가져오기
NitroTPM Attestation Document 가져오기
Attestation Document는 NitroTPM attestation 프로세스의 핵심 구성 요소예요. 이 절에서 nitro-tpm-attest 유틸리티를 설치하고 사용해 Attestation Document를 검색하는 방법을 살펴볼게요.
출처: 문서
본문
Attestation Document는 NitroTPM attestation 프로세스의 핵심 구성 요소예요. 이 문서에는 인스턴스의 ID를 확인하고 인스턴스가 신뢰할 수 있는 소프트웨어만 실행하고 있음을 증명하는 데 사용할 수 있는 일련의 암호화 측정값이 포함돼 있어요. Attestation Document는 NitroTPM attestation을 기본 지원하는 AWS KMS와 함께 사용하거나, 자체 암호화 attestation 메커니즘을 구축하는 데 사용할 수 있어요.
nitro-tpm-attest 유틸리티를 사용하면 런타임 중에 Amazon EC2 인스턴스에 대한 서명된 NitroTPM Attestation Document를 검색할 수 있어요.
예시 Amazon Linux 2023 이미지 설명(description)은 빌드된 이미지의 /usr/bin/ 디렉터리에 유틸리티를 자동으로 설치해요. 이는 AMI로 시작된 인스턴스에 유틸리티가 미리 설치되도록 보장해요. 유틸리티를 수동으로 설치할 필요가 없어요. 자세한 내용은 Build the sample Amazon Linux 2023 image description을 참고하세요.
관련 주제
- Install the nitro-tpm-attest utility
- Use the nitro-tpm-attest utility
- NitroTPM Attestation Document
- Validate Attestation Document
nitro-tpm-attest 유틸리티 설치
Amazon Linux 2023을 사용한다면 Amazon Linux 리포지토리에서 nitro-tpm-attest 유틸리티를 다음과 같이 설치할 수 있어요.
sudo yum install aws-nitro-tpm-tools
nitro-tpm-attest 유틸리티 사용
이 유틸리티는 Attestation Document를 검색하는 단일 명령 nitro-tpm-attest를 제공해요. 이 명령은 CBOR(Concise Binary Object Representation)로 인코딩되고 COSE(CBOR Object Signing and Encryption)로 서명된 Attestation Document를 반환해요.
명령을 실행할 때 다음 선택적 매개 변수를 지정할 수 있어요.
public-key— AWS KMS 또는 외부 서비스가 응답 데이터를 반환하기 전에 암호화하는 데 사용할 수 있는 공용 키예요. 이렇게 하면 개인 키를 가진 의도된 수신자만 데이터를 복호화할 수 있어요. 예를 들어 AWS KMS로 attestation을 수행하면 서비스가 Attestation Document의 공용 키로 평문 데이터를 암호화하고, 결과로 나온 암호문을 응답의CiphertextForRecipient필드에 반환해요. RSA 키만 지원돼요.user-data— 사용자 데이터를 사용해 추가 서명 데이터를 외부 서비스에 전달할 수 있어요. 이 사용자 데이터는 요청 인스턴스와 외부 서비스 간에 합의된 프로토콜을 완료하는 데 사용할 수 있어요. AWS KMS attestation에는 사용되지 않아요.nonce— nonce를 사용해 인스턴스와 외부 서비스 사이에 challenge-response 인증을 설정해 가장(impersonation) 공격을 막는 데 도움이 돼요. nonce를 사용하면 외부 서비스가 오래된 Attestation Document를 재사용하는 사칭자가 아니라 실시간 인스턴스와 상호작용하고 있음을 확인할 수 있어요. AWS KMS attestation에는 사용되지 않아요.
Attestation Document를 검색하려면
다음 명령과 선택적 매개 변수를 사용합니다.
/usr/bin/nitro-tpm-attest \
--public-key rsa_public_key \
--user-data user_data \
--nonce nonce
RSA 키 페어를 생성하고 공용 키로 attestation을 요청하는 방법을 보여주는 전체 예시는 nitro-tpm-attest GitHub repo를 참고하세요.