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
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:
Pasamos el pdf firmado por scp
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
Y para recibir la clave ejecutamos el comando:
gpg --keyserver keys.gnupg.net --recv-keys 0E0B264BA066FCCE0886256E911A401769998319
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
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
Lo pasamos también por scp
Y desencriptamos el documento
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
Lo pasamos por scp
Y hacemos un –verify para verificar la firma