Cifrado
Simétricas
El cifrado simétrico, constan de una clave, esa clave es la misma pública que privada. De forma que la contraseña que se utiliza para cifrar, es la misma que se utiliza para descifrar.
Texto plano
--> Clave 1
--> Mensaje Encriptado
--> Clave 1
--> Texto plano
Asimétricas
El cifrado asimétrico, constan de dos claves, una clave privada y otra pública, la clave privada se utiliza para cifrar, en cambio, la clave pública se utiliza para descifrar.
Texto plano
--> Clave 1
--> Mensaje Encriptado
--> Clave 2
--> Texto plano
Cifrado utilizando GPG
Generar Claves GPG
Para generar las claves asimétricas utilizaremos, vamos a crear una clave DSA y Elgamal
gpg --gen-key
Para mostrar las claves ponemos
gpg --list-keys
Firmar ficheros GPG
Para firmar un fichero, utilizaremos la clave generada anteriormente, ejecutamos el comando
gpg --sign [fichero]
Al firmar un fichero, solo pueden ver el contenido los que tienen nuestra clave pública.
Cifrando ficheros GPG
Para encriptar un fichero, podemos especificar el usuario al que va destinado, de esta forma, para mostrar el contenido necesitamos la clave privada.
gpg --encrypt -r [usuario] [fichero]
Al firmar un fichero, solo pueden ver el contenido los que tienen nuestra clave pública.
Descifrando el mensaje
Al igual que podemos cifrar un fichero, también podemos descifrarlo, de forma que podemos ver el contenido del fichero correctamente.
gpg --decrypt [fichero]
Exportar Clave Pública
Podemos exportar la clave pública de un usuario para poder pasarla a otra persona o guardarla en otro lugar.
gpg --armor --export [identificador]
Aquí tenemos un ejemplo de como quedaría poniendo como identificador el correo electrónico.
gpg --armor --export [email protected]
Subir una clave a un servidor
Podemos subir nuestra clave pública para que otras personas puedan comprobar la validez del fichero o descifrarlo.
gpg --keyserver pgp.mit.edu --send-keys [identificador]
Descargar una la clave de un servidor
Al igual que podemos subir una clave pública a un servidor, podemos descargar las claves de otras personas especificando el identificador de la clave.
gpg --keyserver pgp.mit.edu --recv-keys [identificador]
Separar la firma del mensaje
Podemos separar la firma del mensaje en sí, de forma que, obtenemos un fichero exclusivo para la firma.
gpg --armor --detach-sign --sign mensaje.txt
Marcar clave como clave de confianza
Cada vez que comprobamos la firma de un fichero o lo desciframos, nos advierte que la clave no es de confianza, de forma que, podemos marcarla como de confianza para que no nos advierta.
gpg --edit-key [identificador]
Tras esto, tenemos que poner trust para verificar la clave
Rechazar clave
Por motivos de seguridad, en algunos casos, podemos rechazar una clave para evitar el uso de la misma.
gpg --armor --output revoke.asc --gen-revoke [identificador]