Establecimiento de un seudónimo confiable con clave PGP

10

Esto se ha convertido en un pequeño experimento mental para mí.

Supongamos que alguien quisiera establecer un seudónimo junto con una clave PGP correspondiente, ¿cómo podrían otras personas verificar la correspondencia entre el nombre y la clave?

En general, las claves PGP son para personas reales, cuya identidad se puede verificar con IRL, pero eso no se aplica aquí.

Mi primer pensamiento original fue que el seudónimo podría ser un nombre basado en la huella dactilar de la clave, pero luego, dependiendo del número de caracteres, podría ser bastante fácil generar una nueva clave que también cumpla con este requisito.

¿Podría haber una estrategia (potencialmente más social que tecnológica) para que alguien verifique esta correspondencia?

Editar:

El propósito potencial de un seudónimo con este requisito podría estar en la misma línea que Satoshi Nakamoto, o un silbato. Deseando liberar constantemente documentos o software que sean verificables del propietario del seudónimo.

    
pregunta Sam Lanning 29.05.2014 - 12:54
fuente

4 respuestas

7

El desafío con claves seudónimas no se trata solo del anonimato; Existe el problema adicional de que su identidad no es única y es más difícil de probar. Teniendo en cuenta que su seudónimo / apodo está establecido (es decir, está utilizando una identidad existente, en lugar de inventar una nueva identidad basada en un hash o algo entre estas líneas), su apodo por sí solo no es suficiente en afirmando tu identidad y reputación.

Si su apodo es Sam, si el apodo de su amigo es Sam, y si ambos tienen una clave pseudónima "confiable", ninguno de los dos puede gritar al otro y decirle: "Oye, no eres el Sam real! "

Una solución sería reagrupar toda la información sobre sus identidades en línea en un lugar único (donde dice "Soy Sam en StackExchange", "Soy propietario del dominio y sitio web samlanning.com ", etc.) y luego conseguir que varias personas verifiquen y confirmen todas estas identidades . Puedo pensar en dos maneras de hacerlo:

  1. Únase a un sitio web como Keybase (o haga su propio host), que hace exactamente lo que describí, y se basa en en OpenPGP. Aunque internas, todas esas "identidades únicas centrales" hacen una red de confianza, para identidades / seudónimos. Un perfil tiene el aspecto (sí, incluso el autor principal de GnuPG usa este sitio web).

  2. Usando OpenPGP (y especialmente GnuPG), encuentre personas que estén dispuestas a firmar (certificar) claves pseudónimas, cumpla con su forma personal de verificar su identidad seudónima y pídales que incorporen la URL y la notación de la política datos en sus certificaciones.

Yo personalmente hago esto cuando certifico las claves de otras personas:

gpg --ask-cert-level \
     --cert-policy-url http://diti.me/pgp/\#policy \
     --cert-notation [email protected]=http://diti.me/pgp/certs/%f.notes.asc \
     --sign-key

Una directiva URL es una URL (aquí, documento de Internet) dentro de la cual usted describe al mundo cuál es su política de certificación de clave OpenPGP. La persona que firma su clave seudónima debe indicar (en este documento) que realmente certifica las claves seudónimas y cómo.

Una notación clave es un texto arbitrario con el formato key=value . La especificación OpenPGP no especifica realmente qué usos deben hacer las implementaciones, pero un uso para ellos es poner una URL como value . Pero es posible que simplemente haga que el firmante ponga un texto como "Verifiqué cuidadosamente la identidad seudónima de Sam" si lo desea.

Utilizando mi comando anterior, puede ver que, en servidores de llaves , tanto las URL de la política como los datos de notación se muestran de forma predeterminada:

sig  sig1  CD42FF00 2014-04-07 __________ __________ []
    Policy URL: http://diti.me/pgp/#policy
    Notation data: [email protected] http://diti.me/pgp/certs/A31D4F81EF4EBD07B456FA04D2BB0D0165D0FD58.notes.asc

Para el registro, este es yo firmando la clave de firma GPG automatizada de CAcert.org, y dejaré aquí un enlace del archivo web a los datos de notación .

Mientras se puedan leer los datos de notación producidos por el firmante, cualquiera puede / puede decidir si confía o no en su identidad seudónima. Usando estos, cualquier persona motivada que esté dispuesta a verificar cuidadosamente qué tan confiable y confiable es su seudónimo, puede hacerlo.

EDITAR: En realidad, creo que podría haberme salido un poco del tema 2. ¿Su pregunta es solo sobre el proceso de certificación seudónimo o también su auditoría ?

    
respondido por el Diti 29.05.2014 - 18:29
fuente
1

