View a markdown version of this page

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 https://semver.org/ 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. 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 versión más reciente de la AWS Encryption SDK en el lenguaje 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 GitHub repositorio.

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 información, 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 las versiones 1.7 de la CLI de AWS cifrado. x y 2.0. x. Sin embargo, la versión 1.8 de AWS Encryption CLI. x reemplaza a la versión 1.7. x y la CLI de AWS cifrado 2.1. x reemplaza a 2.0. x. Para obtener más información, consulte el aviso de seguridad correspondiente en el repositorio https://github.com/aws/aws-encryption-sdk-cli/ aws-encryption-sdk-cli en. GitHub

Las siguientes tablas ofrecen una descripción general de las principales diferencias entre las versiones compatibles de cada lenguaje de programación. AWS Encryption SDK

C

Para obtener una descripción detallada de todos los cambios, consulte el repositorio https://github.com/aws/aws-encryption-sdk-c/ aws-encryption-sdk-c CHANGELOG.md en. GitHub

Versión principal Detalles Fase del ciclo de vida de la versión principal del SDK
1.x 1.0 Versión inicial. End-of-Support fase
1.7 Actualizaciones AWS Encryption SDK que ayudan a los usuarios de versiones anteriores a actualizarse 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 del 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, consulte CHANGELOG.md en el aws-encryption-sdk-net repositorio. GitHub

Versión principal Detalles Fase del ciclo de vida de la versión principal del SDK
3.x 3.1.0 Versión inicial.

End-of-Support

La versión 3.x de AWS Encryption SDK for.NET ha finalizado su soporte; actualice a la 4.x.

4.x 4.0 Añade soporte para el conjunto de claves AWS KMS jerárquicas, el contexto de cifrado requerido (CMM) y los conjuntos de claves RSA asimétricos. AWS KMS Disponibilidad general (GA)
5.x 5.0 Actualizaciones de la versión 2. x de la biblioteca de proveedores de materiales (MPL). Deja de ser compatible con el AWS SDK para .NET v3 y requiere el AWS SDK para .NET v4. 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 AWS de cifrado y CHANGELOG.rst en el repositorio https://github.com/aws/aws-encryption-sdk-cli/ aws-encryption-sdk-cli en. GitHub

Versión principal Detalles Fase del ciclo de vida de la versión principal del SDK
1.x 1.0 Versión inicial. End-of-Support fase
1.7 Actualizaciones AWS Encryption SDK que ayudan a los usuarios de versiones anteriores a actualizarse 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 del AWS Encryption SDK. Para obtener más información, consulte la versión 2.0. x . End-of-Support fase
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 de la CLI de AWS cifrado 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. End-of-Support fase
4.x 4.0 La CLI de AWS cifrado ya no es compatible con Python 2 ni Python 3.4. A partir de la versión principal 4. x de la CLI de AWS cifrado, solo se admite Python 3.5 o posterior. Disponibilidad general (GA)
4.1 La CLI de AWS cifrado ya no es compatible con Python 3.5. A partir de la versión 4.1. x de la CLI de AWS cifrado, solo se admite Python 3.6 o posterior.
4.2 La CLI de AWS cifrado ya no es compatible con Python 3.6. A partir de la versión 4.2. x de la CLI de AWS cifrado, solo se admite Python 3.7 o posterior.

Java

Para obtener una descripción detallada de todos los cambios, consulte el repositorio https://github.com/aws/aws-encryption-sdk-java/ aws-encryption-sdk-java CHANGELOG.rst en. GitHub

Versión principal Detalles Fase del ciclo de vida de la versión principal del SDK
1.x 1.0 Versión inicial. End-of-Support fase
1.3 Añade soporte para el administrador de materiales criptográficos y el almacenamiento en caché de claves de datos. Pasó a la cuarta generación determinista.
1.6.1

Deja en desuso AwsCrypto.encryptString() y AwsCrypto.decryptString() y lo reemplaza por y. AwsCrypto.encryptData() AwsCrypto.decryptData()

1.7 Actualizaciones AWS Encryption SDK que ayudan a los usuarios de versiones anteriores a actualizarse 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 del AWS Encryption SDK. Para obtener más información, consulte la versión 2.0. x .

Disponibilidad general (GA)

La versión 2.x del 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 soporte para. 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 (MPL).

Añade soporte para conjuntos de claves RSA simétricos y asimétricos, conjuntos de AWS KMS claves AWS KMS ECDH, conjuntos de claves AWS KMS jerárquicos, anillos de claves AES sin procesar, anillos de claves RSA sin procesar, anillos de claves ECDH sin procesar y la CMM de contexto de cifrado requerida. Multi-keyrings

Disponibilidad general (GA)

Go

Para obtener una descripción detallada de todos los cambios, consulte el directorio Go del repositorio aws-encryption-sdk en. CHANGELOG.md https://github.com/aws/aws-encryption-sdk/tree/mainline GitHub

Versión principal Detalles Fase del ciclo de vida de la versión principal del SDK
0.1. x 0.1.0 Versión inicial. Disponibilidad general (GA)

JavaScript

Para obtener una descripción detallada de todos los cambios, consulte el repositorio https://github.com/aws/aws-encryption-sdk-javascript/tree/master/modules aws-encryption-sdk-javascript CHANGELOG.md en. GitHub

Versión principal Detalles Fase del ciclo de vida de la versión principal del SDK
1.x 1.0 Versión inicial. End-of-Support fase
1.7 Actualizaciones AWS Encryption SDK que ayudan a los usuarios de versiones anteriores a actualizarse 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 del AWS Encryption SDK. Para obtener más información, consulte la versión 2.0. x . End-of-Support fase
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 dejen de ser compatibles con los nodos 8 y 10.

Mantenimiento

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

4.x 4.0 Se requiere la versión 3 de SDK de cifrado de AWS para JavaScript la S kms-client para usar el AWS KMS llavero. Disponibilidad general (GA)

Python

Para obtener una descripción detallada de todos los cambios, consulte el repositorio https://github.com/aws/aws-encryption-sdk-python/ aws-encryption-sdk-python CHANGELOG.rst en. GitHub

Versión principal Detalles Fase del ciclo de vida de la versión principal del SDK
1.x 1.0 Versión inicial. End-of-Support fase
1.3 Añade soporte para el administrador de materiales criptográficos y el almacenamiento en caché de claves de datos. Pasó a la cuarta generación determinista.
1.7 Actualizaciones AWS Encryption SDK que ayudan a los usuarios de versiones anteriores a actualizarse 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 del AWS Encryption SDK. Para obtener más información, consulte la versión 2.0. x . End-of-Support fase
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 ni Python 3.4. A partir de la versión principal 3. x del SDK de cifrado de AWS para Python, solo se admite Python 3.5 o posterior. Disponibilidad general (GA)
4.x 4.0

Se integra SDK de cifrado de AWS para Python con la biblioteca de proveedores de materiales (MPL).

Disponibilidad general (GA)

Rust

Para obtener una descripción detallada de todos los cambios, consulte el directorio Rust del repositorio https://github.com/aws/aws-encryption-sdk/tree/mainline aws-encryption-sdk CHANGELOG.md en. GitHub

Versión principal Detalles Fase del ciclo de vida de la versión principal del SDK
1.x 1.0 Versión inicial. 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 la 1.7.x

nota

Todas las 1. x. Las versiones x del AWS Encryption SDK están en la fase de finalización del soporte. Actualice a la última versión disponible de AWS Encryption SDK para su lenguaje de programación tan pronto como sea práctico. 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 información, consulte Migración de su AWS Encryption SDK.

