기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
레퍼런스
클라이언트 측 암호화 라이브러리의 이름이 AWS Database Encryption SDK로 변경되었습니다. 이 개발자 안내서는 여전히 DynamoDB Encryption Client에 대한 정보를 제공합니다. |
다음 주제에서는 AWS Database Encryption SDK에 대한 기술 세부 정보를 제공합니다.
자료 설명 형식
자료 설명은 암호화된 레코드의 헤더 역할을 합니다. AWS Database Encryption SDK를 사용하여 필드를 암호화하고 서명하면 암호화 도구는 암호화 자료를 모으는 과정에서 자료 설명을 기록하고 암호화 프로그램이 레코드에 추가하는 새 필드(aws_dbe_head
)에 자료 설명을 저장합니다. 자료 설명은 암호화된 데이터 키와 레코드가 암호화되고 서명된 방법에 대한 정보를 포함하는 이식 가능한 형식의 데이터 구조입니다. 다음 테이블에서는 재료 설명을 구성하는 값을 설명합니다. 표시된 순서대로 바이트가 추가됩니다.
값 | 길이(바이트) |
---|---|
Version | 1 |
Signatures Enabled | 1 |
Record ID | 32 |
Encrypt Legend | 변수 |
Encryption Context Length | 2 |
Encryption Context | 변수 |
Encrypted Data Key Count | 1 |
Encrypted Data Keys | 변수 |
Record Commitment | 1 |
- 버전
-
이
aws_dbe_head
필드 형식의 버전입니다. - 서명 활성화됨
-
이 레코드에 대해 ECDSA 디지털 서명이 활성화되었는지 여부를 인코딩합니다.
바이트 값 의미 0x01
ECDSA 디지털 서명 활성화됨(기본값) 0x00
ECDSA 디지털 서명 비활성화됨 - 레코드 ID
-
레코드를 식별하는 무작위로 생성된 256비트 값입니다. 레코드 ID:
-
암호화된 레코드를 고유하게 식별합니다.
-
자료 설명을 암호화된 레코드에 바인딩합니다.
-
- 범례 암호화
-
인증된 필드가 암호화되고 연재된 설명입니다. 암호화 범례는 복호화 메서드가 복호화를 시도해야 하는 필드를 결정하는 데 사용됩니다.
바이트 값 의미 0x65
ENCRYPT_AND_SIGN
0x73
SIGN_ONLY
암호화 범례는 다음과 같이 연재됩니다.
-
표준 경로를 나타내는 바이트 시퀀스를 기준으로 사전순으로 표시됩니다.
-
각 필드에 대해 위에 지정된 바이트 값 중 하나를 순서대로 추가하여 해당 필드를 암호화해야 하는지 여부를 나타냅니다.
-
- 암호화 컨텍스트 길이
-
암호화 컨텍스트의 길이입니다. 이 값은 부호 없는 16비트 정수로 해석되는 2바이트 값입니다. 최대 길이는 65,535바이트입니다.
- 암호화 컨텍스트
-
비밀이 아닌 임의의 추가 인증 데이터를 포함하는 이름-값 페어 세트입니다.
ECDSA 디지털 서명이 활성화되면 암호화 컨텍스트에 키-값 페어가 포함됩니다
{"aws-crypto-footer-ecdsa-key": Qtxt}
.Qtxt
는 SEC 1 버전 2.0에 따라 Q
압축된 타원 곡선 지점을 표시한 다음 base64로 인코딩됩니다. - 암호화된 데이터 키 수
-
암호화된 데이터 키의 수입니다. 암호화된 데이터 키의 수를 지정하는 무부호 8비트 정수로 해석되는 1바이트 값입니다. 각 레코드의 암호화된 데이터 키의 최대 수는 255개입니다.
- 암호화된 데이터 키
-
암호화된 데이터 키의 시퀀스입니다. 시퀀스의 길이는 암호화된 데이터 키의 수와 각 데이터 키의 길이에 따라 결정됩니다. 시퀀스에는 암호화된 데이터 키가 하나 이상 포함되어 있습니다.
다음 표에서는 암호화된 각 데이터 키를 구성하는 필드에 대해 설명합니다. 표시된 순서대로 바이트가 추가됩니다.
암호화된 데이터 키 구조 필드 길이(바이트) Key Provider ID Length 2 Key Provider ID 변수. 이전 2바이트에 지정된 값(키 공급자 ID 길이)과 동일합니다. Key Provider Information Length 2 Key Provider Information 변수. 이전 2바이트에 지정된 값(키 공급자 정보 길이)과 동일합니다. Encrypted Data Key Length 2 Encrypted Data Key 변수. 이전 2바이트에 지정된 값(암호화된 데이터 키 길이)과 동일합니다. - 키 공급자 ID 길이
-
키 공급자 식별자의 길이입니다. 이 값은 키 공급자 ID가 포함된 바이트 수를 지정하는 부호 없는 16비트 정수로 해석되는 2바이트 값입니다.
- 키 공급자 ID
-
키 공급자 식별자입니다. 암호화된 데이터 키의 공급자를 나타내는 데 사용되며 확장 가능하도록 설계되었습니다.
- 키 공급자 정보 길이
-
키 공급자 정보의 길이입니다. 이 값은 키 공급자 정보가 포함된 바이트 수를 지정하는 부호 없는 16비트 정수로 해석되는 2바이트 값입니다.
- 키 공급자 정보
-
키 공급자 정보입니다. 키 공급자에 의해 결정됩니다.
AWS KMS 키링을 사용하는 경우이 값에는의 Amazon 리소스 이름(ARN)이 포함됩니다 AWS KMS key.
- 암호화된 데이터 키 길이
-
암호화된 데이터 키의 길이입니다. 이 값은 암호화된 데이터 키가 포함된 바이트 수를 지정하는 부호 없는 16비트 정수로 해석되는 2바이트 값입니다.
- 암호화된 데이터 키
-
암호화된 데이터 키입니다. 키 제공자가 암호화한 데이터 키입니다.
- 레코드 약정
-
커밋 키를 사용하여 이전의 모든 자료 설명 바이트에 대해 계산된 고유한 256비트 해시 기반 메시지 인증 코드(HMAC) 해시입니다.
AWS KMS 계층적 키링 기술 세부 정보
AWS KMS 계층적 키링은 고유 데이터 키를 사용하여 각 필드를 암호화하고, 활성 브랜치 키에서 파생된 고유 래핑 키로 각 데이터 키를 암호화합니다. 이 키링은 HMAC SHA-256으로 의사 난수 함수를 통해 카운터 모드에서 키 유도
-
16바이트 무작위 솔트
-
활성 브랜치 키
-
키 공급자 식별자 "aws-kms-hierarchy"의 UTF-8 인코딩된
값
계층적 키링은 파생된 래핑 키를 사용하여 16바이트 인증 태그 및 다음 입력과 함께 AES-GCM-256을 사용하여 일반 텍스트 데이터 키의 사본을 암호화합니다.
-
파생된 래핑 키는 AES-GCM 암호 키로 사용됩니다
-
데이터 키는 AES-GCM 메시지로 사용됩니다
-
12바이트 무작위 초기화 벡터(IV)는 AES-GCM IV로 사용됩니다
-
다음과 같은 직렬화된 값을 포함하는 추가 인증 데이터(AAD)
값 길이(바이트) 다음으로 해석됨 "aws-kms-hierarchy" 17 UTF-8 인코딩 브랜치 키 식별자 변수 UTF-8 인코딩 브랜치 키 버전 16 UTF-8 인코딩 암호화 컨텍스트 변수 UTF-8 인코딩 키-값 페어