La prise en charge de l’intégrité et du chiffrement du code et des données dans Java serait renforcée par deux propositions différentes circulant dans la communauté Java open source. Une proposition renforcerait la forte encapsulation des API Java, et la seconde fournirait une API pour le mécanisme d’encapsulation de clé, une technique de chiffrement qui promet de protéger contre les ordinateurs quantiques.
Un projet de proposition d’amélioration Java (JEP) pour une encapsulation et une intégrité fortes, publié sur openjdk.org, vise à restreindre les API pour les empêcher de casser l’encapsulation forte, tout en tenant compte des cas d’utilisation dont elles ont besoin pour fonctionner au-delà des limites de l’encapsulation. L’encapsulation forte est l’une des fonctionnalités de la plate-forme Java qui garantit l’intégrité du code et des données par défaut, note le JEP. Cependant, cela peut être contourné avec certaines API, ce qui entraîne des problèmes de maintenance et de performances.
La proposition, qui serait intégrée à l’édition standard de Java, cite les objectifs suivants :
- Autoriser Java à maintenir les invariants (conditions toujours vraies) de son propre fonctionnement, ainsi que celui des applications Java nécessaires à la maintenance, à la sécurité et aux performances.
- Clarifiez les API Java et non Java qui peuvent casser l’encapsulation forte.
- Différenciez les cas d’utilisation où il convient de casser l’encapsulation des cas d’utilisation où il est indispensable de désactiver l’encapsulation.
L’objectif de la proposition n’est pas de se prémunir contre les situations où les utilisateurs compromettent l’intégrité de la plate-forme Java en manipulant le système de fichiers, le système d’exploitation ou le matériel sous-jacent, indique la proposition. Des mécanismes d’intégrité appropriés doivent toujours être utilisés dans le système d’exploitation pour protéger la plate-forme Java et les applications Java.
L’autre projet JEP introduirait une API de mécanisme d’encapsulation de clé (KEM). KEM est une technique cryptographique moderne conçue pour chiffrer des clés symétriques à l’aide de la cryptographie à clé asymétrique ou publique. Elle diffère de la technique plus traditionnelle qui crypte une clé symétrique générée aléatoirement avec une clé publique. Selon le JEP, le mécanisme KEM est plus simple et résout également plusieurs inconvénients de l’approche traditionnelle.
Également positionnée pour Java standard, la proposition d’API KEM est destinée à permettre aux applications d’utiliser les algorithmes KEM et KEM, tels que RSA Key Encapsulation Mechanism (RSA-KEM), Elliptic Curve Integration Encryption Scheme (ECIES) et les algorithmes KEM candidats pour le National Processus de normalisation de la cryptographie post-quantique (PQC) de l’Institute of Standards and Technology (NIST). Le plan est de permettre l’utilisation de KEM dans des protocoles de niveau supérieur tels que Transport Layer Security (TLS). Les implémenteurs seraient autorisés à développer des fournisseurs de sécurité qui implémentent des algorithmes KEM développés en Java ou en code natif.
La version actuelle de Java standard est le Java Development Kit (JDK) 20, qui est arrivé le mois dernier. Son successeur, JDK 21, est prévu pour septembre, l’ensemble de fonctionnalités étant gelé le 8 juin.
Copyright © 2023 IDG Communications, Inc.