ALTS


Application Layer Transport Security ( ALTS ) es un sistema de autenticación y cifrado desarrollado por Google que se utiliza para proteger la llamada a procedimiento remoto (RPC) dentro de las máquinas de Google. Google comenzó su desarrollo en 2007, como una modificación personalizada de TLS . [1]

El documento técnico ALTS [1] se publicó en diciembre de 2017. Según él, el desarrollo comenzó en 2007. En ese momento, los protocolos de capa de aplicación dominantes eran SSL y TLS 1.1 (TLS 1.2 solo se publicó como RFC en 2008 [2] ), aquellos admitían muchos algoritmos heredados y tenían estándares de seguridad deficientes. Como Google tenía el control total sobre las máquinas que necesitaban un transporte seguro de RPC, la implementación de los sistemas fue relativamente fácil, por lo que los desarrolladores de Google podían permitirse el lujo de diseñar su propio sistema desde cero.

Otro requisito que consideró necesario un nuevo sistema son diferentes modelos de confianza : en TLS , el lado del servidor está comprometido con su propio nombre de dominio (y el esquema de nomenclatura correspondiente), mientras que Google necesitaba la misma identidad (es decir, RPC) para usarse con múltiples esquemas de nomenclatura. , para simplificar la replicación de microservicios, el equilibrio de carga y la reprogramación entre hosts.

El protocolo de apretón de manos ALTS se basa en un esquema de intercambio de claves Diffie-Hellman autenticado , que disfruta tanto del secreto hacia adelante perfecto (el acceso a las claves actuales no compromete la seguridad futura) como de la reanudación de la sesión (aceleraciones notables en el protocolo después de la primera sesión entre las partes).

A diferencia de TLS, en ALTS ambas partes, servidor y cliente, tienen un certificado que acredita sus respectivas identidades. El certificado se encadena a una clave de verificación de servicio de firma confiable, siendo la hoja una clave Diffie-Hellman de curva elíptica , que finalmente se utiliza para el intercambio de claves. La curva elíptica utilizada en el intercambio de claves es Curve25519 . [3]

Una vez que ambas partes calcularon la clave de sesión ( protocolo de registro en el documento técnico), pueden comenzar a cifrar el tráfico con el algoritmo de cifrado simétrico AES de 128 bits , utilizando principalmente GCM como modo de operación . En máquinas más antiguas, se utilizó un VCM [4] desarrollado por Google . [5]