기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS KMS 암호화 필수 요소
AWS KMS 는 구성 가능한 암호화 알고리즘을 사용하여 시스템이 승인된 알고리즘 또는 모드에서 다른 알고리즘으로 빠르게 마이그레이션할 수 있도록 합니다. 암호화 알고리즘의 초기 기본 세트는 보안 속성 및 성능에 대해 연방 정보 처리 표준(FIPS승인됨) 알고리즘에서 선택되었습니다.
엔트로피 및 난수 생성
AWS KMS 키 생성은 에서 수행됩니다 AWS KMS HSMs. 는 NIST SP800-90A Deterministic Random Bit Generator (DRBG) CTR_DRBG using AES-256
대칭 키 작업(암호화만 해당)
내에서 사용되는 모든 대칭 키 암호화 명령은 256비트 키를 HSMs 사용하는 Galois 카운터 모드(AES)의 고급 암호화 표준
AES-GCM 는 인증된 암호화 체계입니다. 일반 텍스트를 암호화하여 암호 텍스트를 생성하는 것 외에도 암호 텍스트 및 인증이 필요한 추가 데이터(추가 인증 데이터 또는 )를 통해 인증 태그를 계산합니다AAD. 인증 태그는 데이터가 의도한 소스에서 온 것이고 암호 텍스트가 수정되지 AAD 않았는지 확인하는 데 도움이 됩니다.
자주, 특히 데이터 키 암호화를 참조할 때 설명AAD에 를 포함하지 AWS 않습니다. 이러한 경우 주변 텍스트는 암호화할 구조가 암호화할 일반 텍스트와 보호할 일반 텍스트 간에 분할된다는 것을 암시AAD합니다.
AWS KMS 는 키 구성 요소를 AWS KMS 생성하는 대신 로 키 구성 요소를 가져올 AWS KMS key 수 있는 옵션을 제공합니다. 가져온 이 키 구성 요소는 RSAES-OAEP
비대칭 키 작업(암호화, 디지털 서명 및 서명 확인)
AWS KMS 는 암호화, 디지털 서명 및 키 계약 작업 모두에 비대칭 키 작업 사용을 지원합니다. 비대칭 키 작업은 암호화 및 복호화, 서명 및 서명 확인 또는 공유 보안 암호 도출에 사용할 수 있는 수학적으로 관련된 퍼블릭 키 및 프라이빗 키 페어에 의존합니다. 프라이빗 키는 암호화 AWS KMS 되지 않은 상태로 두지 않습니다. 작업을 호출 AWS KMS AWS KMS API하여 내부에서 퍼블릭 키를 사용하거나, 퍼블릭 키를 다운로드하여 외부에서 사용할 수 있습니다 AWS KMS.
AWS KMS 는 다음과 같은 비대칭 암호화를 지원합니다.
-
RSA-OAEP (암호화용) 및 RSA-PSS 및 RSA-PKCS-#1-v1_5(서명 및 확인용) - 다양한 보안 요구 사항에 대해 RSA 키 길이(비트): 2048, 3072 및 4096을 지원합니다.
-
타원 곡선(ECC) - 서명 및 확인 또는 공유 보안 암호 도출에 사용되지만 둘 다 사용하는 것은 아닙니다. ECC 곡선 지원: NIST P256, P384, P521, SECP 256k1.
-
SM2 (중국 리전만 해당) - 암호화 및 복호화, 서명 및 확인 또는 공유 보안 암호 도출에 사용되지만 키 사용량을 하나 선택해야 합니다. SM2PKE 암호화 및 SM2DSA 서명을 지원합니다.
키 유도 함수
키 파생 함수는 초기 보안 암호 또는 키에서 추가 키를 파생하는 데 사용됩니다. 는 키 파생 함수(KDF)를 AWS KMS 사용하여 에 따른 모든 암호화에 대한 호출당 키를 파생합니다 AWS KMS key. 모든 KDF 작업은 HMAC [0FIPS197]
AWS KMS 디지털 서명의 내부 사용
디지털 서명은 AWS KMS 엔터티 간에 명령 및 통신을 인증하는 데에도 사용됩니다. 모든 서비스 엔터티에는 타원 곡선 디지털 서명 알고리즘(ECDSA) 키 페어가 있습니다. 암호화 메시지 구문의 타원 곡선 암호화(ECC) 알고리즘 사용(CMS)
봉투 암호화
데이터를 암호화하면 데이터가 보호되지만 암호화 키를 보호해야 합니다. 암호화하는 것도 하나의 전략입니다. 봉투 암호화는 데이터 키로 일반 텍스트 데이터를 암호화한 후, 다른 키 아래에서 데이터 키를 암호화하는 방법입니다.
데이터 암호화 키를 다른 암호화 키로 암호화하고 해당 암호화 키를 다른 암호화 키로 암호화할 수도 있습니다. 그러나 궁극적으로는 키와 데이터를 해독할 수 있도록 하나의 키는 일반 텍스트로 남겨둬야 합니다. 이러한 최상위 일반 텍스트 키 암호화 키를 루트 키라고 합니다.
AWS KMS 는 암호화 키를 안전하게 저장하고 관리하여 이를 보호합니다. 라고 하는 AWS KMS에 저장된 루트 키는 AWS KMS FIPS 절대로 검증된 하드웨어 보안 모듈을
많은 암호화 시스템에 사용되는 기본 구조는 봉투 암호화입니다. 봉투 암호화는 2개 이상의 암호화 키를 사용하여 메시지를 보호합니다. 일반적으로 한 키는 장기 정적 키 k 에서 파생되고 다른 키는 메시지를 암호화하기 위해 생성되는 메시지당 키 msgKey입니다. 엔벨로프는 ciphertext = Encrypt(msgKey, message) 라는 메시지를 암호화하여 형성됩니다. 그런 다음 메시지 키는 장기 정적 키 encKey = Encrypt(k, msgKey) 로 암호화됩니다. 마지막으로 두 값(encKey, 암호 텍스트)은 단일 구조 또는 엔벨로프 암호화 메시지로 패키징됩니다.
k에 대한 액세스 권한이 있는 수신자는 암호화된 키를 먼저 복호화한 다음 메시지를 복호화하여 봉투로 암호화된 메시지를 열 수 있습니다.
AWS KMS 는 이러한 장기 정적 키를 관리하고 데이터의 엔벨로프 암호화 프로세스를 자동화하는 기능을 제공합니다.
AWS EncryptionSDK은 AWS KMS 서비스 내에서 제공되는 암호화 기능 외에도 클라이언트 측 엔벨로프 암호화 라이브러리를 제공합니다. 이 라이브러리를 사용하여 데이터 및 해당 데이터를 암호화하는 데 사용되는 암호화 키를 보호할 수 있습니다.
봉투 암호화는 여러 가지 장점을 제공합니다.
-
데이터 키 보호
데이터 키를 암호화하면 해당 데이터 키의 보안이 암호화에 의해 근본적으로 보호되기 때문에 암호화한 데이터 키의 저장에 대해 고민할 필요가 없습니다. 암호화한 데이터 키를 암호화한 데이터와 함께 안전하게 저장할 수 있습니다.
-
여러 개의 키로 동일한 데이터 암호화
암호화 작업, 특히 암호화되는 데이터가 대용량 객체일 경우 긴 시간이 걸릴 수 있습니다. 서로 다른 키로 원시 데이터를 여러 차례 다시 암호화하는 대신, 원시 데이터를 보호하는 데이터 키만 다시 암호화할 수 있습니다.
-
여러 알고리즘의 강점 결합
일반적으로 대칭 키 알고리즘이 퍼블릭 키 알고리즘보다 빠르고 더 작은 암호화 텍스트를 생성합니다. 그러나 퍼블릭 키 알고리즘은 고유한 역할 구분을 제공하고 키 관리가 더 쉽습니다. 봉투 암호화는 각 전략의 장점을 하나로 결합하게 해 줍니다.
암호화 작업
에서 AWS KMS암호화 작업은 KMS 키를 사용하여 데이터를 보호하는 API 작업입니다. KMS 키는 내에 유지되므로 암호화 작업에서 KMS 키를 사용하려면 AWS KMS 를 호출 AWS KMS해야 합니다.
KMS 키를 사용하여 암호화 작업을 수행하려면 AWS Command Line Interface , AWS SDKs(AWS CLI) 또는 를 사용합니다 AWS Tools for PowerShell. AWS KMS 콘솔에서 암호화 작업을 수행할 수 없습니다. 여러 프로그래밍 언어로 암호화 작업을 호출하는 예는 AWS KMS 사용에 대한 코드 예제 AWS SDKs 섹션을 참조하세요.
다음 표에는 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 설정합니다. 세부 정보는 암호화 작업에 대한 공유 할당량을 참조하세요.