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 :

Accès keystore Windows


Sujet :

Sécurité Java

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Par défaut Accès keystore Windows
    Bonjour à tous

    ma question va paraitre simple, mais avec mon amis google je ne trouve pas la réponse à ma question

    j'essaye tout bêtement d'accéder au magasin des autorités intermédiaire de Windows.

    autant pour le magasin personnel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    KeyStore ks = KeyStore.getInstance("Windows-MY");
    pour les autorités de confiance racine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    KeyStore ks = KeyStore.getInstance("Windows-ROOT");
    par contre pour les AC intermédiaires je ne trouve rien ...

    est ce que c'est parce qu'il n'existe rien d'autre que les deux cité ci-dessus ?

    et finalement existe-il autre chose que MY et ROOT ?

    merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Je ne suis pas sûr de comprendre ton problème et pour moi ça ne peut exister. Si une CA intermédiaire se retrouve dans ta liste de CAs, alors par définition elle n'est plus une CA intermédiaire, mais une CA racine pour toi . Je n'ai plus le schéma du magasin de certificats windows en tête, mais tu peux le voir facilement en ouvrant : certmgr (Démarrer > exécuter).
    Mais tu as un magasin pour les CA, pour tes clefs privées (MY), pour les certificats d'autres personnes, typiquement des certificats SSL de servers. Tu dois aussi avoir la liste des requêtes de certificat envoyées par toi il me semble.


    A plus

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Par défaut
    pour expliquer mon problème simplement

    la société X , reconnu comme autorité de certification possède son autorité racine incluse dans le magasin windows des autorité de confiance racine

    (pour aller voir le magasin : executer > "mmc" puis ajouter le module "certificat")

    on y retrouve entre autre

    les certificats personnel
    les racine de confiance
    les autorité intermediaire
    ect...


    maintenant mon autorité racine possede egalement ces propre autorité intermédiaire

    on appellera ces autorité Y1, Y2,Y3 ...

    maintenant un utilisateur achete un certificat à cette autorité

    par exemple il prendra un certificat de type Y1

    Pour pouvoir identifier les liens entre le certificat utilisateur et la racine de confiance il faut donc que le magasin de certificat connaissent l'autorité intermediaire.

    on a donc :

    autorité racine X qui identifie l'autorité intermediaire Y1
    l'autorité Y1 identifie le certificat de l'utilisateur ...

    bref c'est tout simplement la chaine de certification.

    dans mon cas, l'autorité racine est donc bien intégré, par contre pour que la chaine de certification soit valide pour l'utilisateur (peut importe le type de certificat choisi Y1 ou Y2 ect ...) il faut donc pouvoir importer ces autorité intermediaire ca c'est ce que je veux faire !


    Du fait que l'autorité racine est déja présente, le fait d'intégré les autorité intermédiaire ne devrai pas poser de problème puisque la racine est déja accepté.

    fiouu je ne penssai pas écrire autant...

    mais le problème reste là

    car pour reprendre mon problème,

    si je double clique sur une de mes autorité intermédiaire (certificat) puis installer le certificat. windows me propose d'installer ce certificat dans le magasin système (en laissant l'install par defaut)

    après vérification, il me l'installe bien dans les autorité intermédiaire.

    donc je me demandais comment je pouvait réaliser cela par l'intermédiaire de java.

    car avec le "windows-my"

    il va m'installer le certificat dans les "certificat personnel"

    avec "windows-root",

    il va m'installer le certificat dans les autorité racine de confiance (et la avec une petite alerte "attention vous allez accepter ect ....")

    par contre rien pour les AC intermédiaire

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bon alors là je vois pas. Si tu as installé un certificat de CA c'est une CA racine. Après Windows a peut-être comme très souvent sa dénomination des choses... D'après ce lien, ce magasin a des CA pas racine dans le sens, signée par une autre CA. Le fait est que si tu lui fais confiance, ça devient une CA racine, cf la RFC
    Citation Envoyé par RFC 2510
    We use the term "root CA" to indicate a CA that is directly trusted
    by an end entity; that is, securely acquiring the value of a root CA
    public key requires some out-of-band step(s). This term is not meant
    to imply that a root CA is necessarily at the top of any hierarchy,
    simply that the CA in question is trusted directly.
    .
    Mais si tu as ta CA de tout en haut dans le magasin de certificats, tu as pas besoin d'ajouter les certificats intermédiaires, l'algorithme de vérification de certificat gère tout ça. Tu vas recevoir la chaine de certificats et ça devrait suffir si tu testes avec le keystore ROOT (si ta CA de tout en haut est dans ROOT).

    A plus

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Par défaut
    Citation Envoyé par George7 Voir le message
    Mais si tu as ta CA de tout en haut dans le magasin de certificats, tu as pas besoin d'ajouter les certificats intermédiaires, l'algorithme de vérification de certificat gère tout ça.
    Pas exactement puisque mon Autorité racine sert pour "signer" les autorité intermédiaire

    ce sont ces autorités intermédiaire qui vont elles signer les certificats clients

    donc l'autorité racine peut identifier les intermédiaire et les intermédiaire peuvent identifier les clients

    mais si l'intermédiaire n'est pas présent, la racine ne peut identifier directement le client puisqu'il n'y a aucun lien entre les deux

    le but de la CA racine est bien de dire, je fait confiance à tout les certificat émis par cette CA racine

    mais cette CA racine ne sert que à signer les CA intermédiaire
    donc toute les CA intermédiaire sont considéré "de confiance"

    ensuite ces CA intermédiaire signe les certificat client donc le certificat client fait confiance à la CA intermédiaire qui elle même fait confiance à la CA racine donc la bingo tout est bon.

    par contre si la CA intermédiaire n'est pas présent. le client lui fait confiance à une CA intermédiaire qui n'est pas connu par le magasin système donc il ne peut pas faire de lien avec la CA Racine car il n'y à pas de lien directe

    Donc au final non, si la CA racine est présent et pas l'intermédiaire .. au final le client ne peut pas reconstruire la chaine de certification car il lui manque un bout.


    Maintenant, il est vrai que sous firefox (par exemple) il n'y a pas cette différence entre autorité racine et intermédiaire ... tout est rangé sous l'onglet "Autorités"

    donc au final oui le terme autorité intermédiaire semble être une petite sauce de Microsoft qui serait juste une manière de ranger plus qu'un keystore indépendant comme je pensais au départ.

    donc Pour finir, ce que je cherche ne semble pas être possible, du moins pas comme je le voulais.

    Par contre, si la CA intermédiaire est importé dans le keystore windows-MY, la chaine de certification semble être reconstruite (même si dans la mmc, le certificat intermédiaire est rangé dans les certificat personnel et pas dans la partie "Autorités intermédiaire"

    mais bon cela permet un premier fonctionnement, certe perfectible mais qui permet de dépanner pour le moment

    en tout cas mille merci George7 pour votre aide, toujours la pour répondre à mes question sur le domaine de la PKI qui est un endroit vaste où l'on se perd facilement ^^

  6. #6
    Invité
    Invité(e)
    Par défaut
    Dans ta réfutation de mes propos tu as oublié que j'ai dit : "Tu vas recevoir la chaine de certificats". Donc tu auras tous les certificats dont les CAs intermédiaires dans le truc que tu vas tester, c'est ce qui se fait, sinon ça serait un bordel de devoir emmagasiner toutes les CAs de le monde sur ta pauvre petite machine...
    Ensuite ne prenons pas le problème à l'envers en disant : "il est vrai que sous firefox (par exemple) il n'y a pas cette différence entre autorité racine et intermédiaire"
    Il faut dire : : il est vrai que windows est le seul à séparer ce qui est en fait une CA racine (cf citation RFC) d'une autre CA racine
    Mais je vais pas troller, juste que une CA intermédiaire est racine si tu la mets dans ton keystore. As tu essayé de vérifier avec juste la CA racine dans ROOT ?

    EDIT :j'avais pas vu : pour avoir un certificat dans MY il faut bien avoir la clef privée associée, non ? avoir la clef privée d'une CA intermédiaire dans son magasin !!!!

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Par défaut
    alors pour ce qui est des test

    CA racine dans root + ca intermediaire + certificat client

    si je vérifie la chaine de certification sur le certificat client tout est ok, que le certificat intermédiaire soit dans le magasin personnel (installé avec java et le keystore windows-my) ou dans le magasin des autorités intermédiaire (installation manuelle en click)

    résultat en image

    http://deglingo592003.free.fr/upload...ediaire003.JPG
    http://deglingo592003.free.fr/upload...ediaire004.JPG




    Si je supprime l'autorité intermédiaire, le certificat client est paumé

    http://deglingo592003.free.fr/upload...ediaire001.JPG
    http://deglingo592003.free.fr/upload...ediaire002.JPG

    Je comprend bien cette histoire de CA intermédiaire qui est aussi une racine

    et pour le Windows MY, oui on y stock nos certificat personnel avec la clé privé, et oui je suis d'accord avec toi sur le fait que ces AC intermédiaire installé n'ont rien à faire à cette endroit, mais au final en passant par java j'ai le choix entre mettre ces AC intermédiaire là ou dans root en sachant que si je les met dans root, j'ai un message d'alerte me disant qu'une autorité va être installé dans le magasin des autorité racine de confiance, etez vous sur de vouloir faire confiance à cette autorité et blablabla ....

    bref ce message est normale pour des raisons évidente de sécurité mais dans mon cas, l'AC racine est incluse par defaut dans le magasin systeme donc cela aurait été bien de pouvoir inclure les autorité intermediaire sans ce message d'alerte ce qui devrai être logique, on fait confiance à toute les autorité issu de cette racine de confiance, donc les AC intermédiaire étant signé par cette AC racine ne devrait pas alerter l'utilisateur puisqu'il à décidé de faire confiance à cette autorité

  8. #8
    Invité
    Invité(e)
    Par défaut
    Ton certificat client est généré par qui et comment ? Il ne contient pas toute la chaine de certificat ? Si tu peux changer ça, alors je te conseille de le faire. Tu comprends bien le problème, si tu dois demander à tous tes clients d'installer toute la chaine !!! C'est pour ça que les PKI ont été créées justement, pour avoir des CA de confiance, qui suffisent à vérifier une chaine complète, sans avoir toute la chaîne dans ton truststore.
    De plus distribuer ta clef privée à tous les clients.... autant ne pas mettre de PKi en place et ne rien crypter/signer ça fera moins de dégâts

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Par défaut
    le problème de cette chaine de certification est que :

    il existe une Autorité racine (incluse dans le magasin système désolé de ne pas pouvoir être plus précis)

    Sous cette AC racine sont placés des AC intermédiaire qui on chacun des rôle et des obligations différente (et qui corresponde donc aussi à des AC racine)

    Par exemple

    si je ne dit pas de bêtise on retrouve chez verisign les class 1 class2 et class 3

    donc l'AC Racine de verisign signe ces autorité intermédiaire

    et ensuite le clients fait sa demande de certificat en fonction de ses besoin

    Par exemple : pour un class 1 on ne fait que vérifier l'identité du futur porteur du certificat alors qu'avec un class 3 (si je ne me trompe pas) le certificat doit obligatoirement être stocker sur un support physique

    ces différentes autorité intermédiaire respecte différentes norme (temps d'indisponibilité de la crl, par exemple ou encore le fait de devoir être stocker sur carte à puce)

    le client effectuera donc ca demande en fonction de ses attente

    Et pourtant dans le magasin de certificat windows, on retrouve bien en autorité intermédiaire : Verisign class 1 individual Subscriber CA

    puis dans les autorité racine de confiance : on retrouve le certificat lier à l'autorité intermédiaire : Verisign class 1 Primary CA

    donc on retrouve bien une AC racine de confiance installé qui identifie une AC intermédiaire installé elle aussi

    Si un client demande un certificat à vérisign : le certificat sera délivré (avec cette exemple) non pas par Verisgn class 1 primary CA mais par Verisign class 1 individual Subscriber CA qui est l'AC intermédiaire.

    or si on supprime par la suite cette AC intermédiaire, le certificat client ne sait pas faire le lien entre Verisign class 1 Primary CA et lui même car entre les deux il est censé avoir un autre certificat

    ce qui montre bien que si l'AC intermédiaire (qui est en fait une AC racine aussi mais signé par une autre AC) n'est pas présente, la chaine de certification est cassé.

    et donc à aucun moment dans ce certificat verisign (certificat client), on retrouve de lien avec l'AC racine (l'unique)

    revenons à nos moutons

    En fait oui dans ce certificat on retrouve le lien avec l'AC intermediaire (qui est aussi en fait une AC racine dans mon cas <devient compliqué tout ça ^^>)

    on à bien sur le certificat client un champ > délivré par : nom de l'ac intermediaire

    sur l'ac intermeidaire le même champ > délivré par : nom de l'AC racine

    donc le schema de la chaine de confiance pour qu'il soit respecté est finalement bien cela :

    1) l'utilisateur accorde ca confiance à l'AC racine
    2) cette AC racine signe d'autre AC appelé ici AC intermédiaire
    3) lorsqu'un client demande un certificat celui ci est délivré par l'AC intermédiaire
    4) comme l'AC racine a signé les AC intermédiaires, l'utilisateur accorde automatiquement sa confiance au certificat émis par ces AC intermédiaire.
    5) donc la chaine de certification complète est bien AC racine > AC intermédiaire > certificat client

    Si une de ces information manque, la chaine est cassé

    après je suis d'accord, le certificat contient la chaine de certification

    dans mon certificat client j'ai bien , si on schématise

    Moi client, j'ai reçu un certificat de "AC intermédiaire", Or "AC intermédiaire" est issu de AC racine à laquelle j'ai accordé ma confiance donc tout cela est OK

    Par contre imaginons que l'on a uniquement besoin de l'AC racine

    Si l'ac Intermédiaire qui à émis le certificat est révoqué (par exemple) ou expiré.

    et bien si l'AC intermédiaire n'est pas présente alors le certificat client ne peut pas savoir si l'AC intermédiaire est toujours valide. ce qui au final serait un peu embêtant non ?.

    ou tout simplement le certificat client voit uniquement l'AC racine qui elle lui dit c'est OK cette AC intermediaire je la connait elle est encore valide c'est partis mon kiki

    Je suis au final entrain de me faire un bon mal de crane là, fiouuu dur dur la vie d'une PKI


    Sinon pour ce qui est de
    De plus distribuer ta clef privée à tous les clients.... autant ne pas mettre de PKi en place et ne rien crypter/signer ça fera moins de dégâts
    la clé privé n'est pas distribué au client, il n'y à que le certificat de donné sinon là c'est sur que se serait problématique (je sais que cette histoire de keystore windows My n'est pas la meilleur solution puisque je ne donne pas de clé privé avec ce certificat, mais cela me permettais d'avoir le certificat a un endroit dans le magasin système et qui permettait de valider am chaine de certification)

    Il ne contient pas toute la chaine de certificat [....]si tu dois demander à tous tes clients d'installer toute la chaine !!! C'est pour ça que les PKI ont été créées justement, pour avoir des CA de confiance, qui suffisent à vérifier une chaine complète, sans avoir toute la chaîne dans ton truststore.
    Pour reprendre ce dernier quote, peut être que je dit des bétises encore une fois, mais la est ce que la chaine complète est stocké dans le certificat client dans un champ précis comme par exemple on retrouve les champs emetteur, sujet ou encore le subject alt name

    Si oui dans quel champs est stocké cette chaine complète dans le certificat final ?

    car peut être que finalement la chaine n'est pas vraiment stocké dans ce certificat et que l'on m'aurai mal informé ?

    car une chose est sur si mon AC intermédiaire n'est pas installé je me retrouve avec la même chose que les screen poster dans le sujet plus haut !


    Pour conclure ce pavé de mot imbuvable que je vient de pondre

    Il faut que le certificat client il y est un "champs" chaine de certification avec Ac intermediaire(s) et AC racine (comme cela le certificat contient bien un lien avec l'AC intermediaire mais aussi avec l'AC racine)

    comme cela je sais que si l'AC racine me dit que cette AC intermediaire est valide alors je considere que le certificat est valide. (enfin c'est une façon simple de voir les choses)

    de cette manière peut importe l'AC intermediaire qui à émis le certificat, au final tout les certificat client discuterons avec l'AC racine qui elle s'occupera de vérifier la validité du certificat client en fonction de l'AC intermediaire conrrespondante qu lui connait forcement

    encore merci pour tes interventions qui m'aide beaucoup dans mes recherches

  10. #10
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Tu ne nous a toujours pas expliqué quel est le but de l'utilisation des certificats :

    Chiffrement/signature de mails ? De documents ? Connexions TLS ?

    Quelques remarques concernant le débat :

    Un certificat X.509 ne contient pas forcément sa propre chaine de certification. Ça dépends beaucoup de la manière de le récupérer (LDAP ? HTTP ? S/MIME ?)

    Au niveau de la validation de la chaine par l'algorithme fourni par l'IETF (ce dont parle George7) :
    Je ne crois pas que l'algo soit capable d'aller lire les champs de chaque certificat pour aller chercher les infos permettant d'automatiser une connexion à un annuaire LDAP par exemple pour aller télécharger automatiquement la chaine car les noms des rubriques d'un annuaire LDAP pour la gestion d'une PKI n'étant pas normalisés je ne vois pas comment c'est possible de faire une telle chose, de +, certaines PKI peuvent utiliser HTTP plutôt que LDAP pour la distribution des certificats racines et intermédiaires sous forme de fichiers PKCS#7.

    Pour valider la chaine il faut donc ( à mon avis, et ce n'est que mon avis j'ai pas une grande expérience là dedans) avoir importé au préalable la totalité de la chaine dans son ou ses magasins.

    Le contexte d'utilisation est important pour ton problème parce que par exemple pour les mails (S/MIME donc) je sais qu'on peut joindre au mail la totalité de la chaine de certification pour être sûr que le client de messagerie du destinataire soit en mesure de vérifier la chaine de certification justement (typiquement ton problème. Donc si ton système gère S/MIME, il te suffit de joindre à ton mail la chaine (c'est assez simple à faire avec BouncyCastle par exemple).

    J'espère avoir aidé un peu bien que ne connaissant pas le contexte du problème il est difficile d'apporter une réponse utile.

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Par défaut
    les certificats ont pour rôle final (tout dépend du certificat bien sur) : signature et/ou chiffrement de mail, authentification, signature de code, signature et chiffrement de documents, principalement.

    Maintenant que j'ai bien relu toutes vos réponse, je vais réfléchir à tête reposé à tout cela, car il me semble être dans le cas où l'importation de la chaine est une étape obligatoire.

    Par contre pour cette histoire de chaine envoyé avec le mail, cela semble très intéressant, je vais aller fouiller un peu plus dans cette library qui est pas mal foutu quand même ^^

    merci pour vos interventions

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

Discussions similaires

  1. probleme d'accés de windows vers linux
    Par abssef dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 21/04/2008, 15h08
  2. accès depuis windows 95
    Par Fabrice01 dans le forum Windows XP
    Réponses: 1
    Dernier message: 06/02/2008, 11h18
  3. Gestion des droit d'acces sous windows
    Par MSM_007 dans le forum Windows XP
    Réponses: 1
    Dernier message: 18/10/2007, 08h40
  4. Problème acces disque windows sous linux
    Par stan314 dans le forum Mandriva / Mageia
    Réponses: 15
    Dernier message: 27/08/2006, 19h52
  5. Problème de concurrence d'accès sous Windows
    Par DJZiaK dans le forum SQLite
    Réponses: 6
    Dernier message: 10/05/2005, 17h21

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