LINUX.ORG.RU

Защита от расшифровки облачного хранилища

 ,


0

1

Представим себе такую модель безопасности. Она не полностью надежна, но обладает механизмом наращивания надежности. У нас есть три действующих лица.

1) Клиент - пользователь браузера

2) Сервис - предоставляет хранилище, например профиль соцсети.

3) Хранилище ключей - сторонний сервис, который по OAuth дает доступ з различным хранилищам ключей

Задача - разрешить пользователю пользоваться сервисом, у которого полностью открытый исходный код клиента - необфусцированый JS, который гарантировано не отправляет определенные данные на сервер. Если он отправит, то автоматически теряет доверие и пользователя. С другой стороны он содержит данные на сервере и никто не может проверить как именно он их читает. Нужно обеспечить чтобы он не мог читать личные данные пользователя, которые хранит. Сервис определим как «тайно-злонамереный», он хочет читать данные пользователя, но никогда не покажет это на клиенте, исходный код которого все могут читать и будет на клиенте вести себя честно.

Решение. Пользователь хранит данные на сервисе в зашифрованом виде в формате encrypted key->encrypted value. encrypted key - или зашифрованый ключ или 0 (начальный обьект из которого видно остальные). В таком виде оно приходит на клиент. Клиент делает запрос в хранилище ключей по данному ключу и получает ключ разшифровки, который разшифровывает на клиенте encrypted value. Таким образом можно расшифровать что угодно и добраться до любых encrypted value пользователя, если начать исследовать его данные с фиксированого ключа «0», последовательно расшифровывая обьекты.

Но что если само хранилище ключей для определенного пользователя пойдет в сервис и само начнет читать данные? Дело в том, что хранилище ключей не знает смысла ключей, ведь они зашифрованы и их можно хранить в глобальном scope ключей. А как же быть с ключем «0», разве он не будет в хранилище храниться как «facebook.com.0» чтобы хоть как-то различать «0» от различных сервисов. Ответ: он тоже зашифровав, расшифровка «0» ключа происходит на клиенте web ui хранилища ключей специальным паролем.

Вопрос: зачем эта вся возня с ключами, если можно просто вот тем паролем, per service, которым мы расшифровываем «0» ключ напрямую расшифровывать все данные сервиса. Дело в том, что это создает один большой пароль на весь профиль. А например расшарить фотку с друзьями - поделиться ключами для encrypted value фотки. Убрать права доступа, что случается реже - создать новый обьект, новый ключ, перешифровать и раздать заново всем друзьям.

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

Вот такая норкомания. Я пошел обедать.

★★★★★

Последнее исправление: vertexua (всего исправлений: 1)

Норкомания - она и есть норкомания. Требуется другое решение - локальная опенсорсная шифровалка. А шифрованные файлы передавать любым способом (хоть прямо на сервера АНБ/ФСБ и т.д.).

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

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

vertexua ★★★★★
() автор топика
Ответ на: комментарий от vertexua

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

qnikst ★★★★★
()
Ответ на: комментарий от vertexua

Паяльник в зад никто не отменял, потому надежности нет, забудь о ней.

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

peregrine ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.