Versiones del AWS Encryption SDK - AWS Encryption SDK

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Versiones del AWS Encryption SDK

Las implementaciones del AWS Encryption SDK lenguaje utilizan el control de versiones semántico para facilitar la identificación de la magnitud de los cambios en cada versión. Un cambio en el número de la versión principal, como 1.x.x a 2.x.x, indica un cambio importante que probablemente requiera cambios en el código y una implementación planificada. Es posible que los cambios importantes en una nueva versión no afecten a todos los casos de uso; consulta las notas de la versión para ver si te afectan a ti. Un cambio en una versión secundaria, como x.1.x a x.2.x, siempre es compatible con versiones anteriores, pero puede incluir elementos obsoletos.

Siempre que sea posible, usa la última versión del lenguaje AWS Encryption SDK de programación que hayas elegido. La política de mantenimiento y soporte de cada versión difiere entre las implementaciones del lenguaje de programación. Para obtener más información sobre las versiones compatibles en su lenguaje de programación preferido, consulte el SUPPORT_POLICY.rst archivo en su GitHubrepositorio.

Cuando las actualizaciones incluyen nuevas características que requieren una configuración especial para evitar errores de cifrado o descifrado, proporcionamos una versión intermedia e instrucciones detalladas para su uso. Por ejemplo, las versiones 1.7.x y 1.8.x están diseñadas para ser versiones de transición que le ayudan a actualizar desde versiones anteriores a la 1.7 x a las versiones 2.0.x y posteriores. Para obtener más detalles, consulte Migración de su AWS Encryption SDK.

nota

La x del número de versión representa cualquier parche de la versión principal y secundaria. Por ejemplo, la versión 1.7.x representa todas las versiones que comienzan por 1.7, incluidas la 1.7.1 y la 1.7.9.

Las nuevas funciones de seguridad se publicaron originalmente en la CLI versión 1.7 de AWS Encryption. x y 2.0. x. Sin embargo, la CLI versión 1.8 de AWS Encryption. x reemplaza a la versión 1.7. x y AWS Encryption CLI 2.1. x reemplaza a 2.0. x. Para obtener más información, consulte el aviso de seguridad correspondiente en el aws-encryption-sdk-clirepositorio de GitHub.

En las siguientes tablas se ofrece una visión general de las principales diferencias entre las versiones compatibles AWS Encryption SDK de cada lenguaje de programación.

C

Para obtener una descripción detallada de todos los cambios, consulte el CHANGELOGarchivo.md en el aws-encryption-sdk-crepositorio de. GitHub

Versión principal Detalles SDKfase del ciclo de vida de la versión principal
1.x 1.0 Versión inicial. Fase de fin de soporte
1.7 Actualizaciones de la AWS Encryption SDK que ayudan a los usuarios de versiones anteriores a actualizar a la versión 2.0. x y versiones posteriores. Para obtener más información, consulte la versión 1.7. x.
2.x 2.0 Actualizaciones de AWS Encryption SDK. Para obtener más información, consulte la versión 2.0. x. Disponibilidad general (GA)
2.2 Mejoras en el proceso de descifrado de mensajes.
2.3 Añade compatibilidad con claves AWS KMS multirregionales.

C#/. NET

Para obtener una descripción detallada de todos los cambios, consulta el CHANGELOGarchivo.md en el aws-encryption-sdk-netrepositorio de. GitHub

Versión principal Detalles SDKfase del ciclo de vida de la versión principal
3.x 3.0 Versión inicial.

Disponibilidad general (GA)

Versión 3.x del formulario. AWS Encryption SDK NETentrará en modo de mantenimiento el 13 de mayo de 2024.

4.x 4.0 Añade compatibilidad con el anillo de claves AWS KMS jerárquico, el contexto de cifrado requerido y los anillos de claves CMM asimétricos. RSA AWS KMS Disponibilidad general (GA)

Interfaz de línea de comandos () CLI

