Confidential Compute (TEE и аттестация) — как запускать ИИ и сервисы в доверенной среде

Confidential Computing — класс технологий, которые изолируют код и данные во время выполнения внутри аппаратно защищённой области (TEE, trusted execution environment). Внутри TEE память шифруется, а доступ гипервизора/ядра/админов хоста существенно ограничен. Второй ключевой слой — удалённая аттестация: криптографический «доклад» о том, кто мы и что запущено, чтобы внешние системы могли условно доверять экземпляру и, например, выпускать ему ключи.

Confidential Compute (TEE и аттестация) — как запускать ИИ и сервисы в доверенной среде

Связанные страницы: Privacy-preserving AI (FHE/SMPC/zkML), Model serving, Model evaluation, Evals, Prompt injection, Prompt leakage, Model poisoning, KV cache, Prefill cache, Retriever, Vector index.

Модель угроз (зачем это нужно)

  • Враждебный инфраструктурный слой. Даже если облако/хост доверенное, гипервизор, root на хосте, DMA-устройства — всё это потенциальные источники утечек.
  • Инсайдеры и поставщик облака. TEE снижает необходимость «верить» оператору, поскольку память и состояние гостя шифруются и проверяются.
  • Комплаенс и мульти-тенантность. Разделение клиентов на одном железе без взаимных утечек.
  • Доказуемость конфигурации. Аттестация позволяет связывать выпуск секретов с измеренным кодом/параметрами запуска (policy).

Основные семейства TEE (обзор)

Семейство/подход Кратко Где применяется Особенности
Intel SGX Энклавы в адресном пространстве процесса bare-metal/VM, on-prem Мелкозернистая модель, страница EPC; традиционно — DCAP/EPID/EC-аттестация
Intel TDX Изоляция целой гостевой VM (TD-VM) облака/виртуализация Шифр. память VM, ограничение привилегий VMM; аттестация «всей ВМ»
AMD SEV-SNP Шифрование памяти VM с проверкой целостности облака (KVM) «Госте-ориентированная» изоляция; SNP-аттестация
ARM CCA (Realm) Реалмы в аппаратной модели ARMv9 edge/мобайл/сервер Аппаратные реалмы вне NS/secure worlds; аттестация realm
AWS Nitro Enclaves Изолированные окружения на базе Nitro AWS Виртуализационный TEE без доступа в сеть/диск, обмен через vsock
TPM (не TEE) Дискретный модуль доверия ПК/серверы Хранение ключей/измерения загрузки (PCR); не исполняет ваш код «внутри»

*Важно:* TPM — это корень доверия и хранилище ключей, а не среда выполнения. HSM — тоже не TEE (защищённые ключи, но не ваш процесс).

Как TEE обеспечивает конфиденциальность и целостность

  • Шифрование памяти (per-VM/per-enclave keys) и защита от чтения хостом/DMA.
  • Измеренная загрузка: вычисляется хэш (меры) кода/конфига, который попадает в отчёт аттестации.
  • Изоляция от VMM/ядра: гипервизор видит «гостя» как чёрный ящик; управляет ресурсами, но не содержимым.
  • Sealing: локальное шифрование артефактов «на диск»/в хранилище с привязкой к идентичности TEE.

Аттестация 101: что проверяют внешние системы

Аттестация — это протокол, по которому TEE формирует отчёт (quote/report), подписанный аппаратным корнем доверия. Этот отчёт содержит:

  • Платформенные измерения и идентификаторы (версия микрокода/фьюзы/сертификаты).
  • Меры гостя: хэш образа/инициирующего кода, значения политики (например, флаги «без отладки»).
  • Challenge/nonce от верификатора, чтобы исключить повтор.

Далее верификатор проверяет цепочку сертификатов производителя (или облачного аттестационного сервиса), сверяет меры/политику, и при соответствии выпускает сессионные секреты (ключи/токены), шифруя их под ключ TEE.

Типовой поток:

  1. Приложение в TEE генерирует CSR/ключ и запрашивает quote.
  2. Отправляет quote в attestation service (вендор/облако/собственный верификатор).
  3. Верификатор проверяет подпись/флаги/меры, сопоставляет с политикой.
  4. Если OK — выдаёт attestation token (JWT/COSE/вендорный формат) или секрет, зашифрованный для TEE.
  5. Приложение в TEE использует секрет (TLS, доступ к БД, расшифровка весов).

Политики выпуска секретов

  • «production mode only»: отладка/трассировка выключены.
  • MRENCLAVE/мера образа совпадает со списком разрешённых.
  • Anti-rollback: минимальные версии микрокода/схем.
  • Geo/валидаторы: секреты выдаются только в определённых регионах/кластерах.

Аттестационные токены и сервисы (концептуально)

  • SGX DCAP / ECDSA quotes: цепочка до Intel Root; в облаках — прокси-сервис провайдера.
  • TDX: quote для всей ВМ; политика на образ/загрузчик/включённые устройства.
  • SEV-SNP: report с полем guest_svn и хешем; проверка у AMD/облака.
  • ARM CCA: realm-report и провайдерские верификаторы.
  • Nitro Enclaves: AWS ATS (KMS policy «key for enclave attestation»), выпуск данных через KMS под аттестованный identity.

Форм-факторы: COSE/JWT (удобно в веб-интеграциях), двоичные вендорные структуры, x.509 расширения для привязки к TLS (mTLS с подтверждением TEE).

Sealing, ключи и «запечатанные» артефакты

Sealing — локальное шифрование данных (веса модели, токены, кэши) ключом, привязанным к идентичности TEE (мера/политика/платформа). Это даёт:

  • Отсечку хищения дисков (без TEE расшифровки нет).
  • Привязку к версии: sealed-данные читаются только «в совместимой конфигурации».

Практика: храните sealed-веса/секреты в объектном хранилище; при старте TEE проходит аттестацию и сам раскрывает секреты, не выдавая их наружу в явном виде.

Measured boot vs secure boot vs TPM

  • Secure boot проверяет подписи загрузчика/ядра.
  • Measured boot *измеряет* каждый этап и сохраняет хэши в PCR (TPM), что позже можно предъявить.
  • TEE-отчёт содержит меры гостя и платформы, являясь «срезом» доверия на момент выдачи.

Комбинация полезна: secure boot → measured boot → TEE attestation.

Как TEE помогает ИИ/LLM-нагрузкам

  • Защита весов модели (коммерческая тайна) и промптов от админов/соседних арендаторов.
  • Выпуск API-ключей и доступов к источникам (RAG-хранилища) только после аттестации (policy-based key release).
  • Шифрование KV-кэша и изоляция prefill-кэша в памяти TEE; исключаем «шаринг» между уровнями доверия.
  • mTLS-идентичность «модель-как-сервис»: клиент убеждается, что общается с аттестованной сборкой.
  • Честное «не знаю» и guardrails остаются необходимы: TEE не лечит инъекции/утечки/supply-chain.

Где TEE лучше, а где — FHE/SMPC/zkML

Задача TEE (Confidential Compute) FHE/SMPC/zkML
Защита от админов/гипервизора при разумной латентности Сильная сторона: нативная скорость FHE/zk — слишком медленно в генерации; SMPC — сеть/кворум
Доказуемость корректности вычислений третьим лицам Аттестация ≠ доказательство результата zkML выигрывает (SNARK/STARK)
«Один-провайдер» без кворума Работает «в одиночку» SMPC требует несколько сторон
Приватность входов/весов «абсолютно» Хорошо, но доверяем кремнию FHE даёт «шифрованную» математику
Массовый LLM-чат с длинными окнами Практичен (в рамках SLO) FHE/SMPC — точечно, гибридом

См. также обзор: Privacy-preserving AI.

Паттерны интеграции TEE в LLM-стек

1) Attested Key Release (AKR) для RAG

  • Индекс/БД выдают токен/доступ только при предъявлении валидного attestation-токена.
  • Политика привязывает доступ к «модели X, сборке Y, флагам Z, региону R».
  • Ответы LLM ссылаются на источники (см. retriever, vector index); источники читаются через attested-канал.

2) Sealed Weights

  • Веса LLM/адаптеров (LoRA) лежат в хранилище в запечатанном виде.
  • При старте enclave получает ключ через AKR, локально расшифровывает и хранит в защищённой памяти.

3) Attested mTLS

  • Сертификат TLS включает расширение/подпись на attestation-токен.
  • Клиент проверяет не только x.509, но и политики enclave (production, no-debug).

4) Изоляция кэшей

  • Prefill/KV кэши разделяются на уровни доверия; запрет переиспользования префиксов между разными клиентами/ключами.

5) Observability без утечек

  • Логируйте метаданные (время, p95, токены), но не сырой контент (уменьшаем PLR).

Производительность и стоимость

  • Накладные расходы TEE: шифрование памяти, переходы в/из enclave, ограничения на системные вызовы.
  • Виртуализационные TEE (TDX/SEV-SNP/Nitro) обычно лучше масштабируются для LLM-сервисинга, чем «процессные» энклавы.
  • Планирование (см. model serving): учитывайте p95/p99, tokens/s, давление на память (KV), NUMA/пиннинг, эффективный paged KV.

