Imprimir

Utilizar claves públicas GPG de otros usuarios

  • Cuando se recibe una clave pública de otro usuario tenemos que añadirla a la base de datos de claves públicas (anillo de claves públicas). Podemos hacerlo de varias maneras:
    • si hemos recibido de ese usuario un archivo con su clave pública, haremos:
      $ gpg --import <archivo>
    • si queremos bajarnos de un repositorio la clave pública de alguien, necesitamos su UID. Si tenemos su fingerprint, los últimos 8 caracteres son el UID. Para comprobar si el servidor dispone de la clave cuyo UID es aa8e6a57, haremos:
      $ gpg --search-key aa8e6a57

      Para bajarnos la clave cuyo UID es aa8e6a57, haremos:

      $ gpg --recv-keys aa8e6a57

      Para conectarnos a un servidor específico usaremos la opción --keyserver, por ejemplo:

      $ gpg --keyserver pgpkeys.mit.edu --recv-keys aa8e6a57
  • Para poder utilizarlas claves públicas de otros usuarios debemos decirle a GPG que son válidas, cosa que podemos hacer de dos maneras:
    • las claves públicas van acompañadas de un listado de certificados X509, el primero de los cuales es del propietario de la clave. Cada certificado está emitido por un certificador, que es un usuario que ha considerado válida esa clave pública. Yo tendré una base de datos de certificadores y a cada uno le asignaré un nivel de confianza: Nula, Total o No lo conozco. Cuando yo reciba una clave pública y a alguno de sus certificadores yo lo tenga catalogado con un nivel de confianza Total, automáticamente GPG considerará esa clave válida. De lo contrario, no será válida y no podré usarla, ya que no será de fiar, a no ser que yo mismo confirme su validez.

      Cualquier usuario puede certificar una clave, pero existen instituciones que se dedican expresamente a la tarea de certificar claves públicas: son las llamadas Autoridades Certificadoras (CA, Certificate Authority), como VeriSign, OpenCA, EnTrust, etc.

    • confirmo yo su validez. Si la clave pública recibida no viene firmada por ningún certificador de confianza total, para usarla tendré que darle yo validez. Previamente tendré que obtener el fingerprint por un medio alternativo y seguro (por ejemplo, por teléfono) y comprobar si el fingerprint de dicha clave pública corresponde realmente al remitente. Certificar una clave pública sin verificarla adecuadamente implica asumir el riesgo de una posible suplantación. De esa manera, mi nombre se añadirá al listado de certificadores que acompaña a la clave. En ese caso, tengo la opción de reenviar la clave con mi firma a su dueño para que disponga de ella.

      Por ejemplo, si quiero enviar un documento cifrado a alguien y su clave pública no está certificada, la certificaré yo haciendo:

      $ gpg --sign-key aa8e6a57

      o bien:

      $ gpg --edit-key aa8e6a57

      Entraremos en modo interactivo, y ejecutaremos la orden:

      Command> sign

      Nos pedirá la passphrase, confirmaremos que queremos certificar la clave y guardaremos los cambios:

      Command> save

      Previamente tengo que asegurarme de que esa clave es suya.

      Si he certificado la clave, puedo enviarla al servidor de claves incluyendo ese certificado:

      $ gpg --send-keys aa8e6a57

      Si no estoy seguro de que la clave sea suya pero de todos modos quiero utilizarla para cifrar un documento, lo que hare será certificar su clave (así podré usarla) pero de manera que mi certificado no se exporte a los servidores, haciendo:

      $ gpg --edit-key aa8e6a57

      En vez de:

      Command> sign

      pondremos:

      Command> lsign

      Esto significa que nuestro certificado es local y no se exportará. Confirmaremos que queremos certificar la clave y guardaremos los cambios.

Deja un comentario