IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Besoin de serialize un P11PrivateKey ou Keystore


Sujet :

Java

  1. #1
    Membre régulier Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Points : 107
    Points
    107
    Par défaut Besoin de serialize un P11PrivateKey ou Keystore
    Bonjour à tous,

    Je me tourne vers vous pour avoir d'autres pistes à ma problématique pour laquelle je ne vois plus comment faire.

    Le contexte :
    - J'ai une applet Java qui lit un ensemble de certificats dans une SmartCard (carte à puce).
    - J'ai un code Java distant (Java RMI), que j'appelle "code serveur", qui est en charge de la logique métier, notamment d'ouvrir et de maintenir des connexions TLS.

    Le problème :
    - Depuis l'applet je récupère un ensemble de certificats, notamment des objets de type : X509Certificate, PrivateKey, Certificate[], X509Certificate[]. La lecture fonctionne très bien.
    - Lorsque je passe la PrivateKey en paramètre à ma fonction distante (Java RMI), je rencontre l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Communication RemoteException : error marshalling arguments; nested exception is: java.io.NotSerializableException: Cannot serialize sensitive and unextractable keys
    La classe de ma PrivateKey est la suivante : class sun.security.pkcs11.P11Key$P11PrivateKey

    Après recherches, il s'avère, sauf erreur de ma part, que la P11Key n'est pas sérializable, en tout cas qu'une exception est levée pour protéger ce contenu.

    Autre possibilité, je pourrai "déporter" la lecture des certificats directement à mon "code serveur" qui se chargerait d'instancier directement les certificats et la PrivateKey P11Key.
    Or, je ne suis pas sur de pouvoir également sérializer l'objet Keystore créé à ce niveau.

    Voici l'extrait de code créant le Keystore à partir des données lues dans la carte à puce :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Provider p = Security.getProvider("SunPKCS11-CPS");
    if(p==null){
    	StringBuilder cardConfig = new StringBuilder();
    	cardConfig.append("name = CPS\n");
    	cardConfig.append("library = " + pathCryptolib);
    	InputStream is = new ByteArrayInputStream(cardConfig.toString().getBytes());
    	Provider securityProvider = new sun.security.pkcs11.SunPKCS11(is);
    	Security.addProvider(securityProvider);
    }
    try {
    	KeyStore keystore;
    	keystore = KeyStore.getInstance("PKCS11");
    	keystore.load(null, codePinCarte);
     
    	// A ce niveau là, je souhaiterai éventuellement transmettre le Keystore qui doit être "chargé" des certificats de la carte à puce
     
    } catch (Exception e) {
    	throw new Exception("Impossible de lire la carte : " +  e.getMessage());
    }

    Connaissez-vous un moyen qui me permettrait de réaliser la serialization de la PrivateKey ou du KeyStore ?


    En vous remerciant par avance pour vos retours et idées constructives.
    Bien cordialement,
    Thec

  2. #2
    Membre régulier Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Points : 107
    Points
    107
    Par défaut
    Aucune solution trouvée.
    J'ai finalement employé une autre architecture pour surmonter cette problématique.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin conseil pour gérer SERIAL
    Par ctobini dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 19/10/2007, 14h58
  2. Besoin du fichier d'aide du SDK DirectX7 (pour DirectDraw)
    Par Magus (Dave) dans le forum DirectX
    Réponses: 5
    Dernier message: 02/10/2002, 14h08
  3. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 18h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo