La web de confianza es un gráfico en el que los vértices son usuarios de GPG (en realidad, sus claves) y los bordes son firmas cruzadas. Si dejamos de lado las cuestiones de confianza del propietario y asumimos que todos los participantes solo firman después de verificar las huellas dactilares, puedo confiar en una clave que tiene una ruta entre yo y la clave en el gráfico de confianza de la web.
Si escribo un correo electrónico a alguien en la web de confianza, puedo cifrar el mensaje y mantener el contenido del correo electrónico en privado. Sin embargo, no puedo ocultar los metadatos del correo: un intruso todavía descubrirá cuándo le envié un correo ya quién. Los metadatos dicen mucho acerca de las personas, y ha habido logros asombrosos (por no decir, aterradores) de adivinar el género, la orientación sexual, los ingresos, etc. de las personas con una alta probabilidad con los metadatos telefónicos. (No sé si se han realizado estudios con metadatos de correo electrónico, pero esperaría resultados similares)
La pregunta es: ¿Cómo podemos ocultar los metadatos incluso en correos electrónicos encriptados por el cliente?
Propongo el siguiente protocolo en la parte superior de GPG, inspirado en Tor:
- Quiero enviar un correo electrónico a Charlie.
- Busco un camino a través de la red de confianza de mí hacia él, de longitud mínima, digamos, 3. Supongamos que pasa por Alice y Bob.
- Ahora el paso de cifrado múltiple:
- Encripto el correo con la clave de Charlie.
- Luego cifro el correo ya cifrado y la dirección de Charlie con la clave de Bob.
- Luego cifro todo lo que y la dirección de Bob con la clave de Alice.
- El envío desenvuelve todo en el orden opuesto:
- Envié todo lo que recibí del último paso de encriptación a Alice.
- Alice descifra, ve la dirección de Bob y envía todo lo que descifra a Bob.
- Bob se descifra una vez más y envía todo a Charlie.
- Finalmente, Charlie se descifra por última vez.
Si no tengo nada malo, esto tiene las siguientes propiedades:
- Solo yo y Charlie conocemos el contenido del correo.
- Solo yo, Charlie y Bob conocemos el destinatario final del correo.
- Solo yo, Charlie y Alice conocemos el remitente del correo.
¿Esto está funcionando? ¿Es viable? ¿Por qué no enviamos correos electrónicos de esa manera?
Algunas posibles desventajas podrían ser:
- Es posible que alguien en la cadena no esté en línea. Entonces podría ser inteligente enviar el mensaje a lo largo de múltiples rutas.
- El tráfico de red aumenta. Si un intruso analiza con cuidado cada uno de mis correos electrónicos enviados, Alice, Bob y Charlie, pueden darse cuenta de que Alice le envía un correo electrónico a Bob poco después de escribirle, y así sucesivamente, rastreando el correo a Charlie. ¿Cuántos más recursos necesita esto? ¿Retrasar los correos electrónicos por poco tiempo (digamos unos minutos) es una contramedida efectiva y aceptable?