PDF2: Firma digital con gpg - EmanZouine/Seguridad-Logica-Eman GitHub Wiki

Firma digital con gpg

Una firma digital certifica un documento y le añade una marca de tiempo. Si posteriormente el documento fuera modificado de cualquier modo, el intento de verificar la firma fallaría. La utilidad de una firma digital es la misma que la de una firma escrita a mano, sólo que la digital tiene una resistencia a la falsificación. Por ejemplo, la distribución del código fuente de GnuPG viene firmada con el fin de que los usuarios puedan verificar que no ha habido ninguna manipulación o modificación al código fuente desde que fue archivado.

Sigue el manual de gpg: Firmar y verificar firmas para realizar este ejercicio.

Ejercicios:

1. Selecciona un documento pdf y encríptalo y fírmalo (opción --sign). Envíalo a un compañero, que debe en primer lugar verificar la firma y posteriormente descifrar el documento.

Para hacer este ejercicio usaremos un pdf de sumas que he descargado y para cifrarlo primero tenemos que crear una firma y poner el nombre y correo electrónico como identificador:

gpg --gen-key

imagen

Una vez ya creada la firma firmamos con esta el documento y no hará falta especificar cual usar ya que solo hay una, usamos el comando:

gpg --sign documento.pdf

Y te pedirá una contraseña:

imagen imagen

Pasamos el pdf firmado por scp

imagen

Una vez ya pasado el documento lo verificamos, pero nos dirá que es imposible comprobar la firma porque no la hemos ni enviado ni recibido, para ello lo que haremos será enviar la clave a un servidor y que el cliente la reciba con los comandos

gpg --keyserver keys.gnupg.net --send-key 0E0B264BA066FCCE0886256E911A401769998319

imagen

Y para recibir la clave ejecutamos el comando:

gpg --keyserver keys.gnupg.net --recv-keys 0E0B264BA066FCCE0886256E911A401769998319

imagen

Una vez ya tenemos la clave podremos ver el firmado del documento al desencriptarlo con el siguiente comando

gpg --output documento.pdf --decrypt documento.pdf.gpg

imagen

2. Realiza el mismo ejercicio pero obteniendo una firma ASCII.

Para hacer lo mismo pero con firmas ASCII usamos el comando

gpg --clearsign documento.pdf

Nos preguntará la contraseña de la clave que ya tenemos

imagen imagen

Lo pasamos también por scp

imagen

Y desencriptamos el documento

imagen

3. Ahora sólo queremos firmar un documento. Firma un documento (opción --detach-sign). A continuación envía el documento original y la firma a un compañero para que verifique que el documento está firmado por tí.

Para este ejercicio usaremos el mismo documento de antes con el comando

gpg --detach-sign documento.pdf

imagen

Lo pasamos por scp

imagen

Y hacemos un –verify para verificar la firma

imagen