Рейтинг:17

Насколько уникален «NeuralHash»?

флаг gn

Сегодня я читал о том, что крупная технологическая компания планирует внедрить новую систему для автоматического обнаружения и сообщения о CSAM на фотографиях пользователей. В целом, система, описанная в их 12-страничном техническом описании, кажется, разработана довольно хорошо и может быть максимально приближена к настоящей конфиденциальности, но при этом позволяет осуществлять наблюдение за контентом.

При этом хакер во мне не может не чувствовать себя немного встревоженным, когда слышит об исключениях из того, что в противном случае могло бы быть сквозным шифрованием (не то, чтобы их хранилище фотографий рекламировалось как сквозное шифрование для начала). с, однако их технический обзор говорит, что все фотографии зашифрованы с помощьюпорог бьющийся– ключ, сгенерированный случайным образом устройством пользователя). Поэтому я пришел сюда, чтобы обрисовать то, что я вижу как наиболее реалистичную атаку на криптографическую стойкость/гарантии конфиденциальности этой системы, и (надеюсь) понять, почему я ошибаюсь или что я упустил из виду.


Предположим, что эта компания когда-либо терпит утечку данных: маловероятная ситуация для начала, но не неслыханная. В результате этой утечки данных происходит утечка фотографий многих пользователей (в зашифрованном формате).Если бы существовало настоящее сквозное шифрование, это не было бы серьезной проблемой конфиденциальности, так как все фотографии были бы зашифрованы с помощью ключа, известного только устройствам конечных пользователей, и, следовательно, никто не мог бы реально их расшифровать. Интернет.

Однако в этой новой системе, как я понимаю, фотографии или, по крайней мере, их визуальные производные (для которого я не мог найти определение, хотя Я предполагаю, что похож на эскизы), шифруются дважды, причем внешний слой шифруется ключом, полученным из NeuralHash фотографии.

NeuralHash описывается как алгоритм хеширования, способный предоставить один и тот же хэш для одного и того же изображения, даже после того, как это изображение подверглось обрезке, изменению размера, корректировке цвета, сжатию и т. д.

Чтобы процитировать часть технического резюме:

Основная цель хэша — гарантировать, что идентичные и визуально похожие изображения приведут к одному и тому же хешу, а изображения, отличающиеся друг от друга, приведут к разным хэшам. Например, изображение, которое было слегка обрезано или изменено в размере, должно считаться идентичным оригиналу и иметь тот же хэш.

Теоретически это здорово, потому что это означает, что все (предположительно уникальные) фотографии, сделанные пользователями, будут зашифрованы надежными уникальными секретами, что сделает их конфиденциальными и безопасными.

Но что происходит, когда пользователь сохраняет фотографию, которая не уникальна? Например, скриншот с популярного веб-сайта, циркулирующий в Интернете мем и т. д.? Что может помешать злоумышленнику сгенерировать NeuralHash популярных мемов, получить ключ, а затем взломать просочившиеся данные до тех пор, пока он не расшифрует запись, тем самым проверив содержимое в облачной библиотеке фотографий конкретного пользователя и понизив их уровень конфиденциальности?

Или, например, злоумышленник любит яблоки, и очень-очень хочет найти фотографии яблок.Что помешает им заставить ИИ сгенерировать несколько миллионов фотографий яблока, хешировать их, получить ключи, а затем перебрать предположительно большую утечку, пока не найдет совпадение? Не может быть что много перестановок яблока, может там? Конечно, вы не найдете все фотографии яблок, но я думаю, что вы сможете, по крайней мере, получить некоторый расшифровываемые совпадения.

