24.02 // Path O-RAM - самый простой протокол памяти с забыванием
В середине восьмидесятых годов, Голдрейх и Островский в серии своих публикаций предложили концепцию "памяти с забыванием" (Oblivious RAM). Название "забывчивая" или "рассеянная" память звучит не вполне точно из-за особенности перевода этого слова. Более точное значение можно перевести как "не имеющий понятия о том, то запомнил". Изначально этот принцип задумывался в целях защиты программ от т.н. пиратства.
Понятие O-RAM может быть рассмотрено на примере его применения в защите персональных данных, главным образом при сохранении информации в облачных сервисах. Предположим, что клиент сохраняет свои данные на удалённом недоверяемом сервере или облачном сервисе. Для защиты конфиденциальности данных ему необходимо использовать шифрование. Однако, шифрование не скрывает образцы (паттерны) доступа к данным, которые представляют собой чувствительную информацию, которая становится доступной такому сервису: блоки данных и порядок доступа к ним. Подразумевается, что сервер не является доверяемым, но на клиентской стороне система полностью доверяема, включая процессор, память и диск.
Целью протокола O-RAM является полное сокрытие образцов доступа к данным (к каким блокам была произведена операция чтения/записи) от сервера. С точки зрения сервера, операции чтения/записи неотличимы от случайных запросов. Блоки — это атомарные единицы, которыми клиент проводит операции чтения/записи. В настоящее время для облачных сервисов они имеют типичное значение от 64 кб до 256 кб.
Исследователи Эмиль Стефанов и Элен Ши (Калифорнийский университет в Беркли) изучают возможности практического исполнения O-RAM. В своей недавней работе они предложили протокол Path O-RAM, который является одновременно достаточно эффективным и простым (содержит 18 строк в псевдокоде).
Этот протокол сохраняет свойства безопасности, предложенные ранее для O-RAM-протоколов. Речь идёт о возможности полного отсутствия утечки информации такого рода, как:
- К каким данным производился доступ.
- Время хранения этих данных (когда к ним последний раз был доступ).
- Являются ли эти данные такими же, к которым уже был доступ ранее (связываемость).
- Паттерны (образцы) доступа (последовательный, случайный, др.).
- При данной операции доступа производится чтение или запись.
В данном протоколе описывается простой механизм группировки блоков, производящий их псевдослучайное перемешивание в дереве. Предусматривается сохранение небольшого количества данных в кэше на стороне клиента, однако периодически эти данные обрабатываются и переходят к серверу в безопасном для клиента виде. Протокол легко может быть дополнен свойствами аутентификации и проверки актуальности данных (защита от отката данных к предыдущим состояниям со стороны сервера). Для этого клиенту достаточно сохранить одно хэш-значение вершины дерева Меркла для любого пути и проводить вычисления соответствующих деревьев.
Т.о., использование технологий "забывчивой памяти" позволяет клиенту эффективно скрывать от недоверяемых серверов характер персональных данных, с которыми производится работа в зашифрованном виде (главным образом криптоконтейнеров). Данная методика позволяет предотвращать атаки, аналогичные анализу трафика, выдачи заключения о похожести зашифрованных данных на заведомо известные образцы и во многих других случаях.
Источник: Cryptography and Security Archive