기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
로우 ECDH 키링
클라이언트 측 암호화 라이브러리는 데이터베이스 암호화 SDK로 이름이 변경되었습니다. AWS 이 개발자 안내서는 여전히 DynamoDB Encryption Client에 대한 정보를 제공합니다. |
중요
Raw ECDH 키링은 머티리얼 프로바이더 라이브러리 버전 1.5.0에서만 사용할 수 있습니다.
Raw ECDH 키링은 사용자가 제공한 타원 곡선 공개-개인 키 쌍을 사용하여 양 당사자 간의 공유 래핑 키를 도출합니다. 먼저, 키링은 발신자의 개인 키, 수신자의 공개 키, 타원 곡선 Diffie-Hellman (ECDH) 키 계약 알고리즘을 사용하여 공유 암호를 도출합니다. 그런 다음 키링은 공유 암호를 사용하여 데이터 암호화 키를 보호하는 공유 래핑 키를 추출합니다. AWS Database Encryption SDK가 공유 래핑 키를 도출하기 위해 (KDF_CTR_HMAC_SHA384
) 를 사용하는 키 파생 함수는 키 파생에 대한 NIST 권장 사항을 준수합니다.
키 파생 함수는 64바이트의 키 자료를 반환합니다. 양 당사자가 올바른 키 자료를 사용할 수 있도록 AWS Database Encryption SDK는 처음 32바이트를 약정 키로 사용하고 마지막 32바이트를 공유 래핑 키로 사용합니다. 암호 해독 시 암호화된 레코드의 자료 설명 필드에 저장된 것과 동일한 약정 키 및 공유 래핑 키를 키링으로 재생할 수 없는 경우 작업이 실패합니다. 예를 들어 Alice의 개인 키와 Bob의 공개 키로 구성된 키링으로 레코드를 암호화하는 경우 Bob의 개인 키와 Alice의 공개 키로 구성된 키링은 동일한 커밋 키와 공유 래핑 키를 재생하고 레코드를 해독할 수 있습니다. Bob의 공개 키가 AWS KMS key 한 쌍에서 가져온 경우 Bob은 ECDH 키링을 만들어 레코드를 해독할 수 있습니다.AWS KMS
원시 ECDH 키링은 AES-GCM을 사용하여 대칭 키로 레코드를 암호화합니다. 그런 다음 AES-GCM을 사용하여 파생된 공유 래핑 키로 데이터 키를 엔벨로프 암호화합니다. 각 Raw ECDH 키링에는 공유 래핑 키가 하나만 있을 수 있지만 여러 개의 Raw ECDH 키링을 단독으로 또는 다른 키링과 함께 다중 키링에 포함할 수 있습니다.
개인 키를 생성, 저장 및 보호하는 것은 사용자의 책임이며, 가급적이면 하드웨어 보안 모듈 (HSM) 또는 키 관리 시스템에서 개인 키를 생성, 저장 및 보호할 책임이 있습니다. 발신자와 수신자의 키 쌍은 같은 타원 곡선에 있어야 합니다. AWS 데이터베이스 암호화 SDK는 다음과 같은 타원 곡선 사양을 지원합니다.
ECC_NIST_P256
ECC_NIST_P384
ECC_NIST_P512
원시 ECDH 키링 생성
원시 ECDH 키링은 세 가지 주요 계약 스키마 (, 및) 를 지원합니다. RawPrivateKeyToStaticPublicKey
EphemeralPrivateKeyToStaticPublicKey
PublicKeyDiscovery
선택한 키 계약 스키마에 따라 수행할 수 있는 암호화 작업과 키 자료의 조합 방식이 결정됩니다.
RawPrivateKeyToStaticPublicKey
RawPrivateKeyToStaticPublicKey
키 계약 스키마를 사용하여 키링에서 발신자의 개인 키와 수신자의 공개 키를 정적으로 구성할 수 있습니다. 이 키 계약 스키마는 레코드를 암호화하고 해독할 수 있습니다.
RawPrivateKeyToStaticPublicKey
키 계약 스키마를 사용하여 원시 ECDH 키링을 초기화하려면 다음 값을 제공하십시오.
-
발신자의 개인 키
RFC 5958에 정의된 대로 발신자의 PEM 인코딩 개인 키 (PKCS #8 PrivateKeyInfo 구조) 를 제공해야 합니다.
-
수신자의 공개 키
RFC 5280에 정의된 대로 수신자의 DER로 인코딩된 X.509 공개 키
SubjectPublicKeyInfo
(SPKI) 라고도 함) 를 제공해야 합니다.비대칭 키 계약 KMS 키 페어의 퍼블릭 키 또는 외부에서 생성된 키 페어의 퍼블릭 키를 지정할 수 있습니다. AWS
-
커브 사양
지정된 키 페어의 타원 곡선 사양을 식별합니다. 발신자와 수신자의 키 페어 모두 동일한 커브 사양을 가져야 합니다.
유효한 값:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512
EphemeralPrivateKeyToStaticPublicKey
EphemeralPrivateKeyToStaticPublicKey
키 계약 스키마로 구성된 키링은 로컬에서 새 키 쌍을 생성하고 각 암호화 호출에 대해 고유한 공유 래핑 키를 생성합니다.
이 키 계약 스키마는 레코드만 암호화할 수 있습니다. EphemeralPrivateKeyToStaticPublicKey
키 계약 스키마로 암호화된 레코드를 해독하려면 동일한 수신자의 공개 키로 구성된 검색 키 계약 스키마를 사용해야 합니다. 암호를 해독하려면 키 계약 알고리즘과 함께 Raw ECDH 키링을 사용하거나, 수신자의 공개 키가 비대칭 PublicKeyDiscovery키 계약 KMS 키 쌍에서 가져온 경우 키 계약 스키마와 함께 ECDH 키링을 사용할 AWS KMS 수 있습니다. KmsPublicKeyDiscovery
키 계약 스키마를 사용하여 원시 ECDH 키링을 초기화하려면 다음 값을 제공하십시오. EphemeralPrivateKeyToStaticPublicKey
-
수신자의 공개 키
RFC 5280에 정의된 대로 수신자의 DER로 인코딩된 X.509 공개 키
SubjectPublicKeyInfo
(SPKI) 라고도 함) 를 제공해야 합니다.비대칭 키 계약 KMS 키 페어의 퍼블릭 키 또는 외부에서 생성된 키 페어의 퍼블릭 키를 지정할 수 있습니다. AWS
-
커브 사양
지정된 퍼블릭 키의 타원 곡선 사양을 식별합니다.
암호화 시 키링은 지정된 곡선에 새 키 쌍을 생성하고 새 개인 키와 지정된 공개 키를 사용하여 공유 래핑 키를 파생합니다.
유효한 값:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512
PublicKeyDiscovery
복호화할 때는 AWS 데이터베이스 암호화 SDK에서 사용할 수 있는 래핑 키를 지정하는 것이 좋습니다. 이 권장사항을 따르려면 보낸 사람의 개인 키와 받는 사람의 공개 키를 모두 지정하는 ECDH 키링을 사용하십시오. 하지만 원시 ECDH 검색 키링을 만들 수도 있습니다. 즉, 지정된 키의 공개 키가 암호화된 레코드의 자료 설명 필드에 저장된 수신자의 공개 키와 일치하는 경우 모든 레코드를 해독할 수 있는 원시 ECDH 키링을 만들 수도 있습니다. 이 키 계약 스키마는 레코드만 해독할 수 있습니다.
중요
PublicKeyDiscovery
키 계약 스키마를 사용하여 레코드를 해독하면 소유자에 관계없이 모든 공개 키를 수락합니다.
PublicKeyDiscovery
키 계약 스키마를 사용하여 원시 ECDH 키링을 초기화하려면 다음 값을 제공하십시오.
-
수신자의 고정 개인 키
RFC 5958에 정의된 대로 수신자의 PEM 인코딩 개인 키 (PKCS #8 PrivateKeyInfo 구조) 를 제공해야 합니다.
-
커브 사양
지정된 개인 키의 타원 곡선 사양을 식별합니다. 발신자와 수신자의 키 페어 모두 동일한 커브 사양을 가져야 합니다.
유효한 값:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512