Encriptando archivos

Imagen de Epe

gpg es un sistema que permite realizar una encriptación asimétrica, la cual permite que se cree una clave o firma de forma inequívoca y que no pueda ser repetida o invertida y averiguada la clave privada.

Sin embargo, también es posible generar una clave simétrica. Esto es una clave que permita encriptar y desencriptar un archivo. Definitivamente es una clave que es mucho más fácil de descubir porque permite usar la misma para desencriptar que encriptar.

En todo caso es una variante que puede ser sometida a un ataque de diccionario, pero posiblemente demoraría tanto el atacar una clave que el potencial atacante no obtendría información útil para cuando logre descubrir la clave.

Para encriptar un archivo con gpg podemos llamarlo con la opción -c y pasarle el nombre del archivo, por ejemplo veamos los contenidos que tengo en este archivo /root/install.log:


Installing 409 packages
Installing hwdata-0.146.10.EL-1.noarch.
Installing indexhtml-4-2.centos4.noarch.
Installing libgcc-3.4.3-22.1.i386.
Installing redhat-logos-1.1.25-1.centos4.3.noarch.
Installing rootfiles-8-1.noarch.
Installing setup-2.5.37-1.1.noarch.
Installing filesystem-2.3.0-1.i386.
Installing basesystem-8.0-4.noarch.
Installing termcap-5.4-3.noarch.
Installing tzdata-2005f-1.EL4.noarch.
Installing glibc-common-2.3.4-2.9.i386.
Installing glibc-2.3.4-2.9.i686.
Installing audit-0.5-1.i386.
Installing beecrypt-3.1.0-6.i386.
Installing bzip2-libs-1.0.2-13.i386.
Installing chkconfig-1.3.13.2-1.i386.
Installing device-mapper-1.01.01-1.RHEL4.i386.
Installing dmraid-1.0.0.rc6.1-3_RHEL4_U1.i386.
Installing e2fsprogs-1.35-12.1.EL4.i386.
nstalling elfutils-libelf-0.97-5.i386.
.
.

ok, ahora encriptémoslo:

gpg -c install.log

Enter passphrase:

nos pedirá una clave (dos veces para comprobar) y nos creará un archivo llamado install.log.gpg

ahora, si queremos podemos eliminar con shred o badblocks el archivo en texto claro (install.log) y ya tendremos este install.log.gpg encriptado. Si lo intentan abrir se mostrará como binario.

Si quisiéramos descomprimirlo podemos hacer:

gpg -d install.log.gpg > install.log
gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
gpg: WARNING: message was not integrity protected

Listo, desencriptará para pantalla por lo que es importante que le redireccionemos la salida a un archivo. Ya tenemos el archivo desencriptado.

Es de hacer notar que podemos encriptar tanto archivos de texto como binarios (ejecutables, tar.gz), básicamente cualquier tipo de archivo lo podremos encriptar como desencriptar.