의 버전AWS Encryption SDK - AWS Encryption SDK

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

의 버전AWS Encryption SDK

이AWS Encryption SDK언어 구현 사용의미 체계 버전 관리각 릴리스의 변경 규모를 쉽게 식별할 수 있도록 하기 위함입니다. 주 버전 번호의 변경 (예: 1)X.X2에서 2까지X.X는 코드 변경 및 계획된 배포가 필요할 수 있는 주요 변경 사항을 나타냅니다. 마이너 버전의 변경 (예:X.1.XX.2.X, 항상 이전 버전과 호환되지만 더 이상 사용되지 않는 요소를 포함할 수 있습니다.

가능하면 최신 버전의 을 사용하십시오.AWS Encryption SDK선택한 프로그래밍 언어로. 이유지 관리 및 지원 정책각 버전마다 프로그래밍 언어 구현에 따라 다릅니다. 선호하는 프로그래밍 언어의 지원 버전에 대한 자세한 내용은 단원을 참조하십시오.SUPPORT_POLICY.rst그 안에 있는 파일GitHub저장소.

업그레이드에 암호화 또는 암호 해독 오류를 방지하기 위해 특수 구성이 필요한 새 기능이 포함되는 경우, 중간 버전과 자세한 사용 지침을 제공합니다. 예를 들어 버전 1.7을 참조하십시오.X그리고 1.8.X1.7 이전 버전에서 업그레이드하는 데 도움이 되는 과도기적 버전으로 설계되었습니다.X을 버전 2.0로 업데이트X가 인 경우. 자세한 내용은 마이그레이션AWS Encryption SDK 단원을 참조하세요.

프로그래밍 언어의 각 버전에 대한 변경 사항에 대한 자세한 설명은 각 저장소의 변경 로그를 참조하십시오.

참고

X의 버전 번호는 메이저 및 마이너 버전의 모든 패치를 나타냅니다. 예를 들어 버전 1.7입니다.X1.7.1 및 1.7.9를 포함하여 1.7로 시작하는 모든 버전을 나타냅니다.

새로운 보안 기능은 원래 에서 릴리스되었습니다.AWS암호화 CLI 버전 1.7버전 버전 1.7X및 2.0.X. 그러나,AWS암호화 CLI 버전 1.8.X버전 1.7을 대체합니다.X과AWS암호화 CLI 2.1.X을 대체합니다.X. 자세한 내용은 관련 단원을 참조하세요.보안 자문에서aws-encryption-sdk-cli리포지토리 GitHub.

다음 목록은 지원되는 버전 간의 주요 차이점을 설명합니다.AWS Encryption SDK.

1.7보다 이전 버전.X

참고

모두 1.X.X의 버전AWS Encryption SDK에 있습니다end-of-support단계. 사용 가능한 최신 버전으로 업그레이드AWS Encryption SDK가능한 한 빨리 프로그래밍 언어를 사용하십시오. 에서 업그레이드하려면AWS Encryption SDK버전 1.7보다 이전 버전.X먼저 1.7로 업그레이드해야 합니다.X. 자세한 내용은 마이그레이션AWS Encryption SDK 단원을 참조하세요.

의 버전AWS Encryption SDK1.7보다 이전XHMAC 기반 갈루아/카운터 모드 (AES-GCM) 의 고급 암호화 표준 알고리즘을 사용한 암호화를 비롯한 중요한 보안 기능 제공 extract-and-expand 키 파생 함수 (HKDF), 서명 및 256비트 암호화 키 그러나 이러한 버전은 지원하지 않습니다.모범 사례다음을 포함하여 권장합니다.주요 약속.

버전 1.7.X

참고

모두 1.X.X의 버전AWS Encryption SDK에 있습니다end-of-support단계.

버전 1.7.X이전 버전의 사용자를 돕기 위해 설계되었습니다.AWS Encryption SDK을 버전 2.로 업그레이드X가 인 경우. 이 제품을 처음 사용하는 경우AWS Encryption SDK, 이 버전을 건너뛰고 사용 가능한 프로그래밍 언어의 최신 버전으로 시작할 수 있습니다.

버전 1.7.X이전 버전과 완전히 호환됩니다. 주요 변경 사항을 도입하거나AWS Encryption SDK. 또한 이전 버전과도 호환되므로 버전 2.0과 호환되도록 코드를 업데이트할 수 있습니다.X. 여기에는 새로운 기능이 포함되지만 완전히 활성화되지는 않습니다. 또한 준비가 되기 전까지는 모든 새 기능을 즉시 채택하지 못하도록 하는 구성 값이 필요합니다.

버전 1.7.X에는 다음과 같은 변경 사항이 포함됩니다.

AWS KMS마스터 키 제공자 업데이트 (필수)

버전 1.7.X에 새로운 생성자를 소개합니다.AWS Encryption SDK for Java과AWS Encryption SDK for Python명시적으로 생성하는AWS KMS둘 중 하나의 마스터 키 제공자엄격한또는발견모드. 이 버전에는 다음과 비슷한 변경 사항이 추가되었습니다.AWS Encryption SDK명령줄 인터페이스 (CLI) 자세한 내용은 업데이트 중AWS KMS마스터 키 제공자 단원을 참조하세요.

  • In엄격 모드,AWS KMS마스터 키 제공자는 래핑 키 목록을 필요로 하며, 지정한 래핑 키만 사용하여 암호화 및 복호화합니다. 이것은AWS Encryption SDK사용하려는 래핑 키를 사용하고 있는지 확인하는 모범 사례입니다.

  • In검색 모드,AWS KMS마스터 키 제공자는 래핑 키를 사용하지 않습니다. 암호화에는 사용할 수 없습니다. 암호를 해독할 때 원하는 래핑 키를 사용하여 암호화된 데이터 키를 해독할 수 있습니다. 하지만 암호 해독에 사용되는 래핑 키를 특정 래핑 키로 제한할 수 있습니다.AWS 계정. 계정 필터링은 선택 사항이지만모범 사례우리가 추천하는 것.

이전 버전을 만드는 생성자AWS KMS마스터 키 공급자는 버전 1.7에서 더 이상 사용되지 않습니다.X버전 2.0에서 제거되었습니다.X. 이러한 생성자는 지정한 래핑 키를 사용하여 암호화하는 마스터 키 제공자를 인스턴스화합니다. 하지만 지정된 래핑 키와 관계없이 암호화된 데이터 키를 암호화한 래핑 키를 사용하여 암호화된 데이터 키를 해독합니다. 사용자가 다음을 포함하여 사용하지 않으려는 래핑 키로 메시지를 실수로 해독할 수 있습니다.AWS KMS keys기타AWS 계정및 리전.

에 대한 생성자는 변경되지 않았습니다.AWS KMS마스터 키. 암호화 및 해독할 때,AWS KMS마스터 키만 사용AWS KMS key지정하는 것

AWS KMS키링 업데이트 (선택 사항)

버전 1.7.X에 새 필터를 추가합니다.AWS Encryption SDK for C과AWS Encryption SDK for JavaScript제한적인 구현AWS KMS검색 키링에게AWS 계정. 이 새 계정 필터는 선택 사항이지만모범 사례우리가 추천하는 것. 자세한 내용은 업데이트 중AWS KMS열쇠 고리 단원을 참조하세요.

에 대한 생성자는 변경되지 않았습니다.AWS KMS열쇠 고리. 표준AWS KMS키링은 엄격 모드에서 마스터 키 제공자처럼 동작합니다.AWS KMS검색 키링은 검색 모드에서 명시적으로 생성됩니다.

키 ID 전달AWS KMSDecrypt

버전 1.7부터 업데이트X, 암호화된 데이터 키를 해독할 때AWS Encryption SDK를 항상 지정AWS KMS key에 대한 호출에서AWS KMS Decrypt작업. 이AWS Encryption SDK의 키 ID 값을 가져옵니다.AWS KMS key암호화된 각 데이터 키의 메타데이터에서 이 기능을 사용할 경우 코드를 변경할 필요가 없습니다.

의 키 ID 지정하기AWS KMS key대칭형 암호화 KMS 키로 암호화된 암호화 텍스트의 암호를 해독할 필요는 없지만AWS KMS모범 사례. 키 제공자에 래핑 키를 지정하는 것과 마찬가지로 이 방법을 사용하면 다음과 같은 이점이 있습니다.AWS KMS사용하려는 래핑 키만 사용하여 암호를 해독합니다.

키 약속으로 암호문을 해독합니다.

버전 1.7.X사용 또는 사용하지 않고 암호화된 암호문을 해독할 수 있음주요 약속. 하지만 키 커밋으로 암호문을 암호화할 수는 없습니다. 이 속성을 사용하면 키 커밋으로 암호화된 암호문을 해독할 수 있는 응용 프로그램을 완전히 배포할 수 있습니다. 이 버전은 키 약정 없이 암호화된 메시지를 해독하므로 암호문을 다시 암호화할 필요가 없습니다.

이 동작을 구현하려면 버전 1.7을 참조하십시오.X새 제품 포함약정 정책여부를 결정하는 구성 설정AWS Encryption SDK키 약정으로 암호화하거나 해독할 수 있습니다. 버전 1.7에서.X, 약정 정책의 유일한 유효 값입니다.ForbidEncryptAllowDecrypt모든 암호화 및 복호화 작업에 사용됩니다. 이 값은AWS Encryption SDK키 약정이 포함된 새로운 알고리즘 제품군 중 하나를 사용한 암호화로부터 그것은 허용합니다AWS Encryption SDK키 약정 유무에 관계없이 암호문을 해독할 수 있습니다.

하지만 버전 1.7에는 유효한 약정 정책 값이 하나뿐입니다.X이 릴리스에 도입된 새 API를 사용할 때는 이 값을 명시적으로 설정할 수 있어야 합니다. 값을 명시적으로 설정하면 약정 정책이 다음과 같이 자동으로 변경되지 않습니다.require-encrypt-require-decrypt버전 2.로 업그레이드X. 대신, 를 할 수 있습니다약정 정책 마이그레이션단계적으로.

주요 약정이 포함된 알고리즘 제품군

버전 1.7.X새 제품 2개 포함알고리즘이는 핵심 약속을 뒷받침합니다. 하나는 서명이 포함되고 다른 하나는 그렇지 않습니다. 이전에 지원되었던 알고리즘 제품군과 마찬가지로 이 두 가지 새로운 알고리즘 제품군에는 AES-GCM을 사용한 암호화, 256비트 암호화 키 및 HMAC 기반 암호화가 포함되어 있습니다. extract-and-expand 키 유도 함수 (HKDF).

하지만 암호화에 사용되는 기본 알고리즘 제품군은 변경되지 않습니다. 이러한 알고리즘 제품군은 버전 1.7에 추가되었습니다.x버전 2.0에서 사용할 수 있도록 애플리케이션을 준비합니다.x가 인 경우.

CMM 구현 변경

버전 1.7.x기본 CMM (암호화 재료 관리자) 인터페이스에 주요 약속을 지원하기 위한 변경 사항을 도입했습니다. 이 변경 사항은 사용자 지정 CMM을 작성한 경우에만 적용됩니다. 자세한 내용은 API 문서를 참조하세요. GitHub 귀하의 리포지토리입니다프로그래밍 언어.

버전 1.8.x

참고

모두 1.x.x의 버전AWS Encryption SDK에 있습니다end-of-support단계.

를 위해AWS암호화 CLI, 버전 1.8.x1.7 이전 버전 간의 전환 버전입니다.x및 버전 2.1x가 인 경우. 를 위해AWS암호화 CLI, 버전 1.8.x이전 버전과 완전히 호환됩니다. 주요 변경 사항을 도입하거나AWS Encryption SDK. 또한 이전 버전과도 호환되므로 버전 2.0과 호환되도록 코드를 업데이트할 수 있습니다.x. 여기에는 새로운 기능이 포함되지만 완전히 활성화되지는 않습니다. 준비가 될 때까지 모든 새 기능을 즉시 채택하지 못하도록 하는 구성 값이 필요합니다.

버전 1.8에 대한 자세한 내용.x의AWS암호화 CLI, 참조버전 1.7.X.

버전 1.9입니다.x

참고

모두 1.X.X의 버전AWS Encryption SDK에 있습니다end-of-support단계.

버전 1.9입니다.X는 버전 2.2에 있는 향상된 디지털 서명 보안 기능을 지원합니다.X. 현재 애플리케이션과 함께 디지털 서명을 사용하고 있는 경우AWS Encryption SDK버전 2.0 이전 버전 2.0.X, 버전 1.9로 업그레이드해야 합니다.X개선 사항을 활용하기 위해

버전 1.9입니다.X또한 신뢰할 수 없는 소스에서 복호화하는 메시지의 암호화된 데이터 키 수를 제한할 수 있습니다. 이 모범 사례 기능을 사용하면 메시지를 암호화할 때 잘못 구성된 마스터 키 제공자 또는 키링을 탐지하거나 메시지를 해독할 때 잠재적인 악성 암호 텍스트를 탐지할 수 있습니다.

을 버전 1.7로 업데이트X, 버전 1.9입니다.X1.7 이전 버전과 이전 버전과 호환됩니다.X및 버전 2.0과 호환됩니다.X가 인 경우. 여기에는 버전 2.0에 있는 새로운 기능이 포함되어 있습니다.X이후 버전이지만 안전한 기본값을 구현합니다. 버전 1.9를 사용하는 경우.X, 버전 2.로 안전하게 업그레이드할 수 있습니다.X. 약정 정책 설정을 마이그레이션하는 자세한 방법은 단원을 참조하십시오.약정 정책 설정.

버전 2.0.X

버전 2.0.X에서 제공되는 새로운 보안 기능을 지원합니다.AWS Encryption SDK지정된 래핑 키 및 키 약정을 포함합니다. 이러한 기능을 지원하려면 버전 2.0을 참조하십시오.X이전 버전의 주요 변경 사항이 포함되어 있습니다.AWS Encryption SDK. 버전 1.7을 배포하여 이러한 변경 사항에 대비할 수 있습니다.X. 버전 2.0.X버전 1.7에 도입된 모든 새로운 기능이 포함되어 있습니다.x다음과 같은 추가 및 변경 사항이 있습니다.

참고

버전 2x.x의AWS Encryption SDK for Python그리고AWS암호화 CLI는end-of-support단계.

에 대한 자세한 내용은지원 및 유지 관리이것의AWS Encryption SDK선호하는 프로그래밍 언어의 버전은 다음을 참조하십시오.SUPPORT_POLICY.rst그 안에 있는 파일GitHub저장소.

AWS KMS마스터 키 제공자

더 오리지널AWS KMS버전 1.7에서 더 이상 사용되지 않는 마스터 키 제공자 생성자x버전 2.0에서 제거되었습니다.x. 명시적으로 구성해야 합니다.AWS KMS의 마스터 키 제공자엄격 모드 또는 검색 모드.

키 커밋을 통한 암호문 암호화 및 암호 해독

버전 2.0.x암호문을 사용하거나 사용하지 않고 암호문을 암호화하고 해독할 수 있습니다.주요 약정. 해당 동작은 약정 정책 설정에 따라 결정됩니다. 기본적으로 항상 키 커밋으로 암호화하고 키 커밋으로 암호화된 암호문만 해독합니다. 약정 정책을 변경하지 않는 한AWS Encryption SDK이전 버전의 암호로 암호화된 암호문을 해독하지 않습니다.AWS Encryption SDK버전 1.7을 포함x.

중요

기본적으로 버전 2.0입니다.x키 약정 없이 암호화된 암호문을 해독하지 않습니다. 애플리케이션에서 키 커밋 없이 암호화된 암호문을 발견할 수 있는 경우 다음과 같이 약정 정책 값을 설정하십시오.AllowDecrypt.

버전 2.0에서.x약정 정책 설정에는 세 가지 유효한 값이 있습니다.

  • ForbidEncryptAllowDecrypt— 더AWS Encryption SDK키 약정으로는 암호화할 수 없습니다. 키 커밋을 사용하거나 사용하지 않고 암호화된 암호문을 해독할 수 있습니다.

  • RequireEncryptAllowDecrypt— 더AWS Encryption SDK키 약정으로 암호화해야 합니다. 키 커밋을 사용하거나 사용하지 않고 암호화된 암호문을 해독할 수 있습니다.

  • RequireEncryptRequireDecrypt(default) —AWS Encryption SDK키 약정으로 암호화해야 합니다. 키 커밋을 사용해야만 암호문을 해독합니다.

이전 버전에서 마이그레이션하는 경우AWS Encryption SDK을 버전 2.0로 업데이트x, 약정 정책을 애플리케이션에서 접할 수 있는 기존 암호문을 모두 해독할 수 있는 값으로 설정하십시오. 이 설정은 시간이 지남에 따라 조정될 수 있습니다.

버전 2.1.x

참고

버전 2x.x의AWS Encryption SDK for Python그리고AWS암호화 CLI는end-of-support단계.

에 대한 자세한 내용은지원 및 유지 관리이것의AWS Encryption SDK선호하는 프로그래밍 언어의 버전은 다음을 참조하십시오.SUPPORT_POLICY.rst그 안에 있는 파일GitHub저장소.

를 위해AWS암호화 CLI, 버전 2.1.x지정된 래핑 키와 키 약정이 포함된 버전입니다. 이는 버전 2.0과 동일합니다.x다른 프로그래밍 언어로 업데이트

버전 2.에 대한 자세한 내용을 참조하십시오.x의AWS암호화 CLI, 참조버전 2.0.X.

버전 2.2.x

디지털 서명 및 암호화된 데이터 키 제한에 대한 지원을 추가합니다.

참고

버전 2x.x의AWS Encryption SDK for Python그리고AWS암호화 CLI는end-of-support단계.

에 대한 자세한 내용은지원 및 유지 관리이것의AWS Encryption SDK선호하는 프로그래밍 언어의 버전은 다음을 참조하십시오.SUPPORT_POLICY.rst그 안에 있는 파일GitHub저장소.

디지털 서명

처리를 개선하기 위해디지털 서명암호 해독 시AWS Encryption SDK에는 다음과 같은 기능이 포함되어 있습니다.

  • 비스트리밍 모드— 디지털 서명이 있는 경우 확인을 포함하여 모든 입력을 처리한 후에만 일반 텍스트를 반환합니다. 이 기능을 사용하면 디지털 서명을 확인하기 전에 일반 텍스트를 사용할 수 없습니다. 디지털 서명으로 암호화된 데이터를 해독할 때마다 이 기능을 사용하십시오 (기본 알고리즘 모음). 예를 들어,AWS암호화 CLI는 항상 스트리밍 모드에서 데이터를 처리합니다.--buffer디지털 서명으로 암호문을 해독하는 경우의 매개 변수

  • 서명되지 않은 전용 암호 해독 모드— 이 기능은 서명되지 않은 암호문만 해독합니다. 암호 해독 시 암호문에서 디지털 서명이 발견되면 작업이 실패합니다. 이 기능을 사용하면 서명을 확인하기 전에 서명된 메시지의 일반 텍스트를 실수로 처리하지 않아도 됩니다.

암호화된 데이터 키 제한

할 수 있습니다암호화된 데이터 키 수 제한암호화된 메시지에서 이 기능을 사용하면 암호화할 때 잘못 구성된 마스터 키 제공자 또는 키링을 탐지하거나 암호 해독 시 악성 암호문을 식별하는 데 도움이 될 수 있습니다.

신뢰할 수 없는 출처의 메시지를 해독할 때는 암호화된 데이터 키를 제한해야 합니다. 이를 통해 주요 인프라에 대한 불필요하고 비용이 많이 들며 잠재적으로 철저한 호출을 방지할 수 있습니다.

버전 2.3.x

에 대한 지원 추가AWS KMS다중 리전 키 자세한 내용은 다중 리전 사용AWS KMS keys 단원을 참조하세요.

참고

이AWS암호화 CLI는 에서 시작하는 다중 리전 키 지원버전 3.0.x.

버전 2x.x의AWS Encryption SDK for Python그리고AWS암호화 CLI는end-of-support단계.

에 대한 자세한 내용은지원 및 유지 관리이것의AWS Encryption SDK선호하는 프로그래밍 언어의 버전은 다음을 참조하십시오.SUPPORT_POLICY.rst그 안에 있는 파일GitHub저장소.

버전 2.4입니다.x

참고

버전 2.x.x의AWS Encryption SDK for Python그리고AWS암호화 CLI는end-of-support단계.

이AWS Encryption SDK for Java버전 2.4.0에 대한 지원 추가AWS SDK for Java 2.x. 버전 2.4.0부터AWS Encryption SDK for Java지원합니다AWS SDK for Java버전 1.x및 버전 2x. 의 사용AWS SDK for Java은 선택 사항입니다. 이AWS Encryption SDK for Java가 필요합니다AWS SDK for Java사용하는 경우에만AWS Key Management Service(AWS KMS) 를 마스터 키 제공자로 사용하십시오.

자세한 내용은 사전 조건 단원을 참조하세요.

버전 3.0.x

참고

버전 3.x.x의AWS암호화 CLI가 켜졌습니다.end-of-support단계.

에 대한 자세한 내용은지원 및 유지 관리이것의AWS Encryption SDK선호하는 프로그래밍 언어의 버전은 다음을 참조하십시오.SUPPORT_POLICY.rst그 안에 있는 파일GitHub저장소.

AWS암호화 CLI 버전 3.0입니다.x에 대한 지원 추가AWS KMS다중 리전 키 자세한 내용은 를 참조하십시오.AWS Key Management Service개발자 안내서. (기타AWS Encryption SDK프로그래밍 언어는 에서 시작하는 다중 리전 키를 지원합니다.버전 2.3.x.)

를 도입했습니다AWS Encryption SDKFfor for 경우.