Para obtener una descripción detallada de todos los cambios, consulte Versiones de la CLI de cifrado del AWS y el CHANGELOGarchivo.rst del aws-encryption-sdk-clirepositorio en. GitHub

Versión principal Detalles SDKfase del ciclo de vida de la versión principal
1.x 1.0 Versión inicial. Fase de fin de soporte
1.7 Actualizaciones de la AWS Encryption SDK que ayudan a los usuarios de versiones anteriores a actualizar a la versión 2.0. x y versiones posteriores. Para obtener más información, consulte la versión 1.7. x.
2.x 2.0 Actualizaciones de AWS Encryption SDK. Para obtener más información, consulte la versión 2.0. x. Fase de fin de soporte
2.1

Elimina el --discovery parámetro y lo reemplaza por el discovery atributo del --wrapping-keys parámetro.

La versión 2.1.0 del AWS cifrado CLI es equivalente a la versión 2.0 en otros lenguajes de programación.

2.2 Mejoras en el proceso de descifrado de mensajes.
3.x 3.0 Añade compatibilidad con claves AWS KMS multirregionales. Fase de fin de soporte
4.x 4.0 El AWS cifrado ya CLI no es compatible con Python 2 o Python 3.4. A partir de la versión principal 4. x del AWS cifradoCLI, solo se admite Python 3.5 o posterior. Disponibilidad general (GA)
4.1 El AWS cifrado ya CLI no es compatible con Python 3.5. A partir de la versión 4.1. x del AWS cifradoCLI, solo se admite Python 3.6 o posterior.
4.2 El AWS cifrado ya CLI no es compatible con Python 3.6. A partir de la versión 4.2. x del AWS cifradoCLI, solo se admite Python 3.7 o posterior.

Java

Para obtener una descripción detallada de todos los cambios, consulta el CHANGELOGarchivo.rst en el aws-encryption-sdk-javarepositorio de. GitHub

Versión principal Detalles SDKfase del ciclo de vida de la versión principal
1.x 1.0 Versión inicial. Fase de fin de soporte
1.3 Añade compatibilidad con el administrador de materiales criptográficos y el almacenamiento en caché de claves de datos. Pasó a la generación IV determinista.
1.6.1

Los desaprueba AwsCrypto.encryptString() y los reemplaza por AwsCrypto.decryptString() y. AwsCrypto.encryptData() AwsCrypto.decryptData()

1.7 Actualizaciones de las AWS Encryption SDK que ayudan a los usuarios de versiones anteriores a actualizar a las versiones 2.0. x y versiones posteriores. Para obtener más información, consulte la versión 1.7. x.
2.x 2.0 Actualizaciones de AWS Encryption SDK. Para obtener más información, consulte la versión 2.0. x.

Disponibilidad general (GA)

La versión 2.x SDK de cifrado de AWS para Java entrará en modo de mantenimiento en 2024.

2.2 Mejoras en el proceso de descifrado de mensajes.
2.3 Añade compatibilidad con claves AWS KMS multirregionales.
2.4 Añade compatibilidad con. AWS SDK for Java 2.x
3.x 3.0

Se integra SDK de cifrado de AWS para Java con la biblioteca de proveedores de materiales.

Añade compatibilidad con los llaveros simétricos y asimétricos, RSA AWS KMS los llaveros AWS KMS jerárquicos, los llaveros RAW, AES los llaveros múltiples y el RSA contexto de cifrado necesario. CMM

Disponibilidad general (GA)

JavaScript

Para obtener una descripción detallada de todos los cambios, consulte el archivo.md en el repositorio de. CHANGELOG aws-encryption-sdk-javascript GitHub

