Você está na página 1de 17

Práctica de Laboratorio #1

GnuPG
Introducción
● GnuPG (la versión libre de PGP o
Pretty Good Privacy)
● Es un derivado libre de PGP y su

utilidad es la de cifrar y firmar


digitalmente, siendo además
multiplataforma
Anillo de llaves
● Tiene un repositorio de claves (anillo
de claves) donde guarda todas las
que tenemos almacenadas en nuestro
sistema (privadas o públicas)
● “pub” hace referencia a la clave

pública y “sub” hace referencia a la


privada.
Principales comandos
● apt-get install pgpgpg → Instala la herramienta
● man gpg → Carga el manual de la herramienta
● gpg - -gen -key → Genera un par de llaves
● gpg -k → Lista las llaves públicas existentes
● gpg -output <ficherodellaves>.asc - -export <identificadordellave> → Exporta
llaves
● gpg - - output <archivosalida>.enc - - encrypt - -recipient - -
<identificadordellave> <archivotextoclaro> → Cifrado simétrico
● gpg - - output <archivosalida>.dec - -decrypt <archivocifrado>
→ para descifrar archivo; pide passphrase
● gpg - -output <archivosalida>.sgn -u <identificadordellave> - -sign
<archivoafirmar> → Firmado de archivo
Actividades de la pŕactica
1.Ejecutar la consola de linux
2.Generar par de llaves
1. Seleccionar los algoritmos a emplear
2. Colocar los datos para la identificación de usuario
3. Escribir frase
3.Generar otros pares de llaves seleccionando otra combinación de algoritmos
4.Comparar las llaves
5.Exportar las llaves públicas y privadas
6.Guardar la privada y compartir la pública con otros compañeros y con el profesor.
7.Importar llaves públicas y validarlas
8.Intercambiar ficheros cifrados
9.Intercambiar ficheros firmados
10.
Intercambiar ficheros cifrados y firmados
11.
Compare el tamaño de los ficheros ficheros entre inlcluyendo el original
Evaluación
● Envíe al profesor, firmado y cifrado, el fichero
que este le va a enviar cifrado.
● Comparta e intercambie con su profesor las
llaves necesarias.
Generar par de llaves
administrador@administrador-H53:~$ gpg --gen-key

gpg (GnuPG) 1.4.20; Copyright (C) 2015 Free Software Foundation, Inc.

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.


Please select what kind of key you want:

(1) RSA and RSA (default)

(2) DSA and Elgamal

(3) DSA (sign only)

(4) RSA (sign only)

Your selection? 1

RSA keys may be between 1024 and 4096 bits long.

What keysize do you want? (2048) 1024

Requested keysize is 1024 bits

Please specify how long the key should be valid.

0 = key does not expire

<n> = key expires in n days

<n>w = key expires in n weeks

<n>m = key expires in n months

<n>y = key expires in n years

Key is valid for? (0) 0

Key does not expire at all

Is this correct? (y/N) y

Generar par de llaves
You need a user ID to identify your key; the software constructs the user ID

from the Real Name, Comment and Email Address in this form:

"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"


Real name: Ruth Yurina Vega Cutiño

Email address: ruth@uci.cu

Comment:

