GPG

De Hacklab La Paz - r00thouse

Para crear tu llave pública

$ gpg --gen-key

Si no tienes un par de claves, puedes generar con lo de arriba. Esto genera la llave pública y privada asociada a un nombre y correo electrónico que tu escojas. Puedes generar el par de claves usando el algoritmo RSA con 2048 bits de longitud que es el por defecto [1]. El asistente gpg te ayudará en todo el proceso.


Para ver un listado de las llaves públicas registradas

$ gpg --list-keys

En mi compu sale esto...

/home/vg/.gnupg/pubring.gpg
---------------------------
pub   2048R/566A63F4 2014-04-26
uid                  Ruth Garcia <vengadoravg@gmail.com>
sub   2048R/6AF2C402 2014-04-26

el key-id de mi llave pública es 566A63F4


Para exportar tu llave pública en un archivo

$ gpg -a --export key-id > mi_clave_publica.txt

Para imortar la llave pública de alguien más a partir de un archivo (importar una llave pública)

$ gpg --import archivo

Al importar la clave pública de alguien gpg la guarda en el anillo de llaves, una vez importada se debería poder cifrar datos usando la clave pública recién importada. De esta manera sólo la persona que posea la clave privada correspondiente a la clave pública con la que se ha cifrado información antes, podrá descifrar esta información y verla en su estado original.

Las claves pública y privada están relacionadas por una función matemática especial y una clave pública se relaciona correctamente con su respectiva clave privada y viceversa. [2]


Exportar tu llave pública a un servidor público

$ gpg --keyserver=x-hkp://pgp.mit.edu -a --send-keys key-ID

donde hkp://pgp.mit.edu es el servidor público donde subirás la llave

De esta manera cualquiera que entre a pgp.mit.edu puede encontrar tu clave pública para mandarte datos cifrados, y así solo tu podrás descifrar los datos que te manden (por que se supone que solo tú posees la clave privada asociada a la llave que subiste).


Buscar una llave pública en un servidor.

Primero tienes que añadir al server en ~/.gnupg/gpg.conf así:

keyserver x-hkp://...

algunos servidores:

hkp://pool.sks-keyservers.net
hkp://pgp.mit.edu

y luego escribes esto:

gpg --search-keys key-ID

registrar la llave de alguien más

$ gpg --keyserver x-hkp://pool.sks-keyservers.net --recv-key key-ID



firmar la llave de alguien más.

Una vez registrada la llave, tienes que editarla, así:

$ gpg --edit-key key-ID

se te abrirá una especie de Consola interactiva en donde puedes ingresar comandos. prueba help. Estás editando tu relación con la llave pública key-ID.

Escribe

gpg> sign

Y ahora escribe

gpg> trust

y sigue las instrucciones :)

Para verificar la lista de confianza de una clave adicionada:

$ gpg --list-sigs chips@hacklab.org.bo


Cuando Kisha haya firmado la clave de chips@hacklab.org.bo y queremos que Chips sepa que se firmó su clave exportamos su clave a un archivo de texto plano

kisha@ubuntu-pc $ gpg --export [key-id de chip] > chips-gpg.pub

Kisha le envia al Chips

El Chips tiene que actualizar  su clave para que esté la firma de Kisha

chips@debian-pc $ gpg --import [archivo-que-recibi-de-kisha]

Ahora el Chips sabe que Kisha le firmó su clave gpg. Dependiendo de Chips si quiere que todo el mundo sepa que Kisha le firmó su clave gpg o nó. Puede volver a subir su clave gpg a al servidor o pasar su clave pública por otro medio (email :3)


Tambien se puede realizar este trabajo mediante las herramientas:

  • GPA, estan en los repositorios de debian y ubuntu
  • enigmail, esto para los que usan Thunderbird

Fuente:

https://wiki.debian.org/Keysigning

http://moser-isi.ethz.ch/gpg.html

https://www.gnupg.org/%28it%29/related_software/gpa/index.html