Habilitando Criptografía de Fuerza Ilimitada en JDK 1.8.0_151 y Posteriores

Al actualizar de JDK7 a JDK8, es posible que encuentre errores relacionados con la criptografía de fuerza limitada. Este artículo explica cómo habilitar la criptografía de fuerza ilimitada en JDK 1.8.0_151 y versiones posteriores.

Al migrar aplicaciones a JDK8, es común encontrar excepciones como:

java.security.InvalidKeyException: Illegal key size

Este error ocurre debido a restricciones de importación en ciertos países, que limitan el tamaño de las claves criptográficas por defecto en el JDK. Por ejemplo, AES con claves de 256 bits está deshabilitado de forma predeterminada.

En versiones anteriores a JDK 1.8.0_151, la solución requería descargar y reemplazar los archivos JCE de política de exportación. Sin embargo, a partir de la versión 1.8.0_151, Oracle introdujo un método más sencillo.

Estructura de Directorios en JDK 1.8.0_151

En JDK 1.8.0_151 y posteriores, encontrará una nueva estructura en el directorio $JAVA_HOME/jre/lib/security/:

/jdk1.8.0_151
 |- /jre
      |- /lib
            |- /security
                  |- /policy
                  |   |- /limited
                  |   |   |- local_policy.jar
                  |   |   |- US_export_policy.jar
                  |   |
                  |   |- /unlimited
                  |       |- local_policy.jar
                  |       |- US_export_policy.jar
                  |
                  |- java.security

Esta estructura facilita la activación de la criptografía de fuerza ilimitada sin necesidad de descargar archivos externos.

Configuración de Política de Criptografía

Para habilitar la criptografía de fuerza ilimitada:

  1. Localice el archivo java.security en el directorio jre/lib/security/
  2. Busque la propiedad crypto.policy, que por defecto está comentada:
#crypto.policy=unlimited

  1. Descomente la línea para habilitar la política ilimitada:
crypto.policy=unlimited

  1. Reinicie las aplicaciones Java que utilizan esta configuración

Esta configuración permite utilizar algoritmos criptográficos con claves más largas, como AES-256, sin necesidad de reemplazar los archivos JAR de política.

Verificación de la Configuración

Para verificar que la configuración se aplicó correctamente, puede verificar los archivos modificados:

md5sum /ruta/a/jdk/jre/lib/security/java.security
md5sum /ruta/a/jdk/jre/lib/security/policy/unlimited/local_policy.jar
md5sum /ruta/a/jdk/jre/lib/security/policy/unlimited/US_export_policy.jar

Estos comandos mostrarán los hashes de los archivos para confimrar que la configuración se aplicó correctamente.

Consideraciones para Implementación

Al implementar esta configuración en entornos de contenedorización:

  • Actualice las imágenes de Docker que incluyen JDK a versiones que soporten esta configuración
  • Para imágenes personalizadas, asegúrese de incluir la configuración modificada
  • Verifique que todas las aplicaciones que requieren criptografía de fuerza ilimitada utilicen la misma configuración

Este método simplifica significativamente el proceso de habilitar la criptografía de fuerza ilimitada en entornos que utilizan JDK 1.8.0_151 o versiones posteriores, eliminando la nceesidad de descargar y reemplazar archivos JCE manualmente.

Etiquetas: JDK criptografía java.security política de seguridad AES-256

Publicado el 6-29 02:09