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

Sécurité Java Discussion :

Applet : Récupérer les certificats du Web Browser


Sujet :

Sécurité Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 40
    Par défaut Applet : Récupérer les certificats du Web Browser
    Salut,

    Je me trouve face à un problème :
    Je souhaite récupérer grâce à mon Applet les Certificats contenus dans Firefox, IE, etc...

    Cependant je ne sais pas comment m'y prendre.
    Pour Firefox, j'essaie en vain d'utiliser le CryptoManager ...

    Pourriez-vous me donner des éléments pour m'aider ?

    Cordialement

  2. #2
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 40
    Par défaut
    Alors voici pour firefox sous linux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    System.load ( "/lib/security/libjss4.so" );
    String dbdir = "/home/xxxxxx/.mozilla/firefox/vkuuxfit.default";
    CryptoManager.initialize(dbdir);
    CryptoManager cm = CryptoManager.getInstance();
     
    org.mozilla.jss.crypto.X509Certificate[] certs = cm.getCACerts();
     
    //added verbose option to limited the output of the tinderbox
    // and nightly QA.
     
     System.out.println("Number of CA certs: " + certs.length);
    Nicolas

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Par défaut
    Le tout pour charger les certificats, c'est de pouvoir instancier le keystore

    Je te jette ici quelque bout de code que j'avais tester il y a un moment de cela (certain seront surement a modifier mais ca peut toujours être une bonne base de recherche)

    A savoir que pour les application microsoft (IE, outlook, ...), elles utilisent toutes le magasin système de Windows

    De plus, sous Windows, on a accès si je ne me trompe pas qu'au magasin de certificat racine ainsi que le magasin des certificats personnels

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    public static void main(final String[] args)
      {
     
        //Lister les alias des certificat du magasin personnel
        try
        {
          final KeyStore sunMSCAPI = KeyStore.getInstance("Windows-MY", "SunMSCAPI");
          sunMSCAPI.load(null);
          //Récupération des alias
          final Enumeration<String> aliases = sunMSCAPI.aliases();
          System.out.println("Alias des certificats installés dans le magasin personnel");
          while (aliases.hasMoreElements())
          {
            System.out.println(aliases.nextElement());
          }
        }
        catch (final Exception e)
        {
          e.printStackTrace();
        }
     
        System.out.println("--------------------------------------------------------------------");
        System.out.println();
     
        try
        {
          //Lister les alias des certificat du magasin root
          final KeyStore sunMSCAPI = KeyStore.getInstance("Windows-ROOT", "SunMSCAPI");
          sunMSCAPI.load(null);
          //récupération des alias
          final Enumeration<String> aliases = sunMSCAPI.aliases();
          System.out.println("Alias des certificats installés dans le magasin des autorités racines de confiances");
          while (aliases.hasMoreElements())
          {
            System.out.println(aliases.nextElement());
          }
        }
        catch (final Exception e)
        {
     
        }
      }
    On retrouve le même système pour les applications Mac (pour safari, mail, ...)

    la méthode ci-dessous permettait d'utiliser l'outil "certtool" disponible sur Mac pour installer un certificat d'AC.
    Il te reste à voir maintenant comment lister les certificat au lieu d'en ajouter.

    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
     
    	try {
    					String[] cmd = new String[] {"sudo","certtool",
    							"i",chemin_ver_certificat, 
    							"k=/Library/Keychains/System.keychain"};
    					p = rt.exec(cmd);			
    					PrintStream ps = new PrintStream(p.getOutputStream());	
                                            //mot de passe du keychain
    					ps.print(password);
    					ps.write(KeyEvent.VK_ENTER);	
    					ps.flush();	
    					ps.close();	
    					p.waitFor();
    				}catch(Exception e){
    					e.printStackTrace();
    				}
    Pour ce qui est de lister les certificat sous linux, le problème c'est que linux n'a pas de magasin système (peut être bientôt qui sait avec l'adoption du magasin de "firefox" pour tous ou plus particulièrement des outils nss)

    Donc pour ce qui est des application sous linux tu peut réaliser la même procédure que sur Mac avec l'outil "certutil" (plus d'information sur le site de mozilla)

    Pour les mozilla, thunderbird et autre application sous Windows qui utilisent leur propre magasin, j'avais trouvé à l'époque les outils certutil.exe et modutil.exe qui me permettait d'interagir facilement avec les différents magasin de certificats. (autrement qu'avec la manière cité ci-dessus)

    si tu as d'autres question, n'hésite pas à revenir sur ce sujet.

  4. #4
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 40
    Par défaut
    Je te remercie pour ton aide.

    Je me heurte à une difficulté en rapport avec du code se référant au morceau de code que tu as fourni :

    Je n'arrive pas à récupérer la clé privée. Du moins je la récupère, cependant pas au bon format.
    Je récupère une clé de format sun.security.mscapi.RSAPrivateKey.
    Or il me faudrait une clé de format Sun RSA private CRT key avec :
    le modulus,
    le public exponent,
    private exponent,
    prime p,
    prime q,
    prime exponent p,
    prime exponent q,
    le crt coefficient

    As-tu une idée ?

    Cordialement

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

Discussions similaires

  1. Problème avec les onglets et web browser
    Par Nanos dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/09/2009, 19h45
  2. Applet Récupérer les jar en cache
    Par dev_gahie dans le forum Applets
    Réponses: 1
    Dernier message: 24/04/2008, 12h11
  3. Récupérer les informations d'une applet
    Par outlawz dans le forum Applets
    Réponses: 3
    Dernier message: 30/03/2006, 10h05
  4. Récupérer les images d'un site web
    Par [Silk] dans le forum Web & réseau
    Réponses: 2
    Dernier message: 15/03/2006, 12h00
  5. [C#][VS2005]Récupérer les info d'un certificat avec FX 2.0
    Par virgul dans le forum Windows Forms
    Réponses: 12
    Dernier message: 31/01/2006, 08h52

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