Si bien la versión Java 23 recientemente lanzada incluye una docena de características oficiales que van desde una vista previa de la API de segundo archivo de clase hasta una octava incubadora de una API vectorial, también incluye varias capacidades de seguridad. Las mejoras de seguridad incluyen actualizaciones del rendimiento de cifrado y adiciones a Kerberos y PKI. JDK 23 se lanzó el 17 de septiembre. Una publicación del mismo día en el Blog de seguridad de Java de Sean Mullan, líder técnico del equipo de bibliotecas de seguridad de Java en Oracle, enumera las capacidades de seguridad de JDK 23. Mullan hizo una lista similar para JDK 22 en marzo. Para javax.crypto, el tamaño del búfer de CipherInputStream se incrementó de 512 bytes a 8192 bytes. Esto puede mejorar el rendimiento y es más consistente con los tamaños de búfer para otras API como java.io.FileInputStream. Además, se mejoró el rendimiento de la construcción de un objeto java.security.SecureRandom a través del nuevo SecureRandom(). También para la API de cifrado, se introdujo un nuevo atributo de configuración PKS11 llamado allowLegacy. Las aplicaciones pueden establecer este valor en «true» para omitir las comprobaciones heredadas. El valor predeterminado es «false». En el ámbito de PKI, se agregaron nuevos certificados de CA raíz al almacén de claves cacerts, incluidos CN=Certainly Root R1, 0=Certainly, C=US y CN=Certainly Root E1, O=Certainly, C=US. También se incluyen dos nuevos certificados raíz de GlobalSign, incluidos CN=GlobalSign Root R46, O=GlobalSign nv-sa, C=BE y CN=GlobalSign Root E46, O=GlobalSign nv-sa, C=BE. Además, se agregó un nuevo javasecurity.Keystore llamado KeychainStore-ROOT al proveedor de seguridad de Apple. Este almacén de claves contiene certificados raíz almacenados en la cadena de llaves del sistema en sistemas macOS. El proveedor de Apple ahora admite dos almacenes de claves: KeychainStore-Root y el KeychainStore existente que contiene claves privadas y certificados para la cadena de llaves del usuario. Esta mejora corrige problemas que causaban que las conexiones HTTP fallaran porque el JDK no podía encontrar un certificado raíz para establecer confianza en la cadena de certificados del par.