기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS KMS 암호화 필수 요소
AWS KMS 는 구성 가능한 암호화 알고리즘을 사용하여 시스템이 승인된 알고리즘 또는 모드에서 다른 알고리즘으로 빠르게 마이그레이션할 수 있도록 합니다. 초기 기본 암호화 알고리즘 세트는 보안 속성과 성능을 지원하기 위해 Federal Information Processing Standard(FIPS 승인) 알고리즘에서 선택되었습니다.
엔트로피 및 난수 생성
AWS KMS 키 생성은 AWS KMS HSMs에서 수행됩니다. HSM은 AES-256을 사용한 NIST SP800-90A Deterministic Random Bit Generator(DRBG) CTR_DRBG
대칭 키 작업(암호화만 해당)
HSM에서 사용되는 모든 대칭 키 암호화 명령은 256비트 키를 사용한 Galois Counter Mode(GCM)
AES-GCM은 인증된 암호화 체계입니다. 암호화 텍스트를 생성하기 위해 일반 텍스트를 암호화하는 것 외에 암호문과 인증이 필요한 추가 데이터(추가로 인증된 데이터 또는 AAD)를 통해 인증 태그를 계산합니다. 이 인증 태그는 데이터가 취합된 소스로부터 얻어진 것이며 암호화 텍스트와 AAD가 수정되지 않았음을 확인하는 데 유용합니다.
자주, 특히 데이터 키 암호화를 참조할 때 설명에 AAD를 포함하지 AWS 않습니다. 암호화할 구조가 암호화될 일반 텍스트와 보호할 일반 텍스트 AAD로 분할되는 이 같은 경우에는 주변 텍스트에 의해 암시됩니다.
AWS KMS 는 키 구성 요소를 AWS KMS 생성하는 대신 로 키 구성 요소를 가져올 AWS KMS key 수 있는 옵션을 제공합니다. 가져온이 키 구성 요소는 RSAES-OAEP
비대칭 키 작업(암호화, 디지털 서명 및 서명 확인)
AWS KMS 는 암호화, 디지털 서명 및 키 계약 작업 모두에 비대칭 키 작업 사용을 지원합니다. 암호화 및 암호 해독, 서명 및 서명 확인 또는 공유 비밀 도출에 사용할 수 있는 수학적으로 관련된 퍼블릭 키 및 프라이빗 키 페어를 사용합니다. 프라이빗 키는 암호화 AWS KMS 되지 않은 상태로 두지 않습니다. AWS KMS API 작업을 호출 AWS KMS 하여 내에서 퍼블릭 키를 사용하거나 퍼블릭 키를 다운로드하여 외부에서 사용할 수 있습니다 AWS KMS.
AWS KMS 는 다음과 같은 비대칭 암호를 지원합니다.
-
RSA-OAEP(암호화용) 및 RSA-PSS와 RSA-PKCS-#1-v1_5(서명 및 확인용) - 다양한 보안 요구 사항에 맞게 2,048, 3,072, 4,096의 RSA 키 길이(비트 단위)를 지원합니다.
-
타원 곡선(ECC)- 서명 및 확인 또는 공유 비밀 도출에 사용되지만 둘 다에 사용되는 것은 아닙니다. ECC 곡선: NIST P256, P384, P521, SECP 256k1을 지원합니다.
-
SM2(중국 리전만 해당) - 암호화 및 복호화, 서명 및 확인 또는 공유 비밀 도출에 사용되지만 이러한 키 사용 중에서 하나를 선택해야 합니다. 암호화를 위해 SM2PKE를 지원하고 서명을 위해 SM2DSA를 지원합니다.
키 유도 함수
키 도출 함수는 초기 보안 암호 또는 키에서 추가 키를 도출하는 데 사용됩니다.는 키 도출 함수(KDF)를 AWS KMS 사용하여 아래의 모든 암호화에 대한 호출당 키를 도출합니다 AWS KMS key. 모든 KDF 작업에는 HMAC [FIPS197]
AWS KMS 디지털 서명의 내부 사용
디지털 서명은 AWS KMS 엔터티 간에 명령 및 통신을 인증하는 데에도 사용됩니다. 모든 서비스 엔터티에는 타원 곡선 디지털 서명 알고리즘(ECDSA) 키 페어가 있습니다. 이 키 페어는 Use of Elliptic Curve Cryptography(ECC) Algorithms in Cryptographic Message Syntax(CMS)
봉투 암호화
데이터를 암호화하면 데이터가 보호되지만 암호화 키를 보호해야 합니다. 암호화하는 것도 하나의 전략입니다. 봉투 암호화는 데이터 키로 일반 텍스트 데이터를 암호화한 후, 다른 키 아래에서 데이터 키를 암호화하는 방법입니다.
데이터 암호화 키를 다른 암호화 키로 암호화하고 해당 암호화 키를 다른 암호화 키로 암호화할 수도 있습니다. 그러나 궁극적으로는 키와 데이터를 해독할 수 있도록 하나의 키는 일반 텍스트로 남겨둬야 합니다. 이러한 최상위 일반 텍스트 키 암호화 키를 루트 키라고 합니다.