Сама эта компания даже раскрывает в одном из своих документов, что существует ненулевая вероятность ложных срабатываний, когда речь идет о совпадениях, и что поэтому они ввели пороговое разделение секрета (т.е. необходимость иметь несколько совпадений с их «заведомо плохими» "база данных до того, как их внутренний уровень шифрования может быть взломан... подробнее об этом далее), чтобы снизить вероятность ложных срабатываний до одного на триллион. Вероятность ложноположительного совпадения на любой заданной фотографии значительно меньше, чем один из триллиона, для меня это звучит в пределах диапазона грубой силы, особенно если вы уже знаете, какой тип фотографии вы ищете.

И последнее замечание: существует внутренний уровень порогового шифрования, который в основном требует, чтобы внешние слои нескольких фотографий были расшифрованы до того, как можно будет создать ключ для расшифровки внутреннего слоя. Но опять же, в зависимости от порогового размера (который должен быть довольно низким, поскольку он должен быть меньше, чем реальное количество CSAM, которое может быть у кого-то), это не кажется большим препятствием: вам просто нужно найти пользователь, у которого есть, скажем, десять общих мемов, хранящихся во всей библиотеке облачного хранилища фотографий, и теперь вы создали этот ключ. Согласно статье, этот же ключ используется во всех все фотографий пользователя для этого первого уровня шифрования.

В конце концов, я вижу, что гарантии безопасности и конфиденциальности этой системы в случае утечки данных зависят от одного главного: NeuralHash.

Если NeuralHash имеет достаточно высокий уровень ложных срабатываний и может быть подвергнут обратному проектированию, утечке или обнародованию (если это еще не сделано), то может ли эта крупная технологическая компания действительно гарантировать своим пользователям, что их личные фотографии будут безоговорочно сохранены? частные, если они не CSAM? Какие криптографические средства защиты я упустил из виду, что делает атаки, подобные описанным выше, невозможными? Что мне не хватает? Видите ли вы какие-либо другие потенциальные недостатки?


Обновление: я не был уверен, считается ли это приемлемым или нет, чтобы конкретно назвать компанию, поэтому я решил ошибиться из-за осторожности и не делать этого. При этом я видел несколько комментариев с просьбой указать источник, поэтому вот. Надеюсь, это поможет!


Добавление модератора (19 августа 2021 г.): Технические подробности у Абхишека Бхоумика, Дэна Бонеха, Стива Майерса: Система Apple PSI — протокол безопасности и анализ. Это один из нескольких документов, которые теперь связаны внизу эта страница.

Noah avatar
флаг gn
@fgrieu Тот факт, что они не полностью достигнуты, является недостатком, который я пытаюсь подчеркнуть, и причиной, по которой я выражаю обеспокоенность по поводу того, что шифрование фотографий пользователей потенциально может быть взломано. Что касается «того же хэша», который не является равным хешем, разве он не должен быть равным хэшем? Если компания хочет иметь возможность успешно расшифровывать образы CSAM для ручной проверки, ей нужно иметь равный хэш для получения ключа дешифрования, верно? Кроме того, на странице 5 показаны два примера изображений, которые отличаются друг от друга, но похожи внешне и помечены одним и тем же значением NeuralHash.
fgrieu avatar
флаг ng
Я не вижу, чтобы (неизбежные) небольшие недостатки NeuralHash сделали недействительными заявления о конфиденциальности, если (правдоподобные) заявления о низком уровне ложных срабатываний остаются в силе. Кажется, что такие несовершенства в основном приводят к увеличению вероятности необнаружения. Очевидно, что изменение программного обеспечения, выполняющего анализ, или базы данных хэшей, занесенных в черный список, может привести к нарушению конфиденциальности. Я оставляю за собой свое мнение о том, что еще может.
Noah avatar
флаг gn
@fgrieu Компания заявляет, что «порог выбран для обеспечения чрезвычайно низкой (1 из 1 триллиона) вероятности неправильной пометки данной учетной записи». Допустим, порог равен 9, это означает, что вероятность того, что случайная фотография, загруженная пользователем, будет ошибочно помечена как CSAM (происходит ложное срабатывание), составляет примерно 1 к 100 миллиардам. Мне кажется, что с достаточно большой коллекцией просочившихся данных (или, возможно, доступом к данным со стороны правительства) и использованием ИИ для создания целой кучи *целевых* фотографий, фотографии *неизвестных* пользователей могут быть реалистично взломаны. .
флаг th
Когда я фотографирую людей, я обычно делаю серию фотографий, а потом выбираю лучшие из них. Я предполагаю, что NeuralHash этих фотографий будет одинаковым (если хэш устойчив к обрезке, это будет похоже). Интересно, тот же NeuralHash способствует пороговой схеме расшифровки.
Tom K. avatar
флаг cn
Не могли бы вы объяснить, почему процитированная часть технического резюме подразумевает что-либо об используемых секретах? Я прочитал эту часть и следующую несколько раз, и я действительно не уверен, как это должно работать. Когда вы говорите: «Что остановить...?». Не могли бы вы уточнить процедуру, которую должен пройти злоумышленник?
Noah avatar
флаг gn
@johnflan Это действительно хороший вопрос! Я *надеюсь*, что компания примет это во внимание, иначе одно ложное срабатывание в виде серийной фотографии может само по себе привести к потенциальному блокированию учетных записей... в зависимости от процедуры и точности ручной проверки.
Noah avatar
флаг gn
@ТомК. Очень упрощенно, фотографии зашифрованы их NeuralHash. Поэтому, если злоумышленник может угадать, как должна выглядеть фотография, он может сгенерировать целую кучу фотографий, пока в конечном итоге не сгенерирует одну, достаточно похожую для создания того же NeuralHash. Затем они могут использовать тот же NeuralHash для расшифровки исходной фотографии. Так, например, если кто-то хочет отсканировать просочившиеся данные на наличие обнаженных тел, он может использовать ИИ для создания тысяч поддельных обнаженных фотографий, а затем попытаться использовать эти хэши для расшифровки просочившихся данных, пока они не смогут расшифровать чье-то настоящее обнаженное тело. Это ответило на ваш вопрос?
G. Maxwell avatar
флаг fr
Они не зашифрованы с помощью NeuralHash, NeuralHash используется в частном пересечении наборов. Смотрите мой ответ ниже!
Tom K. avatar
флаг cn
Вы должны действительно подчеркнуть эту часть. Изображения не шифруются их хешем в качестве ключа. Это было бы новостью для меня.
lindsaymacvean avatar
флаг is
Эта новостная ссылка ycombinator https://news.ycombinator.com/item?id=28105849 приводит к большому фрагменту кода, показывающему доказательство концепции атаки грубой силы для алгоритмов, подобных NeuralHash https://gist.github.com/unrealwill/c480371c3a4bf3abb29856c29197c0be
Рейтинг:9
флаг fr

Протоколы пересечения частных наборов являются интерактивными. Вы сравниваете с конкретной базой данных, а затем, после завершения протокола, единственное, что узнали на перекрестке. Если перекресток пуст, то ничего не изучается. Предполагая, что протокол составлен правильно, сохраненная стенограмма не позволит узнать что-либо позже.

Однако ваше повторение заявления Apple о том, что она защищает конфиденциальность, кажется ошибочным. Криптографический протокол здесь абсолютно не служит цели конфиденциальности пользователя. Конфиденциальность пользователя была бы лучше защищена очевидной наивной схемой Apple, отправляющей пользователю список запрещенных хэшей, и клиентским программным обеспечением, сообщающим пользователю, есть ли совпадение: система уже критически зависит от системы пользователя, действующей против его интересов в противном случае. система пользователя может просто использовать случайные фиктивные хэши для всего, поэтому Apple может просто отправить список. Отправка списка также значительно увеличила бы пропускную способность и эффективность использования ЦП.

Вместо этого цель частного пересечения состоит не в защите конфиденциальности пользователя: оно в том, чтобы оградить Apple от ответственности, лишив пользователей возможности узнать или доказать что-либо о содержании базы данных. Он защищает конфиденциальность Apple от вас и общественности в целом.

Может ли база данных содержать популярные изображения, как вы предполагаете? Или изображения, идентифицирующие вас как представителя определенной религии, этнической принадлежности или политической идеологии, готовых стать мишенью для геноцида? Как кто-то, кто делится политическими карикатурами, критикующими тонкокожего диктатора? Может ли список тайно отличаться для разных пользователей или со временем? Могут ли хакеры или государственные деятели, которые скомпрометировали инфраструктуру Apple, или сами составители списков, тайно изменяли списки? Абсолютно, а криптография предназначена для того, чтобы сделать информацию теоретически невозможной (а не только вычислительно неразрешимой) для обнаружения или доказательства подобных злоупотреблений.

Или, по крайней мере, самые очевидные и легко конструируемые схемы ECC PSI имеют теоретико-информационную безопасность, они не дают достаточно технических деталей, чтобы знать, есть ли у них.

Типичная конструкция пересечения частных множеств предполагает построение многочлена с корнем в хэше вашего изображения. Apple отправит вам список EC-elgamal шифрования хэшей базы данных. Шифрование аддитивно гомоморфно: вы можете взять зашифрованный текст и добавить другой зашифрованный текст, и в результате получится действительное шифрование суммы открытых текстов. Вы также можете взять зашифрованный текст и умножить его на любое значение, которое вы хотите, и результатом будет действительное шифрование открытого текста, умноженное на это число.

Вы должны оценить свой полином изображения в каждой точке базы данных, а затем умножить результат на новое случайное число (разное для каждой оценки), что вы можете сделать, используя вышеупомянутые свойства сложения и умножения. Если есть совпадение, ваша оценка приводит к шифрованию нуля, а ваше умножение сохраняет шифрование нуля. Когда вы отправляете результаты обратно, они «расшифровываются» и получают либо нули (где есть совпадения), либо случайные числа. Довольно просто расширить такую ​​схему, чтобы прикрепить вспомогательные данные, которые Apple узнает только при наличии совпадений — предположительно, именно так они передают данные для расшифровки.

В любом случае такого рода мошенничество должно осуществляться в режиме реального времени, а не постфактум на зарегистрированных данных, по крайней мере, если пересечение частного множества построено правильно.

Noah avatar
флаг gn
Спасибо огромное! Это очень хорошо написанный ответ, и теперь я вдохновлен пойти и узнать больше о пересечениях частных наборов! Я оставлю вопрос открытым немного дольше, но ожидаю, что скоро приму этот ответ. Еще раз спасибо! :)
G. Maxwell avatar
флаг fr
FWIW, я создал несколько визуально привлекательных произвольных прообразов для neurohash: https://github.com/AsuharietYgvar/AppleNeuralHash2ONNX/issues/1#issuecomment-903094036
Рейтинг:5
флаг ng

