Después de otra más fallo de la infraestructura de clave pública, estaba pensando en lo roto que está todo. Este negocio de asociar innegablemente una identidad con una clave pública, y todo el trabajo que realizamos para lograrlo, está empezando a parecer como patinar sobre hielo en una colina. Perdóname, estoy pensando en voz alta aquí.
Comencé a pensar en el ToR Hidden Service Protocol y su método para resolverlo. El ' nombre del servicio oculto ' (que se escribe en la barra de direcciones como cualquier otra URL) se deriva de la clave pública, por lo que termina visitando sitios como kpvz7ki2v5agwt35.onion
, pero no tiene necesidad para los certificados o PKI, la clave pública y el dominio solo son información suficiente para demostrar que pertenecen juntos (hasta que pueda generar colisiones, pero esa es otra historia). Ahora claramente hay un problema con esto: todo el punto del DNS es proporcionar un mapeo legible para las direcciones IP.
Lo que me lleva a mi sugerencia final, posiblemente defectuosa; ¿Por qué no usamos una dirección IP que se genera a partir de una clave pública? (Al revés suena más conveniente al principio, pero no puede funcionar por razones criptográficas obvias).
Tenemos un enorme espacio de direcciones con IPv6. Se cree que un par de claves RSA de 1024 bits tiene alrededor de 80 bits de entropía como máximo. Entonces, ¿por qué no dividir un segmento de 80 bits y asignar claves RSA públicas a direcciones IP en este segmento?
Algunas desventajas en la parte superior de mi cabeza;
- Por lo tanto, un atacante puede generar un par de claves y saber de inmediato en qué servidor se usará ese par de claves, si existiera dicho servidor. Tal vez el espacio de 80 bits se pueda expandir para usar claves RSA de 4096 bits, que se cree tienen alrededor de 256 bits de entropía máxima, lo que hace que la búsqueda no sea factible (desafortunadamente, requeriríamos IPv7 + con una dirección de bits de 512 o más para que esto se ajuste). Este ataque tampoco es tan tan malo como podría sonar a primera vista, ya que no está dirigido. Este ataque podría mitigarse incluyendo un salt en el proceso de clave > IP, que el servidor envía a los clientes cuando se conectan. Esta sal hace que cada uno de los servidores, el proceso de > IP sea único.
- Un atacante podría potencialmente forzar el espacio clave usando una sal conocida hasta que coincida con la IP elegida. Este es un ataque dirigido, por lo que es un poco más aterrador. Sin embargo, el uso de un algoritmo lento (1-3 segundos) para hacer la asignación de la clave pública a IP podría mitigar esto. El uso de la sal también significa que tal fuerza bruta solo se aplicaría a una única IP, y tendría que repetirse por IP objetivo.
Para intentar detener los mods que cierran esto, haré todo lo posible para convertirlo en una pregunta; ¿Es esta idea completamente defectuosa de alguna manera? ¿Se ha intentado en el pasado? ¿Estoy simplemente divagando?