Nueva versión de Java viene con nuevas mejoras de seguridad.
Oracle acaba de publicar una nueva versión mayor de su lenguaje y entorno de ejecución Java. Esta versión trae nuevas características interesantes desde el punto de vista de la programación como la adición de las tan esperadas expresiones lambda. Vamos a repasar las mejoras de seguridad que se han añadido o mejorado en esta nueva versión.
Por defecto, los clientes Java que sean programados con JSSE (Java Secure Socket Extension) dispondrán de las versiones TLS 1.1 y 1.2.
Se ha añadido un nuevo método "doPrivilege", de la clase "AccessController", para que se puedan evaluar un subconjunto del total de privilegios de un proceso. Esto va a permitir que si un proceso necesita consultar si tiene permisos para cierta acción, este pueda buscar, entre la jerarquía de invocaciones, si tiene ese permiso concedido y parará la búsqueda en el momento en que encuentre una invocación que le dota de ese privilegio concreto.
Se han añadido nuevos algoritmos para cifrados basados en contraseña. PBEWithSHA256AndAES_128 y PBEWithSHA512AndAES_256. Anteriormente se estaban usando combinaciones débiles de algoritmos de cifrado (RC4, RC2) con claves de longitud muy cortas (40 bits).
Se ha habilitado la extensión SNI (Server Name Indication), parte de TLS. Esta opción permite al cliente conocer a que nombre de host se está conectando cuando comienza el handshake. En la práctica, esto permite a un servidor con una sola IP publicar varios sitios webs con dominios y certificados digitales diferentes. Ahora pueden programarse clientes Java que soporten dicha funcionalidad.
Ahora se soportarán los cifrados AEAD (Authenticated Encryption with Associated Data) y GCM (Galois Counter Mode) en el proveedor de criptografía de Java, SunJCE. Esto está incluido, básicamente, por ser requerimiento por el gobierno estadounidense en materia seguridad para aplicaciones construidas por terceros.
Se ha añadido una nueva opción "--importpassword" en el gestor de llaves de Java para permitir almacenar contraseñas de manera segura.
Se ha añadido la función hash SHA-224, parte de la familia SHA2.
Se ha mejorado el soporte para la suite B criptográfica de la NSA. Básicamente por la misma razón comercial que el soporte AEAD.
Se ha mejorado la generación de números pseudoaleatorios para permitir la generación de números con un alto valor entrópico en caso de ser necesarios.
Se ha añadido una nueva clase, PKIXRevocationChecker, para comprobar la revocación de certificados seguros.
Para la plataforma Java en Windows 64 bits, se añade el soporte para PKCS11. Una familia de estándares necesarios para implementar infraestructura de clave pública. Por ejemplo, el DNI electrónico.
Se mejorado sustancialmente el soporte a Kerberos empleando nuevos tipos de rcache, se ha eliminado el soporte a cifrados débiles, nuevos protocolos y otras mejoras.
Los servidores SASL creados permiten tener un nombre nulo para posibilitar a los clientes designar cualquier nombre de servidor antes de la negociación y obtener posteriormente uno concreto en forma de propiedad.
Se ha mejorado el soporte JNI en los sistemas Mac OSX.
Se mejora el soporte para claves efímeras más robustas en el algoritmo de intercambio de llaves Diffie-Hellman.
Ahora es posible indicar una suite criptográfica por defecto y preferente por el servidor Java usando el método 'setUseCipherSuitesOrder' de la clase 'SSLParameters'. Hasta ahora simplemente se usaba aquella que fuera preferencia del cliente.
Más información
JDK 8 Security Enhancements
No hay comentarios:
Publicar un comentario