jueves, 6 de marzo de 2008

Digitalización Certificada y Compulsa electrónica

Leo vía "Todo es electrónico" uno de esos excelentes apuntes a los que nos tiene acostubrado Julián Inza, hoy sobre la Digitalización Certificada y Compulsa electrónica. Su blog se ha convertido en el mini-google para temas de factura electrónica y e-Administración.
El caso es que leyendo los requisitos que establece la Ley 11/2007, de 22 de junio, de acceso electrónico de los ciudadanos a los Servicios Públicos (LAECSP) en relación a la gestión de documentos electrónicos me ha venido a la mente la sensación que queda tras impartir los cursos sobre seguridad de la información cuando hablo de la integridad. En general en estos cursos se cuentan los conceptos relacionados con la seguridad: disponibilidad, integridad, confidencialidad y siempre me choca lo poco concienciados que estamos respecto a la importancia de la integridad en el tratamiento de información digital.


En general en la legislación, este requisito aparece siempre mediante la frase:
"Los medios o soportes en que se almacenen documentos, deberán contar con medidas de seguridad que garanticen la integridad, autenticidad, confidencialidad, calidad, protección y conservación de los documentos almacenados."

Como ejemplo resultón dispongo de un acuse de recibo escaneado, dado que este tipo de documentos se utilizan en trámites administrativos en relación a las notificaciones a los ciudadanos y da pie al inicio de ciertas actividades administrativas cuando a un ciudadano se le notifica un trámite.

Por desconocimiento técnico en general nadie duda que un documento es lo que se ve en pantalla. No suelo recrearme pero con algo tan trivial como el paint.exe que viene en Windows, uno puede alterar un documento escaneado y cambiar radicalmente su contenido y significación. En el caso del acuse de recibo, basta con modificar la fecha de entrega y la causa de la no notificación para que administrativamente signifique otra cosa.

Es algo trivial, mas sencillo que manipular un fax o fotocopia y sin embargo nadie exige a un documento digital unas garantías mínimas de validez (nadie salvo la legislación que habla de medios telemáticos claro).

La prueba de integridad es un requisito mínimo para poder utilizar un documento digital. Es por ello que la Administración Electrónica dispone de registros telemáticos que firman digitalmente el contenido y sellan en tiempo la entrega. También de esta necesidad surge la regulación entorno al proceso de digitalización certificada dado que es necesario tener absolutas garantias de no manipulación (alteración del contenido, autoría, fecha de elaboración) cuando algo en soporte papel se transforma en soporte digital.


Esta problemática me la encuentro también profesionalmente cuando estoy realizando una auditoría. En la observación o inspección de configuraciones muchas veces, requiero poder disponer de una captura de pantalla para poder referenciar la evidencia de auditoría (Registros, declaraciones de hechos o cualquier otra información que son pertinentes para los criterios de auditoría y que son verificables) para luego usarla como hallazgo de auditoría (resultados de la evaluación de la evidencia de auditoria recopilada frente a los criterios de auditoría).

Como auditor esta información debe ser una evidencia y por tanto, si es un registro electrónico necesito poder acreditar su integridad. Estaría muy feo que capturara una pantalla y que luego el cliente pudiera repudiar la imagen alegando que puede haber sido alterada. Para ello voy a contar cómo de manera sencilla proporcionar ciertas garantías:
  • Paso 1: Se recogen las evidencias digitales todas en la misma carpeta y todo ello debe realizarlo personal de la organización auditada. Todas las capturas de pantalla se vuelcan a un fichero Word y el resto de ficheros con resultados de pruebas se guardan en la carpeta. Finalmente disponemos de un conjunto de ficheros que serán nuestras evidencias.

  • Paso 2: Se genera el resumen hash de todos los ficheros contenidos en la carpeta y se vuelca a un fichero de texto. Para ello, utilizo el programa md5deep freeware descargable en Sourceforge que calcula el MD5 de un fichero. Esto se consigue ejecutando:
    md5deep -r * >[Fichero salida]

  • Paso 3: Se genera el resumen hash del [Fichero salida] y se vuelca al fichero [fichero salida].md5. Esto se consigue ejecutando:
    md5deep [Fichero salida] >[Fichero salida].md5

  • Con esto tenemos lo siguiente:
    - Fichero salida: todos los resumenes md5 de todas las evidencias.
    - Fichero salida.md5: md5 del fichero de control de integridad de las evidencias.

  • Paso 4: Es necesario que el cliente ahora acredite la autenticidad de las pruebas. Para ello, usamos el Word. Abrimos el contenido del [fichero salida] y lo copiamos al portapapeles. Posteriormente lo pegamos sobre el documento Word y le pedimos al cliente que firme digitalmente este documento. De esta manera, el cliente no podrá negar la autenticidad de los resumenes md5 recogidos en el [fichero salida].

  • Paso 5: Finalmente todos estos documentos son grabados en un CD o DVD que se aporta como material en el informe de auditoria.

    Si a posteriori surge la duda sobre alguna, los documentos a consultar estarán en el CD o DVD que por la naturaleza del dispositivo no habrán podido ser alterados a posteriori. Por otro lado, todos esos documentos ahí almacenados tienen una prueba de integridad que permite demostrar su no manipulación. Si cualquiera de las evidencias digitales quiere ser contrastada, comparando la existente en los sistemas del cliente con la utilizada en el informe de auditoría, el comando md5deep nos permite hacerlo. Podemos comparar el contenido de la carpeta en el cliente con el contenido del [fichero salida] almacenado en el CD. Para ello, ejecutamos:
    -md5deep -x [Fichero salida md5] -r * (suponiendo que nos encontramos en la carpeta donde están las evidencias)

