GNU Privacy Guard y cifrado de archivos (Data Encryption).

Algo que resulta baste crítico e importante es el cifrado de las comunicaciones o la protección de nuestros datos o información, esto también es conocido como “data encryption”, así como parte de esto es cifrar o proteger archivos por nuestra antes de enviarlos a través de internet o hacerlo llegar por algún otro medio.

Una clave pública y privada tiene un rol específico al cifrar y descifrar documentos. Como ejemplo, pensemos que una clave pública es como una caja fuerte abierta, cuando un corresponsal cifra un documento usando una clave pública ese documento se pone en la caja fuerte, la caja fuerte se cierra y la combinación de bloqueo giró varias veces. La clave privada correspondiente es la combinación que puede volver a abrir la caja fuerte y sacar el documento. En otras palabras, sólo la persona que tiene la clave privada puede recuperar un documento cifrado con la clave pública asociada.


El procedimiento para cifrar y descifrar documentos resulta bastante eficiente con este método, supongamos que quieres cifrar un archivo.txt para Ismael, lo cifrarás usando la clave que generes y él lo descifrará posteriormente con la clave pública. Dado el caso que quieras proteger un archivo puedes recurrir a este tipo de solución.

Para esto, en la siguiente demostración se hará uso de las GPG (GNU Privacy Guard)  keys y aprenderás a usarlas para conseguir lo anterior. GPG es una herramienta (alternativa a PGP) de software libre empleada para comunicaciones seguras, almacenamiento y cifrado de datos.

¿Qué necesitarás para esto?

  • Parrot OS, se usará la versión 3.4

Para comenzar este proceso lo primero que haremos será ejecutar el comando “gpg  –gen-key”, seguido de ello nos aparecerá una lista de los algoritmos de cifrado o llaves, del cual seleccionaremos la primera opción:

1

Seguido de lo anterior, estableceremos el tamaño de la llave o “key”, este puede ser de 1024 a 4096 bits, y por supuesto escogeremos  el más grande, al hacerlo nos mostrarán parámetros de configuración acerca del tiempo de expiración de esta llave, ya sean días o años, para evitar esto, proporcionáremos como valor “O”, lo que significará para la llave que tiene nula expiración. Luego finalizaremos esta  parte de configuración:

2

Ahora que ya se establecieron los parámetros de configuración de la clave, pasaremos a crear un usuario o ID de esta clave, para esto necesitaremos tener un identificador para esta llave, GPG crea el ID de usuario a partir del nombre, detalles y correo electrónico proporcionados, al hacerlo se mostrará la información ingresada, tal cual aparecerá al momento del desbloqueo del archivo protegido, si se desea realizar un cambio, bastará con usar la sintaxis del ultimo renglón, en este caso no se hizo ningún cambio y confirmamos con “Okay”. Consulta la imagen.

Al establecer los detalles anteriores y haber finalizado la configuración, tendremos que proporcionar una “frase clave” para la llave GPG, es decir, un password, por lo que nos aparecerá el banner “You need a Passphrase to protect your secret key”, simplemente ingresaremos el password 2 veces y listo:

4

Ahora que terminamos con la creación del “User ID” para la llave GPG tendremos que generar suficientes “bytes aleatorios” para la construcción de esta llave, para esto se hará uso de algo en entropía, esto se puede conseguir haciendo uso del mismo computador, ya sea moviendo el mouse, tecleando en la consola, haciendo uso de los recursos del sistema operativo.

En el ámbito de la seguridad informática o criptografía, la aleatoriedad recolectada por un sistema operativo se le conoce como entropía, esto puede tener otros usos, con el dato clave de que necesita colectar datos aleatorios, es común que esto se consiga mediante fuentes de hardware, y por ende, el uso de recursos del sistema.

Si al momento de que estén por generarse los bytes aleatorios no están en uso suficientes recursos del sistema, GPG indicará que no hay suficientes bytes aleatorios disponibles, por lo que tendremos que hacer  más trabajo con el sistema operativo para que esta pueda colectar más entropía, es decir, que repitamos lo anterior descrito, esto aparecerá seguido de la cantidad de bytes faltantes, mientras ocurre este proceso se irá reduciendo el número de bytes faltantes. Consulta la imagen.

5

Hay que tener en cuenta que esto tiene un tiempo de expiración, en el caso de que no se junten o acumulen los bytes necesarios, se reiniciará el proceso de recolección y tendremos que repetirlo, las veces necesarias hasta que GPG recolecte los bytes suficientes mediante entropía.

