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.