Tor usa una variedad de claves diferentes, con tres objetivos en mente: 1) cifrado, para asegurar la privacidad de los datos dentro de la red Tor, 2) autenticación, para que los clients sepan que están hablando con los repetidores con los cuales querían hablar, y 3) firmas, para asegurarse de que todos los clientes conozcan el mismo conjunto de repetidores.
Cifrado: primero, todas las conexiones en Tor usan cifrado de vínculo TLS, de manera que los observadores no puedan mirar dentro para ver a qué circuito está destinada una celda dada.
Aún más, el cliente Tor establece una clave de cifrado efímera con cada repetidor en el circuito; estas capas extra de cifrado significan que solamente el repetidor de salida puede leer las celdas.
Ambos lados descartan la clave del circuito cuando éste termina, por lo que registrar el tráfico y después ganar acceso al repetidor para descubrir la clave no funcionará.
Autentificación: Cada repetidor Tor tiene una clave pública de descifrado llamada "clave onion".
Cada repetidor rota su clave onion una vez cada cuatro semanas.
Cuando el cliente Tor establece circuitos, en cada paso demanda que el repetidor Tor pruebe el conocimiento de su clave onion.
De esa manera, el primer nodo en la ruta no puede fraguar el resto de la ruta.
Ya que el cliente Tor elige la ruta, puede asegurarse de obtener la propiedad de "confianza distribuída" de Tor: no hay un único repetidor en la ruta que pueda conocer tanto al cliente como lo que está haciendo.
Coordinación: ¿Cómo saben los clientes cuáles son los repetidores, y cómo saben que tienen las claves correctas para ellos?
Cada repetidor tiene una clave pública de firmado de larga duración, llamada "clave de identidad".
Cada autoridad de directorio, adicionalmente, tiene una "clave de firmado de directorio".
Las autoridades de directorio proporcionan una lista firmada de todos los repetidores conocidos, y en esa lista hay un conjunto de certificados de cada repetidor (autofirmados por su clave de identidad) especificando sus claves, ubicaciones, políticas de salida y demás.
Por lo que a menos que el adversario pueda controlar una mayoría de las autoridades de directorio (en 2022 hay 8 autoridades de directorio), no puede hacer caer al cliente Tor en el truco de usar otros repetidores Tor.
¿Cómo saben los clientes cuáles son las autoridades de directorio?
El software Tor viene con una lista incorporada de ubicaciones y claves públicas para cada autoridad de directorio.
Por lo que la única manera de hacer caer a los usuarios en el truco de usar una red Tor falsa es darles una versión especialmente modificada del software.
¿Cómo saben los usuarios que tienen el software correcto?
Cuando distribuímos el código fuente o un paquete, lo firmamos digitalnebte con GNU Privacy Guard.
Mira las instrucciones sobre cómo comprobar la firma del Navegador Tor.
Con el objeto de tener la certeza de que realmente está firmado por nosotros, necesitas habernos encontrado en persona y haber obtenido una copia de nuestra huella digital de clave GPG, o bien conocer a alguien que lo haya hecho.
Si estás preocupado acerca de un ataque a este nivel, te recomendamos que te involucres con la comunidad de seguridad y empieces a encontrarte con gente.