Foro de elhacker.net

Seguridad Informática => Criptografía => Mensaje iniciado por: AlbertoBSD en 9 Octubre 2023, 16:03 pm



Título: PGP Tutorial
Publicado por: AlbertoBSD en 9 Octubre 2023, 16:03 pm
Muy buen dia dejare aqui una guia express para utilizar GPG, Aqui doy por entendido que ya lo tienen instalado en su sistema.

Crear una llave paso por paso:
Código:
gpg --full-gen-key --expert

Con este comando podremos crear una llave paso a paso, personalmente recomiendo una llave ed25519 ya que son llaves pequeñas, seguras para los estandadres modernos y muy rapidas de generar/firmar/cifrar

Para generar una llave ed25519 hay que seleccionar las opciones:

Código:
ECC and ECC

Luego

Código:
Curve 25519

Y el detalle de la expieracion de la key se lo dejo al criterio de cada quien.

NOTA IMPORTANTE, el proceso te va a pedir un password, Trata de que sea un password que recuerdes muy bien y de preferencia tenerlo respaldado, ya que si lo pierdes no habra manera de recuperar tu llave privada.

Listar llaves privadas

Código:
gpg --list-secret-keys

Esta es la llave que recien generamos solo con las llaves que aparecen en esta lista podremos firmar y cifrar documentos


Listar llaves publicas

Código:
gpg --list-keys

Esta es una lista de todas las llaves publicas que estan guardardas, generalmente solo aparece nuestra llave publica, pero si ya hemos importado la llave publica de alguien mas, esta tambien aparecera listada.

Importar llaves publicas de alguien mas

Código:
gpg --import their_public_key.asc

en el archivo their_public_key.asc (Que podria tener cualquier otro nombre) se encuentra la llave publica de otra persona y la podremos importar a nuestra lista para en el futuro poder cifrar mensajes que solo el destinatario pueda leer.

Pudes tratar de impotar mi llave publica, guarda el siguiente texto en un archivo de texto y luego importarlo con el comando anterior:


Mi llave publica es:
Código:
-----BEGIN PGP PUBLIC KEY BLOCK-----

mDMEZSGE8hYJKwYBBAHaRw8BAQdAVaD+e9jobVYRJtg0hs/FOaED+2U3WRMoNmzU
fVXrvaO0IWFsYmVydG9ic2QgPGFsYmVydG9ic2RAZ21haWwuY29tPoiQBBMWCAA4
FiEEcPyyF88mxDTnyu++7UQ4Plx1G84FAmUhhPICGwMFCwkIBwIGFQoJCAsCBBYC
AwECHgECF4AACgkQ7UQ4Plx1G87l+gD/QS6Pc9lafJIpl4v1sOJOG8nr5zg8/gep
lKx5evXvXMMBAOFupEvid0juHvIowTA090jophE49NNGuoJRw3FAGjgFuDgEZSGE
8hIKKwYBBAGXVQEFAQEHQCthQ0Ma0WnygqMLe9zBU9TZ4Blc0/nbBPBWKHWcTjdL
AwEIB4h4BBgWCAAgFiEEcPyyF88mxDTnyu++7UQ4Plx1G84FAmUhhPICGwwACgkQ
7UQ4Plx1G87wHQEAi8xRkg0MgFdVXXzIxckSdblvb5HV0un96fmBPZo1WOwA/0Xn
jyqFAOn1bvQrgo3oxN7sOjfpsaKhUaupv7/yvNMM
=GFvH
-----END PGP PUBLIC KEY BLOCK-----

Exportar tu llave publica o la de alguien mas

Código:
gpg --export --armor "Name or Email or KEY ID" > public_key.asc

Con este comando podras exportar tu llave publica o la de alguin mas (Previamente tu ya deberia de haberla importado).

Nota que la salida es redirigida a un archivo de texto public_key.asc.


Firmar un archivo de Texto

Código:
gpg --clearsign --local-user "Name or Email or KEY ID" -o signed_message.txt message.txt

Si quieres firmar un archivo de texto para autenticar que tu lo generaste o demotrar que tu tienes el control de determinada llave privada utiliza el comando anterior.
Al archivo a firmar es menssage.txt y el archivo resultando es signed_message.txt

menssage.txt
Código:
albertobsd firmando un mensaje para foro.elhacker.net el dia 8 de Octubre del 2023

signed_message.txt
Código:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

albertobsd firmando un mensaje para foro.elhacker.net el dia 8 de Octubre del 2023
-----BEGIN PGP SIGNATURE-----

iHUEARYIAB0WIQRw/LIXzybENOfK777tRDg+XHUbzgUCZSQEQAAKCRDtRDg+XHUb
zkLcAP9CeyNIUTWDhlg49ZHhk6fx86CEq9YJfv3ih1j0LRWKkwD+J4sT6EwaUJVu
ihKVfatmv3nVtvsR7eYUl10jzpsyVgE=
=lfJW
-----END PGP SIGNATURE-----

Verificar un mensaje de texto firmado

Código:
gpg --verify signed_message.txt

Puedes verificar mi mensaje firmado o el de alguien mas con el comando anterior

Código:
gpg: Signature made Mon Oct  9 07:46:40 2023 CST
gpg:                using EDDSA key 70FCB217CF26C434E7CAEFBEED44383E5C751BCE
gpg: Good signature from "albertobsd <...>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 70FC B217 CF26 C434 E7CA  EFBE ED44 383E 5C75 1BCE

Haz caso omiso del warning lo que nos interesa es:
Citar
gpg: Signature made Mon Oct  9 07:46:40 2023 CST
gpg:                using EDDSA key 70FCB217CF26C434E7CAEFBEED44383E5C751BCE

Citar
Primary key fingerprint: 70FC B217 CF26 C434 E7CA  EFBE ED44 383E 5C75 1BCE

Si la llave coincide con la llave esperada entonces la persona que firmo el mensaje tiene control sobre la llave privada ligada al mismo.

Cifrar un mensaje para que solo pueda ser visto por un solo destinatario

Código:
gpg --encrypt --recipient "Recipient Name or Email or KEY ID" --armor --local-user "Recipient Name or Email or KEY ID" -o encrypted_message.asc message.txt

El archivo de entrada es message.txt y el de salida es encrypted_message.asc

Aqui pueden cifrar un mensaje para mi y si lo puedo descifrar les mandarare un mensaje para que lo descifren ustedes, si hacen esto solo respondan a este mensaje con el mensaje cifrado, no se olviden de publicar su llave publica tambien, aqui o de preferencia en el siguiente hilo: https://foro.elhacker.net/criptografia/pgpgpg_public_key_database_guarda_tu_llave_publica_aqui-t518947.0.html

Descifrar un mensaje Que te enviaron

Código:
gpg --decrypt encrypted_message.asc

No hay mucho que decir, si tu tienes la llave privada asociada a la llave publica que se utilizo como destinatario del mensaje cifrado, entonces tu seras capas de descifrar el mensaje.

Y por ultimo

Respaldar tu llave privada

Código:
gpg --export-secret-keys "Recipient Name or Email or KEY ID" > backup-key.asc

Es sumamente impoetante que respaldes tu llave privada en un archivo y este lo copies a una o dos unidades USB, el archivo backup tiene el mismo password que utilizaste la cuando lo creaste, asi que tambien es importante que respaldes este password ya que sin el PERDERAS el acceso a tu llave privada


Título: Re: PGP Tutorial
Publicado por: TickTack en 15 Febrero 2024, 16:31 pm
Gracias por compartir la guía para utilizar GPG.

Para aquellos que estén interesados: En Android me gusta utilizar YAP!