El comando md5deep implementa las funciones hash correspondientes a los algoritmos MD5, SHA-1, SHA-256, Tiger, or Whirlpool. El manual podéis consultarlo en este enlace.
Este mismo programa puede ser usado para mediante un sencillo script crear un verificador de integridad de las carpetas de un sistema de archivo. Basta con programar la ejecución diaria de md5deep -r * >[Fichero salida] y cada día, realizar la comparación del resultado md5 de una carpeta con el fichero salida del día anterior. Os animo a dejar el script en los comentarios...a ver quien lo consigue.

4 comentarios:

Anónimo dijo...

Tengo una duda. Según lo entiendo yo, estás calculando el hash del fichero Word (además de los otros ficheros) y luego estás modificando este mismo fichero Word al pegarle los valores hash calculados antes con lo cual el hash inicial ya no se correspondería con el contenido del fichero Word.

Supongo entonces que al final tendrás dos ficheros Word: el «original» sobre el que aplicas la función hash y el «firmado» que es el original más el hash más la firma, ¿no?.

Por otro lado ¿por qué pegar los pantallazos en un único fichero y adjuntarle el valor hash? ¿no sería suficiente con que el cliente firmase el fichero hash?

Y por último, ¿por qué hacer publicidad gratis a M$? también se pueden pegar los pantallazos en el Writer del OpenOffice ;)

Javier Cao Avellaneda dijo...

Anónimo,voy a tratar de resolver tu duda.
Yo no he dicho en el post que genere el hash del documento Word. No es necesario porque está firmado digitalmente y en este proceso ya se garantiza la integridad. Desconozco como funciona OpenOffice porque no lo utilizo, pero en Microsoft Word si un documento firmado es modificado pierde su firma. Por tanto, la evidencia de no alteración del documento con las capturas de pantalla es la propia firma digital. Del fichero Word no tengo dos versiones sino solo la que está firmada digitalmente con un doble motivo: la no alteración de los resumenes hash pegados y la autoría por parte del responsable de la organización que lo firma.

Por otro lado, no trato de hacer publicidad a Microsoft, pero es la herramienta que utilizo y por tanto la que se cómo gestiona el proceso.
Lo que es importante que hagas es que el documento donde dejas pegada la información sea firmado digitalmente y con un certificado reconocido, o sea, que tenga cierta validez legal porque sea generado por un prestador de servicios de certificación al amparo de la vigente Ley 59/2003 de Firma Digital.

montse fernandez dijo...

Por favor, me pueden indicar de manera sencilla y comprensible´el proceso de digitalización certificada??? Por más que leo no me entero de nada, y mi empresa me ha encomendado esta tarea... Gracias

Javier Cao Avellaneda dijo...

COmo recursos didácticos sobre la factura electrónica puedo recomendarte dos direcciones:
http://efactura.cecarm.com que es un portal con información general y unos simuladores que explican el proceso desde las dos partes (emisor y receptor de facturas). Los simuladores se encuentran en http://efactura.cecarm.com/efactura/tutoriales/index.htm

El manual de Asimelec sobre el tema, que es fruto del trabajo de Julián Inza, uno de los mayores (si no el mayor) expertos en la materia. Su blog "Todo es electrónico" también es una fuente inagotable de conocimiento.
El manual se puede descargar de
http://efactura.asimelec.es/Events/ItemDetail.aspx?ID=149

 
;