Versiones de la AWS Encryption SDK anterior a la 1.7. x ofrecen funciones de seguridad importantes, como el cifrado con el algoritmo estándar de cifrado avanzado in Galois/Counter Mode (AES-GCM), una función de derivación de claves HMAC-based para extraer y expandir (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 del AWS Encryption SDK están en la fase de finalización del soporte.

Versión 1.7. x está diseñado para ayudar a los usuarios de versiones anteriores AWS Encryption SDK a actualizarse a la versión 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 (obligatorio)

Versión 1.7. x introduce nuevos constructores en la red SDK de cifrado de AWS para Java SDK de cifrado de AWS para Python que crean explícitamente proveedores de claves AWS KMS maestras en modo estricto o de descubrimiento. Esta versión añade cambios similares a la interfaz de AWS Encryption SDK línea de comandos (CLI). Para obtener más información, 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 en desuso 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 usar, incluso AWS KMS keys en otras regiones Cuentas de AWS y en otras regiones.

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 implementaciones SDK de cifrado de AWS para C y que limita los conjuntos de claves de AWS KMS descubrimiento a determinados elementos. Cuentas de AWS Este filtro de detección de cuentas nuevas es opcional, pero es una práctica recomendada. Para obtener más información, consulte Actualización de los AWS KMS llaveros.

No hay cambios en los constructores de los conjuntos de claves. AWS KMS Los conjuntos de AWS KMS claves estándar se comportan como los proveedores de claves maestras en modo estricto. AWS KMS los conjuntos de claves 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 claves de datos cifradas, AWS Encryption SDK siempre especifica un AWS KMS key en sus llamadas a la operación de AWS KMS descifrado. AWS Encryption SDK Obtiene el valor de identificación de la clave AWS KMS key a partir de los metadatos de cada clave de datos cifrada. Esta característica no requiere ningún cambio de código.

No AWS KMS key es necesario especificar el identificador de la clave para descifrar el texto cifrado con una clave KMS de cifrado simétrico, pero es una práctica recomendada. AWS KMS Al igual que al especificar las claves de empaquetado en el proveedor de claves, esta práctica garantiza que AWS KMS solo se descifre con la clave de empaquetado que vaya 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 opción de configuración de la política de confirmación que determina si se AWS Encryption SDK puede cifrar o descifrar con una clave de confirmación. 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, requerimos que pueda establecer este valor de forma explícita cuando utilice las nuevas API introducidas 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 claves para HMAC-based extraer y expandir (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.

Cambios en la implementación de CMM

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

Versión 2.0.x

Versión 2.0. x admite las nuevas funciones de seguridad que se ofrecen en el AWS Encryption SDK, incluidas las claves de embalaje especificadas y el compromiso de las claves. 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 la CLI de AWS cifrado se encuentran en la fase de finalización del soporte.

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 GitHub repositorio.

AWS KMS proveedores de claves maestras

Los constructores originales de proveedores 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): AWS Encryption SDK debe cifrarse 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 confirmación en un valor que garantice que puede descifrar todos los textos cifrados existentes que pueda encontrar su 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 la CLI de AWS cifrado se encuentran en la fase de finalización del soporte.

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 GitHub repositorio.

Firmas digitales

Para mejorar la gestión de las firmas Firmas digitales digitales durante el descifrado, AWS Encryption SDK incluye las siguientes funciones:

  • Non-streaming modo: devuelve texto sin formato solo después de procesar todas las entradas, incluida la verificación de la firma digital, si está presente. 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 la CLI de AWS cifrado siempre procesa los datos en modo streaming, utilice el - -buffer parámetro cuando descifre texto cifrado con firmas digitales.

  • Unsigned-only modo de descifrado: esta función 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 AWS KMS multirregionales. Para obtener más información, consulte Uso de varias regiones AWS KMS keys.

nota

La CLI de AWS cifrado 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 la CLI de AWS cifrado se encuentran en la fase de finalización del soporte.

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 GitHub repositorio.