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.
No hay comentarios:
Publicar un comentario