AWS KMS 를 사용하면 암호화 키를 안전하게 저장하고 관리하여 암호화 키를 보호할 수 있습니다. 로 알려진 AWS KMS에 저장된 루트 키는 AWS KMS FIPS 140-3 보안 수준 3 검증 하드웨어 보안 모듈을
많은 암호화 시스템에 사용되는 기본 구조는 봉투 암호화입니다. 봉투 암호화는 2개 이상의 암호화 키를 사용하여 메시지를 보호합니다. 일반적으로 키 중 하나는 장기 정적 키 k에서 추출되며, 다른 하나는 메시지를 암호화하기 위해 생성되는 메시지별 키 msgKey입니다. 봉투는 ciphertext = Encrypt(msgKey, message)와 같이 메시지를 암호화하여 구성됩니다. 그런 다음 encKey = Encrypt(k, msgKey)와 같이 메시지 키가 장기 정적 키로 암호화됩니다. 마지막으로, (encKey, ciphertext)라는 두 값이 단일 구조 또는 봉투 암호화 메시지로 패키징됩니다.
k에 대한 액세스 권한이 있는 수신자는 암호화된 키를 먼저 복호화한 다음 메시지를 복호화하여 봉투로 암호화된 메시지를 열 수 있습니다.
AWS KMS 는 이러한 장기 정적 키를 관리하고 데이터의 봉투 암호화 프로세스를 자동화하는 기능을 제공합니다.
AWS Encryption SDK는 AWS KMS 서비스 내에서 제공되는 암호화 기능 외에도 클라이언트 측 봉투 암호화 라이브러리를 제공합니다. 이 라이브러리를 사용하여 데이터 및 해당 데이터를 암호화하는 데 사용되는 암호화 키를 보호할 수 있습니다.

봉투 암호화는 여러 가지 장점을 제공합니다.
-
데이터 키 보호
데이터 키를 암호화하면 해당 데이터 키의 보안이 암호화에 의해 근본적으로 보호되기 때문에 암호화한 데이터 키의 저장에 대해 고민할 필요가 없습니다. 암호화한 데이터 키를 암호화한 데이터와 함께 안전하게 저장할 수 있습니다.
-
여러 개의 키로 동일한 데이터 암호화
암호화 작업, 특히 암호화되는 데이터가 대용량 객체일 경우 긴 시간이 걸릴 수 있습니다. 서로 다른 키로 원시 데이터를 여러 차례 다시 암호화하는 대신, 원시 데이터를 보호하는 데이터 키만 다시 암호화할 수 있습니다.
-
여러 알고리즘의 강점 결합
일반적으로 대칭 키 알고리즘이 퍼블릭 키 알고리즘보다 빠르고 더 작은 암호화 텍스트를 생성합니다. 그러나 퍼블릭 키 알고리즘은 고유한 역할 구분을 제공하고 키 관리가 더 쉽습니다. 봉투 암호화는 각 전략의 장점을 하나로 결합하게 해 줍니다.
암호화 작업
에서 AWS KMS암호화 작업은 KMS 키를 사용하여 데이터를 보호하는 API 작업입니다. KMS 키는 내에 유지되므로 암호화 작업에서 KMS 키를 AWS KMS 사용하려면를 호출 AWS KMS해야 합니다.
KMS 키로 암호화 작업을 수행하려면 AWS SDKs, AWS Command Line Interface (AWS CLI) 또는를 사용합니다 AWS Tools for PowerShell. AWS KMS 콘솔에서 암호화 작업을 수행할 수 없습니다. 여러 프로그래밍 언어로 암호화 작업을 호출하는 예는 AWS SDKs AWS KMS 사용에 대한 코드 예제 섹션을 참조하세요.
다음 표에는 AWS KMS 암호화 작업이 나열되어 있습니다. 또한 작업에 사용되는 KMS 키의 키 유형 및 키 사용 요구 사항을 보여줍니다.
Operation | 키 유형 | 키 사용 |
---|---|---|
Decrypt | 대칭 또는 비대칭 | ENCRYPT_DECRYPT |
DeriveSharedSecret | 비대칭 | KEY_AGREEMENT |
암호화 | 대칭 또는 비대칭 | ENCRYPT_DECRYPT |
GenerateDataKey | 대칭 | ENCRYPT_DECRYPT |
GenerateDataKeyPair | 대칭 [1] 사용자 지정 키 스토어의 KMS 키에서는 지원되지 않습니다. |
ENCRYPT_DECRYPT |
GenerateDataKeyPairWithoutPlaintext | 대칭 [1] 사용자 지정 키 스토어의 KMS 키에서는 지원되지 않습니다. |
ENCRYPT_DECRYPT |
GenerateDataKeyWithoutPlaintext | 대칭 | ENCRYPT_DECRYPT |
GenerateMac | HMAC | GENERATE_VERIFY_MAC |
GenerateRandom | 해당 없음. 이 작업은 KMS 키를 사용하지 않습니다. | N/A |
ReEncrypt | 대칭 또는 비대칭 | ENCRYPT_DECRYPT |
Sign | 비대칭 | SIGN_VERIFY |
Verify | 비대칭 | SIGN_VERIFY |
VerifyMac | HMAC | GENERATE_VERIFY_MAC |
[1] 대칭 암호화 KMS 키로 보호되는 비대칭 데이터 키 페어를 생성합니다.
암호화 작업과 관련한 권한에 대한 자세한 내용은 AWS KMS 권한를 참조하세요.
모든 사용자에게 AWS KMS 응답성과 높은 기능을 제공하기 위해는 초당 호출되는 암호화 작업 수에 대한 할당량을 AWS KMS 설정합니다. 세부 정보는 암호화 작업에 대한 공유 할당량을 참조하세요.