Funcionalidad de la Aplicación de Expediente Electrónico
1- Introducción
En los siguientes apartados se describen las funcionalidades que deben implementar las aplicaciones de expediente electrónico para generar, enviar y recibir expedientes en formato FIDO.
2- Cambio de carátula
El formato FIDO prevé la posibilidad de modificar la carátula original de un expediente. Para ello, la aplicación debe seguir obligatoriamente los siguientes pasos, en el orden indicado:
- El funcionario realiza las modificaciones a la carátula utilizando la aplicación.
- Independientemente de la dimensión de los cambios, la aplicación agrega una carátula nueva completa en el lugar correspondiente del expediente en formato FIDO. Modificar la carátula original, así sea para agregar un tilde, rompería la firma que se realizó en el momento de crearla.
- Agrega una actuación al final del expediente que indique a texto pleno que se modificó la carátula. Puede agregar toda la información adicional que considere relevante. Esta actuación lleva el atributo de versión de carátula con el número de versión de la carátula ya modificada.
- Tanto la carátula como la actuación se firman siguiendo estrictamente el procedimiento indicado más abajo en el apartado 5.6 “Procedimiento para firmar”.
Este procedimiento, así como la modalidad de almacenamiento tiene por objetivo dar soporte a la práctica habitual de cambio de carátula, a la vez que garantiza la integridad del expediente, de la cadena de firmas y el almacenamiento de toda la información: tanto la original como la resultante del cambio.
3- Firma de expediente FIDO
El formato FIDO exige que cada actuación esté debidamente firmada electrónicamente. Para cumplir con este requisito, es imprescindible que el funcionario actuante firme el expediente en formato FIDO en el mismo momento en que firma la actuación, tanto si el formato de almacenamiento interno de la aplicación es el propio FIDO como si no lo es.
De no ser así, en el momento de requerir un expediente en formato FIDO debería solicitarse nuevamente a cada uno de los actuantes, en el orden indicado, su firma electrónica, algo que es jurídicamente incorrecto y operativamente inviable. Por este motivo, es recomendable que la aplicación mantenga en paralelo el expediente en su formato interno y en formato FIDO hasta la última actuación firmada.
4- Firma de las firmas anteriores
El formato FIDO prevé la inclusión en cada actuación de una firma digital de la carátula vigente al momento de firmar la actuación, de todas las firmas de actuaciones anteriores. Este requisito garantiza la integridad del expediente y la capacidad de reproducir en cualquier momento el expediente no solamente en su estado actual, sino exactamente en el estado en el que estaba cuando un funcionario actuante firmó una actuación anterior.
La firma de las firmas anteriores debe ser realizada por el último funcionario actuante habilitado para firmar electrónicamente. La firma de las firmas anteriores requiere de una única firma electrónica: no está permitido incluir en el documento FIDO más de una firma de firmas anteriores por actuación.
La carátula representa un caso particular para la firma de las firmas anteriores debido a que:
- Las carátulas pueden ser modificadas, las actuaciones no.
- La carátula no lleva firma de firmas anteriores.
Tanto para garantizar la integridad del expediente, como para facilitar el despliegue y la validación de la cadena de firmas, se incluye un atributo específico que numera las versiones de las carátulas. Cada actuación incluye el atributo que indica la versión de la carátula que estaba vigente en el momento en que se actuó.
La firma de las firmas anteriores incluye sólo las firmas de los PDFs de las actuaciones y carátulas (concatenación de firmas de pdfs de actuaciones y carátulas), no de las firmas de firmas.
Para entenderlo llamemos:
- FFAU a la Firma de las Firmas Anteriores de la Última actuación
- FFAOA a la Firma de las Firmas Anteriores de las Otras Actuaciones
La FFAU NO incluye las FFAOA.
En la aplicación de Expediente Electrónico la firma de las firmas anteriores implica un procedimiento de firma distinto de la firma de la actuación.
5- Despliegue de un expediente FIDO
En todo momento mientras trabaja con un expediente, el usuario de la aplicación debe disponer de la funcionalidad "Desplegar el expediente actual en formato FIDO".
Para ello, la aplicación de expediente electrónico debe seguir obligatoriamente los siguientes pasos, en el orden indicado:
- Verificar la confidencialidad del expediente y verificar si el usuario tiene derechos suficientes para acceder al mismo. En caso negativo, se aborta el proceso.
- Generar un único archivo PDF a partir de la última carátula (las demás solo se muestran con el procedimiento de validación exhaustiva y despliegue íntegro -ver más abajo-) y de todas las actuaciones, en el orden en que están almacenadas, numeradas secuencialmente.
- Numerar. La página número 1 es la primera página de la primera actuación. La carátula no se numera si es una única hoja, o se numera de forma independiente en otro caso (por ejemplo, con números romanos).
- Verificar la firma electrónica de la última actuación y la firma de todas las firmas anteriores, correspondiente a la última actuación. En caso de que no verifique, comunicar el error y abortar el proceso. Es recomendable pero no obligatorio validar todas las firmas del documento (véase apartado 5.8 “Validar exhaustivamente un expediente FIDO").
- Desplegar el archivo PDF en su completitud.
- Procedimiento para firmar
El usuario debe comprender cabalmente que el expediente válido es el que se almacena en formato FIDO. Para ello, el procedimiento de firmado debe seguir obligatoriamente los siguientes pasos, en el orden indicado:
- El usuario indica la acción "Firmar" (por ejemplo, cliqueando un botón).
- Generar un único archivo PDF siguiendo el procedimiento para el “Despliegue de un expediente FIDO”.
- Verificar la firma electrónica de la última actuación y la firma de todas las firmas anteriores, correspondiente a la última actuación. En caso de que no se verifique, comunicar el error y abortar el proceso. Es recomendable pero no obligatorio validar todas las firmas del documento (véase apartado 5.8 "Validar exhaustivamente un expediente FIDO").
- Generar en PDF la actuación a firmar. El PDF debe incluir TODOS los datos e información que el usuario incorporó a la actuación. Esto incluye todos los adjuntos, sin excepción, que deben generar una salida impresa a PDF. Las páginas deben estar obligatoriamente numeradas, pero no está restringido el formato de las mismas.
- Agregar al final del PDF de las actuaciones anteriores el de la actuación a firmar (se debe generar y mostrar un único PDF).
- Desplegar el archivo PDF utilizando el visualizador del navegador Web del equipo del usuario.
- Habilitar la opción de firma.
- Realizar la firma de la actuación.
Los documentos ejecutables representan un problema serio para el cumplimiento de las normativas relativas a expedientes electrónicos, ya sea que se almacenen en el propio documento (por ejemplo como scripts) o como adjuntos (por ejemplo como un archivo de base de datos). Un documento ejecutable implica que un usuario puede ver dos versiones absolutamente distintas del mismo documento sin que la firma electrónica deje de verificar, ya que lo que se firma es el código ejecutable. A esto se suma que el concepto de numerado que exige la normativa es inconsistente o incompatible con el concepto de ejecución de software.
Es por ello que el FIDO no incluye otro formato de almacenamiento que el PDF.
La aplicación de expediente electrónico es la responsable de garantizar que todo el código que incorpora a los documentos, sea a través de scripts, adjuntos o por cualquier otro método, se imprime a PDF de una sola y única forma, siempre idéntica, y de aclarar a los usuarios que más allá de la ejecución que se pueda realizar a partir del código, lo único válido a los efectos del expediente es lo que terminó almacenado en el PDF.
No es obligatorio que la firma de la actuación y la firma de las firmas anteriores se realicen en el mismo momento. Esto se debe a que si una actuación la firma más de un funcionario sería obligatorio que todos firmen a la vez. Una implementación sugerida, pero no obligatoria es que la firma de las firmas anteriores se realice al pasar el expediente. Eventualmente el pase lo podría realizar otro funcionario, siempre que tenga potestades para firmar digitalmente.
7- ¿Qué datos se firman?
7.1 En una carátula o actuación
Dado que la firma se realiza en el cliente, y con el fin de disminuir la cantidad de información que debe viajar del servidor al cliente, FIDO prevé la firma de un hash generado con el algoritmo SHA256 del objeto a firmar en reemplazo de la firma del propio objeto. Es decir, se firma un hash del PDF en base64 de una carátula o actuación.
Esto es válido y obligatorio en todos los casos: carátulas, actuaciones y firma de firmas anteriores.
7.2 En la firma de las firmas anteriores
Para la firma de las firmas anteriores es necesario concatenar las firmas anteriores. Ello debe hacerse uniendo el base64 de las firmas.
7.3 Validación exhaustiva de un expediente FIDO
Las aplicaciones de expediente electrónico deben proveer una opción para verificar exhaustivamente la validez de las firmas de un expediente en formato FIDO y desplegarlo completo, incluyendo todas las versiones de carátula que contenga.
Esto implica validar la firma de la carátula original y sus modificaciones si existieran, así como las firmas correspondientes a cada actuación: la (las) del PDF que contiene la actuación y la que firma las firmas anteriores. Debe validarse una por una las firmas de las actuaciones, en el orden almacenado.
Es importante tomar en cuenta en la validación de la firma de cada actuación qué versión de carátula estaba vigente, e incluir en la validación sólo estas versiones. Para facilitar este proceso cada actuación contiene un atributo específico.
La validación de un expediente FIDO garantiza no solo la integridad del documento, sino además que están presentes todas las actuaciones y que están en el orden en que fueron ejecutadas.
Además de validarlo exhaustivamente, debe proveer la posibilidad de desplegarlo íntegro, incluyendo la carátula original y todas sus modificaciones en el PDF a desplegar.
Tanto el despliegue en formato FIDO como la firma de una actuación en formato FIDO no exigen una validación completa debido a que se presume que puede ser una operación costosa en tiempo. Sin embargo se recomienda hacer todos los esfuerzos necesarios para garantizar una performance de validación que permita realizar una validación completa del expediente tanto al desplegarlo como al firmar una actuación, o al menos en la última de las dos.
No ocurre lo mismo con el despliegue íntegro, que debe ser una opción separada. En el funcionamiento normal, el expediente debe desplegarse mostrando sólo la última versión de carátula.
8- Acordonamiento
Al acordonar un conjunto de expedientes se debe:
- Generar una actuación tipo Acordonado en cada uno de los expedientes acordonados
- Asociar la referencia del expediente principal en el expediente acordonado.
- Incluir las referencias a los expedientes acordonados en la colección de Acordonados del Expediente principal
- Generar una actuación tipo Acordonado en el expediente principal
8.1 Actuación en los expedientes acordonados
Esta actuación debe estar conformada por un PDF con un texto predeterminado que indique que se está haciendo un acordonamiento, en el atributo tipo se debe especificar el valor Acordonado.
En el tag <Contenido> se utilizan los mismos atributos de actuación normal y se incorpora el atributo ee-Involucrados que hace referencia al número de expediente principal:
<Actuacion id-actuacion="1" tipo="Acordonado"
protocol="application/pkcs7-signature" micalg="sha256">
<Contenido content-type="application/pdf" name="act1.pdf"
content-transfer-encoding="base64" filename="act1.pdf"
caratula-version="0" pagina-inicio="1"
pagina-fin="2" fecha="2017-02-26T11:41:43-03:00"
ee-involucrados="2017-67-001-000043">
<Datos tipo-dato="Binario">
<![CDATA[
JVBERi0xLjQKJeLjMiAwIG9iaiA8PC9JbnRlbnQvUGVyY2VwdHVhbC9EZWNvZGVQYXJtczw8
L0NvbG9ycyAzL1ByY3RvciAxNS9CaXRzUGVyQ29tcG9uZW50IDgvQ29sdW1ucyAzMTE+Pi9U
eXBlL1hPYmplY3Qvsb3JTcGFjZVsvQ2FsUkdCPDwvTWF0cml4WzAuNDEyMzkgMC4yMTI2NCA
]]>
</Datos>
</Contenido>
</Actuacion>
8.2 Asociación en los expedientes acordonados
Al acordonar un expediente se debe agregar un tag <Asociacion> debajo del tag <Expediente> con la información del Expediente al que fue acordonado. Esta información indica que el tipo de documento que se está acordonando es un expediente electrónico y el tipo de asociación es un Acordonamiento.
<Asociacion>
<TipoDocumental>66570</TipoDocumental>
<TipoAsociacion>Acordonado</TipoAsociacion>
<IdentificadorAsociado>2017-67-001-000043</IdentificadorAsociado>
</Asociacion>
8.3 Inclusión de referencias de expedientes acordonados al Expediente principal
Al acordonar expedientes se debe agregar una colección de <Acordonados> (en el caso que no exista) que debe contener las referencias a los expedientes que se están acordonando. Cada uno de los expedientes debe tener un elemento <Acordonado> que debe indicar el enlace a la ubicación del expediente electrónico acordonado.
<Acordonados>
<Acordonado numero-expediente="2017-67-001-000065">
<Datos tipo-dato="Referencia">
<![CDATA[https://servidor/2017-67-001-000065.fiee]]>
</Datos>
</Acordonado>
<Acordonado numero-expediente="2017-67-001-000076">
<Datos tipo-dato="Referencia">
<![CDATA[https://servidor/2017-67-001-000076.fiee]]>
</Datos>
</Acordonado>
</Acordonados>
8.4 Actuación en el expediente principal
Este actuación debe estar conformada por un PDF con un texto predeterminado que indique que se está haciendo un acordonamiento, en el atributo tipo se debe especificar el valor Acordonado.
En el tag <Contenido> se utilizan los mismos atributos de actuación normal y se incorporan los siguientes atributos:
ee-involucrados
Es un array donde cada elemento referencia a los expedientes involucrados en el acordonamiento. La referencia se hace a través del número de expediente acordonado.
Ejemplo:
ee-involucrados = ”[2017-67-001-000065,2017-67-001-000076]”
resultado-acordonado
Es un array donde cada elemento referencia a los expedientes acordonados efectivamente al expediente principal luego de efectuada la operación. La referencia se hace a través del número del expediente acordonado. A través de este atributo se puede saber en todo momento cuáles son los expedientes electrónicos acordonados.
Ejemplo:
resultado-acordonado = “[2017-67-001-000065,2017-67-001-000076]”
Ejemplo de actuación en expediente principal
<Actuacion id-actuacion="1" tipo="Acordonado"
protocol="application/pkcs7-signature" micalg="sha256">
<Contenido content-type="application/pdf" name="act3.pdf"
content-transfer-encoding="base64" filename="act3.pdf"
caratula-version="1" pagina-inicio="1"
pagina-fin="2" fecha="2017-02-26T11:44:53-03:00"
ee-involucrados="[2017-67-001-000065,2017-67-001-000076]"
resultado-acordonado="[2017-67-001-000065,2017-67-001-000076]">
<Datos tipo-dato="Binario">
<![CDATA[
JVBERi0xLjQKJeLjMiAwIG9iaiA8PC9JbnRlbnQvUGVyY2VwdHVhbC9EZWNvZGVQYXJtczw8
L0NvbG9ycyAzL1ByY3RvciAxNS9CaXRzUGVyQ29tcG9uZW50IDgvQ29sdW1ucyAzMTE+Pi9U
eXBlL1hPYmplY3Qvsb3JTcGFjZVsvQ2FsUkdCPDwvTWF0cml4WzAuNDEyMzkgMC4yMTI2NCA
]]>
</Datos>
</Contenido>
</Actuacion>
9- Desacordonamiento
Al desacordonar un conjunto de expedientes se debe:
- Generar una actuación tipo Desacordonado en cada uno de los expedientes desacordonados
- Desasociar la referencia del expediente principal en el expediente acordonado.
- Excluir los expedientes desacordonados de la colección de Acordonados del Expediente principal
- Generar una actuación tipo Desacordonado en el expediente principal
9.1 Actuación en los expedientes desacordonados
Esta actuación debe estar conformada por un PDF con un texto predeterminado que indique que se está haciendo un desacordonamiento, en el atributo tipo se debe especificar el valor Desacordonado.
En el tag <Contenido> se utilizan los mismos atributos de actuación normal y se incorpora el atributo ee-Involucrados que hace referencia al número de expediente principal:
<Actuacion id-actuacion="1" tipo="Desacordonado"
protocol="application/pkcs7-signature" micalg="sha256">
<Contenido content-type="application/pdf" name="act3.pdf"
content-transfer-encoding="base64" filename="act3.pdf"
caratula-version="0" pagina-inicio="1"
pagina-fin="2" fecha="2017-02-26T11:41:43-03:00"
ee-involucrados="2017-67-001-000043">
<Datos tipo-dato="Binario">
<![CDATA[
JVBERi0xLjQKJeLjMiAwIG9iaiA8PC9JbnRlbnQvUGVyY2VwdHVhbC9EZWNvZGVQYXJtczw8
L0NvbG9ycyAzL1ByY3RvciAxNS9CaXRzUGVyQ29tcG9uZW50IDgvQ29sdW1ucyAzMTE+Pi9U
eXBlL1hPYmplY3Qvsb3JTcGFjZVsvQ2FsUkdCPDwvTWF0cml4WzAuNDEyMzkgMC4yMTI2NCA
]]>
</Datos>
</Contenido>
</Actuacion>
9.2 Desasociación en los expedientes acordonados
Al desacordonar un expediente se debe eliminar el tag <Asociacion> que se creó al acordonar el expediente.
9.3 Excluir las referencias de los expedientes desacordonados del Expediente principal
Al desacordonar expedientes se deben excluir de la colección de <Acordonados> los expedientes que se están desacordonando (la colección se debe eliminar si no existen expedientes acordonados al expediente principal).
<Acordonados>
<Acordonado numero-expediente="2017-67-001-000065">
<Datos tipo-dato="Referencia">
<![CDATA[https://servidor/2017-67-001-000065.fiee]]>
</Datos>
</Acordonado>
</Acordonados>
9.4 Actuación en el expediente principal
Este actuación debe estar conformada por un PDF con un texto predeterminado que indique que se está haciendo un desacordonamiento, en el atributo tipo se debe especificar el valor Desacordonado.
En el tag <Contenido> se utilizan los mismos atributos de actuación normal y se incorporan los siguientes atributos:
ee-involucrados
Es un array donde cada elemento referencia a los expedientes involucrados en el desacordonamiento. La referencia se hace a través del número de expediente desacordonado.
Ejemplo:
ee-involucrados = ”[2017-67-001-000076]”
resultado-acordonado
Es un array donde cada elemento referencia a los expedientes acordonados efectivamente al expediente principal luego de efectuada la operación. La referencia se hace a través del número del expediente acordonado. A través de este atributo se puede saber en todo momento cuáles son los expedientes electrónicos acordonados.
Ejemplo:
resultado-acordonado = ”[2017-67-001-000065]”
Ejemplo de actuación en expediente principal
<Actuacion id-actuacion="1" tipo="Desacordonado"
protocol="application/pkcs7-signature" micalg="sha256">
<Contenido content-type="application/pdf" name="act4.pdf"
content-transfer-encoding="base64" filename="act4.pdf"
caratula-version="1" pagina-inicio="1"
pagina-fin="2" fecha="2017-02-26T11:44:53-03:00"
ee-involucrados="[2017-67-001-000076]"
resultado-acordonado="[2017-67-001-000065]">
<Datos tipo-dato="Binario">
<![CDATA[
JVBERi0xLjQKJeLjMiAwIG9iaiA8PC9JbnRlbnQvUGVyY2VwdHVhbC9EZWNvZGVQYXJtczw8
L0NvbG9ycyAzL1ByY3RvciAxNS9CaXRzUGVyQ29tcG9uZW50IDgvQ29sdW1ucyAzMTE+Pi9U
eXBlL1hPYmplY3Qvsb3JTcGFjZVsvQ2FsUkdCPDwvTWF0cml4WzAuNDEyMzkgMC4yMTI2NCA
]]>
</Datos>
</Contenido>
</Actuacion>
10- Reglas de uso del formato
- Para actuar sobre un expediente acordonado (no principal) primero se debe desacordonar mediante su debida actuación de desacordonado
- Primero se deben hacer las actuaciones sobre los expedientes acordonados y luego la actuación sobre el expediente principal
- Las firmas de las actuaciones de acordonado y desacordonado de los expedientes se harán sobre el hash del pdf concatenado con los metadatos de la actuación
- Con respecto a la trazabilidad se propone que la traza de acordonados se haga para cada uno de los expedientes, en el acordonado, en el desacordonado, y también en los movimientos, tanto para los pases internos o los externos. Los pases externos deben llevar dos trazas por expediente electrónico: Envío de un lado y recepción del otro
- Esta implementación aplicará para los nuevos acordonamientos, esto quiere decir que no aplicará a los expedientes actualmente acordonados
- Un expediente que está acordonado no puede ser acordonado a otro, esto aplica tanto para el expediente principal como para los expedientes acordonados
- Como buena práctica es recomendable que el organismo que hizo el acordonamiento del expediente sea el único que pueda desacordonarlo
- En el caso que se desee obtener la totalidad de un expediente acordonado, los sistemas deben enviar primero el expediente principal y luego uno a uno los expedientes acordonados.
- En los atributos tipo datetime se debe especificar el TimeZone, para hacerlo se debe agregar el valor correspondiente al final de la fecha. En el caso de Uruguay se debe agregar “-03:00”, ejemplo: “2017-02-25T13:37:17-03:00”
- Existen 4 esquemas XSD para comprobar la validez de los documentos XML que contienen los FIDO, los mismos pueden descargarse del site de Agesic:
- FIDO.xsd: Esquema principal que permite la validación de cualquier documento electrónico (expediente, oficio, nota, etc.)
- FIDO-tipodatos.xsd: Esquema que contiene los tipos de datos utilizados en el esquema FIDO
- FIEE-2.0.xsd: Esquema que permite la validación del Expediente Electrónico
- tipodatosFIEE.xsd: Esquema que contiene los tipos de datos utilizados en el esquema de validación de Expediente Electrónico
- También está definido un formato JSON equivalente al formato XML para futuras evoluciones del FIDO