Accès au lecteur de carte à puce à partir d'un navigateur web?

est-il possible d'accéder à un lecteur de carte à puce connecté à un ordinateur à partir d'un navigateur Web fonctionnant sur la même machine, c.-à-d. à partir d'un ActionScript, JavaScript ou tout autre script qui s'y exécute?

par exemple, j'ai lu quelque chose sur le flash.external.ExternalInterface classe ActionScript. Peut-il être utilisé pour accéder à un lecteur de carte à puce ou le bac à sable est-il impénétrable?

20
demandé sur bluish 2011-07-19 20:53:23

7 réponses

Q: est-il possible d'accéder au lecteur de carte à puce connecté à un ordinateur à partir d'un navigateur Web fonctionnant sur la même machine?

A: Oui, c'est possible. J'ai pu le faire en utilisant un applet JAVA signé. L'applet java doit être signé car il faudra que l'utilisateur accorde la permission d'accéder aux fichiers/au matériel du système(comme laisser un applet écrire/modifier/supprimer un fichier texte pour vous).

pourquoi java? le lecteur de carte à puce que j'ai utilisé a déjà une API JAVA, il a aussi des exemples sur la façon d'accéder à l'aide de java. Mais les exemples sont codés en swing. (comme une application autonome de bureau) ce que j'ai fait est tout simplement le portage du code java swing à applet sur un navigateur. J'ai utilisé avec succès cette applet pour faire une connexion et de se déconnecter sur un site web / webapp en exigeant des cartes à puce, nom d'utilisateur et mot de passe. Assez sécurisé, je dirais.

le code source? Même si j'aimerais le partager, mais je suis lié par un contrat d'entreprise de ne pas partager le code. Il suffit de trouver un échantillon intelligent accès par carte en utilisant java et il suffit de le porter à applet (pour le web)

j'espère que cela aide

9
répondu Glenn S 2012-01-09 09:12:42

vous pouvez aussi jeter un oeil à ce plugin natif beta:

https://github.com/ubinity/webpcsc-firebreath

c'est cross-browser/cross-pltaform plugin basé sur firebreath framework, exposant un sous-ensemble de L'API PCSC.

5
répondu cslashm 2013-06-03 09:13:41

Lorsque cette proposition "cartes à Puce dans les navigateurs " est implémentée, nous serons également en mesure d'utiliser JavaScript pour cela.

4
répondu Peter Kalef ' DidiSoft 2015-01-30 16:38:52

j'ai travaillé sur le même circa 2012, à l'époque, j'ai travaillé sur un travail précédent qui fournissait une Applet Java.

de nos jours [décembre 2015], il est encore moins logique d'utiliser une Applet Java en raison de problèmes de sécurité "récents", et suite au rejet du support pour les Applets Java, et les technologies de plugin natives sont également abandonnées.

quelle que soit l'utilité actuelle D'une Applet Java, reprenant la réponse de @Glen Allen, Je ne suis pas lié par contrat, et voici le code source ouvert d'un Applet exemple: https://github.com/ist-dsi/signature

il a été construit sur un travail de thèse et il produit des documents dans ce format: http://www.w3.org/TR/xmldsig-core/ Plus d'information sur le pourquoi peut être trouvé dans le résumé de cette thèse de MsC https://fenix.tecnico.ulisboa.pt/downloadFile/395139415358/resumo.pdf (l'auteur est un meilleur ingénieur que rédacteur de thèse cependant, mais il pourrait être un bon point de départ si vous souhaitez connaître l'état de l'art de la chose, même si c'est vieux)

il y a plus d'exigences que rétrospectivement et sans savoir fait quelques choix étranges de technologies sur le code que je vous donne ici, juste ignorer cette partie :)

l'Une des réponses ici allusion sur PKCS_11 et des standards ouverts. Peut-être que l'astuce réside dans un lecteur de carte à puce pilote qui met automatiquement en place l'infrastructure de certificat du côté du client, je me souviens avoir à passer par beaucoup de cerceaux cependant pour configurer la carte à puce de ma carte D'identité avec un lecteur sur Mac OS X avec Chrome [AFAIK il n'a pas été facile de mettre en place le lecteur de carte à puce avec le keystore D'Apple, et peut-être aussi pas si facile à l'époque pour avoir Chrome configuré de sorte qu'il utiliserait l'authentification du client et demandé l'accès à la keystore D'Apple].

ou peut-être que la NFC + SmartCard et une application mobile seront la solution.

c'est juste un tel gâchis d'avoir des pays entiers avec IDs avec SmartCards, beaucoup de services gouvernementaux déjà avec webapps, et aucun moyen facile de connecter les deux.

Cheers.

3
répondu João Antunes 2015-12-21 16:54:59

vous pouvez utiliser un applet Java signé pour accéder au lecteur. Les applets signés sont autorisés à accéder aux périphériques matériels, le lecteur de carte à puce est accessible via L'API Java Crypto.

J'espère que cela vous aidera.

2
répondu gyimi 2012-02-24 16:19:41

si vous pouvez accéder à la carte à puce sur votre système de fichiers, comme quand une clé USB est connectée et apparaît comme un disque séparé, alors vous pouvez tout simplement utiliser flash.net.FileReference.

0
répondu TheDarkIn1978 2018-07-31 12:53:04

vous ne pouvez pas atteindre cet objectif avec ActionScript/Flash si vous devez vous en tenir au navigateur.

Adobe AIR pourrait faire cela, mais alors vous devriez construire une application que l'utilisateur doit installer avant de l'utiliser.

quelque chose comme ceci (AIR): http://cookbooks.adobe.com/post_Mass_Storage_Device_Detection_AIR_2_0-16747.html

0
répondu pkyeck 2018-07-31 13:00:04