2014-08-27 4 views
4

Я заинтересован в использовании Mylar для предстоящего проекта.Может ли Майлар быть взломан?

Обещания, которые Mylar делает впечатляющими. Тем не менее, может ли разработчик написать обратную атаку в код, который разрешен для запуска (проверяется хешей/сигнатурой), чтобы данные были скомпрометированы (вероятно, через XSS)? Майларовая документация говорится:

«Майларовый гарантирует, что код на сторону клиента приложения является подлинным, даже если сервер злостно»

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

Является ли Mylar в состоянии обеспечить полную защиту данных даже от администратора приложения/сервера?

Вот претензии майлара (от http://www.mit.edu/~ralucap/mylar.pdf):

3,4 Угроза модель

угрозы. И приложение, и серверы баз данных могут полностью контролироваться противником: противник может получить все данные с сервера, заставляя сервер отправлять произвольные ответы на веб-браузеры и т. Д. Эта модель включает в себя широкий спектр приложений реального времени, мировой безопасности проблемы, от ошибок в серверном программном обеспечении до инсайдерских атак. Mylar также позволяет некоторым игровым машинам управлять противником и скрыть с сервером. Это может быть либо потому, что противник является пользователем приложения , либо потому, что противник ворвался в машину пользователя . Мы называем этого противника активным, в отличие от пассивного противника, который подслушивает всю информацию на сервере, но не вносит никаких изменений, так что сервер отвечает на все запросы клиента , как если бы он не был скомпрометирован.

Гарантии. Mylar защищает конфиденциальность элемента данных перед лицом произвольных компрометаций сервера, если ни один из пользователей с доступом к этому элементу данных не использует скомпрометированную машину.

В этом контексте «скомпрометированный компьютер» означает клиентскую машину/браузер.


После повторного прочтения Mylar white paper, я вижу, где в документе говорится:

Предположения. Для обеспечения вышеуказанных гарантий, Mylar делает следующими предположениями. Майлар предполагает, что веб-приложение как , написанное разработчиком, не отправит пользовательские данные или ключи на ненадежных получателей, и не может быть обмануто при использовании , использующих ошибки (например, межсайтовые скрипты).Наш прототип Mylar построен поверх Meteor, рамки, которая помогает программистам избегать многих распространенных классов ошибок на практике.

Означает ли это, как приложение было написано во время шифрования или во время атаки? Другими словами, зашифрованные данные каким-то образом привязаны к определенной версии кода приложения? В другом месте в referenced Mylar white paper это указывает на то, что код приложения проверяется против хэш-сигнатуры.

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


Дополнительную информацию см. Также в разделе 6 в техническом документе. Я полагаю, что документ Mylar сообщает, что он смягчает скомпрометированные атаки кода приложения. Мне бы очень хотелось услышать от дева с авторитетным пониманием Майлара.

+0

Grubbs (2017): Почему Ваш Зашифрованные базы данных не является безопасным: https://eprint.iacr.org/2017/468.pdf – asmaier

ответ

3

... мог DEV написать обратно-дверную атаку в код, который может быть запущен (проверяется хэш/подпись), так что данные скомпрометированы (вероятно, через XSS)?

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

3 MYLAR АРХИТЕКТУРА

Есть три разные партии в лавсановой: пользователи, владелец веб-сайта, и оператор сервера. Целью Mylar является помочь владельцу сайта защитить конфиденциальные данные пользователей перед лицом злонамеренного или взломанного оператора сервера.

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


Майларовый документации говорится: «Майларовый гарантирует, что код на стороне клиента приложение является подлинным, даже если сервер является вредоносным.»

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

Является ли Mylar в состоянии обеспечить полную защиту данных даже от разработчика приложения/сервера?

Это верно, браузер не отправляет расшифрованные данные на сервер (по крайней мере, данные, которые вы отметили в тайне). Я не могу дать полное объяснение того, как он позволяет использовать большой набор функций SQL для зашифрованных данных, потому что это сложно. As Raluca Ada Popa explains in one of her presentations, данные шифруются несколько раз с использованием разных алгоритмов, поскольку каждый алгоритм позволяет выполнять различные операции с зашифрованными данными (проверка равенства, упорядочение, текстовый поиск, ...). Институт MIT также разработал CryptDB, который использует ту же методологию, но только защищает сервер базы данных.


3,4 Угроза модель: Оба приложения и серверы баз данных могут быть полностью контролируется противником [...]

Когда злоумышленник контролирует сервер приложений, он мог бы обменять все приложение своим собственным, что издевается над оригинальным пользовательским интерфейсом. Здесь идет плагин браузера: приложение подписывается владельцем веб-сайта до его развертывания, так что плагин для браузера может проверить подпись и предупредить пользователя, если приложение было изменено.

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

  • Приложения Mylar должны быть загружены через безопасное соединение HTTPS.
  • Полученные данные должны быть подписаны ожидаемым пользователем (например, в комнате чата должно быть указано, кто ее создал, и пользователь должен проверить, пытается ли кто-нибудь подделать существующую комнату).
  • Клиентская машина не должна подвергаться риску.
  • ...

Майларовый предполагает, что веб-приложение, как написано разработчиком не будет посылать пользовательские данные или ключи ненадежных получателей, и не может быть обманут делать это, (например, межсайтовый скриптинг).

Означает ли это, как приложение было написано во время шифрования или во время атаки?

Предполагается, что приложение, поставляемое, не содержит ошибок, которые могут привести к утечке частных данных. Mylar не предотвращает ошибки кодирования, впоследствии он предотвращает ненадежные модификации.

Другими словами, зашифрованные данные каким-то образом привязаны к конкретной версии кода приложения? В другом месте в referenced Mylar white paper это указывает на то, что код приложения проверяется против хэш-сигнатуры.

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

Зашифрованные данные не привязаны к определенной версии. Каждая версия приложения должна быть подписана владельцем веб-сайта, так что плагин браузера может проверить его подпись, и атаки будут очевидны для пользователей. Обычный динамический веб-сайт не позволит подписать, поскольку каждый пользовательский данные отличаются и будут изменять полученный код, поэтому код приложения (HTML, JavaScript, ..) и данные строго разделены. После загрузки приложения и проверки его подписи данные извлекаются через AJAX, тогда как ответ AJAX не должен содержать исполняемый код (это часть Meteor framework, я ничего не могу сказать об этом).


Заключение

  • Если владелец веб-сайта сам нечестно, вы не можете быть уверены в конфиденциальности. Это особенно важно, если правительства могут заставить владельца веб-сайта сотрудничать.
  • Также Mylar не предотвращает ошибок, которые могут привести к утечке данных. Например, самая простая ошибка заключается в том, что разработчик забыл отмечать поле как личное.
  • Когда злоумышленник настигает сервер приложений, пользователи предупреждаются, но если они игнорируют его (например, они не устанавливают плагин браузера), их данные могут быть перехвачены.
  • Если вы хотите получить аутсорсинг хостинга своего приложения или не доверяете своим собственным операторам сервера, Mylar обеспечивает лучшую безопасность, чем любая другая инфраструктура. Я знаю.
+0

Давайте предположим, что приложение кода прошло QC, подписан, и хранит данные, зашифрованные ; позже хакер получает полный контроль над сервером и изменяет код для включения и атаки XSS или, иначе, приложение запускается, хак делает работу, а данные украдены. Возможна ли эта сценария? Извините, это та часть, о которой я все еще смущаюсь. Наверное, я спрашиваю, как плагин браузера понимает, что приложение было законно изменено против взломанного? – RogerRoger

+0

@RogerRoger У злоумышленника нет ключа для его подписания, поэтому приложение становится либо без знака, либо использует старый знак, который теперь недействителен. (Знак похож на контрольную сумму кода, меняет один символ, и вы получите еще одну контрольную сумму.) Оба случая будут обнаружены плагином браузера. Но злоумышленник может украсть данные пользователей, которые не используют плагин. –