Компания Intel развивает протокол HTTPA, дополняющий HTTPS
Инженеры из компании Intel предложили новый протокол HTTPA (HTTPS Attestable), расширяющий HTTPS дополнительными гарантиями безопасности произведённых вычислений. HTTPA позволяет гарантировать целостность обработки запроса пользователя на сервере и убедиться в том, что web-сервис заслуживает доверия и работающий в TEE-окружении (Trusted Execution Environment) на сервере код не был изменён в результате взлома или диверсии администратора.
Показать
HTTPS защищает передаваемые данные на этапе передачи по сети, но не может исключить нарушение их целостности в результате атак на сервер. Изолированные анклавы, создаваемые при помощи таких технологий, как Intel SGX (Software Guard Extension), ARM TrustZone и AMD PSP (Platform Security Processor), дают возможность защитить важные вычисления и снизить риск утечек или изменения конфиденциальной информации на конечном узле.
HTTPA для гарантирования достоверности переданной информации позволяет задействовать предоставляемые в Intel SGX средства аттестации, подтверждающие подлинность анклава, в котором произведены вычисления. По сути HTTPA расширяет HTTPS возможностью удалённой аттестации анклава и позволяет проверить то, что он выполняется в подлинном окружении Intel SGX и web-сервису можно доверять. Протокол изначально развивается как универсальный и помимо Intel SGX может быть реализован и для других TEE-систем.
Помимо штатного для HTTPS процесса установки защищённого соединения, HTTPA дополнительно требует согласования сессионного ключа, заслуживающего доверия. Протокол вводит в обиход новый HTTP-метод «ATTEST», который позволяет обрабатывать три типа запросов и ответов:
«preflight» для проверки, поддерживает ли удалённая сторона аттестацию анклавов;
«attest» для согласования параметров аттестации (выбор криптографического алгоритма, обмен уникальными для сеанса случайными последовательностями, генерация идентификатора сеанса и передача клиенту открытого ключа анклава);
«trusted session» — формирование сессионного ключа для доверительного обмена информацией. Сессионный ключ формируется на основе ранее согласованной предварительной секретной последовательности (pre-session secret), сформированной клиентом с использованием полученного от сервера открытого ключа TEE, и сгенерированных каждой стороной случайных последовательностей.
HTTPA подразумевает, что клиент заслуживает доверия, а сервер нет, т. е. клиент может использовать данный протокол для верификации вычислений в TEE-окружении. При этом HTTPA не гарантирует, что производимые в процессе работы web-сервера остальные вычисления, производимые не в TEE, не были скомпрометированы, что требует применения отдельного подхода к разработке web-сервисов. Таким образом, в основном HTTPA нацелен на использование со специализированными сервисами, к которым предъявляются повышенные требования к целостности информации, такие как финансовые и медицинские системы.
Для ситуаций когда вычисления в TEE должны быть подтверждены как для сервера, так и для клиента предусмотрен вариант протокола mHTTPA (Mutual HTTPA), выполняющий двухстороннюю верификацию. Данный вариант более усложнённый из-за необходимости двустороннего формирования сессионных ключей для сервера и клиента.
Источники:http://www.opennet.ru/opennews/art.shtml?num=56050
https://arxiv.org/pdf/2110.07954.pdf