Цитата вопроса о NeuralHash гласит:

Основная цель хэша — гарантировать, что идентичные и визуально похожие изображения приведут к одному и тому же хешу, а изображения, отличающиеся друг от друга, приведут к разным хэшам. Например, изображение, которое было слегка обрезано или изменено в размере, должно считаться идентичным оригиналу и иметь тот же хэш.

Это Ложь детям. Невозможно достичь того, что заявлено как цель.Существенное допущение остается невысказанным: изображения созданы не для того, чтобы победить цель. И даже тогда будут исключения.

Точнее, его можно скрафтить

  1. Ложноотрицательные результаты. Неизбежно легко показать визуально похожие изображения с разными NeuralHash. Доказательство: даны любые два визуально различных изображения. $А$ и $В$, техника, известная как трансформация создает список $n$ картинки $C_i$, с $C_1=А$ и $C_n=B$, такое, что для всех $я$ в $[1,n)$ изображения $C_i$ и $C_{i+1}$ визуально похожи в произвольной степени. Если любая пара визуально похожих изображений имеет одинаковый NeuralHash, $А$ и $В$ будет иметь тот же NeuralHash (поскольку равенство переходный), что противоречит заявленной цели. Таким образом, равенство NeuralHash для $C_i$ и $C_{i+1}$ сломан для некоторых $я$.

    Сообщается, есть даже артефакт¹, заставляющий NeuralHash иногда выдавать разные NeuralHash для одних и тех же входных данных¹ на разных машинах!

  2. Ложные срабатывания: Сообщается, можно показать два визуально разных изображения с точно тот же НейралХэш. Хуже того, начиная с изображения кошки и NeuralHash изображения собаки, сообщается, что возможно создать изображение, которое имеет NeuralHash изображения собаки, но для зрителя-человека это явно изображение кошки (хорошо, отображается с неправильным видео). водители, но как говорится приписывается АНБ идет: «Атаки всегда улучшаются; они никогда не ухудшаются».); и что немаловажно, само изображение собаки не обязательно.

    Это перцепционный хеш-эквивалент атаки первого и второго прообразов, а значит, и коллизии. Его ввод состоит из NeuralHash и несвязанного целевого изображения для перцептивной имитации.Осуществимость такой атаки заставляет держать в секрете список занесенных в черный список NeuralHashes: нет другого технического барьера, препятствующего многочисленным противникам системы завалить его ложными срабатываниями, не прибегая к манипуляциям с запрещенными изображениями.


