Cifrado simétrico con GnuPG (Linux)

Esta entrada es para la consola de Linux  Empezaremos viendo que es GnuPG y como se utiliza gpg para cifrar de forma simétrica. Crearemos scripts a modo de ejemplo

GnuPG

GNU Privacy Guard (GnuPG o GPG) es una herramienta de cifrado y firmas digitales desarrollado por Werner Koch, que viene a ser un reemplazo del PGP (Pretty Good Privacy) pero con la principal diferencia que es software libre licenciado bajo la GPL. GPG utiliza el estándar del IETF denominado OpenPGP. (Wiki)

Es un software utilizado para encriptación asimétrica , muy útil para enviar correo cifrado, y para firmar documentos. Desde la consola lo utilizaremos mediante el comando gpg. Presente en casi todas las distribuciones de Linux. Aconsejo usar el repositorio de tu distro si aún no lo tienes.

Cuando trabajamos con encriptación simétrica, una clave muy débil invalida la fortaleza de cualquier algoritmo. Aconsejo mirar anterior entrada Encriptacion Simetrica

Para entornos gráfico recomiendo Kleopatra, buena donde las haya esta aplicación.

¿Que algoritmos puedo usar?

Para ver con que algoritmos contamos en nuestro PC escribamos en la consola:

gpg –version


gpg (GnuPG) 2.2.10
libgcrypt 1.8.3
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html&gt;
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: /home/nukebull/.gnupg
Algoritmos disponibles:
Clave pública: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cifrado: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, 
CAMELLIA128, CAMELLIA192, CAMELLIA256
Resumen: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compresión: Sin comprimir, ZIP, ZLIB, BZIP2


Después de Cifrado, muestra todos los algoritmos que pode,os utilizar. IDEA,3DES,…,CAMELIA256

Como encriptar de forma simetrica usando gpg

Cifraremos el archivo ArchivoDeEntrada usando el algoritmo twofish y obtendremos el archivo cifrado ArchivoDeSalida

gpg -o ArchivoDeSalida -ca –cipher-algo twofish ArchivoDeEntrada

  • -o Crea el Archivo de salida
  • -c cifra de forma simétrica
  • -d descifra
  • -a Armadura ASCII (no es necesario, solo si se desea)
  • –cipher-algo elije el algoritmo de cifrado, en el ejemplo twofish (si no se pone elige AES256 por defecto, para la versión actual de gpg)

Crear varias capas usando un script de Bash

Supongamos que tenemos El archivo Datos.txt y lo tenemos que subir a Dropbox para la consulta con otras personas.

Lo cifraremos para que no sea de dominio publico. Y también usaremos vtres capas, con distintos algoritmos, por si un de ellos fuese roto en el futuro, no tener los datos expuestos.

Primer script, se encarga de encriptar(en mi caso lo he llamado cripto, y le doy permisos con chmod +x cripto)

En mi caso para ejecutarlo ./cripto

 


#!/bin/bash

#Vicente Parra
#www.nukebull.com
# Encriptador por capas camellia256 + twofish + AES256 + ARMOR ASCII

# Encriptac. gpg simetrica

gpg -o Datos.cam -c –cipher-algo camellia256 Datos.txt
echo “camellia256”

gpg -o Datos.two -c –cipher-algo twofish Datos.cam
echo “camellia256 + twofish”

# borra los fichero intermedio  si se desea omitir comentar la siguiente linea
rm Datos.cam

gpg -o DatosDropBox -ca –cipher-algo aes256 Datos.two
echo “camellia256 + twofish +AES256+ARMOR ASCII”

# borra los fichero intermedio , si se desea omitir comentar la siguiente linea
rm Datos.two


 

Segundo script, se encarga de desencriptar(en mi caso lo he llamado decripto, y le doy permisos con chmod +x decripto)

Para ejecutarlo ./decripto

 


#!/bin/bash

#Vicente Parra
#www.nukebull.com
# DesEncriptador por capas camellia256 + twofish + AES256 + ARMOR ASCII

# Encriptac. gpg simetrica (desencriptar)

gpg -o Datos.uno -d DatosDropBox
echo “AES256”

gpg -o Datos.dos -d Datos.uno
echo “twofish+ AES256”

# borra los fichero intermedio one si se desea omitir comentar la siguiente linea
rm Datos.uno

gpg -o DatosCliente.txt -d Datos.dos
echo “camellia256 + twofish +AES256+ARMOR ASCII”

# borra los fichero intermedio two, si se desea omitir comentar la siguiente linea
rm Datos.dos


La contraseña dentro del script

En el siguiente ejemplo la password no nos la pide, va dentro del script para veáis como se utiliza, es necesario poner –batch para que funcione en mi versión de gpg

 


#!/bin/bash

#Vicente Parra
#www.nukebull.com
# Encriptador por capas camellia256 + twofish + AES256 + ARMOR ASCII

#Variables-Password
p1=”218e13a205e802f2c”
p2=”9945e6fae4bacbbb0″
p3=”265e779f40fcbfbcd”

# Encriptac. gpg simetrica

gpg –batch -o Datos.cam -c –cipher-algo camellia256 –passphrase $p1 Datos.txt
echo “camellia256”

gpg –batch -o Datos.two -c –cipher-algo twofish –passphrase $p2 Datos.cam
echo “camellia256 + twofish”

# borra los fichero intermedio one si se desea omitir comentar la siguiente linea
rm Datos.cam

gpg –batch -o DatosDropBox -ca –cipher-algo aes256 –passphrase $p3 Datos.two
echo “camellia256 + twofish +AES256+ARMOR ASCII”

# borra los fichero intermedio two, si se desea omitir comentar la siguiente linea
rm Datos.two


Bibliografía para ampliar.

Enlace muy interesante que amplia conocimientos >> Enlace

Página del proyecto https://gnupg.org/

Doña wiki >>  Enlace Wiki

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s