Wrapped Materials Provider - Amazon DynamoDB Encryption Client

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

Wrapped Materials Provider

Wrapped Materials Provider(Wrapped CMP)는 모든 소스에서 가져온 래핑 및 서명 키를 DynamoDB Encryption Client에서 사용할 수 있도록 해줍니다. 래핑된 CMP는 AWS 서비스에 의존하지 않습니다. 그러나, 항목 을 확인하고 암호를 해독하기 위한 올바른 키를 제공하는 것을 포함하여 클라이언트 외부에서 포장 및 서명 키를 생성하고 관리해야 합니다.

래핑된 CMP는 각 항목에 대해 고유한 항목 암호화 키를 생성합니다. 사용자가 제공하는 래핑 키와 항목 암호화 키를 래핑하여 래핑된 항목 암호화 키를 항목의 자료 설명 속성에 저장합니다. 래핑 및 서명 키를 제공하기 때문에 래핑 및 서명 키가 생성되는 방법과 각 품목에 고유한지 또는 재사용되는지 여부를 결정합니다.

래핑된 CMP는 암호화 자료를 관리할 수 있는 애플리케이션에 적합한 안전한 구현입니다.

Wrapped CMP는 DynamoDB Encryption Client에서 지원하는 여러 암호화 자료 공급자(CMP) 중 하나입니다. 다른 CMP에 대한 자세한 내용은 를 참조하십시오. 암호화 자료 공급자 선택 방법.

예제 코드는 단원을 참조하십시오.

사용 방법

랩핑된 CMP를 생성하려면 랩핑 키(암호화에 필요), 랩핑 해제 키(암호 해독에 필요) 및 서명 키 를 지정합니다. 항목을 암호화하고 암호를 해독할 때 키를 제공해야 합니다.

래핑, 언래핑 및 서명 키는 대칭 키 또는 비대칭 키 쌍일 수 있다.

Java
// This example uses asymmetric wrapping and signing key pairs final KeyPair wrappingKeys = ... final KeyPair signingKeys = ... final WrappedMaterialsProvider cmp = new WrappedMaterialsProvider(wrappingKeys.getPublic(), wrappingKeys.getPrivate(), signingKeys);
Python
# This example uses symmetric wrapping and signing keys wrapping_key = ... signing_key = ... wrapped_cmp = WrappedCryptographicMaterialsProvider( wrapping_key=wrapping_key, unwrapping_key=wrapping_key, signing_key=signing_key )

작동 방식

래핑된 CMP는 모든 항목에 대해 새 항목 암호화 키를 생성합니다. 다음 다이어그램과 같이 사용자가 제공하는 포장, 포장 풀기 및 서명 키를 사용합니다.


        의 입력, 처리 및 출력 Wrapped Materials Provider 에서 DynamoDB Encryption Client

암호화 자료 가져오기

이 섹션에서는 랩핑된 자재 공급자(랩핑된 CMP)가 암호화 자재에 대한 요청을 받을 때의 입력, 출력 및 처리에 대해 자세히 설명합니다.

입력(애플리케이션에서)

  • 랩핑 키: 안 고급 암호화 표준 (AES) 대칭 키 또는 예: 공개 키. 속성 값이 암호화된 경우 필요합니다. 그렇지 않으면 선택 사항이며 무시됩니다.

  • 키 포장 풀기: 선택 사항이며 무시되었습니다.

  • 서명 키

입력(항목 암호화 도구에서)

출력(항목 암호화 도구로):

  • 일반 텍스트 항목 암호화 키

  • 서명 키(변경되지 않음)

  • 실재 설명: 이러한 값은 자재 설명 속성 이(가) 항목 에 추가됩니다.

    • amzn-ddb-env-key: Base64 인코딩 래핑 항목 암호화 키

    • amzn-ddb-env-alg: 항목을 암호화하는 데 사용되는 암호화 알고리즘입니다. 기본값은 AES-256-CBC입니다.

    • amzn-ddb-wrap-alg: 래핑된 CMP가 항목 암호화 키를 래핑하는 데 사용한 래핑 알고리즘. 래핑 키가 AES 키이면 이 키는 RFC 3394에 정의된 대로 언패딩된 AES-Keywrap을 사용하여 래핑됩니다. 래핑 키가 RSA 키인 경우 MGF1 패딩이 있는 RSA OAEP를 사용하여 키가 암호화됩니다.

처리 중

품목을 암호화할 때 래핑 키와 서명 키를 통과합니다. 줄바꿈 키는 선택 사항이며 무시됩니다.

  1. 래핑된 CMP는 테이블 항목 에 대한 고유한 대칭 항목 암호화 키를 생성합니다.

  2. 항목 암호화 키 를 래핑하기 위해 지정한 래핑 키를 사용합니다. 그런 다음 가능한 한 빨리 메모리에서 제거합니다.

  3. Wrapped CMP는 일반 텍스트 항목 암호화 키, 제공한 서명 키, 그리고 래핑된 항목 암호화 키와 암호화 및 래핑 알고리즘을 포함하는 실제 자료 설명을 반환합니다.

  4. 물품 암호화 장치는 일반 텍스트 암호화 키를 사용하여 물품을 암호화합니다. 사용자가 제공한 서명 키를 사용하여 항목 에 서명합니다. 그런 다음 가능한 한 빨리 메모리에서 일반 텍스트 키를 제거합니다. 랩핑된 암호화 키(amzn-ddb-env-key). 품목 의 자재 설명 속성에 대한 것입니다.

해독 자료 가져오기

이 섹션에서는 랩핑된 재료 공급자(랩핑된 CMP)가 암호 해독 재료에 대한 요청을 받을 때의 입력, 출력 및 처리에 대해 자세히 설명합니다.

입력(애플리케이션에서)

  • 랩핑 키: 선택 사항이며 무시되었습니다.

  • 키 포장 풀기: 동일함 고급 암호화 표준 (AES) 대칭 키 또는 예: 암호화에 사용되는 RSA 공개 키에 해당하는 개인 키 속성 값이 암호화된 경우 필요합니다. 그렇지 않으면 선택 사항이며 무시됩니다.

  • 서명 키

입력(항목 암호화 도구에서)

출력(항목 암호화 도구로):

  • 일반 텍스트 항목 암호화 키

  • 서명 키(변경되지 않음)

처리 중

항목의 암호를 해독할 때 포장을 풀면서 서명 키 를 전달합니다. 래핑 키는 선택 사항이며 무시됩니다.

  1. 래핑된 CMP는 항목의 재료 설명 속성에서 래핑된 항목 암호화 키를 가져옵니다.

  2. 이 키는 줄바꿈 키와 알고리즘을 사용하여 항목 암호화 키의 줄바꿈을 해제합니다.

  3. 일반 텍스트 항목 암호화 키, 서명 키, 암호화 및 서명 알고리즘을 항목 암호기 에 반환합니다.

  4. 품목 암호화 장치는 서명 키를 사용하여 품목을 확인합니다. 성공하면 항목 암호화 키를 사용하여 항목의 암호를 해독합니다. 그런 다음 가능한 한 빨리 메모리에서 일반 텍스트 키를 제거합니다.