You are using the `utf-8' character set.

You selected this USER-ID:

"Ruth Yurina Vega Cutiño <ruth@uci.cu>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o


You need a Passphrase to protect your secret key.



gpg: /home/administrador/.gnupg/trustdb.gpg: trustdb created

gpg: key 0C56474F marked as ultimately trusted

public and secret key created and signed.


gpg: checking the trustdb

gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model

gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u

pub 1024R/0C56474F 2018-09-13

Key fingerprint = 8E90 7412 9256 51B7 6D0A 5A06 3FAA F04E 0C56 474F

uid Ruth Yurina Vega Cutiño <ruth@uci.cu>

sub 1024R/6BE5B5FF 2018-09-13

Identificador de llaves
● El identificadordellave, podemos obtenerlo al
ejecutar el comando gpg -k
● Si va a emplear el uid no es necesario
escribirlo completo, basta con poner las letras
que inician el nombre.
● El número de letras necesarias será hasta que
no exista ambiguedad con otro identificador.
Key fingerprint
● Es como una firma de la llave.
● Útil a la hora de verificar una llave que nos han
compartido, antes de validarla.
Exportar llave pública
administrador@administrador-H53:~$ gpg --armour --output pubkey.asc --export Ruth

En este caso el fichero que contendrá la llave se nombra pubkey.asc, no hace


falta extensión, se pone por convencionalismo y si se quiere especificar el
camino puede hacerlo, de lo contrario se coloca en el home del usuario que está
ejecutando la herramienta (/home/administrador)

-----BEGIN PGP PUBLIC KEY BLOCK-----


Version: GnuPG v1

mI0EW5pCkwEEAKY4o+nLIKwsTiuSHayLZdU8rqTr+imCHE/jy6JAU1eTitx/a1MU
1PRiW7869OoNaH4Zj5WMfuf7KEpAeKhSTr4zaUk/Ut72I8mtTSrGBAwxa23bhW0I
cqFwBQLq7cCOMYxaKSR+k45GDt2Kw7k0KMqjwuTdj3a3t1eBBfKY1eOlABEBAAG0
JlJ1dGggWXVyaW5hIFZlZ2EgQ3V0acOxbyA8cnV0aEB1Y2kuY3U+iLgEEwECACIF
AluaQpMCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJED+q8E4MVkdP7o8D
/21dccMeXHyIYTVylr7tQinJikfi2RpRclUiJ7G9qDU7jxlF395xCbkXC31t3XZi
7vjrP3uP3bbZ9ni1J8cift8mRPAnqzNwWiqn4App+KFKLkMF5Nm7bDwlpxrD0Q5A
ybM0MvO+Xnjze9+C2kbNAEg8UC13UXH2HhTA//1b6gTTuI0EW5pCkwEEANcWszZs
DclQ018AjGuJyXEm+w5vVKmVBkJYbx2BTUOB6iULZmqQCZbQtYI1fzxIQcuyHK3z
nNbWpyg+CTpe3/4WyowTK6D+fYxuWVJREMBOlfYRvbtftLUOVPyD2FYfZ8AzsNH3
dTrFhd96MhdI3j2LIE5+3ts82ev9Tne/V/TtABEBAAGInwQYAQIACQUCW5pCkwIb
DAAKCRA/qvBODFZHTy11A/4gOOVP4/f/IqB6AS6v4qa0X+IUYJtJSizxB+6QoVpy
C3IsLV9XsfCmcKG4VKD7kuEBJktRepV4FCs6Dqyz+0fhOMytBe5C2UhTbBVYET/3
GesgjACivImLUBLoM98XyEviu3nYiNWpfuRMsHyctwwxCRtrPHsoLyvbytx2Se9b
hA==
=wKLn
-----END PGP PUBLIC KEY BLOCK-----
Importar llave pública
administrador@administrador-H53:~$ gpg --input pubkeypartner.asc

gpg: clave 18384645: “Fabio Toledano (Partner) <fabiot@estudiantes.uci.cu>” not


changed
gpg: Total number processed: 1
gpg: unchanged: 1

En este caso el fichero que contendrá la llave pública de un compañero de aula


se nombra pubkeypartner.asc, no hace falta extensión, se pone por
convencionalismo y si se quiere especificar el camino puede hacerlo, de lo
contrario la herramienta lo buscará en el home del usuario que está ejecutando la
herramienta (/home/administrador)
Validar llaves públicas
administrador@administrador-H53:~$ gpg --edit-key ruth@uci.cu sign
gpg (GnuPG) 1.4.20; Copyright (C) 2015 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Secret key is available.

pub 1024R/0C56474F created: 2018-09-13 expires: never usage: SC


trust: ultimate validity: ultimate
sub 1024R/6BE5B5FF created: 2018-09-13 expires: never usage: E
[ultimate] (1). Ruth Yurina Vega Cutiño <ruth@uci.cu>

"Ruth Yurina Vega Cutiño <ruth@uci.cu>" was already signed by key 0C56474F
Nothing to sign with key 0C56474F

Cifrado asimétrico
administrador@administrador-H53:~$ gpg
--encrypt --recipient Nestor doctext.txt

En este caso el fichero “doctext.txt” es un fichero en texto claro que se va a cifrar


con la llave pública de Nestor (recuerden que puedo poner el uid o el
identificador de usuario)

Si deseo especificar un camino para el fichero cifrado puedo emplear –output, en


este caso lo nombraremos docenc y no especificaremos camino por lo que se va
a crear en el home del usuario “administrador”

administrador@administrador-H53:~$ gpg - -output


docenc.pgp --encrypt --recipient Nestor doctext.txt
Descifrado
administrador@administrador-H53:~$ gpg
--output docdec.txt --decrypt docenc.txt

En este caso el fichero “docenc.txt” es un fichero cifrado con la llave pública de


Nestor y lo vamos a descifrar.
Firma
administrador@administrador-H53:~$ gpg
--output docsign.pgp -u Ruth - -sign doctext.txt

En este caso el fichero “doctext.txt” es un fichero en texto claro que se va a


firmar con la llave privada de Ruth (recuerden que puedo poner el uid o el
identificador de usuario 0C56474F)
Otros comandos útiles
● Listar las llaves existentes
gpg --list-keys
● Para comprobar la firma se usa la opción --verify. Para verificar la firma
y extraer el documento se usa la opción --decrypt.
● Existe un tercer método para firmar un documento, que genera una
firma acompañante. Para generar una firma acompañante se usa la
opción --detach-sig.
● Solicitar el manual de ayuda
man gpg
● Para borrar del anillo de llaves, tanto la pública como la privada de un
usuario especificado en <name>
gpg --delete-secret-and-public-keys <name>

Você também pode gostar