30 marzo 2008

Sistemas de ficheros criptográficos

A estas alturas resulta redundante explicar los motivos para utilizar técnicas criptográficas. 
 
A lo largo de la historia hemos visto multitud de ejemplos que se resumen en la premisa de que alguien quiere mantener en secreto algo que a otro le gustaría saber. En el momento en que los ordenadores y los dispositivos de almacenamiento masivo comenzaron a ser "transportables" surgió inmediatamente la necesidad de encontrar mecanismos que permitieran proteger la información contenida en dichos dispositivos durante sus desplazamientos. Imagine el daño que podría ocasionar a un organismo estatal o a una gran empresa que a uno de sus empleados le robasen el portátil del trabajo en una gasolinera o en un aeropuerto. Por tanto, se necesitaba encontrar un medio que garantizase la confidencialidad de la información de los dispositivos portátiles de una manera cómoda y que no penalizase su uso. 
 
Por otro lado, existe la posibilidad de que el dueño de los datos se vea sujeto a presión para que descifre los datos con su clave. Imaginemos el caso de que se someta a tortura o interrogatorio a un empleado que trabaje en proyectos militares o a un disidente político que guarde en su portátil artículos de opinión que podrían llevarle ante un pelotón de fusilamiento. En esos casos resulta muy útil que existan mecanismos que ofrezcan denegabilidad de la información. Esos mecanismos permitirían descifrar ficheros "señuelo", de poca importancia o incluso directamente falsos, que permitirían engañar a los interrogadores, los cuales carecerían de medios para saber si esa es toda la información cifrada o si por el contrario hay algo más
 
Para responder a estos problemas los militares han venido desarrollando desde hace mucho tiempo sistemas de cifrado capaces de proteger los datos en caso de que los dispositivos de almacenamiento masivo cayesen en manos enemigas. A nivel civil, uno de los primeros ejemplos lo encontramos en el sistema de ficheros StegFS. Este sistema de ficheros permite no solo cifrar datos comprometedores sino aplicarles métodos esteganográficos que doten de la citada denegabilidad a la información. El desarrollo de StegFS esta parado actualmente y no se recomienda usarlo en infraestructuras modernas (de hecho sólo admite kernels de la rama 2.2.x), sin embargo su página web cuenta con varios papers, de lectura más que recomendable, que explican los fundamentos teóricos de este tipo de mecanismos. 
 
Otra opción, esta sí en desarrollo constante y que ha venido a recoger el testigo del sistema anterior, es TrueCrypt. Esta herramienta es multiplataforma (corre en Windows, Mac y Linux) y permite crear discos virtuales cifrados que se pueden montar como unidades normales del sistema, realizándose el cifrado-descifrado en tiempo real (on-the-fly), de manera que operar sobre los archivos cifrados resulta completamente transparente para el usuario. Al desmontar estos discos virtuales TrueCrypt los cifra en un único archivo sin que exista manera de que un atacante pueda saber cuantos archivos cifrados hay dentro del principal. Para todo ello el usuario utiliza una contraseña de su invención y uno de los algoritmos de cifrado simétrico que le ofrece la herramienta, como por ejemplo AES-256, Serpent o Twofish, entre otros. 
 
La utilidad de esta herramienta es evidente, podemos cifrar desde los datos personales que llevamos en nuestra memoria USB (por ejemplo nuestro certificado de la FNMT, listados de contraseñas, mapas de red o fotos personales) o incluso toda una partición, incluida la de arranque ya que TrueCrypt permite establecer una autentificación durante el inicio del equipo, de tal manera que si nos roban el portátil será prácticamente imposible que puedan extraer alguna información de su disco duro. 
 
TrueCrypt ofrece dos niveles de denegabilidad. Para empezar, sin la clave de descifrado los volúmenes cifrados de TrueCrypt son indistinguibles de cualquier otro tipo de ficheros con datos binarios, es decir, los ficheros que contienen los volúmenes cifrados por TrueCrypt carecen de cualquier tipo de firma que permita identificarlos como tales. De esta manera resulta fácil ocultarlos cambiando su extensión por otra como por ejemplo .iso, .raw, .img o lo que se nos ocurra... a TrueCrypt no le afectará la extensión que pongamos, a la hora de montar el volumen acepta cualquiera. 
 
El segundo nivel de denegabilidad corresponde a los volúmenes ocultos (hidden volumes) que consisten en crear un volumen cifrado dentro de otro de tal manera que el usuario tendrá dos contraseñas: una que abre el volumen cifrado principal, que contará con los ficheros señuelo, y otra que lo que abre es el volumen cifrado secundario (el que está dentro del principal) con los ficheros realmente importantes. Los creadores de TrueCrypt aseguran que no hay manera de averiguar si un volumen cifrado contiene a otro oculto. Además de todo lo anterior, Truecrypt resulta realmente sencillo de utilizar al basarse en un interfaz de ventanas realmente intuitivo. Por si fuera poco la documentación de su página web está muy bien organizada y resulta muy didáctica explicando de una manera clara y sencilla los fundamentos de las funcionalidades ofrecidas por la herramienta. 
 
Con esto ya no hay excusa para no llevar a buen recaudo nuestros datos en nuestros dispositivos portátiles, completamente a salvo de fugas por culpa de robos o espionaje.