ORAM в облачном хранилище и защищенных процессорах
Изучите применение ORAM в доверенных средах выполнения (SGX, TrustZone) и зашифрованных облачных базах данных.
«ORAM в облачном хранилище и защищенных процессорах» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.
Intel SGX и утечка шаблона доступа
Intel SGX (Software Guard Extensions) предоставляет аппаратно изолированные анклавы, в которых код и данные шифруются и снабжаются аутентификацией. Однако OS по-прежнему может наблюдать, к каким страницам памяти обращается анклав, отслеживая записи таблиц страниц. Этот шаблон доступа на уровне страниц можно использовать в атаках по побочным каналам. Классическим примером является «атака с управляемым каналом» Xu, Cui и Peinado (2015), в ходе которой были восстановлены ключи RSA по шаблонам обращений SGX к памяти.
Побочные каналы по времени работы кэша в SGX
Помимо шаблонов доступа на уровне страниц, SGX уязвим к побочным каналам по времени работы кэша. Атакующий, использующий тот же процессор, может наблюдать попадания и промахи кэша, вызванные анклавом, и восстанавливать мелкодетализированные шаблоны доступа на уровне строк кэша. Эти атаки возможны потому, что кэш CPU является общим для анклава и недоверенного кода. Меры защиты включают программирование с постоянным временем выполнения и ORAM для рандомизации шаблонов обращений к памяти.
ZeroTrace: ORAM внутри SGX
ZeroTrace (Sasy, Jha, Kerschbaum, 2018) реализует Path ORAM внутри анклава Intel SGX, обеспечивая скрытие обращений к памяти. Недоверенная OS хоста предоставляет сервер ORAM (двоичное дерево корзин), а анклав SGX выступает клиентом ORAM. В ZeroTrace добавлена оптимизация, специфичная для SGX: карта позиций хранится внутри анклава (в доверенной памяти), благодаря чему рекурсивный ORAM для карты позиций не требуется.
Интеграция ORAM в Graphene-SGX и SCONE
Graphene-SGX (теперь Gramine) и SCONE — это каркасы контейнеров SGX, позволяющие запускать неизменённые приложения Linux внутри анклавов. Оба каркаса были расширены поддержкой ORAM для скрытия шаблонов доступа от OS. SCONE с интеграцией ORAM позволяет выполнять программы на Python, Go и Java в SGX без изменения кода, благодаря чему приложения могут использовать ORAM без ручной интеграции.
Shroud: структуры данных со скрытием доступа для SGX
Shroud (Volos, Jaleel, Emer, Burtscher, Forlin, 2018) реализует версии фундаментальных структур данных со скрытием доступа — массивов, стеков, очередей и отображений — для использования внутри анклавов SGX. Shroud сочетает ORAM и алгоритмы, не зависящие от данных, чтобы шаблоны обращений анклава к памяти не зависели от значений данных. Это эффективнее, чем применять ORAM ко всей памяти приложения, поскольку защищаются только чувствительные структуры данных.
AWS Nitro Enclaves и конфиденциальность памяти
AWS Nitro Enclaves предоставляют изолированные вычислительные среды для обработки особо чувствительных данных, например номеров платёжных карт и медицинских записей. В отличие от SGX, Nitro Enclaves обеспечивают изоляцию на уровне виртуальной машины, а не процесса. AWS по умолчанию не предоставляет ORAM в Nitro Enclaves, однако гарантии конфиденциальности распространяются на содержимое памяти. Для защиты конфиденциальности шаблонов доступа приложениям, работающим в Nitro Enclaves, необходимо самостоятельно реализовать ORAM, если это требуется.
Применение ORAM в ARM TrustZone
ARM TrustZone предоставляет доверенную среду выполнения (защищённый мир), изолированную от обычной OS. Как и SGX, TrustZone изначально не скрывает шаблоны обращений к памяти. Исследовательские системы, такие как TrustORAM (Brasser, Dmitrienko, Sadeghi, Crane, Larsen, Franz), реализуют ORAM внутри TrustZone для защиты доступа к чувствительным данным на мобильных устройствах и устройствах интернета вещей. TrustZone присутствует во всех современных процессорах ARM, поэтому TrustZone с поддержкой ORAM можно широко развёртывать.
ObliDB и Opaque: базы данных со скрытием доступа
ObliDB (Eskandarian and Boneh, 2017) — это база данных со скрытым шаблоном доступа для стандартных запросов SQL. Она использует ORAM для точечных запросов и сортировку со скрытием доступа для запросов по диапазону. Opaque выполняет запросы SQL со скрытием шаблона доступа поверх Apache Spark, используя Intel SGX и ORAM. Opaque демонстрирует, что аналитику данных промышленного масштаба, включающую миллионы записей, можно выполнять с накладными расходами ORAM.
Приватный поиск информации
Private Information Retrieval (PIR) — это родственный примитив для сокрытия шаблона доступа при чтении. PIR позволяет клиенту получить элемент базы данных, не раскрывая серверу, какой именно элемент был получен. Вычислительный PIR (cPIR) обеспечивает это при накладных расходах на хранение на сервере O(1) и объёме обмена данными O(sqrt(n)) или O(polylog n). PIR эффективнее ORAM для рабочих нагрузок только на чтение, но не поддерживает скрытые операции записи.
Компромиссы между ORAM и PIR
При доступе только для чтения PIR эффективнее ORAM по объёму обмена данными: односерверный cPIR требует обмена объёмом O(n^epsilon), тогда как ORAM требует O(log n) блоков при каждом обращении. Однако PIR требует вычислений на стороне сервера (для односерверного PIR их объём линейно зависит от размера базы данных), тогда как ORAM выполняет все вычисления на клиенте. Многосерверный PIR (информационно-теоретически безопасный при наличии двух не вступающих в сговор серверов) очень эффективен и подходит для развёртывания в CDN.
Перспективные направления развития ORAM
К направлениям исследований в области ORAM относятся: уменьшение накладных расходов на обмен данными до теоретической нижней границы O(log n) (OptORAMa асимптотически достигает этого показателя), ORAM для квантовой RAM (QRAM), ORAM с дифференциальной приватностью (скрывающий факт двукратного обращения к одному и тому же блоку) и ORAM в гомоморфном шифровании (FHE-ORAM для вычислений с вынесением на внешнюю сторону). Интеграция ORAM с аппаратными доверенными средами выполнения остаётся наиболее значимым с практической точки зрения направлением исследований.
Проверка знаний: шаблон доступа в SGX
Почему одного только Intel SGX недостаточно для полной защиты от утечки шаблона доступа?
Итоги: ORAM в облачном хранилище и защищённых процессорах
Intel SGX допускает утечку шаблонов доступа на уровне страниц и кэша, что делает возможными атаки с управляемым каналом и атаки по времени работы кэша. ZeroTrace реализует Path ORAM внутри SGX, устраняя эти утечки. Graphene-SGX и SCONE обеспечивают интеграцию ORAM на уровне контейнеров. ObliDB и Opaque демонстрируют выполнение SQL-запросов со скрытием доступа поверх ORAM в промышленных масштабах. PIR является эффективной альтернативой для доступа только на чтение. Исследования ORAM продолжаются в направлении нижней границы объёма обмена данными log n и интеграции с гомоморфным шифрованием.
Часто задаваемые вопросы
Урок «ORAM в облачном хранилище и защищенных процессорах» бесплатный?
Да — полный текст урока «ORAM в облачном хранилище и защищенных процессорах» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.
Чему я научусь в уроке «ORAM в облачном хранилище и защищенных процессорах»?
Изучите применение ORAM в доверенных средах выполнения (SGX, TrustZone) и зашифрованных облачных базах данных. Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cryptology Academy?
Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «ORAM в облачном хранилище и защищенных процессорах»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cryptology Academy?
Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Угроза утечки шаблонов доступа
- Path ORAM: сокрытие доступа к памяти
- Circuit ORAM и практическая производительность
- ORAM в облачном хранилище и защищенных процессорах