Versión principal Detalles SDKfase del ciclo de vida de la versión principal
1.x 1.0 Versión inicial. Fase de fin de soporte
1.7 Actualizaciones de la AWS Encryption SDK que ayudan a los usuarios de versiones anteriores a actualizar a la versión 2.0. x y versiones posteriores. Para obtener más información, consulte la versión 1.7. x.
2.x 2.0 Actualizaciones de AWS Encryption SDK. Para obtener más información, consulte la versión 2.0. x. Fase de fin de soporte
2.2 Mejoras en el proceso de descifrado de mensajes.
2.3 Añade compatibilidad con claves AWS KMS multirregionales.
3.x 3.0 Elimina la cobertura de CI para el nodo 10. Actualiza las dependencias para que ya no sean compatibles con los nodos 8 y 10.

Mantenimiento

Support para la versión 3.x SDK de cifrado de AWS para JavaScript finalizará el 17 de enero de 2024.

4.x 4.0 Requiere la versión 3 de los s SDK de cifrado de AWS para JavaScriptkms-client para usar el AWS KMS llavero. Disponibilidad general (GA)

Python

Para obtener una descripción detallada de todos los cambios, consulta el CHANGELOGarchivo.rst en el aws-encryption-sdk-pythonrepositorio de. GitHub

Versión principal Detalles SDKfase del ciclo de vida de la versión principal
1.x 1.0 Versión inicial. Fase de fin de soporte
1.3 Añade compatibilidad con el administrador de materiales criptográficos y el almacenamiento en caché de claves de datos. Pasó a la generación IV determinista.
1.7 Actualizaciones AWS Encryption SDK que ayudan a los usuarios de versiones anteriores a actualizar a las versiones 2.0. x y versiones posteriores. Para obtener más información, consulte la versión 1.7. x.
2.x 2.0 Actualizaciones de AWS Encryption SDK. Para obtener más información, consulte la versión 2.0. x. Fase de fin de soporte
2.2 Mejoras en el proceso de descifrado de mensajes.
2.3 Añade compatibilidad con claves AWS KMS multirregionales.
3.x 3.0 Ya SDK de cifrado de AWS para Python no es compatible con Python 2 o Python 3.4. A partir de la versión principal 3. x de SDK de cifrado de AWS para Python, solo se admite Python 3.5 o posterior. Disponibilidad general (GA)

Detalles de la versión

La siguiente lista describe las principales diferencias entre las versiones compatibles de AWS Encryption SDK.

Versiones anteriores a 1.7.x

nota

Todos los 1. x. Las versiones x de AWS Encryption SDK están en end-of-supportfase. Actualice a la última versión disponible AWS Encryption SDK para su lenguaje de programación tan pronto como sea posible. Para actualizar desde una AWS Encryption SDK versión anterior a la 1.7. x, primero debe actualizar a la 1.7. x. Para obtener más detalles, consulte Migración de su AWS Encryption SDK.

Versiones AWS Encryption SDK anteriores a la 1.7. Las x incluyen importantes funciones de seguridad, como el cifrado mediante el algoritmo estándar de cifrado avanzado en modo Galois/Counter (AES-GCM), una función de derivación de extract-and-expand claves HMAC basada en el código (HKDF), la firma y una clave de cifrado de 256 bits. Sin embargo, estas versiones no admiten las mejores prácticas que recomendamos, como el compromiso clave.

Versión 1.7.x

nota

Todos los 1. x. Las versiones x de AWS Encryption SDK están en end-of-supportfase.

Versión 1.7. x está diseñada para ayudar a los usuarios de versiones anteriores AWS Encryption SDK a actualizar a las versiones 2.0. x y versiones posteriores. Si es la primera vez que utiliza AWS Encryption SDK, puede omitir esta versión y empezar con la última versión disponible en su lenguaje de programación.

La versión 1.7.x es totalmente compatible con versiones anteriores; no introduce ningún cambio importante ni cambia el comportamiento del AWS Encryption SDK. También es compatible con versiones posteriores; le permite actualizar su código para que sea compatible con la versión 2.0.x. Incluye nuevas características, pero no las habilita por completo. Además, requiere valores de configuración que le impidan adoptar inmediatamente todas las características nuevas hasta que esté preparado.

La versión 1.7.x incluye los siguientes cambios:

AWS KMS actualizaciones del proveedor de claves maestras (obligatorias)

Versión 1.7. x introduce nuevos constructores SDK de cifrado de AWS para Python que crean explícitamente proveedores de claves AWS KMS maestras en modo estricto o de descubrimiento. SDK de cifrado de AWS para Java Esta versión añade cambios similares a la interfaz de AWS Encryption SDK línea de comandos (). CLI Para obtener más detalles, consulte Actualización de los proveedores de claves AWS KMS maestras.

  • En el modo estricto, los proveedores de claves maestras de AWS KMS requieren una lista de claves de encapsulamiento y cifran y descifran únicamente con las claves de encapsulamiento que usted especifique. Es una práctica recomendada de AWS Encryption SDK que garantiza que utilice la clave de encapsulamiento deseada.

  • En el modo de detección, los proveedores de claves maestras de AWS KMS no aceptan ninguna clave de encapsulamiento. No puede utilizarlas para cifrar. Cuando se descifra, puede utilizarse cualquier clave de encapsulamiento para descifrar una clave datos cifrada. Sin embargo, puede limitar las claves de encapsulamiento utilizadas para el descifrado a aquellas en particular Cuentas de AWS. Este filtro de detección es opcional, pero es una práctica recomendada.

Los constructores que crean versiones anteriores de los proveedores de claves AWS KMS maestras están obsoletos en la versión 1.7. x y se eliminaron en la versión 2.0. x. Estos constructores crean instancias de los proveedores de claves maestras que cifran con las claves de encapsulamiento que especifique. Sin embargo, descifran las claves de datos cifradas utilizando la clave de encapsulamiento que las cifró, sin tener en cuenta las claves de encapsulamiento especificadas. Los usuarios pueden descifrar involuntariamente los mensajes con claves de empaquetado que no tienen intención de utilizar, incluso AWS KMS keys en otras regiones Cuentas de AWS .

No hay cambios en los constructores de las claves maestras. AWS KMS Al cifrar y descifrar, las claves AWS KMS maestras utilizan únicamente las AWS KMS key que usted especifique.

AWS KMS actualizaciones del conjunto de claves (opcional)

Versión 1.7. x añade un nuevo filtro a SDK de cifrado de AWS para JavaScript las SDK de cifrado de AWS para C implementaciones que limita los llaveros de AWS KMS descubrimiento a determinados. Cuentas de AWS Este filtro de detección de cuentas nuevas es opcional, pero es una práctica recomendada. Para obtener más detalles, consulte Actualización de los conjuntos de clave AWS KMS.

No hay cambios en los fabricantes de los llaveros. AWS KMS AWS KMS Los llaveros estándar se comportan como los proveedores de claves maestras en modo estricto. AWS KMS Los llaveros de detección se crean de forma explícita en el modo de detección.

Pasar un identificador de clave a Decrypt AWS KMS

A partir de la versión 1.7. x, al descifrar las claves de datos cifradas, AWS Encryption SDK siempre especifica una AWS KMS key en sus llamadas a la operación de AWS KMS descifrado. AWS Encryption SDK obtiene el valor del identificador de clave AWS KMS key de los metadatos de cada clave de datos cifrados. Esta característica no requiere ningún cambio de código.

No AWS KMS key es necesario especificar el identificador de clave para descifrar el texto cifrado con una KMS clave de cifrado simétrica, pero es una práctica recomendada.AWS KMS Al igual que si se especifican las claves de empaquetado en el proveedor de claves, esta práctica garantiza que AWS KMS solo se descifra con la clave de empaquetado que se va a utilizar.

Descifrar el texto cifrado con un compromiso clave

