TrueCrypt 5 en Mandriva 2007

Por Fernando Acero

La nueva versión de TrueCrypt, la 5.0a, representa un cambio importante en el desarrollo de este popular y magnífico programa para el cifrado de información. Ahora soporta SHA-2, algo que está en consonancia con las nuevas tendencias de la criptografía mundial y lo más importante, ahora es independiente del kernel y dispone de una interfaz gráfica de serie, lo que hace que no sea necesario el OneKript de David Area. Una vez compilado, todo el programa será un único ejecutable, que para los que tenemos que usar TCExplorer de vez en cuando y dada la incompatibilidad de esta nueva versión, con este programa de "emergencia", también he de decir, que convive perfectamente con la rama anterior de TrueCrypt, la 4.x, no necesitando ni siquiera instalación, al menos bajo Linux. Bastará con copiarlo en /usr/bin/ con un nombre distinto al ejecutable de la versión anterior, para que lo tengamos instalado y listo para funcionar.

Desde el punto de vista de los que frecuentamos estas páginas, también hay que decir que TrueCrypt es un programa muy modular y que hace uso de las funciones criptográficas más utilizadas, por lo que su código fuente tiene un elevado valor didáctico para los interesados en la criptografía, así como una buena cantidad líneas reutilizables para otros proyectos...

La primera vez que intenté compilar la nueva versión de TrueCrypt, lo hice con la versión 5.0, no la 5,0a y tuve dos problemas, el primero con el paquete wxWidgets y el segundo, con el linker de Linux. Para evitarlos, estos son los paquetes que necesitamos:

a) binutils-2.18

b) fuse-2.7.3

c) wxWidgets-2.8.7

d) truecrypt-5.0a-source

El fallo con el linker se soluciona compilando e instalando la última versión de binutils, un auténtico regalo del proyecto GNU. La solución a este fallo fue amablemente aportada, como un comentario en mi blog. Él solamente compiló e instaló el linker, es decir, el programa “ld”, pero ya que estábamos, yo instalé todas las utilidades del paquete y con ello, puede que eliminase algunos “efectos secundarios” por incompatibilidad entre versiones de los distintos programas que conforman el paquete. El proceso es muy sencillo.

Descomprimimos con tar -xzfv binutils-2.18.tar.gz en un directorio y como root, desde el directorio que contiene los fuentes de binutils, usamos la secuencia de mandatos:

./configure
make
make install

Ahora vamos a compilar TrueCrypt, pero para ello, primero tenemos que disponer de las librerías para la interfaz gráfica, las wxWidgets. Con ellas tuve también un problema inicialmente. En la página hay dos librerías, unas compatibles para cualquier entorno “All” y otras para entornos basados en "X11" o "GTK". Mi recomendación es usar las “completas”.

Lo primero que tenemos que hacer es descomprimir los paquetes wxWidgets-2.8.7 y truecrypt-5.0a-source, para ello:

tar -xzfv wxWidgets-2.8.7.tar.gz
tar -xzfv truecrypt-5.0a-source.tar.gz

Ahora es necesario compilar las librerías, cuyas fuentes podemos suponer que están en el directorio /home/fernando/tmp/wxWidgets-2.8.7, para ello, desde el directorio de los fuentes de TrueCrypt y como root, escribiremos:

make WX_ROOT=/home/fernando/tmp/wxWidgets-2.8.7 wxbuild

Finalizada la compilación de las librerías, solamente tendremos que compilar TrueCrypt con el mandato:

make

Una vez que termine la compilación encontraremos el ejecutable de TrueCrypt en el directorio Main de las fuentes de TrueCrypt.

Sin embargo, cuando intenté utilizar el programa, descubrí que no era capaz de montar las unidades mediante fuse, a pesar de que estaba instalado el paquete en mi Mandriva. De nuevo recurrí a la actualización del paquete, actualización que hice sin tocar el módulo del núcleo de fuse, para ello, como siempre, descomprimimos el paquete mediante:

tar -xzfv fuse-2.7.3.tar.gz

Y desde dentro del directorio de las fuentes y como root, hacemos:

./configure
make
make install

Hecho esto, mi flamante TrueCrypt ya funcionaba perfectamente. Hay que señalar, que si se arranca como un usuario normal, las unidades las monta con los permisos adecuados al usuario y grupo del que lo monta, eliminando el fallo de OneKript , al que dimos solución en su momento. También es cierto, que en ocasiones, esta nueva versión de TrueCrypt con fuse, "tarda" un poco en desmontar las unidades diciendo una y otra vez que están ocupadas, posiblemente por esperar la sincronización de los cambios, por lo que es sano para nuestros datos esperar, asegurándonos que no hay ninguna ventana ni consola que haga uso de la unidad montada.

También es necesario comentar que hay que comprobar que el módulo de fuse se carga al comienzo, para ello, comprobaremos que el script “fuse” aparece en el directorio /etc/init.d. Otra solución es poner fuse en el archivo /etc/modprobe.preload, de forma que el módulo “fuse” se instale en el arranque del sistema, lo que podemos comprobar mediante lsmod. Gracias a fuse, ya no es necesario indicar punto de montaje, la unidad se montará en /mnt/ con el nombre truecryptx en la que x es el número del “slot” que hemos seleccionado para montarla. Si lo deseamos, también podemos indicar un punto de montaje, en cuyo caso, la unidad se montará como lo hacía la versión 4.x.

El mismo usuario que me comentó en mi blog que que tenía que actualizar el linker, también me comentó, que tenía otros problemas y más concretamente, me dijo lo siguiente:

a la hora de montar un volumen cifrado, me pide mi clave de root, se la doy... y nada... me la vuelve a pedir...

Solamente comentarle, si lee este artículo, que con este procedimiento que he seguido y con las versiones de los paquetes que he usado, este problema no me ocurre. Es posible que el problema esté en fuse, que cuando quiere montar la unidad "no tiene" los permisos suficientes y solicita la contraseña de root. Espero que esta información sea de ayuda a los que quieran compilar TrueCrypt y que aunque no sean usuarios de Mandriva 2007, es muy posible que tengan problemas similares.