Безопасность: что TEE не решает

  • Логический уровень приложения: jailbreak-промпты, небезопасное использование инструментов, выдача PII.
  • Side-channels (временные/кэши/контеншн): снижаются планировщиком/шумом/пинингом, но не исчезают.
  • Качество модели: галлюцинации, отсутствие цитирования (нужны evals и guardrails).
  • Supply-chain: заражённые веса/адаптеры (см. model poisoning); требуются подписи артефактов.

Практический чек-лист (прод)

  • Аттестация:
    1. Определите политику (меры, флаги, регионы, версии).
    2. Схема AKR: KMS/выпуск секретов только по валидному attestation-токену.
    3. mTLS с привязкой к аттестации; ротация ключей/сертификатов.
  • Данные/веса:
    1. Sealed хранение; подписанные артефакты; контроль целостности на загрузке.
    2. Разделение кэшей и запрет «шаринга» префиксов между клиентами.
  • Пайплайн:
    1. Guardrails на ввод/вывод; политика «данные ≠ инструкции» для RAG.
    2. Лимиты токенов/времени; контроль инструментов (JSONSchema, белые списки).
  • Наблюдаемость:
    1. Метрики p50/p95/p99, tokens/s, KV-footprint, отказ/принятие запросов.
    2. Без «сырых промптов» в логах; алерты на рост PLR/ASR (см. Evals).
  • Процессы:
    1. Регулярные security-evals (prompt-инъекции, leakage, supply-chain).
    2. Процедура отката версии и отзыв ключей при инцидентах.

Анти-паттерны

  • «TEE = можно не думать о приложении». Нет: логика безопасности и валидации обязательна.
  • «Сырые ключи в образе». Любые секреты должны приходить после аттестации.
  • «Общий KV-кэш для всех». Это риск утечки между клиентами.
  • «Отладочный режим в проде». Запретите debug-флаги; добавьте в политику.
  • «Не подписываем веса/LoRA». Supply-chain остаётся большой угрозой.

Как проверять и оценивать (evaluation)

  • Security-evals:
    1. ASR на prompt-инъекции (прямые/косвенные, RAG-инъекции).
    2. PLR на самораскрытие промптов/секретов.
    3. Тест на AKR-политику: попытки получить секрет без валидной аттестации.
    4. Проверки на «debug-режим»/rollback.
  • Performance:
    1. Измеряйте влияние TEE на p95, throughput, tokens/s; отдельно prefill/decode.
    2. Отслеживайте footprint KV в ограниченной памяти энклавы/гостя.
  • Observability-гигиена:
    1. Никаких сырьевых промптов/секретов в телеметрию; только агрегаты/хэши артефактов.

Часто задаваемые вопросы (FAQ)

Это «железная» безопасность?

TEE снижает риски на уровне хоста/гипервизора, но не отменяет уязвимости приложений и побочные каналы. Используйте вместе с guardrails и evals.

Можно ли хранить веса целиком в TEE?

Да, через sealed-артефакты + AKR. Если веса велики — используйте потоковую расшифровку и подкачку, учитывая память и p95.

Какой TEE выбрать для LLM-сервиса?

Для кластерной эксплуатации — виртуализационные TEE (TDX/SEV-SNP/Nitro). Для edge/ARM — CCA. SGX уместен для изолированных функций/секций.

Отличается ли аттестация от обычного TLS?

TLS доказывает «владение ключом». Аттестация доказывает конфигурацию исполнения (меры, флаги). В паре (mTLS+attestation) доверие заметно выше.

Защитит ли TEE от утечки промптов?

TEE защитит хранение/исполнение, но не «болтливость» модели. Нужны политики против prompt leakage и фильтры вывода.

FHE/SMPC не лучше?

Их сильные стороны — крипто-приватность и/или верифицируемость, но накладные расходы высоки. TEE — практичный компромисс для прод-нагрузок сегодня. См. обзор.

Мини-глоссарий

  • TEE — аппаратно поддерживаемая доверенная среда выполнения.
  • Enclave/Realm/TD-VM — экземпляры изолированного окружения в разных реализациях.
  • Attestation (удалённая аттестация) — проверяемый отчёт о платформе/коде/политике.
  • Sealing — шифрование артефактов с привязкой к идентичности TEE.
  • Measured boot — накопление хэшей загрузки для доказуемости.
  • AKR (Attested Key Release) — выпуск секретов по политике аттестации.
  • Production/No-Debug — флаги, запрещающие отладку/трассировку.
  • Root of Trust — крипто-основание для подписи отчётов.

См. также

Task Runner