2017-07-29 4 views
3

J'ai essayé d'utiliser les "requêtes" de la bibliothèque python pour communiquer avec un site web protégé par une carte à puce. Cela signifie une authentification forte dans SSL: vous devez fournir un certificat côté client (cert et clé privée). Comme j'utilise une carte à puce, je ne peux pas lire la clé privée (uniquement le module) qui est une protection normale. Je peux lire la carte à puce avec la bibliothèque python PyKCS11: tous les certificats, clé publique et module de clé privée une fois donné le code pin.Comment faire une requête TLS en utilisant une carte à puce avec python?

Comment mélanger à la fois les requêtes et PyKCS11?
Comment faire une demande SSL avec un certificat côté client dans une carte à puce?

EDIT 2017/08/04

Sur mon Mac:

  • brew installer OpenSSL
  • brew installer opensc
  • brew installer engine_pkcs11
  • OpenSSL
    • moteur dynamique -pre SO_PATH:/usr/local/Cellar/engine_pkcs1 1/0.1.8/lib/moteurs/engine_pkcs11.so -pre ID: pkcs11 -pre list_add: 1 -pre CHARGE -pre MODULE_PATH:/usr/local/lib/(mon pkcs11 spécifique lib) .dylib
      • chargés: (pkcs11) moteur pkcs11
    • s_client -engine pkcs11 touche '(slot) :(id)' moteur -keyform -cert 'pem.cer' -connect (hôte): 443 -state -debug
      • SSL ok poignée de main

Mon problème maintenant est que pyOpenSSl n'a pas de fonction dans l'API pour sélectionner un moteur (comme pkcs11). Donc je suis arrêté. Je ne peux pas utiliser python.

Répondre