Este es un ejemplo de la implementación del componente de firma electrónica utilizando certificado y llave privada, el objetivo es ilustrar la forma en la cual debe ser implementado el componente para los distintos sistemas.
El componente está basado en tecnología HTML5 y resulta agnostico para la tecnología del sistema en el que se integre.
Para realizar la firma electrónica se debe seleccionar el certificado, llave privada e indicar la contraseña.
El texto encontrado dentro del área de texo, es la cadena original que será firmada.
Versión del componente: V0.1.0
Estado del componente: En desarrollo
A continuacíon se indican los parametros que son requeridos para realizar el firmado de cadenas de texto.
Por estandar y seguridad de la firma, los datos privados del usuario no deben ser enviados al srvidor como parte de la firma, los campos que no serán enviados se identifican puntualmente.
*Todos los campos deben formar parte de la forma.
El acceso a los servicios de firmado se encuentran protegidos por la autenticación de usuarios.
Para autenticarse con los procesos es necesario implementar BASIC AUTHENTICATION con usuario y contraseña
| Nombre | Tipo de campo | Descripción |
|---|---|---|
| BASIC AUTHENTICATION | Elemento de seguridad | La peticion debe contar con los encabezados de seguridad o en caso contrario, solicitará se autentique |
| usuario | Elemento de seguridad | Identifica al usuario o aplicación que está accediendo al recurso. |
| contraseña | Elemento de seguridad | Elemento de autenticación, que demuestra que el usuario es quien dice ser. |
*Todos los campos deben formar parte de la forma.
| Nombre | Tipo de campo | Descripción |
|---|---|---|
| METHOD | POST | La forma debe ser envíada a traves del método POST |
| ACTION | validaFirmaCadenaPkcs1 | Dirección destino donde se debe envíar el formulario |
| certI | File | Campo donde se carga el certificado, este campo no es enviado al servidor |
| keyI | File | Campo donde se carga la llave privada, este campo no es enviado al servidor |
| keyP | Text | Campo donde se captura la contraseña de la llave privada, este campo no es enviado al servidor |
| documento | Text, TextArea, Hidden | Campo donde se indica el texto que va a ser firmado durante el proceso de firma |
| signText | Hidden | Campo oculto donde se deposita el resultado de la firma |
| certText | Hidden | Campo oculto donde se depostia el PEN del certificado del usuario |
| shaText | Hidden | Campo oculto que contiene el HASH calculado del documento |
| infra | Hidden | Campo oculto que indica la infraestructura que se desea
utilizar, en caso que no se envíe se utilizará la infraestructura
default Infraestruturas disponibles:
|
A continuación se indican los valores de respuesta una vez realizada y validada la firma.
| Nombre | Descripción |
|---|---|
| estado | Indica el estado de la validación de la firma, si indica algun error es posible que el resto de los campos no sean parte de la respuesta.
|
| tipoFirma | Indica el tipo de firma que fue realizado, ej PKCS1 |
| tipoSha | Indica el algoritmo que se uso para para obtener el HASH |
| tipoInfraestructura | Indica la infraestructura donde se realizo la verificación |
| descripcion | Despliega el mensaje del servidor, en caso de haber alguno. |
| cadenaOriginal | Texto original contra el que se valida la firma. |
| shaCadenaOriginal | SHA que corresponde a la cadena original. |
| certificado | Certificado que se utilizo para validar la firma. |
| Serie | Número de serie del certificado que se utilizo para validar la firma. |
| certificado | Certificado que se utilizo para validar la firma. |
| firma | Resultado de aplicar la firma al HASH de la cadena original. |
| ocsp | Respuesta del OCSP de la validacion del certificado, en caso que no se tenga contenido indica que la plataforma no realizo la validación. |
| selloTiempo | Sello de tiempo obtenido durante la validación de la firma electrónica, en caso que no se tenga contenido indica que la plataforma no recupero el sello de tiempo. |