javascript - link - title html attribute
¿El lector de tarjetas inteligentes accede desde un navegador web? (7)
¿Es posible acceder a un lector de tarjetas inteligentes conectado a una computadora desde un navegador web que se ejecuta en la misma máquina, es decir, desde un script ActionScript, JavaScript o cualquier otro que se ejecute en él?
Por ejemplo, leí algo sobre la clase flash.external.ExternalInterface
en ActionScript. ¿Se puede utilizar para acceder a un lector de tarjetas inteligentes o es impenetrable el Sandbox?
Cuando se implemente esta propuesta " Tarjetas inteligentes en los navegadores ", también podremos usar JavaScript para esto.
No puedes lograr esto con ActionScript / Flash si tienes que mantenerte en el navegador.
Adobe AIR podría hacer esto, pero luego tendría que crear una aplicación que el usuario tenga que instalar antes de usarla.
Algo como esto (AIR): http://cookbooks.adobe.com/post_Mass_Storage_Device_Detection_AIR_2_0-16747.html
P: ¿es posible acceder al lector de tarjetas inteligentes conectado a una computadora desde un navegador web que se ejecuta en la misma máquina?
R: Sí, es posible. Pude hacerlo utilizando un applet JAVA firmado. El applet de Java debe estar firmado, ya que requerirá que el usuario otorgue permiso para acceder a los archivos / hardware del sistema (lo mismo que permitir que un applet escriba / edite / elimine un archivo de texto para usted).
Por que java El lector de tarjetas inteligentes que utilicé ya tiene una API de JAVA, también tiene ejemplos sobre cómo acceder a ella utilizando java. Pero los ejemplos están codificados en swing. (como una aplicación de escritorio independiente) Lo que hice fue simplemente portar el código swing de Java a un applet en un navegador. Usé con éxito este applet para iniciar sesión y cerrar sesión en un sitio web / aplicación web al requerir tarjetas inteligentes, nombre de usuario y contraseña. Bastante seguro diría yo.
El código fuente? Por mucho que me gustaría compartirlo, pero estoy sujeto a un contrato de la empresa para no compartir el código. Simplemente encuentre un acceso de muestra a la tarjeta inteligente usando java y solo transfiéralo al applet (para web)
espero que esto ayude
Puede utilizar un applet de Java firmado para acceder al lector. Los applets firmados pueden acceder a dispositivos periféricos de hardware, se puede acceder al lector de tarjetas inteligentes a través de la API de criptografía de Java.
Espero que esto ayude.
Si puede acceder a la tarjeta inteligente en su sistema de archivos, como cuando una unidad USB está conectada y aparece como un disco separado, simplemente puede usar flash.net.FileReference
.
También puedes echar un vistazo a este complemento nativo beta:
https://github.com/ubinity/webpcsc-firebreath
Es un complemento de navegador cruzado / multiplataforma basado en el marco firebreath, que expone un subconjunto de la API PCSC.
Trabajé en hacer lo mismo alrededor de 2012, en ese entonces, trabajé sobre un trabajo anterior que proporcionaba un applet de Java.
Hoy en día [diciembre de 2015], tiene menos sentido utilizar un applet de Java debido a problemas de seguridad ''recientes'', y luego de descartar el soporte para los applets de Java, y las tecnologías de complementos nativos también se están descontinuando.
Independientemente de la utilidad actual de un applet de Java, recogiendo la respuesta de @Glen Allen, no estoy obligado por contrato, y aquí está el código fuente abierto de un applet de ejemplo: https://github.com/ist-dsi/signature
Se construyó sobre un trabajo de tesis y produce documentos en este formato: http://www.w3.org/TR/xmldsig-core/ se puede encontrar más información sobre los por qué en el resumen de esa tesis de MSC https://fenix.tecnico.ulisboa.pt/downloadFile/395139415358/resumo.pdf (el autor es mejor ingeniero que el escritor de tesis, pero podría ser un buen punto de partida si desea conocer el estado del arte de la cosa, aunque es viejo)
Hay más requisitos que, en retrospectiva, y sin saberlo, hicimos algunas elecciones extrañas de tecnologías en el código que les presento aquí, simplemente ignore esa parte :)
Una de las respuestas aquí insinuada en PKCS_11 y estándares abiertos. Tal vez el truco reside en un controlador de lector de tarjetas inteligentes que configura automáticamente la infraestructura de certificados en el lado del cliente. Recuerdo que tuve que pasar por muchas dificultades para configurar la tarjeta inteligente de mi tarjeta de identificación con un lector en Mac OS X con Chrome [AFAIK no fue fácil configurar el lector de tarjetas inteligentes con el almacén de claves de Apple, y tal vez tampoco era tan fácil entonces configurar Chrome para que usara la autenticación del cliente y solicitara acceso al almacén de claves de Apple].
O tal vez la NFC + SmartCard y una aplicación móvil sean el camino a seguir.
Es un desperdicio tener países enteros con ID con tarjetas inteligentes, muchos servicios gubernamentales que ya tienen aplicaciones web, y no es una forma fácil de conectarlos.
Aclamaciones.