La versión 1.7.x puede descifrar el texto cifrado, cifrado con o sin compromiso clave. Sin embargo, no puede cifrar el texto cifrado con un compromiso clave. Esta propiedad le permite implementar por completo aplicaciones que pueden descifrar el texto cifrado con compromiso clave antes de que encuentren dicho texto cifrado. Como esta versión descifra los mensajes cifrados sin necesidad de asignar la clave, no es necesario volver a cifrar ningún texto cifrado.

Para implementar este comportamiento, versión 1.7. x incluye una nueva configuración de la política de compromiso que determina si AWS Encryption SDK pueden cifrar o descifrar con un compromiso de clave. En la versión 1.7.x, el único valor válido para la política de compromiso, ForbidEncryptAllowDecrypt, se utiliza en todas las operaciones de cifrado y descifrado. Este valor impide el cifrado del AWS Encryption SDK con cualquiera de los nuevos conjuntos de algoritmos que incluyen el compromiso clave. Permite descifrar el AWS Encryption SDK texto cifrado con y sin compromiso de clave.

Sin embargo, solo hay un valor de política de compromiso válido en la versión 1.7. x, necesitamos que puedas establecer este valor de forma explícita cuando utilices las nuevas APIs incorporadas en esta versión. Si se establece este valor de forma explícita, se evita que la política de compromiso cambie automáticamente a require-encrypt-require-decrypt cuando sube de categoría a la versión 2.1.x. En su lugar, puede migrar su política de compromisos por etapas.

Paquetes de algoritmos con un compromiso clave

La versión 1.7.x incluye dos nuevos conjuntos de algoritmos que respaldan el compromiso clave. Una incluye la firma; la otra no. Al igual que los conjuntos de algoritmos compatibles anteriormente, estos dos nuevos conjuntos de algoritmos incluyen el cifrado con AES -GCM, una clave de cifrado de 256 bits y una función de derivación de extract-and-expand claves HMAC basada (). HKDF

Sin embargo, el conjunto de algoritmos predeterminado utilizado para el cifrado no cambia. Estos conjuntos de algoritmos se añaden a la versión 1.7.x para preparar la aplicación para utilizarlos en las versiones 2.0.x y posteriores.

CMMcambios en la implementación

Versión 1.7. x introduce cambios en la interfaz predeterminada del administrador de materiales criptográficos (CMM) para respaldar los compromisos clave. Este cambio solo le afecta si ha escrito una personalizaciónCMM. Para obtener más información, consulte la API documentación o el GitHub repositorio de su lenguaje de programación.

Versión 2.0.x

Versión 2.0. x es compatible con las nuevas funciones de seguridad que se ofrecen en la AWS Encryption SDK, incluidas las claves de embalaje especificadas y el compromiso clave. Para apoyar estas características, la versión 2.0.x incluye cambios importantes en todas las versiones anteriores del AWS Encryption SDK. Puede prepararse para estos cambios implementando la versión 1.7.x. La versión 2.0.x incluye todas las nuevas características introducidas en la versión 1.7.x con las siguientes adiciones y cambios.

nota

Versión 2. x. x de SDK de cifrado de AWS para Python SDK de cifrado de AWS para JavaScript, y el AWS cifrado CLI están en end-of-supportfase.

Para obtener información sobre el soporte y el mantenimiento de esta AWS Encryption SDK versión en su lenguaje de programación preferido, consulte el SUPPORT_POLICY.rst archivo en su GitHubrepositorio.

AWS KMS proveedores de claves maestras

Los constructores originales del proveedor de claves AWS KMS maestras que quedaron en desuso en la versión 1.7. x se eliminan en la versión 2.0. x. Debe construir de forma explícita proveedores de claves maestras de AWS KMS en modo estricto o modo de detección.

Descifre el texto cifrado con un compromiso clave

La versión 2.0.x puede cifrar y descifrar el texto cifrado con o sin compromiso clave. Su comportamiento viene determinado por la configuración de la política de compromiso. De forma predeterminada, siempre cifra con compromiso clave y solo descifra el texto cifrado con compromiso clave. A menos que cambie la política de compromiso, el AWS Encryption SDK no descifrará los textos cifrados con ninguna versión anterior de la AWS Encryption SDK, incluida la versión 1.7.x.

importante

De forma predeterminada, la versión 2.0.x no descifrará ningún texto cifrado que se haya cifrado sin el compromiso clave. Si la aplicación puede encontrar un texto cifrado, cifrado sin compromiso clave, defina el valor de la política de compromiso con AllowDecrypt.

En la versión 2.0.x, la configuración de la política de compromiso tiene tres valores válidos:

  • ForbidEncryptAllowDecrypt: el AWS Encryption SDK no puede cifrar con un compromiso clave. Puede descifrar textos cifrados, cifrados con o sin compromiso clave.

  • RequireEncryptAllowDecrypt: el AWS Encryption SDK se debe cifrar con un compromiso clave. Puede descifrar textos cifrados, cifrados con o sin compromiso clave.

  • RequireEncryptRequireDecrypt(predeterminado): se AWS Encryption SDK debe cifrar con un compromiso de clave. Solo descifra los textos cifrados con un compromiso clave.

Si va a migrar de una versión anterior AWS Encryption SDK a la versión 2.0. x, defina la política de compromiso en un valor que garantice que puede descifrar todos los textos cifrados existentes que pueda encontrar la aplicación. Es probable que modifique esta configuración con el tiempo.

Versión 2.2.x

Añade compatibilidad con firmas digitales y limita las claves de datos cifrados.

nota

Versión 2. x. x de SDK de cifrado de AWS para Python SDK de cifrado de AWS para JavaScript, y el AWS cifrado CLI están en end-of-supportfase.

Para obtener información sobre el soporte y el mantenimiento de esta AWS Encryption SDK versión en su lenguaje de programación preferido, consulte el SUPPORT_POLICY.rst archivo en su GitHubrepositorio.

Firmas digitales

Para mejorar el manejo de las firmas digitales al descifrar, AWS Encryption SDK incluye las siguientes funciones:

  • Modo sin streaming: devuelve el texto no cifrado solo después de procesar todas las entradas, incluida la verificación de la firma digital, si existe alguna. Esta característica impide utilizar texto no cifrado antes de verificar la firma digital. Utilice esta característica siempre que descifre datos cifrados con firmas digitales (el conjunto de algoritmos predeterminado). Por ejemplo, dado que el AWS cifrado CLI siempre procesa los datos en modo streaming, utilice el - -buffer parámetro al descifrar el texto cifrado con firmas digitales.

  • Modo de descifrado solo sin firmar: esta característica solo descifra el texto cifrado sin firmar. Si el descifrado encuentra una firma digital en el texto cifrado, se produce un error en la operación. Utilice esta característica para evitar procesar involuntariamente el texto no cifrado de los mensajes firmados antes de verificar la firma.

Limitar las claves de datos cifrados

Puede limitar el número de claves de datos cifradas en un mensaje cifrado. Esta característica puede ayudarle a detectar un proveedor de claves maestras o un conjunto de claves mal configurados al cifrar, o a identificar un texto cifrado malicioso al descifrar.

Debe limitar las claves de datos cifradas al descifrar los mensajes de una fuente que no sea de confianza. Evita las llamadas innecesarias, costosas y potencialmente exhaustivas a su infraestructura clave.

Versión 2.3.x

Añade compatibilidad con claves multirregionales AWS KMS . Para obtener más detalles, consulte Uso de varias regiones AWS KMS keys.

nota

El AWS cifrado CLI admite claves multirregionales a partir de la versión 3.0. x.

Versión 2. x. x de SDK de cifrado de AWS para Python SDK de cifrado de AWS para JavaScript, y el AWS cifrado CLI están en end-of-supportfase.

Para obtener información sobre el soporte y el mantenimiento de esta AWS Encryption SDK versión en su lenguaje de programación preferido, consulte el SUPPORT_POLICY.rst archivo en su GitHubrepositorio.