NitroTPM 증명 문서 가져오기
증명 문서는 NitroTPM 증명 프로세스의 핵심 구성 요소입니다. 여기에는 인스턴스의 ID를 확인하고 신뢰할 수 있는 소프트웨어만 실행 중임을 증명하는 데 사용할 수 있는 일련의 암호화 측정값이 포함되어 있습니다. NitroTPM 증명에 대한 기본 지원을 제공하는 AWS KMS에서 증명 문서를 사용하거나 자체 암호화 증명 메커니즘을 빌드할 수 있습니다.
nitro-tpm-attest 유틸리티를 사용하면 런타임 중에 Amazon EC2 인스턴스에 대해 서명된 NitroTPM 증명 문서를 검색할 수 있습니다.
Amazon Linux 2023 이미지 설명 샘플은 /usr/bin/ 디렉터리의 빌드된 이미지에 유틸리티를 자동으로 설치합니다. 이를 통해 하면 AMI를 사용하여 시작된 인스턴스에 유틸리티가 사전 설치됩니다. 유틸리티를 수동으로 설치하지 않아도 됩니다. 자세한 내용은 Amazon Linux 2023 이미지 설명 샘플 빌드 섹션을 참조하세요.
nitro-tpm-attest 유틸리티 설치
Amazon Linux 2023을 사용하는 경우 다음과 같이 Amazon Linux 리포지토리에서 nitro-tpm-attest 유틸리티를 설치할 수 있습니다.
sudo yum install aws-nitro-tpm-tools
nitro-tpm-attest 유틸리티 사용
유틸리티는 증명 문서를 검색하기 위한 단일 명령(nitro-tpm-attest)을 제공합니다. 이 명령은 Concise Binary Object Representation(CBOR)으로 인코딩되고 CBOR 객체 서명 및 암호화(COSE)를 사용하여 서명된 증명 문서를 반환합니다.
명령을 실행할 때 다음과 같은 선택적 파라미터를 지정할 수 있습니다.
-
public-key- AWS KMS 또는 외부 서비스에서 응답 데이터가 반환되기 전에 응답 데이터를 암호화하는 데 사용할 수 있는 퍼블릭 키. 이를 통해 프라이빗 키를 소유한 의도한 수신자만 데이터를 해독할 수 있습니다. 예를 들어 AWS KMS로 증명하는 경우 이 서비스는 증명 문서의 퍼블릭 키로 일반 텍스트 데이터를 암호화하고 응답의CiphertextForRecipient필드에 결과적으로 생성된 사이퍼텍스트를 반환합니다. RSA 키만 지원됩니다. -
user-data- 사용자 데이터를 사용하여 서명된 추가 데이터를 외부 서비스로 전송할 수 있습니다. 이 사용자 데이터는 요청 인스턴스와 외부 서비스 간에 합의된 프로토콜을 완료하는 데 사용할 수 있습니다. AWS KMS를 사용한 증명에는 사용되지 않습니다. -
nonce- nonce를 사용하여 인스턴스와 외부 서비스 간에 챌린지 및 응답 인증을 설정하여 위장 공격을 방지할 수 있습니다. nonce를 사용하면 외부 서비스가 이전 증명 문서를 재사용하는 위장자가 아닌 활성 인스턴스와 상호 작용하는지 확인할 수 있습니다. AWS KMS를 사용한 증명에는 사용되지 않습니다.
증명 문서를 검색하는 방법
다음 명령과 선택적 파라미터를 사용합니다.
/usr/bin/nitro-tpm-attest \ --public-keyrsa_public_key\ --user-datauser_data\ --noncenonce
RSA 키 페어를 생성하는 방법과 퍼블릭 키를 사용하여 증명을 요청하는 방법을 보여주는 전체 예제는 nitro-tpm-attest GitHub repo