Казалось бы правдоподобным в основном исправить 1 (и заявленный артефакт реализации), заменив «такой же» на «похожий в пределах допуска», на мотив: отличаются не более чем на $b$ биты. Однако я не думаю, что это сделано, потому что Порог PSI-AD и Нечеткий порог PSI-AD предполагаемые протоколы выполняют точные совпадения хэшей. Я считаю, что это ограничение точного совпадения сделает невозможным исправление ложных срабатываний NeuralHash в условиях враждебных предположений, при этом поддерживая, что не враждебные незначительные визуальные изменения редко изменяют NeuralHash.

Технически обойти систему с помощью NeuralHash было бы легко: я не видел, чтобы это было заявлено, но я не удивлюсь, если можно было изменить изображение, почти без каких-либо визуальных изменений, на изображение с NeuralHash, отличающимся на несколько (случайное ) бит, что позволяет избежать обнаружения. Я предполагаю, что этого конечного результата можно достичь, вставив запрещенные изображения рядом с большим. И это, безусловно, достигается шифрованием на уровне приложений и/или стеганографией.


Заключение

NeuralHash не работает так, как рекламируется, при стандартных предположениях в области криптографии и ИТ-безопасности: он общедоступен и находится под атакой. Что вероятно.

Таким образом, автоматизированная система домашней цензуры с использованием NeuralHash не может быть надежной. Его легко обойти; и он уязвим для некоторой степени отказа в обслуживании с ложными срабатываниями, если происходит утечка NeuralHashes из черного списка. Тем не менее, он может успешно сообщать о наличии некоторых запрещенных материалов и защищать их промоутеров от юридической ответственности.


¹ Предполагается, что это связано с особенностями работы с плавающей запятой.В одном приведенном примере 9 битов из 96 различаются без очевидной связи между их положением. Это кажется мне большим несоответствием. Возможно, отчет неверен, или для предварительной версии NeuralHash, или для какого-то патологического ввода. Или алгоритм численно нестабилен, известная проблема с алгоритмами глубоких нейронных сетей, полученными путем обучения: трудно (и обычно не предпринимается попыток) проанализировать, как они на самом деле работают. Если они достигли своей цели с помощью функции с большим усилением ввода/вывода или в зависимости от некоторого недополнения или усечения, алгоритм может ухудшиться при изменении некоторых деталей FPU, как это может быть функция, итерирующая логистическую карту.

fgrieu avatar
флаг ng
Это не только столкновение. Это целевой прообраз. См. 2 в [мой ответ] (https://crypto.stackexchange.com/a/93631/555).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.