Después de hablar con algunos amigos un poco más, es posible que hayamos encontrado una solución candidata.

Dado que lo que intentamos evitar es que alguien se haga pasar por el titular de la clave original, no queremos que alguien pueda generar un nuevo par de llaves, volver a firmar todo lo que hizo la persona original y reclamar que posee el mismo seudónimo.

Puede utilizar un sistema de sellado de tiempo distribuido para demostrar que una asociación entre el seudónimo y la clave pública existió en un momento específico (es decir, la hora en que se creó el seudónimo). Por ejemplo, enlace

Las personas podrían considerar esto como prueba suficiente de que la asociación es válida y optar por firmar el UID.

    
respondido por el Sam Lanning 29.05.2014 - 17:36
fuente
0

Después de leer acerca de este problema y descubrir el sello de tiempo de Bicoin, se me ocurrió una forma relativamente simple de demostrar que eres el propietario de una identificación seudónima con una clave PGP y una dirección de Bitcoin en tu propiedad. . Este sistema se basa en el hecho de que para desbloquear estas dos cosas necesita un secreto que, en principio, es suyo y solo usted.

  1. Crea un par de claves PGP.
  2. Crea una dirección de Bitcoin en tu cliente. ¡Haga una copia de seguridad de la cartera que pertenece a esta dirección o no podrá autenticarse más!
  3. Realice el sello de fecha y hora de Bitcoin en su clave según [esta página aquí] [1]. Básicamente, esto equivale a lo siguiente:
    1. Tome el hash SHA256 de la huella digital de su clave.
    2. Conviértalo en una dirección de Bitcoin sintácticamente válida.
    3. Envíe un pequeño pago, de 10 centavos de dólar de BTC, desde la dirección que creó hasta la dirección que creó a partir del hash de la huella digital de su clave. Los Bitcoins desaparecerán, porque el pago se envió a una dirección que no puede ser desbloqueada por ninguna clave privada. Sin embargo, debido a que la dirección es sintácticamente válida, la transacción pasará y se publicará en la cadena de bloques, que es compartida por cada cliente grueso en la red de Bitcoin, un mensaje que dice que cuando el bloque X se agregó a la cadena de bloques en el momento T, la dirección 1YouR0wn4dRESS envió N bitcoins a la dirección 1SHA256sUm0fY0urkEYf1NG3rPr1nT.
  4. Finalmente, ponga los detalles de su transacción de marca de tiempo en los campos de información de su clave privada (por ejemplo, cree una nueva ID de clave y en el campo del nombre de usuario ponga algo como "Marca de hora con 0.0005 BTC enviado desde 1YouR0wn4dRESS a 1SHA256sUm0fY0urkEYf1NG3rPr1nT") y cargue su clave para un servidor de claves.

Para que alguien valide su identidad, siga este protocolo:

  1. Haga que el verificador le envíe un mensaje cifrado con su clave pública, en el que le pide que envíe un pequeño pago a una dirección elegida por el autenticador.
  2. Descifra el mensaje con tu clave privada. Esto demostrará que eres el propietario de la parte privada de la clave.
  3. Envíe el pago desde 1YouR0wn4dRESS a la dirección que le envió el autenticador. Esto demostrará que usted es el propietario de la clave privada necesaria para gastar los fondos de la cartera asociada con la dirección 1YouR0wn4dRESS.
  4. Solo para credenciales adicionales, puede hacer que el autenticador busque su transacción de sello de tiempo en, por ejemplo, blockchain.info

La finalización exitosa del paso 3 solo se puede lograr si está en posesión de la clave privada que desbloquea los mensajes que se le envían usando su clave pública, porque la necesita para leer las instrucciones de pago. El pago solo se puede completar si posee la clave privada que desbloquea la billetera con la dirección 1YouR0wn4dRESS, que llegó a la cadena de bloques cuando marcó la huella digital de su clave. Ahora estás autenticado.

    
respondido por el Echelon-1 05.08.2014 - 04:41
fuente
-2
  

Mi primer pensamiento original fue que el seudónimo podría ser un nombre basado en la huella dactilar de la clave, pero luego, dependiendo del número de caracteres, podría ser bastante fácil generar una nueva clave que también cumpla con este requisito.

Si la huella dactilar se basa en una función hash unidireccional suficientemente sólida, no debería ser computacionalmente generable para generar otra clave que también produzca el mismo resultado, pero el seudónimo debería ser similar en longitud a la salida de hash como reducción a algo más memorable aumentará en gran medida la facilidad de producir colisiones.

    
respondido por el Sean Burton 29.05.2014 - 14:24
fuente

Lea otras preguntas en las etiquetas