TrueCrypt es una aplicación gratuita, cuyo código fuente está disponible, 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.
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.
[18:08] Acabo de publicar un breve tutorial para instalar TrueCrypt 6 en Mandriva 2008, que es la distro que estoy utilizando ahora mismo.

Acaba de publicarse la versión 6.0 de TrueCrypt, que implementa varias novedades interesantes:
Referencias:
Una de las fuentes de contenidos que más me satisfacen son aquellos usuarios del sitio que, agradecidos por lo que de él han obtenido en alguna ocasión, deciden "devolver" algo a esta comunidad.
Es el caso de Salvador Moreno, quien ha decidido poner a nuestra disposición un sencillo manual para obtener, instalar, configurar y utilizar el conocido programa de cifrado TrueCrypt en Microsoft Windows.
Desde hoy libremente descargable y distribuible en formato pdf:
¡ 7.860 descargas durante agosto !
A continuación procederemos a instalar la flamante versión 6 de TrueCrypt en un sistema Mandriva 2008 Linux.
En primer lugar, instalamos desde el sistema de agragar software de Mandriva el paquete denominado libfuse-devel y a continuación descargamos desde Internet los dos ficheros siguientes:
Procedemos a descomprimir ambos:
$ tar xzvf TrueCrypt 6.0 Source.tar.gz $ tar xzvf wxWidgets-2.8.8.tar.gz
Cambiamos al directorio donde acabamos de descomprimir TrueCrypt:
$ cd truecrypt-6.0-source
Y tecleamos lo siguiente:
$ make WX_ROOT=[directorio donde descomprimiste wxWidgets]wxWidgets-2.8.8 wxbuild
Y a continuación simplemente:
$ make
Unos cuantos minutos de espera -mientras TrueCrypt 6.0 se compila- y dispondremos del ejecutable correspondiente en el directorio main:
$ cd Main
Arrancamos el programa:
$ ./truecrypt
Y se nos muestra la pantalla inicial:

Y para que no queden dudas, pulsamos sobre "About":

