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

Linux Discussion :

OpenVPN & SmartCard : TLS_ERROR


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 40
    Par défaut OpenVPN & SmartCard : TLS_ERROR
    Bonjour,

    Je essai actuellement d'authentifier mon tunnel OpenVPN à l'aide de certificats qui se trouvent sur ma SmartCard. Je rencontre des problèmes avec la vérification du CA qui a signer les certificats se trouvant sur la SmartCard.

    Voici quels info pour vous situez dans ce que je fais.

    Je travaille avec la SuisseID (Reader + SmartCard). Cette SmartCard est bloquée en écriture.
    La lib opencs ne fonctionne pas avec cette clé, il faut utilisé la librairie libcvP11.so.

    Sur la clé on trouve de base (à l'achat)
    • Les clés RSA privés
    • Les clés RSA publiques (extractable)
    • Toute la chaince de certificat (Root-autosigné, IntermédiaireAuth, IntermédiaireSign, PersoAuth, PersoSign)


    Les certificats utilisés de chaque coté du tunnel sont les certificats "PersoAuth" du propriétaire de la SuisseID, signé par les certificats intermédiaire, eux-m^eme signé par le certificat root.

    Donc ma configuration ressemble à ça

    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
    client
    dev tun
    proto udp
    remote adresseIP 1194
    resolv-retry infinite
    nobind
    tls-client
    persist-key
    persist-tun
     
    ca keys/SwissSignSuisseIDPlatinumCA2010-G2
     
    pkcs11-providers /usr/lib/libcvP11.so
    pkcs11-id 'aaaaaa/bbbbbb\ccccc\x2E3B/7bff2081ef012f35/SwissSignID/83444981CD0E4AB27EE8B7369532C9F886FEF6B3'
     
    ns-cert-type server
    tls-auth /etc/openvpn/keys/ta.key 1
    cipher AES-128-CBC
    pull
    #comp-lzo
    verb 2
    mute 5
    Je récupère correctement l'accès à mon certificat personnel d'authentification avec la commande OpenVPN suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ sudo openvpn --show-pkcs11-ids /usr/lib/libcvP11.so
    Le CA configuré si-dessus est le certificat IntermédiaireAuth sans la chaine complète (génère une erreur s'il y a un certificat auto-signer dans la chaine).
    Il est sur que ce certificat et valide. Je l'ai extrait de FireFox, directement de la clé via un script et télécharger sur le site de SwissSign pour voir si un des certificats n'était pas bon.

    Donc je viens à mon erreur. Lorsque je veux me connecter à mon serveur OpenVPN avec la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ sudo openvpn client.conf
    Il me génère cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Fri Jul  8 13:18:59 2011 VERIFY ERROR: depth=1, error=unable to get local issuer certificate: /C=CH/O=SwissSign_AG/CN=SwissSign_SuisseID_Platinum_CA_2010_-_G2
    Fri Jul  8 13:18:59 2011 TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
    Fri Jul  8 13:18:59 2011 TLS Error: TLS object -> incoming plaintext read error
    Fri Jul  8 13:18:59 2011 TLS Error: TLS handshake failed
    J'espère que quelqu'un pourra m'éclaircir.
    Je suis persuader que l'erreur vient du CA, mais je ne sais pas comment régler ce problème.
    Il y a énormément de HOWTO sur le net, mais tous avec des SmartCard qui sont modifiable (utiliser ma SmartCard limité en accès est une contrainte, je ne peux pas faire autrement).

    J'arrive récupérer l'ID du certificat intermédiaire grâce à la commande :
    Est ce qu'il y a un moyen de faire un link similaire au pkcs11-id vu plus haut dans la config, mais pour le CA ?


    Bonne journée,
    palo

  2. #2
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Par défaut
    Bonjour PaloPalo,

    Je n'ai jamais fais d'authenticate sur un VPN,
    Mais pour la partie carte à puce, le faites qu'elle soit accéssible uniquement en lecture ne dois pas avoir d'incidence sur l'authentification.
    L'ideal serait de foutre un sniffer USB pour voir les echanges avec ta smartcard, il est possible que celle-ci ne soit pas prise en charge, le sniffer te permettra de voir si les commandes APDU executé ne te retourne pas de "status failed" ( != 0x9000 ).
    Aussi tu peux essayer de te créer rapidos un outil te permettant de vérifier ta signature via ta clé public, cela te permettra de t'assurer que ton certificat stocké dans ta carte est bien generé, il y a telement de parametre possible lors qu'une authentification qu'une simple valeur de PADDING EDC ou CDC peu te retourner une signature differentes.

    En esperant t'avoir aidé.

    Cordialement,

    Moulefrite

  3. #3
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 40
    Par défaut
    J'avais oublié que j'avais posé cette question.


    La configuration du client OpenVPN est correcte. Pour récupérer l'identification des certificats et le chemin d'accès, il faut utiliser cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo openvpn -show-pkcs11-ids /usr/lib/libcvP11.so
    Le résultat est la ligne en rouge dans mon 1er poste (la librairie utilisée correspond à la SuisseID et est propriétaire. Pour des clé standard, la librairie est libpkcs11.so).


    Voici maintenant les certificats côté serveur et côté client

    Client
    • CA: CA.crt, c'es le certificat qui a signé le certificat du serveur (serveur.crt)
    • crt: Le chemin du certificat d'authentification et de sa clé privée sur la SmardCard (en rouge)
    • Le chemin de la librairie utilisée


    Serveur
    • CA: SwissSign.crt, qui représente l'ensemble de l’arborescence des certificats qui signe le certificat d'authentification de la SmardCard (dans un seul certificat --> dans mon cas : Root-autosigné et IntermédiaireAuth)
    • crt: serveur.crt, le certificat du serveur signé par le CA.crt
    • key: serveur.key, le chemin de la clé privée du serveur


    Donc c'est ce qu'on va trouver dans les fichier de configuration. Pour le serveur, il faut juste assembler tous la chaine de certificats dans un seul certificat.

    Il y a maintenant encore un chose à faire du côté du serveur OpenVPN. Dans la partie CCD qui contient le fichier de configuration du client, il faut que ce fichier porte le nom du certificat sur la SmardCard. Si vous n'êtes pas sûr du nom, nommer votre fichier comme vous voulez, lancez la connexion, ce nom sera afficher dans les fichiers log ou directement à l'écran pendant l'échange des certificats. (Ce qui c'est passé pour moi lorsque j'ai ouvert ce topic, mais je ne savais pas encore que la solution était sous mon nez )

    Si vous regardez l'erreur que j'ai mis dans mon 1er poste, ça signifierait que mon fichier de configuration client dans le dossier CCD doit se nommer SwissSign_SuisseID_Platinum_CA_2010_-_G2.

    Voilà, j'espère que c'est assez claire. Tout ce qui est création du CA et des clés publiques/privées du serveur pour OpenVPN se trouvent dans tous les HOWTO disponibles sur le net.

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

Discussions similaires

  1. [SmartCard] APDU => CLA propriétaire
    Par ludovic.fernandez dans le forum Développement
    Réponses: 3
    Dernier message: 29/04/2003, 14h13

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