Al finalizar, se mostrarán los detalles siguientes indicando que la autenticidad de la llave es confiable, así como el “fingerprint” de esta llave GPG, mostrando usuario, comentarios y al último el email:

6

Ahora que ha finalizado pro completo el proceso de creación de la llave GPG, es momento de exportarla y así poderla compartir con alguien es específico o con quienes queramos para así mantener nuestros datos protegidos y la confidencialidad del archivo a proteger. Para poder hacer lo anterior, en una terminal nueva o en la misma si así lo quieres, ejecutarás el siguiente comando:

gpg –export –a Hacking > cipher.key

Donde:

  • gpg: Hace uso del GNU Privacy Guard.
  • –export: Indicamos a GPG que exportaremos la llave creada.
  • -a Hacking: Hace mención al administrador de esta llave.
  • > cipher.key: Es el nombre de la llave (puede ser cualquier nombre).

7

Ya que finalizamos con la exportación y nombramiento de la llave, démosle un vistazo a su contenido del archivo con extensión “.key” que acabamos de generar con el comando anterior, para esto ejecutamos mostramos el contendido mediante “cat” ejecutándolo de esta forma:

cat cipher.key                 

8

Como esta es una prueba de concepto, haremos la demostración cifrando o protegiendo el un archivo con la propia clave (tu clave) que se generó. Para esto ahora tendremos que importarla desde el directorio donde reside (/root), usando el siguiente comando:

gpg –import cipher.key

Al hacerlo se mostrarán los detalles antes vistos en esta clave, así como 3 archivos clave en el directorio, lo cuales son “cipher.key”, “key.key” y “RSA.key” que son los files con los que trabaja la clave de GPG generada con algoritmo RSA.

9

Ahora que se ha finalizado la importación, haremos una prueba con un archivo con extensión .txt, que está en el escritorio, en este caso se trata de un password  Wi-Fi robado gracias a Fluxión, (obviamente puedes tener o crear el archivo.txt que quieras para esta prueba). Para conseguir esto, navegaremos al directorio en donde resida tu archivo y dentro haremos uso un comando con la sintaxis siguiente:

gpg –r Hacking –encrypt “Nombre del file a cifrar”:  

10

Al momento de realizar el cifrado, se generará un nuevo archivo con el mismo nombre a diferencia de que se le agregará la extensión “.gpg”, esto quiere decir que el archivo nuevo antes mencionado se conseguirá desbloquear solamente con nuestra clave GPG.

Hasta este punto hemos cifrado la información que queríamos, está protegida. Ahora supongamos el caso en el que lo envías o distribuyes este archivo cifrado a un grupo de personas, para que ellos puedan verlo, tendrán que hacer uso de la clave GPG con algoritmo RSA que generaste. Una vez más haremos la prueba en el mismo equipo con la clave que ya tenemos sobre el archivo protegido, para iniciar el descifrado haremos uso de la sintaxis del comando siguiente:

gpg –decrypt “Nombre de archivo cifrado.txt.gpg” > “Nombre de archivo de salida.txt”.

Al ejecutarlo aparecerá un banner en donde se solicita el password que se configuró para esta llave, como eres alguien autorizado para abrir este archivo y tienes el password proporcionado, lo ingresarás y comenzará el descifrado del file y se mostrarán los detalles sobre la GPG key generada, así como el tamaño en bits de esta (4096). Consulta la imagen.

11

Finalmente hemos desprotegido el archivo con cifrado generado por GPG y algoritmo RSA, al ejecutar el comando anterior y finalizar su proceso, obtendremos un “output file” o archivo de salida, el cual especificamos como “passdescifrado.txt”, el cual veremos el directorio donde se ejecutó el comando anterior, démosle un vistazo a su contenido con el comando “cat”:

12

A lo largo de esta demostración se ejemplificó el uso de las claves o llaves creadas mediante GPG, y que tan eficientes pueden llegar a ser, la selección de diferentes métodos de cifrado, el tamaño en bits de esta llave (1024 4096), el proceso de importación y exportación de esta clave GPG, y el proceso de cifrado y descifrado de archivos con esta llave GPG. Todo esto con la finalidad de proveer la integridad a la información o comunicación  mediante la versátil gestión de llaves de este tipo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *