Ingenieros de la empresa Intel han propuesto un nuevo protocolo HTTPA (HTTPS Attestable), que expande el HTTPS proporcionando garantías adicionales de seguridad en los cálculos realizados. HTTPA permite garantizar la integridad del procesamiento de la solicitud del usuario en el servidor y asegurar que el servicio web es de confianza y que el código que se ejecuta en el entorno TEE (Trusted Execution Environment) del servidor no ha sido modificado como resultado de un ataque o sabotaje por parte del administrador.
HTTPS protege los datos transmitidos durante su transferencia a través de la red, pero no puede excluir la posible violación de su integridad como resultado de ataques al servidor. Los enclaves aislados, creados mediante tecnologías como Intel SGX (Software Guard Extension), ARM TrustZone y AMD PSP (Platform Security Processor), permiten proteger cálculos importantes y reducir el riesgo de filtraciones o alteraciones de información confidencial en el nodo final.
HTTPA, para garantizar la autenticidad de la información transmitida, permite utilizar los medios de atestación proporcionados en Intel SGX, que confirman la autenticidad del enclave donde se realizan los cálculos. En esencia, HTTPA amplía HTTPS con la capacidad de atestación remota del enclave y permite verificar que se ejecuta en un entorno auténtico de Intel SGX, brindando confianza al servicio web. El protocolo se desarrolla inicialmente como universal y, además de Intel SGX, también puede ser implementado para otros sistemas TEE.

Además del proceso estándar de HTTPS para establecer una conexión segura, HTTPA requiere adicionalmente la negociación de una clave de sesión de confianza. El protocolo introduce un nuevo método HTTP llamado "ATTEST", que permite procesar tres tipos de solicitudes y respuestas:
- "preflight" para verificar si la parte remota admite la atestación de enclaves;
- "attest" para acordar los parámetros de atestación (elección del algoritmo criptográfico, intercambio de secuencias aleatorias únicas para la sesión, generación de un identificador de sesión y transmisión de la clave pública del enclave al cliente);
- "trusted session" — generación de una clave de sesión para un intercambio de información de confianza. La clave de sesión se genera en base a una secuencia secreta preliminar (pre-session secret) acordada previamente, que es creada por el cliente utilizando lo obtenido de servidores clave pública TEE y secuencias aleatorias generadas por cada parte.

HTTPA implica que el cliente es confiable y el servidor no, es decir, el cliente puede utilizar este protocolo para verificar cálculos en un entorno TEE. Sin embargo, HTTPA no garantiza que los cálculos realizados fuera de TEE no hayan sido comprometidos, lo que requiere un enfoque separado para el desarrollo de servicios web. Por lo tanto, en su mayor parte, HTTPA está destinado a ser utilizado con servicios especializados que tienen requisitos más altos en cuanto a la integridad de la información, como sistemas financieros y médicos. un servidor web En situaciones en las que los cálculos en TEE deben ser confirmados tanto para el servidor como para el cliente, se prevé una variante del protocolo mHTTPA (Mutual HTTPA), que realiza una verificación bidireccional. Esta variante es más compleja debido a la necesidad de formar claves de sesión de manera bidireccional para el servidor y el cliente.
Lanzamiento de crabz 0.7, una utilidad para compresión y descompresión multihilo, escrita en Rust.
Fuente: opennet.ru
