¿Por qué me piden información personal al crear una clave OpenPGP?

6

Hoy aprendí sobre los conceptos básicos de OpenPGP y traté de crear mi primera clave OpenPGP. Sin embargo, encontré un par de opciones sospechosas: en la versión GUI del programa que descargué hay campos como nombre o correo electrónico o fecha de caducidad .

  1. ¿Por qué me piden mi nombre o correo electrónico? Desde mi entendimiento básico para enviar y recibir mensajes cifrados, solo necesito mi clave pública y privada y una clave pública de otra persona, la creación y el cifrado / descifrado de la clave son solo matemáticas, ¿por qué las otras opciones? Mi conjetura es que el nombre y el correo electrónico se pueden enviar a algún servidor y, más adelante, si alguien quiere enviarme un mensaje (y no sabe mi clave pública pero conoce mi dirección de correo electrónico), puede buscarlo si hay una clave pública. que coincide con una dirección de correo electrónico dada. ¿Tengo razón, y si no, para qué son? ¿Puedo simplemente dejarlos en blanco?

  2. Otra cosa sospechosa fue después de la hora en que debería expirar la clave. ¿La información sobre la fecha de vencimiento está contenida en la clave (no creo que lo sea)? Entonces, ¿la clave está almacenada en un servidor en algún lugar o qué? ¿Cómo funciona?

La razón por la que pregunto es que todo este asunto de OpenPGP parece más centralizado de lo que pensaba. ¿Por qué el software OpenPGP no puede simplemente tener un botón "Generar una nueva clave" que genere tanto la clave pública como la privada para que yo pueda copiar y usar (y, por supuesto, una opción para cifrar / descifrar texto)?

    
pregunta George 23.08.2016 - 20:00
fuente

3 respuestas

8

OpenPGP incluye administración de claves

De la introducción a RFC 4880, OpenPGP (resaltado agregado ser yo):

  

El software OpenPGP utiliza una combinación de clave pública sólida y      Criptografía simétrica para proporcionar servicios de seguridad para electrónica.      Comunicaciones y almacenamiento de datos. Estos servicios incluyen      confidencialidad, gestión de claves , autenticación y digital      firmas.

En otras palabras, OpenPGP no solo se trata de enviar mensajes cifrados, sino que también ofrece un conjunto de funciones mucho más amplio en torno a la administración de claves. La gestión de claves significa la posibilidad de buscar su clave en los servidores de claves (¡pero no están autenticados allí!), Pero también los usuarios de OpenPGP emiten certificaciones entre sus claves de OpenPGP para garantizar la autenticidad (por ejemplo, lea sobre las personas que firman claves). ). Todo esto requiere claves para tener nombres adjuntos.

Claves OpenPGP "anónimas"

  

¿Por qué me piden mi nombre o correo electrónico?

No está obligado a hacerlo (aunque sí lo hacen algunas implementaciones de OpenPGP): las claves OpenPGP pueden existir sin ID de usuario, y todas las fechas pueden configurarse de manera bastante arbitraria (aunque se debe proporcionar una marca de tiempo de creación de clave, pero podría simplemente proporcione una marca de tiempo de 0 igual a 1970-01-01).

Considere que las claves no tendrían información de usuario adjunta: tendría que intercambiar la clave completa compuesta por miles de bytes aleatorios manualmente, y conectarla de alguna manera a una identidad si desea usarla.

  

Otra cosa sospechosa fue después de la hora en que debería expirar la clave. ¿La información sobre la fecha de vencimiento está contenida en la clave (no creo que lo sea)? Entonces, ¿la clave está almacenada en un servidor en algún lugar o qué? ¿Cómo funciona?

Hasta la fecha de caducidad no es obligatorio, puede hacer que sean válidos para siempre. En realidad, la fecha de caducidad realmente no se suma a la seguridad en absoluto , podría ser razonable, no obstante.

Debe distinguir entre el par de clave pública / privada real (por ejemplo, los números primos utilizados para RSA) y una clave OpenPGP. Una clave OpenPGP está compuesta por los números para los trabajos criptográficos, pero también información adicional como ID de usuarios, certificaciones y configuraciones como la fecha de caducidad. Puede ver fácilmente toda la información en una clave OpenPGP ejecutando

gpg --export [key-id] | gpg --list-packets

(algunas lecturas en RFC 4880 vinculadas anteriormente pueden ser necesarias para obtener una comprensión razonable de la salida).

OpenPGP está distribuido

  

La razón por la que pregunto es que todo este asunto de PGP parece más centralizado de lo que pensaba.

No hay una instancia central en el entorno OpenPGP. Las claves se intercambian a través de una red de servidores de claves descentralizada, la confianza se valida a través de la red de confianza OpenPGP en lugar de un sistema PKI jerárquico como el conocido por X.509 (usado para S / MIME, TLS, ...).

Hay algunas autoridades centrales en la comunidad de OpenPGP: existen autoridades de certificación como CAcert, la alemana Heise Verlag y Governikus que emiten certificaciones para los titulares de la nueva tarjeta de identidad digital alemana, pero no es necesario utilizar (o confiar) ellos. Existe una coordinación bastante central en la red del servidor clave (el grupo SKS ), pero también puede elegir un servidor arbitrario, no usar servidores clave en absoluto o incluso alojar su propio!

OpenPGP es un estándar abierto

  

¿Por qué el software PGP no puede simplemente tener un botón "Generar una nueva clave" que genere tanto la clave pública como la privada para que yo pueda copiar y usar (+ por supuesto, una opción para cifrar / descifrar texto)?

