Portunus: Reimaginando el control de acceso en sistemas distribuidos
Detalles
2023 USENIX Annual Technical Conference (USENIX ATC 23), pp. 35-52, Boston, MA, 2023.
Resumen
La terminación de TLS, esencial para los proveedores de infraestructura de red y seguridad, es una operación extremadamente sensible a la latencia que se beneficia del acceso a material de clave sensible cerca del borde. Sin embargo, las crecientes preocupaciones regulatorias llevan a los clientes a exigir controles sofisticados sobre dónde se pueden acceder sus claves. Mientras que las soluciones tradicionales de control de acceso confían en un proceso centralizado altamente disponible para hacer cumplir el acceso, la latencia de ida y vuelta y la tolerancia a fallos disminuida hacen que este enfoque sea poco atractivo. Además, el nivel deseado de control del cliente está en conflicto con la personalización del proceso de distribución para cada clave.
Para resolver este dilema, hemos diseñado e implementado Portunus, un sistema de almacenamiento y control de acceso criptográfico construido utilizando una variante de criptografía de clave pública llamada cifrado basado en atributos (ABE). Utilizando Portunus, las claves TLS están protegidas mediante ABE bajo una política elegida por el cliente. Cada servidor recibe claves ABE únicas en función de sus atributos, lo que le permite descifrar solo las claves TLS para las que satisface la política. Por lo tanto, las claves cifradas se pueden almacenar en el borde, con el control de acceso aplicado de forma pasiva a través de ABE. Si un servidor recibe una conexión TLS pero no está autorizado a descifrar la clave TLS necesaria, la solicitud se reenvía directamente al servidor autorizado más cercano, evitando aún más la necesidad de un coordinador centralizado. En comparación, una instantación trivial de este sistema utilizando criptografía de clave pública estándar podría envolver cada clave TLS con la clave de cada centro de datos autorizado. Sin embargo, esta estrategia multiplica la sobrecarga de almacenamiento por el número de centros de datos. Hemos desplegado Portunus en la red global de Cloudflare, que cuenta con más de 400 centros de datos. Nuestras mediciones indican que podemos manejar millones de solicitudes por segundo a nivel global, lo que lo convierte en uno de los despliegues más grandes de ABE.