AWS 데이터베이스 암호화에서 지원되는 알고리즘 스위트 SDK - AWS 데이터베이스 암호화 SDK

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS 데이터베이스 암호화에서 지원되는 알고리즘 스위트 SDK

클라이언트 측 암호화 라이브러리는 데이터베이스 암호화로 이름이 변경되었습니다. AWS SDK 이 개발자 안내서는 여전히 DynamoDB Encryption Client에 대한 정보를 제공합니다.

알고리즘 제품군은 암호화 알고리즘 및 관련 값의 모음입니다. 암호화 시스템은 알고리즘 구현을 사용하여 암호문을 생성합니다.

AWS 데이터베이스 암호화는 알고리즘 제품군을 SDK 사용하여 데이터베이스의 필드를 암호화하고 서명합니다. 지원되는 모든 알고리즘 모음은 고급 암호화 표준 (AES) 알고리즘을 갈루이스/카운터 모드 (AESGCM-라고 함GCM) 와 함께 사용하여 원시 데이터를 암호화합니다. AWS 데이터베이스 암호화는 256비트 암호화 키를 지원합니다SDK. 인증 태그의 길이는 항상 16바이트입니다.

AWS 데이터베이스 암호화 알고리즘 제품군 SDK
알고리즘 암호화 알고리즘 데이터 키 길이(비트) 키 유도 알고리즘 대칭 서명 알고리즘 비대칭 서명 알고리즘 키 커밋
기본값 AES-GCM 256 HKDFSHA-512 포함 HMAC- -384 SHA ECDSAP-384 및 -384와 함께 SHA HKDF-512와 함께 SHA
AES- 디지털 서명 GCM 없음 ECDSA AES-GCM 256 HKDF-512와 함께 SHA HMAC- -384 SHA None HKDF-512와 함께 SHA
암호화 알고리즘

사용되는 암호화 알고리즘의 이름 및 모드입니다. AWS 데이터베이스 암호화의 알고리즘 제품군은 Galois/Counter Mode (AES) 와 함께 고급 암호화 표준 () 알고리즘을 SDK 사용합니다. GCM

데이터 키 길이

데이터 키의 길이(비트)입니다. AWS 데이터베이스 암호화는 256비트 데이터 키를 SDK 지원합니다. 데이터 키는 HMAC 기반 extract-and-expand 키 파생 함수 () 에 대한 입력으로 사용됩니다. HKDF 의 HKDF 출력은 암호화 알고리즘의 데이터 암호화 키로 사용됩니다.

키 유도 알고리즘

데이터 암호화 extract-and-expand 키를 도출하는 데 사용되는 HMAC 기반 키 파생 함수 (HKDF). AWS 데이터베이스 암호화는 SDK 5869에 HKDF RFC 정의된 것을 사용합니다.

  • 사용되는 해시 함수는 -512입니다. SHA

  • 추출 단계의 경우:

  • 확장 단계의 경우:

    • 입력 의사 난수 키는 추출 단계의 출력입니다.

    • 키 레이블은 빅엔디안 바이트 순서의 DERIVEKEY 문자열에서 UTF -8로 인코딩된 바이트입니다.

    • 입력 정보는 알고리즘 ID와 키 레이블을 순서대로 연결한 것입니다.

    • 출력 키 구성 요소의 길이는 데이터 키 길이입니다. 이 출력은 암호화 알고리즘에서 데이터 암호화 키로 사용됩니다.

대칭 서명 알고리즘

대칭 서명을 생성하는 데 사용되는 해시 기반 메시지 인증 코드 (HMAC) 알고리즘입니다. 지원되는 모든 알고리즘 제품군에는 검증이 포함됩니다HMAC.

AWS 데이터베이스 암호화는 자료 설명과 ENCRYPT_AND_SIGNSIGN_ONLY, 또는 로 표시된 모든 필드를 SDK 직렬화합니다. SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT 그런 다음 암호화 해시 함수 알고리즘 (SHA-384) HMAC 과 함께 사용하여 정규화에 서명합니다.

대칭 HMAC 서명은 데이터베이스 암호화가 레코드에 추가하는 새 필드 (aws_dbe_foot) 에 저장됩니다. AWS SDK

비대칭 서명 알고리즘

비대칭 디지털 서명을 생성하는 데 사용되는 서명 알고리즘.

AWS 데이터베이스 암호화는 재료 설명과, 또는 로 표시된 ENCRYPT_AND_SIGN 모든 필드를 SDK 직렬화합니다. SIGN_ONLY SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT 그런 다음 타원 곡선 디지털 서명 알고리즘 (ECDSA) 을 사용하여 다음과 같은 세부 사항을 적용하여 정규화에 서명합니다.

  • 사용되는 타원 곡선은 디지털 서명 표준 () (186-4) 에 정의된 P-384 곡선입니다. DSS FIPS PUB

  • 사용되는 해시 함수는 -384입니다. SHA

비대칭 서명은 필드에 HMAC 대칭 ECDSA 서명과 함께 저장됩니다. aws_dbe_foot

ECDSA디지털 서명은 기본적으로 포함되지만 필수는 아닙니다.

