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

C# Discussion :

Import et utlisation de certificats X509 - Lenteurs


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Par défaut Import et utlisation de certificats X509 - Lenteurs
    Bonjour,

    dans mon projet je dois importer un certificat pour signer un document XML, mais lorsque je veux utiliser des paramètres de ce certificat, j'ai des gros ralentissements...
    Voici un mini-projet pour illustrer mon problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    static void Main()
            {
     
                    X509Certificate2 certificate = new X509Certificate2(@"..\..\monCertif.p12", "monMotDePasse");
     
                  AsymmetricAlgorithm test;
                  MessageBox.Show("avant assignation");
                  test = certificate.PrivateKey;
                  MessageBox.Show("après assignation");
            }
    Dans ce code très simple:
    -Je créé un objet X509Certificate2 depuis un certificat local (pas de problèmes)
    -J'assigne à un objet 'test' de type AsymmetricAlgorithm la clef privé du certificat. (Et là, cette ligne prend presque 10secondes).

    J'ai remarqué en utilisant wireshark que lorsque cette ligne (test = certificate.PrivateKey) est lancée:
    -mon PC lance une requête de type "SMB_NETLOGON" au serveur du domaine (SAM LOGON request from client).
    -Le domaine répond à mon pc une requête "SMB_NETLOGON" (SAM active directory response - user unknown)

    Cet échange est refait une seconde fois, puis la ligne est passée.

    À noter:
    -Je n'ai pas d'erreurs ni d'exceptions, le programme continu ensuite normalement et sans problèmes (pour tout ce qui ne touche pas à la manipulation du certificat...), et l'objet "test" à bien tous les attributs de la clef privé du certificat.
    -Sur le PC d'un de mes collègues (qui es dans le même réseau), le traitement est instantané (ce qui veut dire assurément que le certificat est valide).

    Ma configuration:
    -Windows XP Pro service pack 3
    -Visual Studio 2010
    -Framework 4.0


    Donc, ma question: quelles raisons peuvent pousser le système à chercher l'authentification sur le domaine dans le cadre d'un passage de références?

    Merci d'avance pour toute aide/idées.


    Arnaud DS

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Il y a un bug connu avec les certificats de ce type, lorsqu'on utilise le constructeur. Tu pourras trouver un fix ici : Big delay when calling X509Certificate2 constructor.

    C'est semble-t-il lié à un fichier temporaire qui n'est jamais supprimé : X509Certificate creates temporary files which are never deleted.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Par défaut
    Bonjour,

    merci pour ta réponse mais mon problème est autre, j'ai trouvé la "solution", tout du moins identifié la cause aujourd'hui:

    C'est mon netbios qui envoyait ces requêtes au serveur de domaine, bouclant et ralentissant. En changeant la configuration de mon poste, en le mettant non pas relié à un domaine mais à un groupe du travail, il me laisse tranquille.

    Cela doit provenir d'un problème de DNS, d'adressage, je ne sais pas.

    Mon problème est donc semi-résolu, c'est à dire que je peux travailler convenablement, mais pour la future mise en production chez les clients, je devrai trouver une solution car la plupart sont sur des domaines...

    Ferme-t-on le topic ?

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    C'est étonnant.

    Le chemin vers ton certificat "monCertif.p12", c'est un chemin réseau ou un chemin local ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Par défaut
    Le chemin local! Oui c'est étrange, avec Microsoft il est difficile de savoir ce qui se passe réellement en background... Sur ce mini-projet, il n'y a aucuns web-services, accès en bases, etc...

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Par défaut
    Bon, problème résolu.

    Lorsqu'on est en mode "domaine" sous XP, il faut renseigner le DNS à la main dans les propriétés de la carte réseau. (TCP/IP -> Avancé -> DNS).

    Après, pourquoi l'utilisation d'un objet Certificat local demande au Netbios de s'exciter pour savoir quel est son DNS, mystère.


    Arnaud DS

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

Discussions similaires

  1. Comment signer un fichier XML avec certificat X509 (.pfx)
    Par imad_eddine dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 08/03/2011, 10h27
  2. [Cryptographie][JNDI] Sauvegarder certificat X509
    Par Makineros63 dans le forum Sécurité
    Réponses: 2
    Dernier message: 05/05/2008, 09h05
  3. Accepter automatiquement un certificat X509
    Par kayanwan dans le forum ASP.NET
    Réponses: 3
    Dernier message: 16/11/2007, 00h41
  4. Construction de certificats X509
    Par KenPark dans le forum Sécurité
    Réponses: 2
    Dernier message: 12/07/2007, 13h50
  5. Récupérer le CN d'une certificat X509
    Par sfaxi dans le forum Apache
    Réponses: 1
    Dernier message: 30/05/2007, 19h01

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