Problema
Estoy intentando identificar si existen estándares (aceptados por la UE) con respecto a la firma digital del formulario del cliente antes de que se envíe.
Así que las restricciones son:
- saber estándar
- aceptado por la UE
- del lado del cliente (necesitamos prueba de origen, no a prueba de falsificaciones)
- basado en javascript y / o en el complemento del navegador (cualquier idioma)
- puede trabajar con contenido relacionado con formularios web (k / v pares de datos)
- la salida del proceso debe ser legible por máquina (ej .: form-urlenc, JSON, bson, msgpack)
- el formato de salida no debería tener problemas de ambigüedad (lo que significa que no es un XML sangriento *, tal vez tampoco forme urlenc)
Mi lectura sobre el tema hasta ahora
XMLDSIG es malo, ya que XML puede ser canonicalizado de mil maneras diferentes haciendo que la firma no sea válida o, peor aún, un XSD o XSLT adjunto (o incluso CSS) puede alterar la representación visible (dependiendo de la herramienta de visualización) del contenido de datos, lo que significa que puede alterar su significado exponiendo a los usuarios a posibles estafas.
PAdES ya se está utilizando en nuestra administración pública y el alcance de nuestro proyecto puede cubrir la necesidad de crear archivos PDF con formularios integrados y firma digital.
PGP / GPG o S / MIME podría ser un candidato válido para el papel, pero identifíquese si están oficialmente reconocidos o estandarizados por las leyes de la UE. Por otro lado, ambos llevan sus firmas adjuntas a los datos.
Fondo:
Estoy investigando para un proyecto gubernamental (en Rumania) que intenta implementar firmas digitales en formularios web simples.
Sé que Estonia, Bélgica, Francia y Alemania ya cuentan con sistemas similares para tarjetas de identidad electrónicas y firmas digitales de documentos de hardware, así como algunos marcos / herramientas que utilizan (por ejemplo, hwcrypto.js).
Pero me gustaría entender su proceso completo, por ejemplo, ¿firman digitalmente documentos completos o solo algunos datos sin procesar en un formato legible por máquina (como se describe anteriormente)?
¿Requieren tarjetas de identificación electrónica o pueden usarse con un archivo de certificado que tenga en el disco?