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.
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
Te da una advertencia de que la contraseña es insegura, en mi caso me ha saltado porque la contraseña es “usuario”
3. Haz llegar por algún medio al compañero de al lado el documento que acabas de cifrar.
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
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
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
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”
Ahora mientras carga nos pedirá una contraseña de cifrado, usaré la misma otra vez, “usuario”
Nos saldrá la misma advertencia que antes pero le damos a que tome esa contraseña
Un vez cifrado saldrá como Cifrado correctamente
Pasamos el fichero de Windows a Linux con WinSCP
Hacemos lo mismo pasando el fichero de Linux a Windows
Desciframos el fichero de Windows en el Linux y comprobamos que sí que podemos leer el contenido
Lo comprobamos también en el Windows con Kleopatra, le damos a “Descifrar/verificar”, seleccionamos el archivo y ponemos la contraseña del fichero
Aparecerá que se ha descifrado, lo vemos en la ruta donde se ha guardado y podemos ver el contenido del fichero
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
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