TrueCrypt es una aplicación de software libre que permite crear volúmenes cifrados (ya se trate de un disco virtual contenido en un fichero, una partición de disco o una unidad de almacenamiento USB, por ejemplo), de tal forma que todo lo que contengan pueda ser accedido sólo si se conoce la contraseña y/o fichero clave que se utilizó para su creación. Además el cifrado y el descifrado ocurren en la memoria RAM, de forma transparente al usuario, antes de ser escritos al disco.
A lo largo de este tutorial (basado principalmente en la propia documentación en línea de TrueCrypt), trataremos de ir explicando el uso de TrueCrypt bajo sistemas operativos Windows y Linux.
En esta primera entrega recorreremos los primeros pasos para obtener, instalar y comenzar a utilizar TrueCrypt en Windows 2000, 2003, XP o Vista.
En primer lugar, descargaremos la última versión disponible de TrueCrypt para Windows. Es un fichero comprimido con zip de aproximadamente 1.5 MB, que contiene también la Guía de Usuario (un pdf de más de 90 páginas, en inglés).
Lo descomprimimos todo en una carpeta temporal y ejecutamos TrueCrypt Setup.exe:

Pulsa Install para instalar el programa:

En pocos segundos el programa queda instalado. Pulsa OK. Se te pregunta ahora si quieres abrir la vesión en línea del tutorial en tu navegador web. Contesta que no (para eso tienes este tutorial en español) y pulsa Exit (Salir).
Arranca TrueCrypt (desde el menú de Inicio o el icono correspondiente el escritorio):

Antes de nada, vamos a "traducir" TrueCrypt al español. Pulsa Settings -> Language -> Download Language Pack:

Se arranca tu navegador web para que descargues el fichero de idioma español. Descarga el zip y descomprímelo en la misma carpeta donde instalaste TrueCrypt. Reinicia TrueCrypt. De nuevo Settings -> Language -> Español:

Mucho mejor, ¿no? Ahora ya podemos meternos en harina. Pulsemos "Crear Volumen":

Lee las instrucciones de la ventana anterior y pulsa Siguiente:

Como ves, aquí podríamos elegir crear nuestro volumen TrueCrypt en una partición o un dispositivo USB, pero de momento elegiremos crearlo dentro de un fichero, para el que hay que elegir ahora nombre y localización. Pulsa "Seleccionar Archivo" y en la carpeta "Mis Documentos" escribe "Mi Volumen" como nombre de fichero. Cuando acabes pulsa "Siguiente".
Llegamos a una pantalla que alguien, sin duda en un descuido, tradujo como "Opciones de Encripción" (sí, entenderé que vuelvas a seleccionar "English" como idioma de la aplicación ;):

Vamos avanzando. Hemos llegado al momento de elegir algoritmos (de hash y de cifrado). ¿Cuál elegir? Pues si no tienes ninguna preferencia al respecto, puedes limitarte a elegir los que te ofrecen por defecto. Si no, una opción que puede ayudarte a decidir (o al menos a elegir el más rápido) es "Comparación". Mira qué curioso:

Pulsa "Siguiente" para elegir el tamaño de tu volumen cifrado (observa cuáles son los límites, según tu sistema de archivos). Para este tutorial me conformaré con 3 megabytes:

Momento (decisivo, porque éste puede ser el punto más débil de tu cadena de seguridad) de elegir contraseña. Larga y con caracteres variados, siempre que no la olvides o la pierdas:

Selecciona el sistema de ficheros que prefieres y mueve el ratón lo más posible durante al menos 30 segundos, para aumentar la aleatoriedad de tu clave. A continuación pulsa "Format":


No ha sido nada complicado, ¿verdad?. Pulsa OK y Salir.
No podremos utilizar nuestro nuevo volumen cifrado mientras no lo montemos (el concepto de "montar unidades" antes de poder utilizarlas posiblemente resulte más conocido para aquellos lectores que tengan experiencia en ssitemas Linux).
Volvemos a la ventana de TrueCrypt (que ha permanecido abierta en segundo plano durante todas nuestras operaciones anteriores). Elegiremos una letra de unidad (la K de Kripto, por ejemplo) y luego "Seleccionar archivo":

Navegaremos hasta la carpeta donde creamos el fichero "Mi Volumen" en el apartado anterior, y seleccionaremos ese fichero. Al pulsar "Montar" se nos pedirá nuestra contraseña:

Éxito:

Si ahora hacemos doble clic sobre nuestra unidad K, veremos que se comporta como cualquier otra unidad de disco:

La diferencia es que cualquier fichero que arrastres hacia ella se guardará cifrado de forma transparente, y sin necesidad de que teclees de nuevo tu contraseña (la contraseña sólo se te pide cuando montas la unidad). De hecho, y a efectos prácticos, puedes utilizar tu volumen cifrado TrueCrypt como cualquier otra unidad de disco. Los ficheros se cifran y descifran en memoria, sin que nada se escriba "en claro" en el disco duro en ningún momento. De hecho, si se fuera la corriente y se apagara el ordenador, ningún dato en claro podría ser accedido, ya que tras reiniciar tendrías que suministrar de nuevo tu contraseña para poder montar el volumen. Lógicamente, también puedes desmontar tú mismo el volumen para lograr el mismo efecto (botón "Desmontar").
Hemos avanzado bastante, pero aún así sólo hemos arañado la superficie del programa. En próximas entregas de esta serie iremos descubriendo mucho más. Mientras tanto, dispones de un nuevo foro específico para comentar tu experiencia o consultar dudas sobre TrueCrypt.
Aviso antes de nada de que no voy a entrar en las peculiaridades de cada posible distribución. Por tanto me atendré a mi distribución preferida y quien utilice otra siempre puede acudir a nuestro foro sobre TrueCrypt para aclarar dependencias y otras circunstancias. No obstante, confío en que otras distribuciones no se alejen demasiado de lo aquí expuesto.
En Arch Linux necesitaremos cuatro paquetes para completar con éxito este tutorial. Los tres primeros forman parte de la distribución y el último ya está disponible en el repositorio AUR. La lista (en el orden de instalación apropiado) es la siguiente:
Una vez instalado todo, en tu directorio personal hay una nueva carpeta de nombre tcgui. Teclea ahora lo siguiente (como usuario normal, no root):
$ cd ~/tcgui $ ./installer.sh
Al responder "Sí" a la pregunta de si deseas integración con Konqueror, al menos a mí me aparece un mensaje de error:
Do you want konqueror integration [Y/n]: Kommander is not installed, please install the package kdewebdev
Revisando el script de instalación del interfaz gráfico encontramos el error. El script busca el lanzador de kommander en /usr/bin, pero en Arch lo tenemos instalado en /opt/kde/bin.
Editamos el script para corregirlo. Basta sustituir /usr/bin/kmdr-executor por /opt/kde/bin/kmdr-executor para que el instalador funcione. Ejecútalo de nuevo si -como yo- necesitaste realizar esta corrección.
Para que todo funciones correctamente aún hay un par de operaciones previas que has de realizar como root. En primer lugar, has de cargar en el kernel el módulo truecrypt:
# modprobe truecrypt
Si piensas utilizar TrueCrypt con regularidad no es necesario que recurras a la consola. Puedes automatizar la carga del módulo en el arranque. En Arch esto se hace añadiendo truecrypt a la línea modules del fichero /etc/rc.conf.
La siguiente operación que has de realizar como root sólo hay que efectuarla una vez y te permitirá ejecutar TrueCrypt como un usuario corriente, no root. Teclea lo siguiente:
# chmod +s /usr/bin/truecrypt
Desde el punto de vista de la seguridad, en general no es conveniente establecer este bit en ejecutables, porque un eventual compromiso de truecrypt sería mucho más peligroso. Sin embargo no se me ocurre otra forma más sencilla de que todo funcione a la primera. Seguridad y comodidad, de nuevo en conflicto. No obstante, si algún lector experto dispone de un método mejor, que lo explique ahora o calle para siempre ;)
Ahora, para probar a arrancar tu flamante TrueCrypt "gráfico" teclea (sin salir del directorio tcgui):
$ kmdr-executor tcguien
El resultado debe parecerse a lo siguiente:

En lo sucesivo no necesitarás usar la consola para arrancar TrueCrypt. Simplemente copia el fichero Truecrypt.desktop al escritorio y podrás utilizar la aplicación mediante un simple clic.
También dispones de TrueCrypt en el menú principal de KDE y en el menú contextual de Konqueror, como muestran las siguientes imágenes:


Para cubrir lo mismo que en nuestro correspondiente tutorial sobre TrueCrypt en Windows, procederemos a continuación a crear un volumen cifrado normal de 3 MB.
Para ello simplemente arrancamos el programa con un clic sobre su icono, seleccionamos la pestaña "Create new Volumen" y escribimos el nombre y localización de nuestro disco virtual, así como su tamaño. Podemos seleccionar también los algoritmos de cifrado y hash, pero el sistema de archivos sólo puede ser FAT:

Pulsa "Create Volume". Se te presenta un cuadro de diálogo para que suministres la contraseña que protegerá tu volumen. Tu seguridad depende por completo de su calidad, así que procura que sea larga, que mezcle letras mayúsculas y minúsculas, con números o caracteres especiales, siempre que puedas recordarla:

Tras confirmar la contraseña elegida, abajo de la ventana aparece el mensaje "Volume has been created!" (el volumen ha sido creado):

Para utilizar nuestro nuevo volumen deberemos montarlo antes. Desde la ventana principal del programa seleccionamos "Mount a volume". En la ventana correspondiente localizamos y seleccionamos el nombre que dimos al volumen y elegimos un sitio donde montarlo (en general, una carpeta que crearás previamente en tu directorio de usuario). Tras pulsar "Mount" y pedirnos la contraseña, un mensaje nos avisa del éxito de la operación:

Ahora, en la ventana principal del programa, ya se muestra el volumen que tienes montado:

Si pulsas sobre "Show volumen info", puedes ver con detalle sus características:

Ya puedes utilizar tu nuevo contenedor cifrado como una carpeta más del sistema, con la particularidad de que todo lo que guardes en ella dejará de estar accesible en cuanto desmontes el volumen para cualquiera que no disponga de la contraseña. La carpeta seguirá ahí, pero estará totalmente vacía hasta que vuelvas a montar en ella tu volumen cifrado.
Cuando acabes de trabajar con tu volumen cifrado puedes (debes) desmontarlo. Tan fácil como pulsar "Unmount selected Volume".
Con esto, nuestros usuarios de Windows y de Linux se encuentran ya al mismo nivel. En próximas entregas continuaremos avanzando. Mientras tanto, todo el mundo a trabajar. Y para dudas y consultas, nuestro foro.
Como en su día anunciamos en Kriptópolis, desde hace algunos meses disponemos de otro excelente interfaz gráfico para el uso de TrueCrypt bajo Linux. Se trata de OneKript, una producción nacional, obra de David Area.
En este vídeo podéis verlo en acción en Ubuntu:
A efectos prácticos, una vez instalado TrueCrypt como se indicó, podemos proceder a descargar OneKript, descomprimirlo y ejecutarlo, en lugar -o como alternativa- al otro interfaz que ya presentamos.
Presento a continuación unos cuantos pantallazos de OneKript en funcionamiento...



Esta guía es una especie de traducción, ampliación o refrito de HOWTO: Install TrueCrypt and encrypt your firefox/TB files, complementada con documentación que he ido recopilando de las webs que menciono en la sección de referencias.
Esta guía os enseñará a:
1. Instalar TrueCrypt en Gentoo (la diferencia con otras distribuciones es mínima).
2. Crear y usar un volumen cifrado.
3. Utilizar algunos scripts para automatizar el montado y desmontado del volumen cifrado.
TrueCrypt es un software de cifrado que mediante el uso de volúmenes cifrados nos permite cifrar nuestros datos en un dispositivo de almacenamiento de tal forma que no puedan ser leídos por nadie que no tenga la contraseña o la contraseña y el archivo de claves. Un volumen cifrado puede ser un archivo contenedor especial que crearemos mediante TrueCrypt o puede ser una partición de disco u otro tipo de almacenamiento (disco externo USB, CD, pen USB, etc).
TrueCrypt cifra y descifra los datos al vuelo; esto es, cuando se lee de un volumen cifrado o se escribe a un volumen cifrado, las operaciones criptográficas se realizan en la RAM. TrueCrypt nunca guarda ningún dato sin cifrar en el disco. Todo el sistema de archivos de un volumen cifrado está cifrado (nombres de archivos y de directorios, el contenido de los archivos, espacio libre, meta datos, etc). TrueCrypt nunca guarda la contraseña del volumen cifrado en el disco.
Una vez montado el volumen cifrado, el acceso a los archivos para el usuario es completamente transparente, es decir, todas las operaciones con archivos se realizan como si el volumen cifrado fuese un disco normal. Una vez desmontado el volumen cifrado, los datos son completamente inaccesibles (están cifrados en el interior del contenedor).
1. Es pequeño y fácil de instalar.
2. Usa los algoritmos de cifrado más recientes. Soporta AES, TWOFISH, SERPENT y otros. Además, y también importante, soporta el nuevo modo de operación LRW, que ha sido especialmente diseñado con los requerimientos de cifrado de disco en mente. Es mucho más apropiado para este objetivo que los modos usuales, como ECB, CBC o COUNTER, que usan otras herramientas.
3. Soporta cifrado de "negación razonable" mediante volúmenes ocultos. Mediante la ocultación de un volumen cifrado en un volumen cifrado contenedor, si nos viésemos forzados a revelar la contraseña del volumen cifrado podríamos revelar sólo la contraseña del volumen cifrado contenedor y así los datos importantes que estuvieran en el volumen oculto no se verían revelados.
4. TrueCrypt está disponible tanto en Windows como en Linux. Si creas un contenedor TrueCrypt que contenga un volumen FAT en un pen USB podrás montarlo usando TrueCrypt tanto en Windows como en Linux.
5. TrueCrypt además del uso de archivos como volúmenes contenedores, permite cifrar particiones de disco, discos externos USB, DVD's, CD's, etc.
Requisitos del Kernel
TrueCrypt necesita un kernel 2.6.5 o superior, con las siguientes opciones seleccionadas como módulo o integradas en el kernel:
Device Mapper
Device Drivers --> Multi-device support (RAID and LVM) ---> [*] Multiple devices driver support (RAID and LVM) <*> Device mapper support <*> Crypt target support
Algoritmos de cifrado
Cryptographic options ---> <*> AES cipher algorithims <*> DES and Triple DES EDE cipher algorithms <*> Blowfish cipher algorithm <*> Twofish cipher algorithm <*> Serpent cipher algorithm
Loop Device
Device Drivers --> Block Devices --> <*> Loopback device support
Instalamos el paquete mediante emerge:
# emerge -av truecrypt
Añadimos el módulo al arranque de la máquina:
# echo "truecrypt" >> /etc/modules.autoload.d/kernel-2.6
Cargamos el módulo:
#modprobe truecrypt
Archivos de claves
Opcionalmente (no es obligatorio) podemos crear un archivo de claves. Estas son las ventajas de crear un archivo de claves:
El mayor inconveniente que tiene crear un archivo de claves es que en caso de pérdida o corrupción de éste no podríamos volver a acceder al volumen cifrado, ya que para hacerlo hacen falta el archivo de claves y la contraseña. Por esto, si usáis archivo de claves es mejor realizar copias de seguridad de este archivo, y si es en otros dispositivos mejor.
Creación del archivo de claves:
# truecrypt --keyfile-create keyfile.txt TrueCrypt will now collect random data. Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]: Y Please move the mouse randomly until the required amount of data is captured... Mouse data captured: 100% Keyfile created.
La versión de Windows de TrueCrypt permite ocultar un archivo de claves en un archivo que ya exista en nuestro disco duro. Este archivo puede ser de cualquier tipo, archivos comprimidos con zip, archivos de vídeo .avi, archivos mp3, etc. El contenido del archivo que oculta la clave no se ve afectado, siendo indetectable el hecho de que contiene la clave. De momento, parece que esta posibilidad no está disponible en la versión de Linux (al menos en la versión 4.3). Para más información ver el sitio de TrueCrypt.
Configuración
Ahora crearemos un volumen contenedor TrueCryt. Éste es un archivo cifrado que contendrá los datos a cifrar. Pero primero crearemos el directorio para los volúmenes y los puntos de montaje:
# mkdir -p /var/local/lib/truecrypt/{volumes,mnt}Nos movemos al directorio donde crearemos el volumen:
# cd /var/local/lib/truecrypt/volumes
Ahora crearemos el archivo contenedor cifrado. Le llamaremos, por ejemplo, private.tc. Al ejecutar truecrypt, nos dará una serie de opciones que deberemos ir seleccionando. Dependiendo del tamaño que escojamos, truecrypt tardará más o menos en crear el volumen cifrado.
Nota:
.tc es la extensión de archivo correspondiente a TrueCrypt; no hace falta que el volumen cifrado tenga esta extensión, podéis usar la que queráis .bin .iso, etc. o ninguna en absoluto. TrueCrypt no necesita ninguna extensión. No usar el .tc como extensión puede ser útil para ocultar aún más vuestros datos, ya que mientras no esté montado el volumen este archivo no será más que un archivo de datos binario. Podéis leer más sobre este tema en el sitio de TrueCrypt y en este artículo de la wikipedia.
# cd /var/local/lib/truecrypt/volumes # truecrypt -c private.tc Volume type:1) Normal 2) Hidden Select [1]: 1 Filesystem: 1) FAT 2) None Select [1]: 2 Enter volume size (bytes - size/sizeK/sizeM/sizeG): 100M Hash algorithm: 1) RIPEMD-160 2) SHA-1 3) Whirlpool Select [1]: 1 Encryption algorithm: 1) AES 2) Blowfish 3) CAST5 4) Serpent 5) Triple DES 6) Twofish 7) AES-Twofish 8) AES-Twofish-Serpent 9) Serpent-AES 10) Serpent-Twofish-AES 11) Twofish-Serpent Select [1]: 8 Enter password for new volume 'private.tc': Re-enter password: Enter keyfile path [none]: TrueCrypt will now collect random data. Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]: Y Please move the mouse randomly until the required amount of data is captured... Mouse data captured: 100% Done: 97.48 MB Speed: 12.30 MB/s Left: 0:00:00 Volume created.
Ahora veremos un poco por encima qué significan estas opciones:
Cuando truecrypt haya terminado de crear el volumen, lo montaremos para poderlo formatear.
# truecrypt -N64 private.tc
Usamos el 64 para obligar a truecrypt a crear el nodo para el disco virtual como /dev/mapper/truecrypt64. Es un número arbitrario y truecrypt podría elegir cualquier número por si mismo, pero indicándoselo de esta forma no tendremos que averiguar el nodo asignado que necesitaremos para el siguiente paso.
Ahora crearemos el sistema de archivos:
# mkfs.ext2 /dev/mapper/truecrypt64
Nota: Podéis usar el sistema de archivos que queráis, pero consultad esta página para ver qué problema tienen los sistemas de archivos con journaling.
Ahora crearemos un punto de montaje y montaremos en él el sistema de archivos que acabamos de crear:
# cd ../mnt mkdir private mount /dev/mapper/truecrypt64 private
¡Ya tenemos el volumen cifrado montado y listo para usar!
Ahora crearemos un enlace simbólico en el directorio de nuestro usuario para usarlo como directorio cifrado.
$ cd $ ln -s /var/local/lib/truecrypt/mnt/private private
Ahora todos los archivos que guardemos en /home/user/private serán cifrados transparentemente para nosotros como parte del volumen cifrado private.tc.
Para desmontar el volumen cifrado sólo tendremos que ejecutar lo siguiente:
# truecrypt -d 64
Pero si vamos a usar frecuentemente el volumen cifrado es más práctico que añadamos un script llamado truecrypt a /etc/init.d/ , que lo desmonte al apagar la máquina.
#!/sbin/runscript
LSMOD="/sbin/lsmod"
CUT="/usr/bin/cut"
GREP="/bin/grep"
TRUECRYPT="/usr/bin/truecrypt"
depend() {after localmount}
start() {ebegin "Initializing truecrypt"eend ${?}}
stop() {ebegin "Cleaning up truecrypt"
if $LSMOD | $CUT -d' ' -f1 | $GREP truecrypt > /dev/null; then
$TRUECRYPT -d
fi
eend $?}
Nota: Este tipo de script es especifico de gentoo y no funcionará en otras distribuciones. Yo cuando tengo que escribir scripts de arranque en otras distribuciones lo que hago es buscar uno que sea sencillo en la propia máquina y modificarlo según mis necesidades.
A continuación lo hacemos ejecutable y lo añadimos al arranque de la máquina:
# chmod +x /etc/init.d/truecrypt # rc-update add truecrypt boot
Ahora crearemos un script llamado /usr/local/sbin/tcmount para montar el volumen cifrado:
#!/bin/shtruecrypt -N64 /var/local/lib/truecrypt/volumes/private.tc /var/local/lib/truecrypt/mnt/private/
Y por último, crearemos un script llamado /usr/local/sbin/tcumount para desmontar el volumen:
#!/bin/shtruecrypt -d
Sólo nos queda dar permisos de ejecución a estos scripts:
# chmod +x /usr/local/sbin/tcmount # chmod +x /usr/local/sbin/tcumount
REFERENCIAS
Por anónimo
Lo último que quiero es ayudar a los delincuentes a esconderse de la ley, pero confío en que es poco probable que los que leen esta página sean delincuentes o que los delincuentes no puedan encontrar esta información fácilmente en otra parte, así que les voy a mostrar algo que seguro que hará las delicias de los conspiranoicos. Lo interesante de esto es que resuelve el problema de que te obliguen a dar la clave, porque se puede dar y verán información plausible.
El programa se llama TrueCrypt, hay una versión para windows pero no dispongo de uno para probarlo, sin embargo tengo una Mandriva 2008 que ya trae incluído todo lo necesario en forma de paquetes instalables (busquen realcrypt). Para los demás, seguramente cada uno encontrará en su distribución cómo hacerlo. Las instrucciones que doy son de Mandriva, pero funcionarán más o menos igual para cualquier distribución...
Primero cargamos el módulo de kernel que maneja todo: (modprobe realcrypt) o nos aseguramos de que se esté cargando en el arranque, incluyéndolo en el archivo /etc/modprobe.preload o donde más les guste.
Con el módulo funcionando tendremos que decidir donde vamos a esconder nuestros datos. Podemos hacerlo dentro de un archivo que usaremos como disco, o en una partición completa de nuestro disco, o en un dispositivo usb. En este último caso puede ser usando todo el espacio, lo cual hará que se vea como que sólo tiene basura, o creando un archivo dentro de él. Para nuestras pruebas crearemos un archivo en el disco.
Ejecutamos el comando truecrypt para crear un archivo llamado "miscosas" que contenga los datos:
[root@mipc ~]# truecrypt -c miscosas Volume type: 1) Normal 2) Hidden
Aquí viene lo interesante. Truecrypt puede crear dos filesystems en el mismo archivo, uno normal y el otro escondido.
Primero creemos el normal.
Select [1]: 1
Y para hacerlo sencillo lo hacemos tipo FAT. Si quisiéramos otro tipo diferente podemos crear el filesystem nosotros mismos pero si le decimos que lo haga fat el programa se encargará de todo.
Filesystem: 1) FAT 2) None Select [1]: 1
A continuación nos preguntará de qué tamaño hacerlo. Para nuestro ejemplo lo haremos de 100M, pero obviamente podría ser mucho más grande.
Enter volume size (bytes - size/sizeK/sizeM/sizeG): 100M
Después nos pedirá que elijamos el algoritmo de hash y de cifrado. Estoy seguro de que en este sitio hay gente con más conocimientos que yo sobre la conveniencia de uno u otro método, en particular hay dudas sobre sha1, por ejemplo, pero no se qué tan fuertes pueden ser los demás. Con respecto al cifrado, más de lo mismo.
Hash algorithm: 1) RIPEMD-160 2) SHA-1 3) Whirlpool Select [1]: 1 Encryption algorithm: 1) AES 2) Blowfish 3) CAST5 4) Serpent 5) Triple DES 6) Twofish 7) AES-Twofish 8) AES-Twofish-Serpent 9) Serpent-AES 10) Serpent-Twofish-AES 11) Twofish-Serpent Select [1]: 1
A continuación, como era de esperarse, se nos preguntará por la clave a usar y se generará el disco cifrado con datos aleatorios.
Enter password for new volume 'miscosas': Re-enter password: Enter keyfile path [none]: RealCrypt will now collect random data. Is your mouse connected directly to computer where RealCrypt is running? [Y/n]: y
Si estamos trabajando en la consola, tendremos acceso al mouse. En este caso el programa puede capturar datos del mouse para generar valores aleatorios. De lo contrario pedirá que se ingresen caracteres por el teclado.
Please move the mouse randomly until the required amount of data is captured.. Mouse data captured: 100% Done: 84.66 MB Speed: 20.65 MB/s Left: 0:00:00 Volume created.
Ok, hasta aquí nada extraño. Tenemos un disco cifrado como cualquier otro. Lo podemos comenzar a usar pero no vamos a poner información crítica en él. Creamos un directorio donde montarlo y lo montamos:
[root@mipc ~]# mkdir 1 [root@mipc ~]# truecrypt miscosas 1 Enter password for '/root/miscosas': [root@mipc ~]# ls -l 1 total 0
Como veremos, tenemos 86Mb de espacio en el filesystem montado en "1" para escribir nuestras cosas. Pero ahora viene lo interesante. Primero desmontamos este filesystem y vamos a agregarle al volúmen cifrado otro volúmen que quedará escondido.
[root@mipc ~]# truecrypt -d miscosas [root@mipc ~]# truecrypt -c miscosas Volume type: 1) Normal 2) Hidden
Atención aquí, que viene la diferencia. En lugar de normal elegimos hidden.
Select [1]: 2
El resto del procedimiento es el mismo pero debemos elegir otra clave diferente, y si queremos, otro tipo de cifrado diferente. Tal vez uno más fuerte porque este contendrá los datos que realmente queremos esconder. Como es lógico, el tamaño para el filesystem no podrá ser tan grande. Digamos que le damos la mitad: 50M.
Finalmente podemos volver a usar el filesystem. Al montar el filesystem normal, debemos recordar agregar el parámetro -P que protege los datos escondidos para que no sean sobreescritos.
Para esconder información, primero montamos el filesystem normal y metemos datos que parezca plausible que esten cifrados, como documentos privados y cosas así. Para que los datos del volumen escondido esten protegidos, deberemos indicar las dos claves para que truecrypt pueda leer ambos volúmenes y asegurarse de no sobreescribirlos, pero accederemos al volumen normal.
[root@mipc ~]# truecrypt -P miscosas 1 Enter password for '/root/miscosas': Enter hidden volume password: [root@mipc ~]# cp curriculum.odt dni.jpg 1 [root@mipc ~]# truecrypt -d miscosas
Ahora lo montamos de nuevo, pero en lugar de la clave normal ponemos la clave para el volumen escondido y viceversa y grabamos los datos secretos. De esta forma tendremos acceso al volumen secreto.
[root@mipc ~]# truecrypt -P miscosas 1 Enter password for '/root/miscosas': Enter hidden volume password: [root@mipc ~]# cp planes_de_dominacion_mundial.odt 1 [root@mipc ~]# truecrypt -d miscosas
Si nos vemos obligados a entregar la clave de cifrado, podemos entregar la clave para el volumen normal, y según los desarrolladores de truecrypt, parece que no hay manera de demostrar que el resto de los datos que hay no son sólo basura generada por el cifrado. ATENCION: si se monta sin saber que existe otro volúmen no pasa nada EXCEPTO que al grabar, truecrypt no podrá evitar que se sobreescriban los datos secretos.
Realmente dudo que una persona necesite llegar a estos extremos en su vida normal, a no ser que quiera esconder pornografía en la máquina de su trabajo o algo así pero bueno. Las herramientas están y es muy interesante conocerlas.
Por Fernando Acero
Soy un un feliz usuario de TrueCrypt bajo Windows (trabajo) y bajo Linux (casa). Es excelente para cifrar la información que hay en los dispositivos portátiles, como discos duros y "pendrives" y lo que más me gusta, es que ni siquiera hace falta instalarlo en el ordenador de destino, si se configura el dispositivo en modo "viajero".
Solamente le veo una pega, es necesario tener permisos de administrador para poder instalar el controlador, cuando se trabaja bajo Windows. No obstante, se puede usar Winternals o una distribución Linux "live" con TrueCrypt instalado, para extraer o introducir en la unidad portátil cifrada aquellos archivos que necesitemos, solventando así el problema de la instalación del controlador sin permisos de Administrador en Windows...
Así que solamente tengo que llevar mi disco duro portátil y un CD con Winternals o con Ubuntu Live, para poder trabajar con TrueCrypt en cualquier ordenador Windows y con independencia de tener o no, permisos de Administrador en la máquina, claro que debo poder hacer que el sistema arranque desde el CD.
Otra solución sería usar TCExporer, que es una aplicación "portable" que permite trabajar con una unidad TrueCrypt en modo lectura/escritura en modo "viajero" y sin necesidad de tener permisos de administrador. Sin embargo, este programa tiene el problema de no poder abrir las unidades cifradas con TrueCrypt que además de contraseña, tienen un "keyfile". Algo que que está en conflicto con mi estándar de seguridad, puesto que mi "keyfile" siempre viaja a buen recaudo en otro dispositivo.
Ahora estoy estudiando la forma de "instalar" a la fuerza el controlador de TrueCrypt en Windows XP, usando Winternals como herramienta de edición y transferencia de archivos, aprovechando que por omisión, todo lo que se instala desde Winternals, tiene los permisos del administrador cara a las políticas del sistema cuando arranca. Hecha la ley, hecha la trampa.
Pero vayamos al grano, cuando trabajaba bajo Linux, este servidor, que es muy "friki", usaba TrueCrypt a pelo, es decir, desde una consola y tecleando los comandos de memoria, pero hace una semana decidí instalar su "GUI" GPL denominada OneKript, quizás me estoy haciendo viejo. El caso es que cuando intentaba montar una unidad cifrada usando OneKript, acababa con unos permisos (usuario y grupo) que no me permitían escribir en ella, teniendo que montarla y trabajar como "root", para poder escribir en la unidad externa cifrada. De hecho, el programa te dice que lo uses como "root" para disponer de todas las funcionalidades, pero como he dicho, no me hace gracia trabajar como "root" y tampoco considero nada cómodo, tener que abrir una sesión gráfica como root y arrancar OneKript desde ella.
Sin embargo, Truecrypt tiene un parámetro "-u" que permite montar las unidades con los permisos adecuados para el usuario que la monta, algo que es mucho más cómodo y lógico. De hecho, es el parámetro que usaba yo para montar las unidades desde la consola. La solución es muy sencilla si se usa la versión 0.7.2 de OneKript, que es la que está disponible actualmente en Sourceforge. Recordemos que OneKript es una aplicación que usa kmdr-executor y el programa se encuentra en mi caso, en /usr/bin/onecrypt.kmdr. Basta con editar dicho archivo como "root" usando un editor como vi, o similar y cambiar la línea:
@setGlobal(commandmount, truecrypt -p @lePassword.text)
Solamente tenderemos que añadir el parámetro -u al mandato de montaje, de esta forma, se usará siempre dicho parámetro cuando se monten las unidades, o lo que es lo mismo, las unidades se montarán siempre con el usuario y el grupo correspondientes al usuario que monta la unidad.
La línea ha de quedar así:
@setGlobal(commandmount, truecrypt -u -p @lePassword.text)
Ahora solamente hay que guardar los cambios y disfrutar de este excelente tandem de programas de cifrado. Una mejora interesante sería añadir este parámetro "-u" como opción con su cuadro de selección , al igual que aparecen las opciones "Protect Hidden" o "Read Only" actualmente en la "GUI". También hay que decir, que la "GUI" de Linux tiene menos funcionalidades que el programa TrueCrypt para Windows, por lo que tampoco estaría mal echar una mano al proyecto y mejorar las funcionalidades de la combinación TrueCrypt / OneKript, o incluso de TCExplorer, para que admita los "keyfiles".
Copyleft 2008 Fernando Acero Martín. Verbatim copying, translation and distribution of this entire article is permitted in any digital medium, provided this notice is preserved.
27-FEB: Nueva actualización (punto 12) explica cómo solventar la limitación del asistente (que sólo permite crear volúmenes FAT) y poder crear un volumen ext3.
27-FEB: Nueva actualización (punto 11) explica cómo ejecutar TrueCrypt 5 como un usuario normal.
Escrito para Kriptópolis por Anónimo (25-FEB) y editado por admin (26-FEB, 27-FEB)
A día de hoy está disponible la versión 5.0a. Existe un paquete .deb para Ubuntu, pero no funciona en Debian Etch.
Para solucionar esto hay que compilar directamente TrueCrypt. A continuación explico los pasos necesarios para conseguirlo...
tar xzvf TrueCrypt 5.0a Source.tar.gz
tar xzvf wxWidgets-2.8.7.tar.gz
cd truecrypt-5.0a-source
----------
ifeq "$(TC_BUILD_CONFIG)" "Release"
C_CXX_FLAGS += -fdata-sections -ffunction-sections
LFLAGS += -Wl,--gc-sections -Wl,--hash-style=sysv -> modificamos sólo esta línea y la dejamos así:
LFLAGS += -Wl,--gc-sections -Wl
WXCONFIG_CFLAGS += -fdata-sections -ffunction-sections
WXCONFIG_CXXFLAGS += -fdata-sections -ffunction-sections
endif
----------
Añadimos estas líneas:
if (parser.Found (L"fs-options", &str))
{
ArgMountOptions.FilesystemOptions = wstring (str);
}
Justo antes de:
------
if (parser.Found (L"new-keyfiles", &str))
ArgNewKeyfiles = ToKeyfileList (str);
------
$ su # apt-get install fuse-utils libfuse2 libfuse-dev
(libfuse-dev es sólo para compilar, y lo podremos eliminar después de esa fase)
$ cd ~/truecrypt-5.0a-source $ make WX_ROOT=~/wxWidgets-2.8.7 wxbuild $ make
$ su # cp ~/truecrypt-5.0a-source/Main/truecrypt /usr/local/bin
# mkdir -p /usr/local/share/doc/truecrypt/ # cp "~/truecrypt-5.0a-source/Release/Setup Files/*" /usr/local/share/doc/truecrypt/
# modprobe fuse
(podemos añadir "fuse" en una línea del fichero /etc/modules para que siempre se cargue al arrancar el sistema)
$ truecrypt
Si deseamos montar un volumen truecrypt ya creado desde la consola, podríamos hacer, por ejemplo:
$ truecrypt --fs-options="utf8" fichero.tc /mnt/mivolumentc/
Para montar el volumen contenido en el fichero "fichero.tc", en el directorio "/mnt/mivolumentc/"
$ su # visudo
Añadir:
# User privilege specification usuario ALL=(root) NOPASSWD: /usr/local/bin/truecrypt
Lógicamente has de sustituir "usuario" por el nombre del usuario que quieres pueda ejecutar TrueCrypt.
Ahora ya puedes ejecutar TrueCrypt desde un icono del escritorio o una consola con el comando sudo truecrypt.
$ su # umount /media/truecrypt1 # mkfs.ext3 /dev/loop0
(eso si lo hemos creado en el slot 1; si no, basta cambiar los datos por los que corrrespondan).
Basta montar el volumen de nuevo y podremos comprobar (con un simple mount) que ya tiene un sistema de ficheros ext3, tal como deseábamos.
Espero que sea de utilidad.
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:
b) fuse-2.7.3
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.