

# NitroTPM 증명 문서 가져오기
<a name="attestation-get-doc"></a>

증명 문서는 NitroTPM 증명 프로세스의 핵심 구성 요소입니다. 여기에는 인스턴스의 ID를 확인하고 신뢰할 수 있는 소프트웨어만 실행 중임을 증명하는 데 사용할 수 있는 일련의 암호화 측정값이 포함되어 있습니다. NitroTPM 증명에 대한 기본 지원을 제공하는 AWS KMS에서 증명 문서를 사용하거나 자체 암호화 증명 메커니즘을 빌드할 수 있습니다.

`nitro-tpm-attest` 유틸리티를 사용하면 런타임 중에 Amazon EC2 인스턴스에 대해 서명된 NitroTPM 증명 문서를 검색할 수 있습니다.

Amazon Linux 2023 이미지 설명 샘플은 `/usr/bin/` 디렉터리의 빌드된 이미지에 유틸리티를 자동으로 설치합니다. 이를 통해 하면 AMI를 사용하여 시작된 인스턴스에 유틸리티가 사전 설치됩니다. 유틸리티를 수동으로 설치하지 않아도 됩니다. 자세한 내용은 [Amazon Linux 2023 이미지 설명 샘플 빌드](build-sample-ami.md) 섹션을 참조하세요.

**Topics**
+ [`nitro-tpm-attest` 유틸리티 설치](#nitro-tpm-attest-install)
+ [`nitro-tpm-attest` 유틸리티 사용](#nitro-tpm-attest-use)
+ [NitroTPM 증명 문서](nitrotpm-attestation-document-content.md)
+ [증명 문서 검증](nitrotpm-attestation-document-validate.md)

## `nitro-tpm-attest` 유틸리티 설치
<a name="nitro-tpm-attest-install"></a>

Amazon Linux 2023을 사용하는 경우 다음과 같이 Amazon Linux 리포지토리에서 `nitro-tpm-attest` 유틸리티를 설치할 수 있습니다.

```
sudo yum install aws-nitro-tpm-tools
```

## `nitro-tpm-attest` 유틸리티 사용
<a name="nitro-tpm-attest-use"></a>

유틸리티는 증명 문서를 검색하기 위한 단일 명령(`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-key {{rsa_public_key}} \
--user-data {{user_data}} \
--nonce {{nonce}}
```

RSA 키 페어를 생성하는 방법과 퍼블릭 키를 사용하여 증명을 요청하는 방법을 보여주는 전체 예제는 [nitro-tpm-attest GitHub repo](https://github.com/aws/NitroTPM-Tools/)를 참조하세요.