Cifrado de datos

La información se almacena, la mayoría de las veces, en texto plano. Esto significa que cualquier persona que tenga acceso físico a nuestro equipo de cómputo puede acceder a nuestra información, aún cuando el sistema operativo (p.ej. Mac OS X o GNU/Linux Ubuntu) esté protegido por una contraseña de usuario (p.ej. iniciando con un sistema operativo Live o En Vivo, y montando el disco duro del equipo anfitrión). De la misma forma, cualquier equipo de cómputo vulnerado por un intruso tendrá acceso, dependiendo del sistema de permisos que protege a los archivos, a los datos de los usuarios.

Una forma de proteger nuestra información es utilizando el cifrado de datos. De esta forma, los datos no se almacenan en texto plano, pasan por un proceso que los transforman en conjuntos de caracteres ilegibles, que representan la misma información pero desordenada. Para ello utiliza una contraseña o llave, y con la misma (o con otra generada para este propósito) realiza el proceso inverso, permitiéndonos acceder a la información.

Esto sería equivalente a introducir una carpeta con documentos importantes en una caja fuerte, a la que sólo se accede con una llave o contraseña. Normalmente, un intruso podría ver la caja fuerte, pero nunca su contenido, a menos de que encuentre la llave. Una persona intentando acceder a nuestra información cifrada, vería únicamente archivos ilegibles.

Instalación de Veracrypt

Veracrypt es un programa relativamente nuevo, pero desarrollado tomando como base a TrueCrypt, un programa de cómputo que mantuvo su desarrollo por varios años. Debido a esto tiene una amplia comunidad de usuarios.

Para instalarlo basta descargarlo de su sitio oficial. Cuenta con versiones para los sistemas operativos más utilizados.

Sitio web VeraCrypt

Imagen 01: Sitio web oficial de VeraCrypt

Una vez descargado procederemos a su instalación. Para ello descomprimiremos el archivo haciendo click derecho > Extraer aqui...

Extraer archivos

Imagen 02: Extraer archivos

Una vez descomprimida la carpeta con el instalador, iremos a una terminal, accederemos a dicha carpeta y ejecutaremos el programa instalador:

cd Descargas/Veracrypt/veracrypt-1.19-setup/
./veracrypt-1.19-setup-gui-x64

En seguida aparecerá la ventana del instalador:

Instalador

Imagen 03: Instalador

Procederemos a hacer click en el botón Install Veracrypt, lo que nos llevará a una ventana con la licencia del software (Licencia Apache 2.0 y TrueCrypt 3.0).

Licencia

Imagen 04: Licencia

Al hacer click en el botón I accept and agree to be bound by the license terms se nos mostrará un aviso con las instrucciones para desinstalar el programa en caso de ser necesario:

Desinstalación

Imagen 05: Desinstalación

Haremos click en el botón OK y en seguida aparecerá una terminal realizando el proceso de instalación:

Instalación

Imagen 06: Instalación

Al finalizar el proceso de instalación, podremos abrir el programa VeraCrypt. A continuación se muestra su interfaz principal:

VeraCrypt

Imagen 07: VeraCrypt

Volúmenes cifrados

VeraCrypt, así como TrueCrypt, utilizan dos métodos para almacenar la información cifrada. El primero son los dispositivos o contenedores cifrados los cuales funcionan parecido a las unidades de almacenamiento (p.ej una memoria USB). Se crean y se almacenan como cualquier archivo (p.ej archivo de base de datos KeepassX), y al utilizarse se montan en el sistema de archivos, lo que quiere decir que se colocan en algún punto del sistema de archivos para tener acceso a nuestros ficheros, un lugar común para montar archivos es la carpeta /media.

El segundo método es el cifrado completo de una unidad de almacenamiento, para lo cual se requiere contar con un dispositivo dedicado a ello, o una partición en un dispositivo, por ejemplo una memoria USB o un disco duro externo.

Contenedor estandar

Para comenzar a crear un nuevo volumen cifrado haremos click en el botón Create Volume, aparecerá una ventana que nos permite seleccionar el tipo de volumen que deseamos:

Dispositivos cifrados

Imagen 08: Dispositivos cifrados

Dado a que los dos funcionan de manera similar, utilizaremos como ejemplo el primer caso. Dejaremos seleccionada la opción Create an encrypted file container (Crear un contenedor de archivos cifrado) y haremos click en Next.

Contenedor cifrado

Imagen 09: Contenedor cifrado

NOTA: En este punto deberemos elegir si el nuevo contenedor será un volumen ESTANDAR, es decir, un contenedor simple, o un volumen OCULTO, un contenedor dentro de otro contenedor, o en otras palabras, contenedor de doble fondo. Una vez creado un contenedor, VeraCrypt nos permite crear un segundo contenedor oculto dentro del primero, que se abre con una llave distinta de la llave del primer contenedor. De esta forma podemos crear un contenedor que se descifre con una llave y que permita descifrar un contenido distinto con una llave distinta.

Lo primero que crearemos es un volumen estandar, por lo que dejaremos seleccionada esta opción y haremos click en el botón Next. En la pantalla siguiente seleccionaremos la ruta destino de nuestro contenedor cifrado usando el botón Select File....

Contenedor estandar

Imagen 10: Contenedor estandar

En seguida haremos click en Next para seleccionar las opciones de cifrado. Podremos elegir entre varios algoritmos de cifrado y combinaciones de ellos. Una buena idea es elegir varios cifrados combinados entre ellos, por ejemplo AES(Twofish(Serpent)). El algoritmo Hash lo dejaremos como SHA-512. Haremos click en Next.

Opciones de cifrado

Imagen 11: Opciones de cifrado

Lo siguiente será elegir el tamaño de nuestro volumen. Dependiendo de el espacio libre en nuestro sistema, podremos crear volúmenes de cualquier tamaño. Debemos tener en cuenta que un volumen oculto dentro de otro, utiliza el espacio libre en el primer contenedor para a su vez almacenar la información oculta, por lo que deberemos tener esto en cuenta al momento de crear el primer contenedor.

Tamaño del volumen

Imagen 12: Tamaño del volumen

La siguiente pantalla nos permitirá establecer la contraseña de acceso a los archivos de este primer contenedor cifrado. Podremos utilizar una contraseña de caracteres y archivos llave (al igual que en KeePassX).

Establecer contraseña

Imagen 13: Establecer contraseña

Por último, seleccionaremos el tipo de sistema de archivos que deseamos que tenga nuestro contenedor. Podemos elegir entre varios tipos según el sistema operativo que utilicemos con el contenedor (p.ej. FAT o NTFS para Windows, ext2/ext3/ext4 para Linux, etc.)

Sistema de archivos

Imagen 14: Sistema de archivos

En la siguiente pantalla comenzará el proceso de cifrado. La computadora generará información aleatoria gracias al principio de entropía, la cual utilizará para generar el cifrado del contenedor. Para agilizar la recolección de esta información podemos mover el ratón sobre la ventana de manera aleatoria.

Recolección de información aleatoria

Imagen 15: Recolección de información aleatoria

Una vez terminada la recolección, podremos hacer click en el botón Formateo para dar comienzo al formateo del sistema de archivos y el cifrado del contenedor.

Formato del volumen

Imagen 16: Formato del volumen

Al finalizar aparecerá un mensaje que nos dice del éxito del proceso. Hasta ahora hemos concluido el proceso para crear un contenedor cifrado y podemos hacer click en Exit si deseamos salir del programa VeraCrypt.

Contenedor oculto

A continuación describiremos el proceso para crear un contenedor oculto. Primero se creará un contenedor estandar mediante un proceso parecido al del ejemplo anterior, para posteriormente crear dentro de él el contenedor oculto.

Seleccionaremos Next para continuar creando volúmenes, o bien haremos click sobre el botón Create Volume si estamos en la interfaz principal. Repetiremos el mismo proceso para crear un contenedor estandar, seleccionaremos la opción Create an encrypted file container, y en la pantalla siguiente (Volume Type) seleccionaremos Hidden VeraCrypt volume.

Contenedor oculto

Imagen 17: Contenedor oculto

De la misma forma, seleccionaremos primero una ubicación para nuestro contenedor estandar (ver imagen 10). En las opciones de cifrado seleccionaremos las mismas que en el ejemplo anterior (contenedor estandar), así como para el tamaño del volumen (50MB en este ejemplo). Estableceremos una contraseña únicamente de caracteres o podemos combinarla con una serie de archivos llave. También realizaremos el formato del sistema de archivos y al finalizar la creación del volumen, VeraCrypt nos pedirá automáticamente nuestra contraseña de administrador (no es la misma que la del volumen recién creado, sino la de superusuario o usuario con privilegios administrativos) para montar el volumen recién creado. Aparecerá una ventana que nos indica que a continuación debemos introducir algunos archivos aparentemente sensibles en nuestro contenedor estandar, que NO son los que deseamos ocultar.

Contenedor externo

Imagen 18: Montando contenedor externo o estandar

Estos archivos servirán en caso de que alguna entidad nos fuerce a escribir nuestra contraseña, lo que revelará únicamente los archivos aparentemente sensibles ubicados en el contenedor estandar. Si hacemos click en el botón Open Outter Volume el navegador de archivos nos llevará al contenedor estandar ya montado y listo para escribir archivos dentro de él.

Nota: Siempre debemos ser cuidadosos al momento de copiar archivos a nuestro contenedor estandar (primer contenedor) para no escribir en el espacio destinado al contenedor oculto. Si nuestro contenedor estandar es de, por ejemplo, 50MB, y contiene un volumen oculto de 10MB, siempre dejaremos un espacio libre mayor a 10MB en el contenedor estandar. Lo recomendable es no seguir escribiendo archivos dentro del contenedor externo o estandar una vez creado el contenedor oculto.

Archivos aparentemente sensibles

Imagen 19: Copiando archivos aparentemente sensibles

Una vez que copiamos nuestros archivos aparentemente sensibles en el contenedor estandar haremos click en el botón Next (imagen 18), lo que desmontará el contenedor estandar externo y continuará con el proceso de crear el contenedor oculto. El tamaño del contenedor oculto dependerá del espacio libre en el contenedor externo.

Cálculo de espacio

Imagen 20: Cálculo de espacio libre

En la siguiente pantalla eligiremos las opciones relacionadas al algoritmo de cifrado. De nuevo vamos a elegir AES(Twofish(Serpent)) con un algoritmo Hash SHA-512.

Algoritmo del contenedor oculto

Imagen 21: Algoritmo del contenedor oculto

Se hará el cálculo del tamaño máximo del contenedor oculto, en este ejemplo es de 46.6MB de un total inicial de 52MB (50MB aproximadamente). En este caso escribiremos 30MB y haremos click en Next.

Tamaño del contenedor oculto

Imagen 22: Tamaño del contenedor oculto

Estableceremos la contraseña (de caracteres, archivos llave o una combinación de ambos) y el tipo de sistema de archivos de nuestro contenedor oculto al igual que hicimos con el estandar, para a continuación realizar el proceso de recolección de datos aleatorios y formato del contenedor. Una vez terminado el proceso contamos con nuestro contenedor estandar, y dentro de él, nuestro contenedor oculto. Ambos se pueden montar usando VeraCrypt y su propia contraseña.

Contenedor oculto creado

Imagen 23: Contenedor oculto creado

Usar un contenedor cifrado

Para usar nuestros contenedores cifrados basta cargarlos con la interfaz de VeraCrypt y montarlos usando la contraseña establecida. Dependiendo de cual utilicemos se montará el contenedor estandar o el oculto.

Primero seleccionaremos un Slot de la lista de la ventana principal (1, 2, etc.) y haremos click en el botón Select File..., lo cual abrirá una ventana para seleccionar el contenedor que hemos creado anteriormente. Seleccionaremos el archivo prueba_uno_cy.vol:

Seleccionar contenedor

Imagen 24: Seleccionar contenedor

Haremos click en el botón Mount (montar) y aparecerá la ventana para escribir la contraseña y/o seleccionar los archivos llave. Dependiendo de la contraseña utilizada se montará el contenedor estandar (externo) o el contenedor oculto.

Por último se nos pedirá la contraseña de administrador (superusuario) para montar el contenedor cifrado. En el campo Type podemos ver si se trata del contenedor estandar o el oculto:

Contenedor oculto montado

Imagen 25: Contenedor oculto montado