[Enviado a Kriptópolis como comentario anónimo]
TrueCrypt permite cifrar todo el disco duro (excepto el sector de arranque). Eso incluye toda la partición Windows -no sólo carpetas y archivos- de modo que al arrancar, el sistema te pedirá la contraseña para poder cifrar y descifrar los datos al vuelo.
De esta forma, si el disco duro se pone en otro PC no se verán los datos de la partición, o mejor dicho, lo que se vea estará cifrado.
Ojo, porque cifrar y descifrar consumen CPU y dependiendo del algoritmo elegido la velocidad de puede ser bastante baja.
Personalmente recomiendo cifrar sólo la partición del SO y no todo el disco. De esta manera hay una partición sin cifrar que se puede usar como temporal para aquellas tareas que requieran mucha velocidad de disco. Por contra, está claro que lo que se escriba en ella no debe ser crítico...
HDD0:
<<- Partición0 4GB - Para el PageFile - Evita que se fragmente y estará en la parte más rápida del disco, al principio. ->>
<<- Partición1 ZGB - Z: El tamaño para nuestros datos temporales que requieran altas prestaciones ->>
<<- Partición2 (4+X)GB - X: El tamaño ajustado en lo posible a lo que estará ocupado) El SO en sí. ->>
<<- Partición3 YGB - Y: El tamaño para nuestros datos no temporales ->>
En este sólo cifraría las particiones 0, 2 y 3, dejando que la 1 tenga su máxima velocidad (sin cifrar).
HDD0:
<<- Partición0 4GB - Para el PageFile - Evita que se fragmente y estará en la parte más rápida del disco, al principio. ->>
<<- Partición1 (4+X)GB - X: El tamaño ajustado en lo posible a lo que estará ocupado) El SO en sí. ->>
HDD1:
<<- Partición0 ZGB - Z: El tamaño para nuestros datos temporales que requieran altas prestaciones ->>
<<- Partición1 YGB - Y: El tamaño para nuestros datos no temporales ->>
En este sólo cifraría las particiones HDD0-0, HDD0-1 y HDD1-1, dejando que la HDD1-0 tenga su máxima velocidad (sin cifrar).
HDD0:
<<- Partición0 4GB - Para el PageFile - Evita que se fragmente y estará en la parte más rápida del disco, al principio. ->>
<<- Partición1 (4+X)GB - X: El tamaño ajustado en lo posible a lo que estará ocupado) El SO en sí. ->>
HDD1:
<<- Partición0 YGB - Y: El tamaño para nuestros datos no temporales ->>
HDD2:
<<- Partición0 ZGB - Z: El tamaño para nuestros datos temporales que requieran altas prestaciones ->>
En este sólo cifraría las discos duros HDD0 y HDD1, dejando que el HDD2 tenga su máxima velocidad (sin cifrar).
HDD0:
<<- Partición0 4GB - Para el PageFile - Evita que se fragmente y estará en la parte más rápida del disco, al principio. ->>
HDD1:
<<- Partición0 (4+X)GB - X: El tamaño ajustado en lo posible a lo que estará ocupado) El SO en sí. ->>
HDD2:
<<- Partición0 YGB - Y: El tamaño para nuestros datos no temporales ->>
HDD3:
<<- Partición0 ZGB - Z: El tamaño para nuestros datos temporales que requieran altas prestaciones ->>
En este sólo cifraría los discos duros HDD0, HDD1 y HDD2, dejando que el HDD3 tenga su máxima velocidad (sin cifrar).
Dejar una partición dedicada al PageFile es mucho mejor que ponerlo en otra, según he podido obsevar en mis pruebas, de hecho las mejores prestaciones las he obtenido haciendo que dicha partición sea FAT32 y no NTFS, de ahí el límite a 4GB (FAT32 no admite archivos mayores). Recordad que la partición ha de ser ligeramente mayor que el PageFile o Windows os dirá que no le cabe. Requiere que haya unos megas libres, a pesar de decirle que sea de tamaño fijo (mismo tamaño mínimo y máximo).
Que el SO y pagefile estén en discos diferentes hace ganar mucho en prestaciones.
Asimismo recordad que normalmente (salvo discos de muy altas prestaciones y muy caros) los discos duros leen y escriben más rápido en la parte más baja de direcciones (cilindros más bajos). En algunos la direfencia es de hasta el doble, por ejemplo los primeros cilindros a unos 80MB/s y los últimos a unos escasos 30MB/s. Esto hace que si la partición para el SO está al final del disco sea mucho más lento el PC.
A lo que me refiero con "datos temporales que requieran altas prestaciones" es a datos intermedios generados por muchas aplicaciones que todos conocemos y no voy a mencionar, pero que tienen algo un poco especial: se usa poca CPU y mucha entrada/salida. Además suelen ser archivos muy grandes, de 4.32GB 4.7GB o incluso de 8.5GB. Ya sabéis a qué me refiero y con la llegada de los nuevos medios ópticos podrían ser de 25GB o incluso hasta 50GB.
Lógicamente, al no cifrar dicha partición lo mejor es que cuando dichos datos temporales no sean ya necesarios (es decir, cuando ya estén en su medio externo correspondientemente tratados) primero usad algún programa que sobreescriba partes de los archivos con datos aleatorios y tamaños variables en posiciones concretas de los archivos, para luego "formatearla" tras su uso. Digo "formatearla" y no simplemente borrarlos para que las estructuras (MFT, etc...) sean borradas. Lo ideal sería un Wipe, pero eso lleva demasiado tiempo. Luego usad algún programa que genera archivos con datos aleatorios y de tamaños variables en posiciones concretas del disco y después volved a "formatearla". Con esto se evitará que los programas de recuperación de datos por contenido puedan ver alguna estructura de lo que había en la partición no cifrada y así se evita que se pueda recuperar algo sin el coste de un wipe completo. Obviamente si prima la seguridad el wipe es fundamental, y si se es un paranoico pues nada de particiones sin cifrar y -eso sí- más lentos esos procesos de entrada / salida.
Mucho ojo con cifrar la partición del sistema operativo. Causa tres efectos laterales, uno evitable y dos no:
El evitable es que se pierda la contraseña. TrueCrypt permite tener a buen recaudo un método para subsanar esto e incluso un borrado accidental del cilindro cero (reparticionar el disco, por ejemplo).
Los no evitables son: 1) La partición no se podrá cambiar de tamaño mientras esté cifrada y 2) Si tratas de clonar dicha partición para tener un respaldo / backup, al estar cifrada no se podrán comprimir los datos que vea el programa clonador y tampoco verá la estructura, por lo que el archivo imagen ocupará tanto como ocupe la partición.
Espero os sirva de ayuda, pues os veo no muy versados en el tema, algo muy comprensible. Pocos fanáticos hay como yo que inviertan meses en pruebas hasta dar con un sistema bueno.
TrueCrypt también permite cifrar el 100% de un PenDrive o disco externo. En este caso recomiendo que en el Administrador de disco de Windows le digáis que no le asigne letra a la partición no montada, para que accidentalmente no os pida darle formato y evitar así el riesgo de formatearla accidentalmente.
También hay por la red otro programita llamado Pismo File Mount bastante útil, que es capaz de crear archivos y montarlos como una carpeta o una unidad. Muy útil.
Lo bueno: Admite que el contenido del archivo se comprima y/o cifre. Tras ser montado se puede usar como si fuera una carpeta. Comentar que el ratio de compresión gana con creces a la compresión de NTFS y además es más rápida. Sólo tiene una pega: el tamaño del archivo sin montar sólo sabe crecer, no tiene ninguna opción para compactarlo; se soluciona creando uno nuevo y montando ambos; movemos los de uno al otro listo.
Además el mismo programa permite crear archivos con un ratio de compresión mucho más alto que también se pueden montar, pero éstos sólo serán de lectura y no podrán ser borrados ni alterados; muy parecido a lo que hace 7zip, ideal para imágenes de CDs/DVDs, etc.
Como resumen: TrueCrypt para cifrar el Arranque, SO y datos críticos, medios externos etc... y si somos maniáticos o paranoicos sobre archivos / particiones cifradas con TrueCrypt podemos añadir otro nivel de cifrado más, con Pismo File Mount. Recordad que Pismo File Mount también permite comprimir al vuelo, parecido a como lo hace la NTFS, pero con un notable mejor ratio.
- Siempre tened cuidado con qué trasteais; por ejemplo, no se os ocurra la burrada de pensar que Pismo podrá comprimir el directorio de Windows. Pismo crea archivos que pueden ser montados y accedidos como carpetas, pero el SO debe estar arrancado para ello.
- Jamás olvidéis hacer un backup del disco antes de cifrarlo, pues si no tienes cuidado y haces mal las cosas puedes perder todo. Guarda en un papel escrito la contraseña y dicho papel guardalo a salvo en casa, ... trabaja sobre seguro, haz pruebas para familiarizarte antes en un PC que no tenga riesgos. Para ello están VirtualPC o VirtualBOX, máquinas virtuales en las que montar un sistema operativo y hacer pruebas (si no dispones de un PC físico donde hacerlas). Recomiendo familiarizarse antes con el sistema de cifrado del disco duro antes de hacerlo sobre el definitivo. También recomiendo que no dejéis que se cifre el disco en el arranque, sino mientras estéis trabajando en windows de fondo. De lo contrario el proceso debería terminar sin poderlo parar; yo mismo metí la pata y aborté el proceso de cifrado en el arranque, perdí el SO y me tocó reinstalarlo; por eso cuando se reinicie y pida si cifrar el disco ahora (en el arranque) o luego (mientras se trabaja en windows) elegir luego. Además así podréis apagar el PC aunque no haya acabado. En el siguiente arranque continuará mientras trabajamos en Windows.
- Sugerencia: probad Pismo sobre un PenDrive, el rendimiento en escritura aumenta una burrada. El motivo es simple: cada vez que se escribe un archivo pequeño en un PenDrive (dado que windows por defecto desactiva la caché de escritura) se escribe la tabla de asignacion de datos (FAT o $MFT), por lo que la velocidad con archivos pequeños es pésima; pues bien, al hacerlo dentro de una carpeta resultante de haber montado un sistema de archivos virtual (vamos, un archivo de Pismo montado como carpeta), dichas escrituras tienen su propia caché y la FAT/$MFT sólo se escribe una única vez, al final. En mis pruebas con algunos PenDrives he observado que si escribo 1000 (mil) archivos de menos de cuatro KB (<4096Bytes) tarda la operación casi un hora, mientras que la misma operación sobre un archivo montado como carpeta por Pismo (sin compresión ni cifrado para poder comparar tiempos), tarda tan sólo un segundo. Son sólo cuatro megas y el pen permite escribir a 5MB/s. Si a esto le añadimos compresión, encima aumentamos no sólo la velocidad del PenDrive sino también su capacidad, y si encima usamos cifrado además añadimos privacidad.
- Resumiendo: La mejor solución es combinar técnicas: TrueCrypt y Pismo. De esta forma con TrueCrypt garantizamos que Off-Line (apagado) el disco duro esté seguro y On-Line (encendido) sólo estarán accesibles los datos más críticos cuando los montemos (TrueCrypt y/o Pismo, tanto de forma separada como en cascada), ojo con poner en cascada varios cifradores, ralentiza bastante.
¿Cómo se ponen en cascada? Fácil. Un ejemplo: se crea un archivo .tc con TrueCrypt, se monta como unidad; en ella se crea un archivo .pfo con Pismo y se monta como carpeta o unidad; en ella se crea un archivo .tc o .pfo, etc... Para acceder a los datos habría que ir montando en cascada cada uno, cada uno con su clave pertinente, ... A costa de más CPU y tiempo se aumenta la seguridad contra ataques de fuerza bruta; imaginemos a un atacante cómo de frustrado se quedaría si tras conseguir romper una clave monta el archvo y se encuentra que lo que hay son también archivos cifrados .tc o .pfo y que tiene que volver a empezar de nuevo a romper otra clave. Si además tras romper la siguiente (varios años de trabajo) se vuelve a encontrar otra vez con otros archivos cifrados y ha de volver a empezar de nuevo, frustrado de narices; lo que espero es que no se suicide de lo frustrante que le resulte al atacante, pues no le deseo mal a nadie.
Recordad simpre la máxima en seguridad: El punto más débil del cifrado puede no ser el algoritmo sino la clave; imaginad a un usuario que pone la contraseña de windows para el usuario Administrador vacía. En los algoritmos actuales más conocidos se tiende a intentar que la clave sea lo más pequeña posible y que el algoritmo garantize que los datos estén a salvo; si la clave es pequeña la cantidad diferente de posibles claves es baja, por tanto con muchos ordeadores en paralelo, cada uno con un rango, llegarán en poco tiempo a sacar la clave rápidamente. El ejemplo más drástico: una clave de un byte (256 posibles valores) es muy mala protección pues sólo son necesarias 256 pruebas; si tienes 256 ordenadores cada uno deberá hacer sólo una prueba. A más bytes de clave más pruebas y es una función exponencial: doble longitud de clave, el cuadrado de pruebas.
Personalmente mis claves tienen una longitud de cerca de un megabyte (1024*1204 bytes) para los datos poco sensibles, para los críticos uso claves de más de 8GB (>8*1024*1024*1024 Bytes). Paranoico, no. Seguro de que no usarán el ataque a fuerza bruta, sí. La clave es mayor que los datos y sólo la uso una única vez, vamos una clave para cada archivo a proteger.
Por ello resulta que el coste de inventarse qué habría es mucho menor que probar a fuerza bruta cada posible valor de la clave; además el número de posibles claves es mayor que el número de posibles datos.
Lo explicaré con un ejemplo:
Clave de 4Bytes, dato en limpio ocupa 2 bytes -> Número de posibles claves 256^4=4294967296, número de posibles datos en limpio 256^2=65536; ahora con 8 bytes de clave y 3 bytes de datos: número de posible claves 256^8=18446744073709551616 y número de posibles datos: 256^3=16777216.
Espero quede claro; si no pondré otro ejemplo: si la clave es más larga que los datos y sólo se usa una vez una simple función XOR basta para garantizar la seguridad de los datos y si no intentad descifrar esto (sin la clave y obviamente sin el dato en claro):
Dato en claro: HOLA -> 072 079 076 065
Clave: LUIS -> 076 085 073 083
Dato protegido: **** -> 004 026 005 018
Espero haber resuelto no sólo vuestras dudas sobre con qué cifrar el disco duro para que la partición de Windows esté cifrada, sino también que entendáis un poco la seguridad y su coste, y así podáis determinar el equilibrio entre el coste y cuán seguros queráis tener los datos.
Suerte y al toro!
Por anónimo
Lectura previa recomendada:
El otro día me encontré con un nuevo SPC que me consiguió fastidiar un poquito. Su rendimiento me indicó que en unos 2376 años aproximadamente habría podido probar a fuerza bruta una clave de 8GB, así que tomé la determinación de usar 16GB, pero no contento con que el tiempo sea de 5645376 años, decidí cambiar de idea y no usar sólo 16GB de clave, sino más bien 32GB, así que en ese nuevo SPC, probar todas las combinaciones le llevaría 31870270181376 años.
Sé que TrueCrypt usa sólo el primer mega, pero no hablo de eso:
Quien use un esquema basado sólo en un encriptador lo hace mal, antes o después puede encontrarse un fallo al algoritmo de encriptación o romperlo de alguna manera, por muy irrompible que ahora parezca.
Lo que jamás nadie podrá romper es el algoritmo maestro, el que cifra cada bit con su homónimo de clave y por cada bit de dato hay un bit único de clave, vamos que un bit de clave se usa una sola vez, para un sólo bit de dato y hay tantos o más bits de clave que de datos...
En concreto pongo un ejemplo muy simple (básico):
* Primero encriptamos todo el disco con TrueCrypt, la clave basada en varios archivos y en tener que teclear una passphrase. Montamos dicho disco encriptado para tener acceso a él.
* Luego en él metemos algún archivo de Pismo, con su correspondiente encriptación y lo montamos como carpeta virtual.
* Por último y como método de por si seguro al 110%, ponemos un archivo encriptado "LLP".
Paso a explicar por encima mi encriptación, la que llamo LLP (mis iniciales):
- Imaginemos que tenemos un fichero comprimido 7z, para ocultar la estructura de directorios y archivos además de comprimir.
- Imaginemos ahora que dicho fichero es de X bytes de tamaño.
- Pues bien creamos una clave única para él que consta de X bytes; sí, el mismo tamaño que el archivo comprimido.
- Dicha clave la tendremos siempre a buen recaudo: seguridad física de nivel militar o similar.
- Con dicha clave hacemos byte a byte un simple XOR entre el archivo 7z y la clave.
- Ese archivo resultante es el que meteríamos en el Pismo, dentro del disco encriptado por TrueCrypt.
De esta manera si se pierde el PenDrive, jamás y repito, jamás nadie por mucha CPU que disponga y por mucho tiempo que tenga podrá desencriptarlo.
Paso a explicar por qué:
- Imaginemos que es capaz de romper la criptografía de TrueCrypt, difícil pero con un SPC grande quizás no tanto, al fin y al cabo son pocos bits de clave y pocos algoritmos a probar.
- Imaginemos también que consigue romper la clave del archivo Pismo.
- Lo que se encuentra es un archivo que no reconocerá (recordemos que es un 7z pero cifrado con un XOR byte a byte con una clave de igual longitud).
- Bien ahora biene la parte buena, aunque tenga un SPC todo lo grande que quiera, no le queda más remedio que probar con todas las posibles claves.
- Esto dará lugar a que se generen tantos archivos supuestamente descifrados como 2 elevado al número de bits que forman la clave, lo que es igual a 8*el número de bytes, que como es la longitud del archivo ... En definitiva, tendrá como resultado todos y cada uno de los posibles archivos que se pueden formar con esa longitud, pero claro ¿cuál era el bueno? No lo podrá saber jamás. ¿Por qué? un ejemplo lo explicará mejor:
Imaginemos que el archivo es de Xbytes de longitud, luego es de 8*X bits de longitud, si probamos la funcion XOR, veremos que si tengo una sequencia de 8*X bits y aplicamos una clave de 8*X bits obtenemos un resultado de 8*X bits de longitud, obvio el XOR no hace más que cambiar el valor de los bits, no la cantidad que hay.
Bien, al tener que probar todas las posibles claves, se puede demostrar que independientemente de los datos encriptados salen todas las posibles combinaciones, por lo que es más rápido generar todas las posibles secuencias, que andar descifrando.
Ejemplo con 3 bits, para no hacerlo muy largo, es extensible a tanto bits como queráis:
ABC -> Dato en claro (cada letra es un bit del que no digo su valor)
XYZ -> Clave usada (cada letra es un bit del que no digo su valor)
Resultado: A xor X, B xor Y, C xor Z -> *+·
Posibles claves usadas, 2 elevado a 3 = 8 posibles claves:
000, 001, 010, 011, 100, 101, 110, 111
Recordemos *+· es el dato encriptado, intentemos desencriptarlo con cada clave:
Si la clave suese 000, el resultado de dato encriptado XOR clave (000) da:
000 -> 000, 001 -> 001, 010 -> 010, 011 -> 011, etc...
Obtenemos todas las posibles combinaciones de tres bits si la clave original fuese 000
Si la clave suese 001, el resultado de dato encriptado XOR clave (000) da:
000 -> 001, 001 -> 000, 010 -> 011, 011 -> 010, etc...
Obtenemos todas las posibles combinaciones de tres bits si la clave original fuese 000
Y así sucesivamente, de forma que sin conocer el dato original ni la clave, lo que obtenemos es que son posibles todas las combinaciones de bits.
Este método no hay quien lo rompa, es matemáticas, si tienes que desencriptar un archivo de N bytes, tendrás que adivinar cuál de entre todos los posibles de N bytes es.
Lo explicaré de otra forma, a ver si queda claro: Si para un mismo archivo en claro usas cada una de las claves posibles (son 2 elevado a 8*número de bytes de la longitud del archivo) obtendras tantos archivos diferentes como 2 elevado a 8*número de bytes de la longitud del archivo, vamos tantos resultados diferentes como claves posibles, en otras palabras, con que no sepas un bit de la clave, no podrás saber cuál es el dato original, tendrás dudas.
Ejemplo: Si te falta sólo por conocer un bit de la clave (milagro que te has conseguido hacer con el resto) tendrás dos dudas, vamos habrá sólo dos posibles datos en claro, cuál será? bien como era comprimido por 7z el que no falle al descomprimir; si te faltan dos bits de clave, tendrás cuatro posibilidades, si te faltan 3 tendrás 8, etc... si te falan todos tendrás tantos como posibles archivos diferentes se pueden generar con esa longitud.
Bien al ser comprimido por 7z y saber que es así, se restringe la búsqueda, pero para qué buscar la clave, si al final obtendrás todos los posibles archivos 7z que se puedan generar con esa longitud. Lo que jamás sabrás es cuál de entre todos ellos es.
Ahora imagina que el archivo (sin comprimir) es de 8GB, que encima no das indicios de si lo comprimiste o no, no hay indicios de qué tipo de información puede haber, ...
Imagina que lo encriptas con tu clave de 8GB, cada bit de dato con su omónimo de clave, ues bien la cantidad de posibles archivos resultantes es de 2^68719476736, claramente no hay partículas suficientes en el universo conocido para poder representar el resultado de dicho valor en decimal.
Con esto quiero decir que si algo se quiere esconder bien, se puede. Nadie jamás podrá saber cuál de los posibles es.
¿Que alguien sigue sin creerselo?, que haga la prueba:
Generar un número al azar de ocho bits binarios (un byte) -> DatoEnClaro.
Generar las 256 posibles claves.
Generar los 256 de resultados: DatoEnClaro XOR clave.
Ahora prestad atención al set de resultados, veréis que contiene todos los números del 0 al 255, es puras matemáticas. Da igual que valor tenga el dato, se le está modificando de todas las formas posibles, luego se generan todos los posibles valores.
El usar TrueCrypt y Pismo simplemente es para que el que intente desencriptarlo crea que lo ha logrado y se frustre al ver que cada vez encuentra una nueva criptografía, al final con lo que dará es con una imposible de romper y verá que el tiempo que ha invertido lo ha tirado a la basura, más le habría valido contratar a un adivino. De este modo se ve tan frustrado que le dará por volverse loco.
Por ende, este método es tan bueno y seguro, que ni tan siquiera esos ataques de fuerza bruta física podrán hacer nada, la clave está a buen recaudo en una zona segura, seguridad militar o similar, pro ejemplo en una zona en la que es imposible que entren más de una persona a la vez, que se entre con micros, sistemas de escucha, etc... y que dispone de los medios necesarios para garantizar la seguridad física del que esté dentro durante años, bunquer o similar, ... además de disponer de los medios necesarios para delatar a los captores, por si ha secuestrado a un familiar, etc...
Lo que se debe es dejar muy claro a los captores que te intenten hacer darles es dato en claro, que ni tan siquiera tú mismo podrías obtener ese dato en claro fuera del área segura.
Obviamente la pega es la necesidad de los medios físicos necesarios, aparte de una gran capacidad de almacenamiento.
Ahora bien con 500GB en un HDD de 3.5" USB que se venden por unos 100 euros, te da para unas 62 claves de 8GB. vamos que proteger la información apenas cuesta, otro disco duro más y otras tantas claves. Eso sí, jamás uses una clave más de una vez y nunca tengas la clave y el dato encriptado juntos fuera del área segura.
Se que a nivel doméstico es pasarse un montón o mucho más, pero más seguro no es posible. Es el TOP de seguridad.
Ahora por contra los criptoanalistas lo que están intentando es el lado opuesto, en lugar de usar claves enormes y algorítmos ultra-rápidos, usan algoritmos ultra-lentos y claves ultra-pequeñas, intentando garantizar la seguridad del método usado.
Bien imaginad que usáis uno de esos algoritmos de 4096 bits de clave, si disponéis de 2^4096 ordenadores (núcleos en un SPC), tan sólo llevará el tiempo de una prueba el probar todas las combinaciones posibles. La potencia de cálculo está aumentando mucho, y el tamaño de los núcleos de procesamientos disminuyendo una barvaridad, más aún cuando se termine de implementar los nanoprocesadores, que podremos llevar un SPC en la muñeca. Esto lleva a que 4096 bits de clave se puedan probar a fuerza bruta en unos pocos segundos, actualmente hay un SPC capaz de probar todas las combinaciones de 32768 bits en tan sólo un segundo, eso bienen a ser frases de 4096 letras/byes, si pensais que con 20 estais a salvo...!
Pobre gente la que piense que con unos pocos bytes de clave está a salvo... Lo que asegura que el método por fuerza bruta tampoco sirva es que la cantidad de posibles resultados desencriptados aparentemente coherentes sean tan alta que la probabilidad de acertar con el correcto sean infima.
Suerte y al toro!
Relacionada:
Por Fernando Acero
Tras comentarse los problemas de la licencia de TrueCrypt (TrueCrypt se distribuye gratuitamente y su código fuente está disponible, pero bajo una licencia no libre) en varias listas, al final se tomó la decisión salomónica de eliminar el paquete, incluso del repositorio "non-free" de Mandriva, por posibles problemas legales.
Durante un tiempo hubo disponible una versión de TrueCrypt para Mandriva, que se denominó RealCrypt para cumplir con los requisitos de la licencia, pero esa opción ya no está disponible en los repositorios de la versión 2010 de Mandriva, aunque sí lo está para otras distribuciones como Fedora o Suse.
Por ello, si queremos usar TrueCrypt en nuestra flamante Mandriva 2010, no tenemos más remedio que compilarlo e instalarlo nosotros mismos. La verdad es que es una pena que esta magnífica aplicación de seguridad no tenga una licencia libre, pero así está el asunto y no parece que vaya a cambiar en breve...
Para proceder a la compilación en la Mandriva 2010 tenemos que hacer algunas cosas previamente:
a) Instalar las cabeceras del PKCS #11: Cryptographic Token Interface Standard, en su versión 2.20. Para ello, nos bajaremos los siguientes archivos:
Una vez bajados, los guardaremos como root en el directorio /usr/include/. Después, tenemos que instalar todas las dependencias de Truecrypt 6.3a en sus versiones "devel", lo que se puede hacer como root mediante el mandato, urpmi nombre-devel, por ejemplo:
urpmi libfuse-devel
La lista completa de dependencias está en la página de descargas de TrueCrypt. Aunque pone dev, que sería la opción para Debian, nosotros tenemos que poner -devel detrás de los nombres de todos los paquetes que aparecen listados.
Un caso particular de las dependencias es la librería libiconv-1.13.1, que no está disponible en Mandriva 2010. Tras descargarla del proyecto GNU, la descomprimiremos mediante el mandato:
tar xzvf libiconv-1.13.1.tar.gz
Y la instalaremos mediante la secuencia de mandatos:
cd libiconv-1.13.1 ./configure --prefix=/usr/lib/ make make install ldconfig
Si no usamos el modificador --prefix=/usr/lib/, la librería se instalará en /usr/local/lib/ y el sistema no la localizará adecuadamente si no modificamos el archivo /etc/ld.so.conf. Para ello, sería necesario añadir la línea /usr/local/lib/ y luego ejecutar el mandato ldconfig.
También necesitaremos los paquetes:
Y lógicamente, la última versión de TrueCrypt:
Primero los tenemos que descomprimir usando los mandatos:
tar xzvf TrueCrypt 6.3a Source.tar.gz tar xzvf wxWidgets-2.8.10.tar.gz
Después, iremos al directorio en el que hemos descomprimido las fuentes de TrueCrypt usando el mandato:
cd truecrypt-6.3a-source
Y compilaremos las librerías wxWidgets mediante el mandato:
make WX_ROOT=[directorio donde están las fuentes de wxWidgets/]wxWidgets-2.8.10 wxbuild
Finalmente, compilaremos TrueCrypt usando el modificador WXSTATIC=1, ya que no tenemos las librerías compartidas ni las cabeceras de wxWidgets:
make WXSTATIC=1
Al finalizar la compilación, nos debería aparecer el ejecutable de TrueCrypt en el directorio /truecrypt-6.3a-source/Main/, con lo que lo podremos copiar al directorio /usr/bin/ y hacerlo ejecutable por todos los usuarios mediante el mandato:
chmod a+rx truecrypt
Si queremos que los usuarios puedan montar las unidades cifradas, debemos modificar como usuario root el archivo /etc/sudoers. Por ejemplo, si escribimos:
fernando ALL=(ALL) ALL
Así el usuario fernando podrá usar cualquier mandato tras hacer sudo y escribir su contraseña de usuario correctamente.
"Copyleft 2010 Fernando Acero Martín. Verbatim copying, translation and distribution of this entire article is permitted in any digital medium, provided this notice is preserved."