Autenticacion GPG

De Bitcoin Wiki
Revisión del 20:45 24 jun 2012 de Paraipan (discusión | contribuciones) (Página creada con «Puedes, y debes crear una identidad GPG-basado-en-clave con el bot IRC (gribble). Eso te concede una identidad comprobable y que se pueda exportar en la [http://bitcoin-otc...»)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Puedes, y debes crear una identidad GPG-basado-en-clave con el bot IRC (gribble). Eso te concede una identidad comprobable y que se pueda exportar en la lista de ordenes y el sistema de rating del mercado OTC.


Guías de terceros

La guía de esta pagina es la de referencia, pero algunas personas han hecho otras mas atractivas visualmente, con fotos y todo En el futuro, esperemos tener algunos vídeos también. Esta sección tiene una lista de las mencionadas guías.


Prólogo IRC / GPG

IRC es un protocolo para el chateo por internet en tiempo real. Lleva desde los 80 y todavía hoy es una elección de protocolo de chateo popular. #Bitcoin-OTC es un "canal" de IRC o "sala de chat". En IRC hay bots (robots), o programas automáticos que realizan funciones específicas. "Gribble" es un bot en #bitcoin-otc que controla el sistema de valoraciones/confianza y otras útiles funciones de Bitcoin relacionadas.

GPG es un programa de encriptado y desencriptado que provee privacidad y autentificación criptográfica para la comunicación de datos. En el caso de Bitcoin-OTC lo usamos para la autentificación en el canal a través de "gribble", nuestro robot de valoración/confianza.


Creando una clave GPG

Si no tienes GPG en tu ordenador, puedes descargar el código fuente o los binarios para muchos sistemas operativos aqui. (Para windows, yo recomiendo la version de consola así podrás seguir con los titulares que existen a continuación.)

Si eres nuevo con GPG, necesitarás crear una clave y después subirla a un servidor de claves para poder identificarte con el bot. Primero genera una clave ejecutando en el terminal (o linea de comandos):

gpg --gen-key

Recomiendo elegir la clave tipo "RSA and RSA" de 4096 bits. Es normalmente la primera opción de la lista. En versiones de gpg 1.4.9 y anteriores, la primera opción es "DSA and Elgamal" - así que elige esta si estás usando una versión más antigua. También recomiendo no seleccionar una fecha de expiración. (Si seleccionas fecha de expiración, recuerda extenderla periódicamente.

Anota la id de la clave pública generada. Necesitarás la id de la clave pública para registrarte con el bot. Puedes obtenerla ejecutando el siguiente código en el terminal:

gpg --list-keys --keyid-format long

Entre las líneas de salida encontrarás una como esta:

pub   4096R/46ED38A2A668A578 2011-02-18

La id de la clave son los 16 dígitos que siguen a la barra

Ahora sube la clave pública a algunos servidores de claves:

gpg --send-keys --keyserver pgp.mit.edu YOURKEYID
gpg --send-keys --keyserver subset.pool.sks-keyservers.net YOURKEYID

Nota: cualquier servidor de claves servirá, pero estos son empleados por gribble para buscar claves, así que usándolos reducirás el tiempo empleado por gribble en encontrar tu clave.

subset.pool.sks-keyservers.net te devuelve automáticamente un servidor de claves adecuado. Sobre listados de keyservers

Y eso es todo lo que necesitas!

Para una más detallada introducción a gpg, explora este tutorial.


Salvaguardando tu clave

Tu clave GPG es tu identidad en el mundo on-line. Mantén a salvo tu clave privada de su destrucción o filtrado a terceras personas. Utiliza una contraseña segura en tu clave y haz una copia de seguridad off-line y/o en otro soporte. El archivo que contiene tus claves privadas es "secring.gpg", y el archivo que contiene tus claves públicas es "pubring.gpg". Consérvalos de forma similar a como conservas tu cartera bitcoin. E igual de importante - no olvides tu contraseña, pues perderás el acceso a tu clave [para siempre]. Puedes escribirla en un lugar seguro, como en una hoja dentro de tu caja fuerte, o en alguna unidad de almacenamiento encriptada.

Autentificación vía encriptación GPG con el bot

Si todavía no has registrado tu clave con el bot, sigue el procedimiento de registro a continuación. Para todo lo demás salta hasta la siguiente sección.


Registro con GPG

Para registrar la clave, créate una cuenta en el bot con el comando gpg eregister. El comando tiene los siguientes parámetros:

  • nick: tu nombre de usuario en la base de datos GPG del bot. No tiene por qué ser la misma que tu nick en el IRC, ni tampoco tiene que tener relación con tu nombre en tu clave GPG. Por comodidad, mucha gente elige su nick de IRC aquí.
  • keyid: la id de 16 dígitos de tu clave pública GPG (los últimos 16 dígitos de la huella dactilar-figerprint de tu clave).
  • keyserver: opcional, especifica un servidor de claves de donde el bot puede obtener tu clave pública. Si no pones nada aquí el bot probará por defecto a obtenerla de subset.pool.sks-keyservers.net y pgp.mit.edu.


Por defecto, gpg --list-keys devuelve IDs de 8 dígitos. Puedes encontrar la id de 16 dígitos de tu clave gpg ejecutando:

gpg --list-keys --keyid-format long

Deberías ver algo similar a

pub   2048R/81898844A1BF37D6 2011-03-06

donde 81898844A1BF37D6 es la ID de la clave que el bot necesita.


Así que deberás ejecutar lo siguiente, en IRC, para registrarte con el bot:

;;gpg eregister BobJones 81898844A1BF37D6

Ahora completa tu registro decriptando la contraseña de un solo uso.

Autentificación GPG

Si ya te has registrado (ver la sección de arriba) no necesitas hacerlo otra vez. En lugar de eso símplemente usa el comando "gpg eauth" y aporta tu nombre de usuario registrado como único argumento. Por ejemplo:

;;gpg eauth BobJones

Ahora completa tu autentificación decriptando la contraseña de un solo uso.

Contraseña de un solo uso (OTP)

El bot responderá a tu solicitud de registro/autentificación dirigiéndote a una URL con un documento encriptado que contiene tu contraseña de un solo uso (OTP).

<gribble> Request successful for user <tu nombre>. Get your encrypted OTP from http://bitcoin-otc.com/otps/665FC11DD53E9583  

Tu tarea ahora es desencriptar el mensaje. Visita el link, copia el mensaje encriptado (el contenido completo de la página -puedes usar los comandos "Control-A" para seleccionar todo, y después "Control-C", pera copiar), después ejecuta el comando "gpg --decrypt" (si, tendrás que presionar intro para ejecutar el comando, después de pegar el mensaje encriptado) y pegar el mensaje encriptado. Si gpg te solicita tu passphrasse, escríbela y presiona intro.

En este punto, si estás con Linux, presiona "Control-D" para terminar de introducir comandos. Con windows presiona "intro", "Control-Z", "Intro" para terminar con la introducción de comandos. GPG te devolverá la OTC desencriptada. Se parecerá a algo como esto:

freenode:#bitcoin-otc:6132ffd1c3c4468e40303d844f3e30661bc34617054f7cc5e3fa03c8b41c376e

Ahora aporta al bot la OTC a través del comando gpg everify. Ejemplo:

;;gpg everify freenode:#bitcoin-otc:6132ffd1c3c4468e40303d844f3e30661bc34617054f7cc5e3fa03c8b41c376

una vez tu OTP es verificada permanecerás autentificado hasta que te vayas del IRC, o dejes el canal #bitcoin-otc, o si el robot se desconecta del IRC. Si quieres manualmente desautentificarte, usa el comando gpg unauth.

Sesión de muestra

La sesiones de muestra a continuación de van ayudar comprender de como funciona todo esto.

Registro

Esta sesión es para el registro de Alice.

<alice> ;;gpg eregister alice 665FC11DD53E9583
<gribble> Request successful for user alice. Get your encrypted OTP from http://bitcoin-otc.com/otps/665FC11DD53E9583

Ahora, Alice visita el enlace, copia el mensaje encriptado, luego ejecuta el comando "gpg --decrypt" en una consola (si, hay que presionar "Intro" para ejecutarlo, antes de pegar el texto anterior) y pega el mensaje encriptado. Después introduce su contraseña si es necesario.

Llegado a este punto, si Alice usa Linux, debería presionar Control-D para finalizar la introducción de datos. Si usa Windows, presiona "Intro", Control-Z, "Intro" para finalizar. Gpg estaría sacando la clave OTP (clave de un solo uso) desencriptada para que ella la pueda utilizar. Se parecería a esto:

freenode:#bitcoin-otc:6132ffd1c3c4468e40303d844f3e30661bc34617054f7cc5e3fa03c8b41c376e

En un sistema que tenga wget (mac, linux), Alice podría ahorrarse molestias innecesarias solo por ejecutar el siguiente comando para extraer de forma automática el enlace y pasarlo al programa gpg:

wget -O - http://bitcoin-otc.com/otps/665FC11DD53E9583 | gpg --decrypt

Ahora Alice utiliza su OTP para finalizar la verificación:

<alice> ;;gpg everify freenode:#bitcoin-otc:6132ffd1c3c4468e40303d844f3e30661bc34617054f7cc5e3fa03c8b41c376e
<gribble> Registration successful. You are now authenticated for user 'alice' with key 665FC11DD53E9583

Autentificación

Si Alice ya esta registrada, y esta volviendo a conectarse de nuevo, puede empezar mandando el siguente comando al bot de OTC:

;;gpg eauth alice

Y a continuación siguiendo los mismos pasos que los de la sección de arriba.

"Scripts" de ayuda

Haciendo un "script" (pequeño programa automatizado) es mas facil ya que tu enlace OTP no cambia nunca - parecido a este "bitcoin-otc.com/otps/EL-ID-DE-TU-CLAVE".


Consola

Linux

Si tienes xclip, solo ejecuta lo que viene a continuación:

wget -q -O - http://bitcoin-otc.com/otps/YOURKEYID | gpg -q --output - --decrypt | xclip -i

Introduce tu contraseña si es necesario, y la clave OTP estará en tu porta-papeles, lista para pegar.

Si no tienes, ejecuta lo siguiente:

wget -q -O - http://bitcoin-otc.com/otps/YOURKEYID | gpg -q --output - --decrypt

a continuación copia la clave OTP del terminal.

Mac

Ejecuta lo siguiente:

curl http://bitcoin-otc.com/otps/YOURKEYID | gpg -d | pbcopy

Introduce tu contraseña si es necesario, y la clave OTP estará en tu porta-papeles, lista para pegar.

Powershell de Windows

powershell .\wget.ps1 "http://bitcoin-otc.com/otps/YOURKEYID" -Passthru | gpg -q --output - --decrypt | clip

Introduce tu contraseña si es necesario, y la clave OTP estará en tu porta-papeles, lista para pegar.

Lotes Windows (Batch)

wget -q -O - http://bitcoin-otc.com/otps/YOURKEYID | gpg -q --output - --decrypt

A continuación copia la OTP del terminal.

(podría necesitarse que especifique la vía de acceso entera para wget y los binario gpg, si no están en tus rutas por defecto del sistema.)

Plugins clientes IRC



(Seguimos trabajando para traducir la pagina wiki original http://es.wikipedia.org/wiki/Autenticacion_GPG, si te animas tu tambien puedes ayudar con la tarea.)