Engenheiros da Intel propuseram um novo protocolo HTTPA (HTTPS Attestable), que expande o HTTPS com garantias adicionais de segurança para os cálculos realizados. O HTTPA garante a integridade do processamento do pedido do usuário no servidor e assegura que o serviço web é confiável e que o código executado em um ambiente TEE (Trusted Execution Environment) no servidor não foi alterado devido a um ataque ou sabotagem do administrador.
O HTTPS protege os dados transmitidos durante a transferência pela rede, mas não pode excluir a violação de sua integridade como resultado de ataques ao servidor. Enclaves isolados, criados por meio de tecnologias como Intel SGX (Software Guard Extension), ARM TrustZone e AMD PSP (Platform Security Processor), oferecem a capacidade de proteger cálculos importantes e reduzir o risco de vazamentos ou alteração de informações confidenciais no nó final.
O HTTPA, para garantir a veracidade das informações transmitidas, permite o uso de ferramentas de atestação fornecidas pelo Intel SGX, que confirmam a autenticidade do enclave onde os cálculos são realizados. Essencialmente, o HTTPA expande o HTTPS com a possibilidade de atestação remota do enclave e permite verificar que ele está sendo executado em um ambiente legítimo do Intel SGX e que o serviço web é confiável. O protocolo está sendo desenvolvido inicialmente como um padrão universal e pode ser implementado para outros sistemas TEE, além do Intel SGX.

Além do processo padrão de instalação de conexão segura do HTTPS, o HTTPA requer adicionalmente acordos sobre uma chave de sessão confiável. O protocolo introduce um novo método HTTP chamado "ATTEST", que permite processar três tipos de pedidos e respostas:
- "preflight" para verificar se a parte remota suporta a atestação de enclaves;
- "attest" para coordenar os parâmetros de atestação (seleção do algoritmo criptográfico, troca de sequências aleatórias exclusivas para a sessão, geração de um identificador de sessão e transmissão ao cliente da chave pública do enclave);
- "trusted session" — formação de uma chave de sessão para troca de informações confiável. A chave de sessão é formada com base em uma sequência secreta pré-acordada (pre-session secret), criada pelo cliente usando a chave recebida. servidor de chave TEE, e sequências aleatórias geradas por cada parte.

HTTPA implica que o cliente é confiável, enquanto o servidor não, ou seja, o cliente pode usar este protocolo para verificar cálculos no ambiente TEE. No entanto, o HTTPA não garante que os cálculos realizados fora do TEE não tenham sido comprometidos, o que requer uma abordagem separada para o desenvolvimento de serviços web. servidor web Assim, o HTTPA é principalmente direcionado para uso com serviços especializados, que possuem requisitos elevados de integridade da informação, como sistemas financeiros e de saúde.
Para situações em que os cálculos no TEE precisam ser confirmados tanto para o servidor quanto para o cliente, existe uma variante do protocolo mHTTPA (Mutual HTTPA), que realiza verificação bidirecional. Esta variante é mais complexa devido à necessidade de geração bidirecional de chaves de sessão para o servidor e para o cliente.
Fonte: opennet.ru
