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 :

Vérification de l'émetteur d'un certificat


Sujet :

Sécurité Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Vérification de l'émetteur d'un certificat
    Bonjour à tous,

    J'ai pour vous une petite histoire et une grande question :

    Des clients upload des fichiers sur un serveur (par FTP). Voici le processus :

    Ces fichiers sont signés par la clé privée d'un PKCS12 en possession du client. Ensuite le certificat X509 (contenant la clef publique), la signature du fichier et le fichier lui-même sont zippés dans une archive et envoyés sur le serveur.

    le serveur récupère tout ça et vérifie la signature. On a ainsi la confirmation que l'expéditeur du fichier et bien la personne définie dans le certificat X509.

    Problème : Je voudrais pouvoir vérifier que le certificat a bien été distribué par un CA particulier (celui qu'on aura choisi pour fournir les certificats à chaque client).
    Ainsi on peut éviter que M. Untel ne génère un certificat auto-signé et qu'il l'utilise pour uploader des fichiers.

    Ce type de vérification doit être commun mais étant débutant dans la sécurité, je suis un peu perdu...

    Pour info j'utilise la méthode .verify() de la classe X509Certificate mais je crois que celle-ci vérifie uniquement la validité temporelle du certififcat.

    Si quelqu'un pouvait m'éclairer sur le sujet...

    Merci d'avance à tous

  2. #2
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bon j'ai trouvé !!!! (tout seul comme un grand)

    Il suffit de récupérer le certificat root de la CA dont on accepte les certificats. Ensuite de ce certificat root on extrait la clé publique, et on la passe en paramètre à la fonction verify exécutée sur certificat joint par le client.

    Ce qui donne à peu près :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    InputStream inStream = new FileInputStream(certifPath);
    X509Certificate certificat = (X509Certificate)cf.generateCertificate(inStream);
     
    inStream = new FileInputStream(rootCAPath);
    X509Certificate rootCA = (X509Certificate)cf.generateCertificate(inStream);
     
    inStream.close();
     
    // Vérification de la validité du certificat en accord avec la CA
     
    PublicKey pkCA = rootCA.getPublicKey();
     
    certificat.verify(pkCA);

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

Discussions similaires

  1. module de vérification de certificat
    Par ikuzar dans le forum Sécurité
    Réponses: 0
    Dernier message: 17/01/2011, 15h25
  2. Redirection urls vers urls avant vérification certificat ssl
    Par cedric00 dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 12/08/2010, 17h53
  3. Réponses: 0
    Dernier message: 19/06/2009, 10h30
  4. Vérification d'un certificat client
    Par Hotman dans le forum Services Web
    Réponses: 0
    Dernier message: 30/04/2009, 11h26
  5. Réponses: 0
    Dernier message: 24/10/2008, 11h55

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