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
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