Firme digitalmente los datos en el navegador usando una tarjeta inteligente o certificado

Necesito crear una firma digital de algunos datos XML con un certificado de cliente (tarjeta inteligente) usando un navegador web. Por lo general, solía hacerlo con un applet de Java ejecutándose en el lado del cliente. El beneficio es la multiplataforma en términos de SO y navegadores.

Sin embargo, esta opción es cada vez más difícil de implementar y brindar soporte a largo plazo. Prácticamente todos los navegadores requieren algún tipo de acción para ejecutar dicho applet, la firma de código con un certificado de confianza es casi obligatoria hoy en día, nuevos atributos de manifiesto, etc. Bueno, no hay nada malo con una capa adicional de seguridad y estoy de acuerdo con eso.

Sin embargo, Google Chrome a partir de abril de 2015 dejó de ser compatible con los applets de Java (y también con otros complementos): hay un cambio de configuración pero no estará disponible por mucho más tiempo como se indicóaquí.
Mozilla Firefox no tiene fecha de finalización de soporte para NPAPI pero lo llaman "tecnología heredada".
En cuanto a IE, no admite complementos en la interfaz de usuario moderna.

Entonces, con los applets de Java que ya no son realmente una opción universal, ¿cuáles son mis opciones?
Lo que he investigado hasta ahora:

ActiveX - solo IESilverlight: no hay acceso a los certificados y, como complemento, enfrenta las mismas limitaciones que JavaExtensiones específicas del navegador; Por ejemplo, Firefox hasta la versión 33 solía tener window.crypto.signText pero ya noaplicaciones locales instaladas en el cliente: no es fácil instalar, admitir, desarrollar y actualizar varios SO y sus diferentes versiones.Criptografía web: "solo funciones criptográficas básicas", no admite certificados

Me quedé sin ideas. Todas las sugerencias son bienvenidas y apreciadas.

Respuestas a la pregunta(2)

Su respuesta a la pregunta