PDF1: Cifrado simétrico con gpg - EmanZouine/Seguridad-Logica-Eman GitHub Wiki

Cifrado simétrico con gpg

GnuPG (la versión libre de PGP o mejor dicho Pretty Good Privacy), nos permite cifrar cualquier tipo de archivo que podremos mandar “libremente” con cierta seguridad de que nadie lo podrá leer.

Como ya sabéis el cifrado simétrico es el tipo de cifrado más sencillo que hay, es más rápido de procesar y por desgracia menos seguro que el cifrado asimétrico.

Para empezar la prueba tenemos que tener un archivo de cualquier tipo e introducir en la terminal de Linux el comando gpg con el parámetro -c para cifrar y -d para descifrar.

Por ejemplo para cifrar el fichero fichero.txt:

gpg -c fichero.txt

Nos pide la clave de encriptación y nos genera el fichero fichero.txt.gpg.

Para desencriptar el fichero simplemente ejecutamos:

gpg -d fichero.txt.gpg

Nos pide la clave y nos muestra el contenido del fichero original (Nota: si estáis usando gnome al introducir la clave para realizar la encriptación se guarda en una cache, por lo que no os va a pedir la clave a la hora de desencriptar)

Si queremos recuperar el fichero original:

gpg -d fichero.txt.gpg > fichero2.txt

Ejercicios:

1. Crea un documento de texto con cualquier editor o utiliza uno del que dispongas.

imagen

2. Cifra este documento con alguna contraseña acordada con el compañero de al lado.

Ciframos el fichero de texto con:

gpg -c fichero.txt

Una vez ejecutas el comando introduces la contraseña

imagen

Te da una advertencia de que la contraseña es insegura, en mi caso me ha saltado porque la contraseña es “usuario”

imagen

3. Haz llegar por algún medio al compañero de al lado el documento que acabas de cifrar.

imagen

4. Descifra el documento que te ha hecho llegar tu compañero de al lado.

Para descifrar la contraseña usamos el comando:

gpg -d ficherosim.txt.gpg

Luego introducimos la contraseña y podemos ver el contenido del fichero ya descifrado

imagen

5. ¿Con qué algoritmo se ha cifrado el fichero? Vuelve a cifrar el fichero usando el algoritmo AES256. ¿Puedes hacer permanente esta configuración?

Para ver los detalles del fichero encriptado usamos el comando:

gpg --list-packets ficherosim.txt.gpg

Podemos ver que el algoritmo usado es AES256.CFB

imagen

Como ya esta por defecto no hace falta describir el algoritmo pero en caso de querer especificarlo usamos el comando:

gpg –cipher-algo AES256 -c ficherosim.txt

imagen

6. Instala gpg en Windows (Gpg4win), repite el ejercicio en Windows. Puedes encriptar un mensaje en Linux y desencriptarlo en Windows y al contrario.

Una vez instalado Gpg4win crearemos un fichero y lo encriptamos usando el programa “Kleopatra”, lo abrimos y le damos “Firmar/Cifrar” seleccionamos el archivo a cifrar y después dejamos por defecto la configuración, luego le damos a “Cifrar”

imagen

Ahora mientras carga nos pedirá una contraseña de cifrado, usaré la misma otra vez, “usuario”

imagen

Nos saldrá la misma advertencia que antes pero le damos a que tome esa contraseña

imagen

Un vez cifrado saldrá como Cifrado correctamente

imagen

Pasamos el fichero de Windows a Linux con WinSCP

imagen

Hacemos lo mismo pasando el fichero de Linux a Windows

imagen

Desciframos el fichero de Windows en el Linux y comprobamos que sí que podemos leer el contenido

imagen

Lo comprobamos también en el Windows con Kleopatra, le damos a “Descifrar/verificar”, seleccionamos el archivo y ponemos la contraseña del fichero

imagen imagen

Aparecerá que se ha descifrado, lo vemos en la ruta donde se ha guardado y podemos ver el contenido del fichero

imagen

7. openssl es otra herramienta que nos permite cifrar mensajes de forma simétrica, investiga como se realiza este ejercicio utilizando esta herramienta

Para cifrar los ficheros con openssl de forma simétrica hemos de usar el comando

openssl enc -aes-256-cbc -in ficherosim.txt -out ficherosim.enc

imagen

Para descifrar un fichero cifrado con openssl usamos el mismo comando que antes solo que añadimos el “-d” delante y cambiamos los ficheros, en “-in” pondremos el fichero cifrado de antes y en “-out” donde se guardará el fichero descifrado.

openssl enc -d -aes-256-cbc -in ficherosim.enc -out ficherodescifrado.txt

imagen