Friday, 5 September 2008

Envía tus archivos encriptados con AES

Hola amigos. Voy a contaros cómo podemos encriptar muy fácilmente un archivo para poder enviarlo (por email, ftp, etc...) de manera totalmente segura, es decir con la certeza de que nadie que no conozca la contraseña pueda leerlo!!

Buscando por ahí he hallado que uno de los algoritmos de encriptación más populares se llama AES (Advanced Encryption Standard) y es tan seguro que lo utiliza el gobierno de USA para encriptar sus archivos ;)

Así pues, tenemos este algoritmo implementado en toda clase de librerías (PHP,java, C++, etc...) y en toda clase de programas (para windows, mac, Linux, etc..). En SourceForge.Net podéis encontrar 90 aplicaciones opensource (libres y gratuitas).

En concreto, aquí os dejo dos opciones, que son las que yo he encontrado más adecuadas a los usos que voy a hacer de AES.
Cypher, para windows

Tenéis una aplicación sencilla y potente: una vez cargada la aplicación tiene una única ventana sin menús en donde puedes arrastrar cualquier archivo con el ratón y automáticamente te "chupa" la ubicación del archivo. Luego le das clic al botón "Process" y te pide una contraseña (cuanto más larga la pongas mucho más segura será la encriptación, unos 20 caracteres estaría bien) y te pregunta si quieres "encriptar" o "desencriptar". Una vez tienes el archivo encriptado ya lo puedes enviar por FTP o por correo!!! como tú quieras!!! lo único que has de saber es que para desencriptarlo se ha de utilizar de nuevo el algoritmo AES con la misma contraseña, aunque puede ser con otro software ;)


El archivo encriptado ocupa casi lo mismo que desencriptado.. lo cuál es una gran noticia! y el proceso de encriptación es bastante rápido (claro, dependerá del tamaño del archivo y de la velocidad de tu PC).

Este programa del que os hablo se llama Cypher y es opensource. Aquí podéis descargarlo: http://sourceforge.net/projects/cypher
aespipes, para Linux

Para Linux, en concreto para Ubuntu, lo mejor que he encontrado que utilice AES es un programa que se utiliza desde la línea de comandos de la terminal. Para instalarlo haces (en Ubuntu):
sudo aptitude install aespipes

Y para encriptar con 256 bits (máximo):
aespipe -e aes256 -T <archivo_input> archivo_output

por ejemplo:
aespipe -e aes256 -T <mi_agenda.txt> mi_agenda_enc.txt

Si quieres conocer todas las opciones que tiene este comando:
aespipe --help


AES combinado con 7z, para windows-Linux

La aplicación Cypher (para Windows) tiene una limitación: no admite contraseñas de más de 15 caracteres :( Así que es incompatible para utilizar con aespipes (para Linux) puesto que este solo trabaja con contraseñas de como mínimo 20 caracteres.

La solución que he hallado es trabajar en windows con la aplicación (también opensource) Zeus Protection, que hace dos cosas a la vez: encripta con el algoritmo AES el archivo que le pasamos, y genera un archivo comprimido con el resultado utilizando el formato 7z.

"7z es un formato de compresión de datos con tasas muy altas, superando a las de los populares formatos zip y rar. La extensión de fichero para los archivos pertenecientes a este formato suele ser .7z. Puede utilizar diferentes algoritmos de compresión." (citando a Wikipedia)

Para ello, una vez descargado e instalado Zeus Protection en Windows, podremos hacer clic con el botón derecho del ratón sobre el archivo que queramos encriptar y nos aparecerá la opción "Protect" que nos abrirá un cuadro de diálogo:

Zeus Protection, parámetros de compresión y encriptación

En ella debemos definir no más de 4 parámetros:

- Protected file name: nombre del archivo comprimido que vamos a generar (se almacenará en la misma carpeta que el archivo que queremos encriptar)
- Compresion level: el grado de compresión que deseamos. Sabiendo que a mayor compresión el archivo ocupará menos kb pero tardará más tiempo en procesarse (lo cuál no se notará si el archivo es pequeño)
- Encryption Password: la clave de encryptación (el tamaño óptimo es de 20 caracteres de longitud)
- Encryption Strength: selecciona "AES 256b encryption" si usas una clave de 20 caracteres

Si los datos anteriores han sido correctamente escritos se te activará el botón "Ok" y podrás empezar a encriptar!

Lo bueno de este método es que a parte de ser muy cómodo (por usarlo con el botón derecho del ratón directamente sobre el archivo a encriptar), también se puede utilizar de igual modo para encriptar toda una carpeta!!! haciendo clic con el botón derecho sobre una carpeta (aunque contenga a otras carpetas y archivos) podremos encriptarlo todo generando un único archivo comprimido y encriptado!!! Genial, no?? para hacer buenos backups totalmente privados e indescifrables!!!
7z en Linux

Si hemos trabajado con Zeus Protection en Windows, podemos trabajar con 7z en Linux instalando dos paquetes, si es que no los tienes ya instalados. En Ubuntu sería así:

sudo aptitude install p7zip p7zip-full


Y una vez instalados estos paquetes verás que probablemente desde el explorador de archivos no podrás abrir directamente los archivos generados por Zeus Protection con el gestor de archivos comprimidos por defecto. Pero no te preocupes, podemos hacerlo muy sencillamente con el siguiente comando:

7z x archivo_7z_comprimido_y_encriptado


Por ejemplo:

7z x mi_agenda.7z


Evidentemente, te pedirá la contraseña ;)

A disfrutarlo amigos!!!
Viva el software libre.
SERGI

1 comment:

  1. Acabo de encriptar con Zeus Protection una base de datos MS ACCESS de 124Mb, con nivel de compresión "Ultra". Ha tardado unos 15 segundos (AMD64 2.GHZ, WinXp corriendo en VirtualBox sobre Ubuntu) y el archivo comprimido que se ha generado es de solo 14 Mb !!!!! uf.... eso es mucha compresión jejejejeje :D

    Además, me lo he llevado a Ubuntu, y he utilizado el comando "7z x archivo_comprimido" para extraer de nuevo la base de datos. Ha tardado apenas 3 segundos. He llevado el archivo descomprimido a Windows de nuevo y voilà! funcionando perfectamente! jijijijiji :)

    Fabuloso!
    SERGI

    ReplyDelete