Publiée récemment par Oracle, la dernière version du kit de développement Java (JDK) 22 de l’édition standard de Java SE 22 offre plusieurs améliorations de sécurité, notamment une interface de clé asymétrique et une option de sécurité pour -XshowSettings qui permet d'afficher facilement les paramètres liés à la sécurité. Dans un billet de blog publié le 20 mars sur la page web inside.java d'Oracle, Sean Mullan, responsable technique de l'équipe Java Security chargée des bibliothèques et responsable du groupe de l’OpenJDK Security Group, a fourni plus de détails sur les améliorations de sécurité apportées.
Concernant l'option java -Xshowsettings, qui sert à imprimer les paramètres du système et d'autres informations utiles sur la configuration actuelle du JDK, elle peut maintenant afficher des informations détaillées sur les paramètres liés à la sécurité. « L'option -Xshowsettings:security présente tous les paramètres de sécurité avec des sous-options qui publie les valeurs des propriétés de sécurité, les fournisseurs de sécurité installés et leurs algorithmes pris en charge, ou les protocoles TLS et les suites de chiffrement activés », a écrit M. Mullan.
Une interface sur les clés asymétriques
Quant à la cryptographie, elle a été enrichie d’une interface standard, java.security.AsymmetricKey, en fait une sous-interface de java.security.key qui représente une clé asymétrique soit privée, soit publique. Les classes existantes java.security.PublicKey et java.security.PrivateKey ont été adaptées pour devenir des sous-interfaces d'AsymmetricKey. « Au fur et à mesure de l'introduction de nouveaux algorithmes asymétriques, l'interface AsymmetricKey offrira aux versions antérieures de Java SE de les prendre plus facilement en charge via des paramètres sous forme de NamedParameterSpec », a déclaré M. Mullan.
Par ailleurs, le module jdk.crytpo.ec a été déprécié, l'objectif étant de le supprimer à terme. Tout le code du module jdk.crytpo.ec a été déplacé vers le module java.base, y compris le fournisseur de sécurité SunEC. Ce composant est à présent vide mais existe toujours. Ce changement facilitera le déploiement d'applications dépendant d'algorithmes cryptographiques à courbe elliptique. Pour l'infrastructure à clé publique (PKI), 10 certificats d'autorité de certification racine ont été ajoutés au magasin de clés cacerts, dont trois certificats d'eMudhra Technologies, quatre de DigiCert, et un de Let's Encrypt, Telia, et Certigna.
Pour le protocole de sécurisation TLS (Transport Layer Security), des propriétés supplémentaires ont été ajoutées pour contrôler la longueur maximale des chaînes de certificats du client et du serveur. Et pour les signatures XML, la mise en œuvre du JDK prend désormais en charge les signatures XML signées avec des algorithmes de signature RSA avec des condensés SHA-3. Le JDK 22 étend la fonction de support de l'algorithme de signature HSS/LMS par le JCE (Java Cryptography Extension), à la prise en charge HSS/LMS par les utilitaires jarsigner et keytool. De plus, jarsigner prend dorénavant en charge la signature et la vérification des fichiers JAR avec l'algorithme HSS/LMS, tandis que keytool prend en charge la génération de paires de clés publiques HSS/LMS. Cependant, le JDK ne prend en charge que la vérification des signatures HSS/LMS. Les développeurs devront faire appel à un fournisseur tiers pour signer les fichiers JAR avec HSS/LMS.