Bonjour,
Je suis sur le développement d'une petite API permettant le transfert de données (objets java) entre un serveur et n-clients a l'aide du package standard nio
Aujourd'hui je la complète par l'ajout d'une gestion SSL ntre les differents tiers.
L'API initialise un SSLContext au démarrage de chacune des entités (clients et serveur).
Lors de l'établissement d'une connection, l'API créér un SSLEngine à partir du context pour disposer d'un canal sécurisé une fois l'handshaking terminé.
Tout le problème vient de la construction du SSLContext, car il y a deux cas:
- Soit le développeur créer lui même le SSLContext qu'il fournis a l'API auquel cas je n'ai pas de problème
- Soit le développeur demande l'usage de SSL mais ne fournis rien à l'API
Le deuxieme cas est pour ceux ne désirant pas rééllement d'authentification par SSL (pas de certificats précis, ni de truststore) mais uniquement un lien sécurisé (chiffrement des données).
Au départ je pensais creer un keystore par défaut inclus dans le jar de l'api, mais quiquonque possedant l'API aurait alors la clé publique/cle privé assez aisement.
Ensuite je me suis tourné vers une tentative de generer dynamiquement un keystore par programme, mais je ne vois pas comment faire.
Si je schematise, je voudrais quelque chose comme ceci:
- un keystore généré au démarrage par le serveur permettant de creer le SSLContext
- un trustore sur les clients validant tout les certificats (pas d'authentification)
Comment faire ce genre de chose ? dois-je absolument généré également un keystore sur les clients ?
Merci de m'avoir lu.
Partager