OpenPGP es un estándar abierto. Si alguien desea un software que haga exactamente esto (y como ya mencioné, el estándar OpenPGP permite las claves "simples" sin una gran cantidad de metainformación), puede hacerlo. La razón por la que dicho software no existe (o no se conoce ampliamente) es que las personas no ven una buena razón para escribir o tener dicho software.

Si solo desea utilizar RSA y AES sin ninguna administración de claves y las capacidades avanzadas de OpenPGP, probablemente sea mejor que use estándares más primitivos.

    
respondido por el Jens Erat 23.08.2016 - 20:36
fuente
8

En primer lugar, no necesita ingresarlas, o puede ingresar falsas si lo desea, así que adelante, hágalo si así lo prefiere. (Es posible que deba leer las opciones para deshabilitar los campos).

Pero la razón por la que PGP solicita tal información es que no es solo una herramienta para cifrar mensajes, sino que también es una herramienta para vencer a suplantación , es decir, demostrar que los remitentes y los destinatarios de los mensajes son realmente los que afirman. . El punto es que, siempre y cuando controles tu clave privada (nadie te la ha robado), y otras personas están seguras de que tu clave pública te pertenece (la web of trust ha vinculado su clave pública a su identidad), ahora:

  1. Las personas que te envían mensajes pueden estar seguros de que te están llegando y no de un imitador;
  2. Las personas que reciben mensajes firmados de usted pueden estar seguros de que provienen de usted y no de un imitador.

Tenga en cuenta también que no importa si la identidad vinculada a su clave es su nombre real, un alias o lo que sea, solo necesita ser algo que otras personas lo reconozcan. ¿Es solo la respuesta a la pregunta "de quién es esta clave"? A PGP no le importa si la respuesta parece "Jane Smith", "John Doe" o "spaghettiman123"; solo a las personas que intentan usar la clave pública les importará.

  

Otra cosa sospechosa fue después de la hora en que debería expirar la clave. ¿La información sobre la fecha de vencimiento está contenida en la clave (no creo que lo sea)? Entonces, ¿la clave está almacenada en un servidor en algún lugar o qué? ¿Cómo funciona?

La fecha de caducidad se almacena en la clave. La idea es protegerlo si le roban su clave privada sin que se dé cuenta: la fecha de caducidad significa que la persona que la robó solo obtiene una ventana de tiempo limitada durante la cual puede hacerse pasar por usted.

PGP no almacena automáticamente las claves en los servidores y no se conecta a ningún servidor como parte de las operaciones de rutina. Pero las claves públicas pueden y, a menudo, se cargan en servidores de claves para que las personas puedan descargarlas allí.

  

La razón por la que pregunto es que todo este asunto de PGP parece más centralizado de lo que pensaba. ¿Por qué el software PGP no puede simplemente tener un botón "Generar una nueva clave" que genera tanto la clave pública como la privada para que yo pueda copiar y usar (+ por supuesto, una opción para cifrar / descifrar texto)?

No está centralizado, pero sí quiere interactuar con otros sistemas, públicos o privados, para funcionar de manera ideal. Pero no tienes que usar nada de eso. Solo puede generar un par de claves sin una identidad adjunta. Puede dar manualmente la clave pública a una contraparte en persona, por ejemplo. en una unidad flash, y eso funcionará bien.

El problema difícil aquí es: ¿cómo obtener de forma segura la clave pública de otra persona a través de Internet? Si acaba de descargar la clave pública de Jane Doe de algún sitio web, no tiene forma de saber si esa es realmente su clave pública o la de un imitador. Así que toda la funcionalidad adicional que está viendo es proporcionar herramientas para atacar ese problema. Nuevamente, lea la web de confianza , y en infraestructura de clave pública .

    
respondido por el Luis Casillas 23.08.2016 - 20:22
fuente
3

Existen tecnologías de clave pública para abordar tres cosas principales:

  1. Confidencialidad de los datos (cifrado): solo el destinatario puede leer el mensaje.

  2. Integridad de los datos (firma): que el mensaje no se alteró durante el tránsito.

  3. Autenticación: el destinatario es de hecho quien crees que es.

Es posible crear sistemas de cifrado con solo un subconjunto de esta lista (el cifrado de disco, por ejemplo, generalmente solo se preocupa por 1. y a veces 3.)

Para algo como el cifrado de correo electrónico no tiene sentido tener dos de estos sin el tercero. ¿De qué sirve una clave pública si no tengo idea de a quién pertenece?

Desde un punto de vista técnico, tiene razón: estos campos son opcionales y se pueden dejar en blanco; tu llave PGP será perfectamente utilizable sin ella.

Desde un punto de vista social son esenciales. La idea del PGP Web of Trust es que cada persona / dirección de correo electrónico tenga una clave pública asociada: usted publica su clave pública en los servidores de claves públicas y haga que sus amigos firmen su clave pública para decir "Conozco a esta persona en la vida real, y esta clave pública le pertenece". Cuantas más personas se crucen entre sí, más grande es la red de confianza. En este contexto, las claves anónimas no tienen sentido.

Finalmente, la fecha de vencimiento es completamente opcional, pero si sabe al principio que solo utilizará esta clave durante X meses, por ejemplo, si tiene un contrato a corto plazo con una empresa.

    
respondido por el Mike Ounsworth 23.08.2016 - 20:39
fuente

Lea otras preguntas en las etiquetas