기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS Database Encryption SDK에서 지원되는 알고리즘 제품군
클라이언트 측 암호화 라이브러리의 이름이 AWS Database Encryption SDK로 변경되었습니다. 이 개발자 안내서는 여전히 DynamoDB Encryption Client에 대한 정보를 제공합니다. |
알고리즘 제품군은 암호화 알고리즘 및 관련 값의 모음입니다. 암호화 시스템은 알고리즘 구현을 사용하여 사이퍼텍스트를 생성합니다.
AWS Database Encryption SDK는 알고리즘 제품군을 사용하여 데이터베이스의 필드를 암호화하고 서명합니다. 지원되는 모든 알고리즘 제품군은 AES-GCM이라고 하는 Galois/Counter Mode(GCM)와 함께 AES(Advanced Encryption Standard) 알고리즘을 사용하여 원시 데이터를 암호화합니다. AWS Database Encryption SDK는 256비트 암호화 키를 지원합니다. 인증 태그의 길이는 항상 16바이트입니다.
알고리즘 | 암호화 알고리즘 | 데이터 키 길이(비트) | 키 유도 알고리즘 | 대칭 서명 알고리즘 | 비대칭 서명 알고리즘 | 키 커밋 |
---|---|---|---|---|---|---|
Default | AES-GCM | 256 | HKDF(SHA-512 사용) | HMAC-SHA-384 | ECDSA(P-384 및 SHA-384 사용) | HKDF(SHA-512 사용) |
ECDSA 디지털 서명이 없는 AES-GCM | AES-GCM | 256 | HKDF(SHA-512 사용) | HMAC-SHA-384 | 없음 | HKDF(SHA-512 사용) |
- 암호화 알고리즘
-
사용되는 암호화 알고리즘의 이름 및 모드입니다. AWS Database Encryption SDK의 알고리즘 제품군은 Galois/Counter Mode(GCM)와 함께 고급 암호화 표준(AES) 알고리즘을 사용합니다.
- 데이터 키 길이
-
데이터 키의 길이(비트)입니다. AWS Database Encryption SDK는 256비트 데이터 키를 지원합니다. 데이터 키는 HMAC 기반 extract-and-expand 키 유도 함수(HKDF)에 대한 입력으로 사용됩니다. HKDF의 출력은 암호화 알고리즘에서 데이터 암호화 키로 사용됩니다.
- 키 유도 알고리즘
-
데이터 암호화 키를 추출하는 데 사용되는 HMAC 기반 추출 및 확장 키 유도 함수(HKDF)입니다. AWS Database Encryption SDK는 RFC 5869
에 정의된 HKDF를 사용합니다. -
사용되는 해시 함수는 SHA-512입니다.
-
추출 단계의 경우:
-
솔트는 사용하지 않습니다. RFC에 따라 솔트는 0으로 구성된 문자열로 설정됩니다.
-
입력 키 구성 요소는 키링의 데이터 키입니다.
-
-
확장 단계의 경우:
-
입력 의사 난수 키는 추출 단계의 출력입니다.
-
키 레이블은 빅 엔디안 바이트 순서로 UTF-8 인코딩된 바이트
DERIVEKEY
문자열입니다. -
입력 정보는 알고리즘 ID와 키 레이블을 순서대로 연결한 것입니다.
-
출력 키 구성 요소의 길이는 데이터 키 길이입니다. 이 출력은 암호화 알고리즘에서 데이터 암호화 키로 사용됩니다.
-
-
- 대칭 서명 알고리즘
-
대칭 서명을 생성하는 데 사용되는 해시 기반 메시지 인증 코드(HMAC) 알고리즘입니다. 지원되는 모든 알고리즘 제품군에는 HMAC 확인이 포함됩니다.
AWS Database Encryption SDK는 재료 설명과
ENCRYPT_AND_SIGN
,SIGN_ONLY
또는 로 표시된 모든 필드를 직렬화합니다SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
. 그런 다음 HMAC를 암호화 해시 함수 알고리즘(SHA-384)과 함께 사용하여 표준화에 서명합니다.대칭 HMAC 서명은 AWS Database Encryption SDK가 레코드에 추가하는 새 필드(
aws_dbe_foot
)에 저장됩니다. - 비대칭 서명 알고리즘
-
비대칭 디지털 서명을 생성하는 데 사용되는 서명 알고리즘입니다.
AWS Database Encryption SDK는 재료 설명과
ENCRYPT_AND_SIGN
,SIGN_ONLY
또는 로 표시된 모든 필드를 직렬화합니다SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
. 그런 다음 다음 다음 세부 정보와 함께 타원 곡선 디지털 서명 알고리즘(ECDSA)을 사용하여 표준화에 서명합니다.-
사용되는 타원 곡선은 디지털 서명 표준(DSS)(FIPS PUB 186-4)에 정의된 P-384입니다. http://doi.org/10.6028/NIST.FIPS.186-4
-
사용되는 해시 함수는 SHA-384입니다.
비대칭 ECDSA 서명은
aws_dbe_foot
필드에 대칭 HMAC 서명과 함께 저장됩니다.ECDSA 디지털 서명은 기본적으로 포함되지만 필수는 아닙니다.
-
- 키 커밋
-
커밋 키를 추출하는 데 사용되는 HMAC 기반 extract-and-expand 키 파생 함수(HKDF)입니다.
-
사용되는 해시 함수는 SHA-512입니다.
-
추출 단계의 경우:
-
솔트는 사용하지 않습니다. RFC에 따라 솔트는 0으로 구성된 문자열로 설정됩니다.
-
입력 키 구성 요소는 키링의 데이터 키입니다.
-
-
확장 단계의 경우:
-
입력 의사 난수 키는 추출 단계의 출력입니다.
-
입력 정보는
COMMITKEY
문자열의 UTF-8-encoded바이트이며 빅 엔디안 바이트 순서입니다. -
출력 키 구성 요소의 길이는 256비트입니다. 이 출력은 커밋 키로 사용됩니다.
-
커밋 키는 재료 설명에 대해 고유한 256비트 해시 기반 메시지 인증 코드(HMAC) 해시인 레코드 커밋을 계산합니다. 알고리즘 제품군에 키 커밋을 추가하는 방법에 대한 기술적인 설명은 Cryptology ePrint Archive의 키 커밋 AEAD
를 참조하세요. -
기본 알고리즘 제품군
기본적으로 AWS Database Encryption SDK는 AES-GCM, HMAC 기반 extract-and-expand 키 유도 함수(HKDF), HMAC 확인, ECDSA 디지털 서명, 키 커밋 및 256비트 암호화 키가 있는 알고리즘 제품군을 사용합니다.
기본 알고리즘 제품군에는 HMAC 확인(대칭 서명) 및 ECDSA 디지털 서명(대칭 서명)이 포함됩니다. 이러한 서명은 AWS Database Encryption SDK가 레코드에 추가하는 새 필드(aws_dbe_foot
)에 저장됩니다. ECDSA 디지털 서명은 권한 부여 정책에서 한 사용자 집합이 데이터를 암호화하고 다른 사용자 집합이 데이터를 복호화하도록 허용하는 경우에 특히 유용합니다.
기본 알고리즘 제품군은 데이터 키를 레코드에 연결하는 HMAC 해시인 키 커밋도 도출합니다. 키 커밋 값은 재료 설명 및 커밋 키에서 계산된 HMAC입니다. 그런 다음 자료 설명에 키 커밋 값을 저장합니다. 키 커밋이 포함된 알고리즘 제품군은 각 사이퍼텍스트가 하나의 일반 텍스트로만 복호화되도록 합니다. 이를 위해 암호화 알고리즘에 대한 입력으로 사용된 데이터 키를 검증합니다. 암호화할 때 알고리즘 제품군은 키 커밋 HMAC를 도출합니다. 암호를 복호화하기 전에 데이터 키가 동일한 키 커밋 HMAC를 생성하는지 확인합니다. 그러지 않으면 복호화 호출이 실패합니다.
ECDSA 디지털 서명이 없는 AES-GCM
기본 알고리즘 제품군은 대부분의 애플리케이션에 적합할 수 있지만 대체 알고리즘 제품군을 선택할 수 있습니다. 예를 들어 일부 신뢰 모델은 ECDSA 디지털 서명이 없는 알고리즘 제품군에 만족합니다. 이 제품군은 데이터를 암호화하는 사용자와 데이터를 해독하는 사용자가 동일하게 신뢰할 수 있는 경우에만 사용합니다.
모든 AWS Database Encryption SDK 알고리즘 제품군에는 HMAC 확인(대칭 서명)이 포함됩니다. 유일한 차이점은 ECDSA 디지털 서명이 없는 AES-GCM 알고리즘 제품군에 추가적인 신뢰성 계층과 거부 방지를 제공하는 비대칭 서명이 없다는 것입니다.
예를 들어 키링, wrappingKeyC
, wrappingKeyB
및에 래핑 키가 여러 wrappingKeyA
개 있고를 사용하여 레코드wrappingKeyA
를 복호화하는 경우 HMAC 대칭 서명은에 액세스할 수 있는 사용자가 레코드를 암호화했는지 확인합니다wrappingKeyA
. 기본 알고리즘 제품군을 사용한 경우 HMACs에 대해 동일한 확인을 제공하고 wrappingKeyA
ECDSA 디지털 서명을 추가로 사용하여에 대한 암호화 권한이 있는 사용자가 레코드를 암호화했는지 확인합니다wrappingKeyA
.
디지털 서명이 없는 AES-GCM 알고리즘 제품군을 선택하려면 암호화 구성에 다음 코드 조각을 포함합니다.