키 커밋

HMAC커밋 extract-and-expand 키를 도출하는 데 사용되는 기반 키 파생 함수 (HKDF).

  • 사용되는 해시 함수는 -512입니다. SHA

  • 추출 단계의 경우:

  • 확장 단계의 경우:

    • 입력 의사 난수 키는 추출 단계의 출력입니다.

    • 입력 정보는 빅엔디안 바이트 순서의 COMMITKEY 문자열에서 UTF -8로 인코딩된 바이트입니다.

    • 출력 키 자료의 길이는 256비트입니다. 이 출력은 커밋 키로 사용됩니다.

커밋 키는 자료 설명에 대한 고유한 256비트 해시 기반 메시지 인증 코드 (HMAC) 해시인 레코드 약정을 계산합니다. 알고리즘 제품군에 키 커밋을 추가하는 방법에 대한 기술적인 설명은 암호화 아카이브의 커밋을 참조하십시오. AEADs ePrint

기본적으로 AWS 데이터베이스 암호화는 AES -, HMAC 기반 extract-and-expand 키 파생 함수 (HKDF)GCM, HMAC 확인, ECDSA 디지털 서명, 키 커밋 및 256비트 암호화 키가 포함된 알고리즘 세트를 SDK 사용합니다.

기본 알고리즘 제품군에는 HMAC 확인 (대칭 서명) 및 ECDSA디지털 서명 (비대칭 서명) 이 포함됩니다. 이러한 서명은 데이터베이스 암호화가 레코드에 추가하는 새 필드 (aws_dbe_foot) 에 AWS 저장됩니다. SDK ECDSA디지털 서명은 권한 부여 정책에 따라 특정 사용자 집합은 데이터를 암호화하고 다른 사용자 집합은 데이터를 해독하도록 허용하는 경우에 특히 유용합니다.

또한 기본 알고리즘 제품군은 데이터 키를 레코드에 연결하는 HMAC 해시인 키 약정을 도출합니다. 키 약정 값은 자료 설명 및 커밋 키를 기반으로 HMAC 계산됩니다. 그런 다음 자료 설명에 키 커밋 값을 저장합니다. 키 커밋이 포함된 알고리즘 제품군은 각 사이퍼텍스트가 하나의 일반 텍스트로만 복호화되도록 합니다. 이를 위해 암호화 알고리즘에 대한 입력으로 사용된 데이터 키를 검증합니다. 암호화할 때 알고리즘 제품군은 키 커밋을 도출합니다. HMAC 암호를 해독하기 전에 데이터 키가 동일한 키 약정을 생성하는지 확인합니다. HMAC 그러지 않으면 복호화 호출이 실패합니다.

AES- 디지털 서명 GCM 미포함 ECDSA

기본 알고리즘 제품군이 대부분의 애플리케이션에 적합할 수 있지만 다른 알고리즘 제품군을 선택할 수도 있습니다. 예를 들어, 일부 신뢰 모델은 ECDSA 디지털 서명이 없는 알고리즘 제품군으로도 만족할 수 있습니다. 데이터를 암호화하는 사용자와 데이터를 해독하는 사용자를 동등하게 신뢰할 수 있는 경우에만 이 제품군을 사용하십시오.

모든 AWS 데이터베이스 암호화 SDK 알고리즘 제품군에는 HMAC 검증 (대칭 서명) 이 포함됩니다. 유일한 차이점은 ECDSA 디지털 서명이 없는 AES - GCM 알고리즘 제품군에는 신뢰성과 부인 방지를 위한 추가 계층을 제공하는 비대칭 서명이 없다는 것입니다.

예를 들어,,, 키링에 래핑 키가 여러 개 있는 경우 wrappingKeyA wrappingKeyBwrappingKeyC, 및 를 사용하여 wrappingKeyA 레코드를 복호화하면 HMAC 대칭 서명을 통해 액세스 권한이 있는 사용자가 레코드를 암호화했음을 확인할 수 있습니다. wrappingKeyA 기본 알고리즘 세트를 사용한 경우 동일한 확인을 HMACs 제공하고 추가로 ECDSA 디지털 서명을 사용하여 암호화 권한이 있는 사용자가 레코드를 암호화했는지 확인합니다. wrappingKeyA wrappingKeyA

디지털 서명이 없는 AES - GCM 알고리즘 제품군을 선택하려면 암호화 구성에 다음 스니펫을 포함하십시오.

Java

다음 스니펫은 디지털 서명이 없는 AES - GCM 알고리즘 제품군을 지정합니다. ECDSA 자세한 내용은 SDKDynamoDB용 AWS 데이터베이스 암호화의 암호화 구성 단원을 참조하십시오.

.algorithmSuiteId( DBEAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_SYMSIG_HMAC_SHA384)
C# / .NET

다음 스니펫은 디지털 서명이 없는 AES - GCM 알고리즘 제품군을 지정합니다. ECDSA 자세한 내용은 SDKDynamoDB용 AWS 데이터베이스 암호화의 암호화 구성 단원을 참조하십시오.

AlgorithmSuiteId = DBEAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_SYMSIG_HMAC_SHA384