Quelles sont les techniques permettant aux utilisateurs finaux de sélectionner des clés sur une carte à puce?


0

Lorsque multiple keys exist sur une carte à puce donnée, comment un utilisateur peut-il choisir entre eux pour un identifiant donné ... idéalement sans perte d'intimité? Par exemple, supposons que j'aie un ID émis par le gouvernement qui stocke un ensemble de clés pour le chiffrement et un autre pour la non-répudiation. Je stocke ensuite une clé tierce supplémentaire dessus.

  • Lorsque j'authentifie (ou) Chiffrer les données du gouvernement, (par rapport aux données 3ème partie) comment puis-je « choisir » le certificat utilisé?

  • La sélection de certificat est-elle une fonctionnalité du système d'exploitation, du pilote de carte à puce ou de la carte à puce elle-même?

Lors du choix des certificats sur la carte elle-même, je envision a button I can press like this one here:

enter image description here

La raison pour laquelle je pose cette question est si je peux comprendre non seulement l'utilisation de la carte à puce normale, mais aussi des cas où plusieurs UProve les jetons sont émis sur une carte similaire (les interactions seront vraisemblablement les mêmes)

1

Théoriquement, sur un système Windows, le Certificate Propagation Service automatiquement supplémentaire cts tous les certificats de toute carte à puce qui est insérée, et les copie dans le "My" magasin de l'utilisateur actuel. Chaque certificat de ce type est enregistré avec un lien vers la clé privée correspondante, qui se trouve dans la carte à puce. Lorsque la carte à puce doit être utilisée, l'application recherche en fait un certificat correspondant, ce qui peut inciter l'utilisateur à choisir le certificat; une fois le certificat sélectionné, l'application tente alors d'atteindre la clé privée, point auquel le pilote de la carte à puce est appelé (et seulement à ce moment) (en interne, l'application parle au "Microsoft Base Smart Card CSP" au "minidriver" spécifique à la carte).

L'idée principale est que les applications ne voient pas de "cartes à puce"; ils utilisent les clés privées qu'ils trouvent par leur certificat . Si une clé privée donnée est dans une carte à puce ou non, ou si deux clés proviennent de la même carte à puce, elle est conservée dans les composants internes du système d'exploitation. Application peut bidouiller directement avec des cartes à puce (en utilisant winscard.dll), mais la plupart ne le font pas (par exemple Internet Explorer, lorsqu'il s'agit d'un serveur SSL qui demande des certificats client, regarde certificats et ne se soucie pas de smartcardness).

Les choses varient sur d'autres systèmes d'exploitation ou sur certaines applications. Firefox, par exemple, utilise seulement PKCS#11, une API générique pour les "dispositifs cryptographiques", et ne tient aucun compte de la prise en charge du système d'exploitation lorsqu'il est exécuté sous Windows. Ensuite, ce qui se passe dépend entièrement de la façon dont Firefox décide de gérer les cartes à puce. Le principe principal est toujours actif, cependant: les choix des utilisateurs sont centrés sur les certificats .