The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Открыт код шифрованной СУБД ZeroDB

08.12.2015 23:03

Опубликованы исходные тексты СУБД ZeroDB, предоставляющей средства для end-to-end шифрования хранимых данных. При использовании ZeroDB данные шифруются на стороне клиента и не могут быть раскрыты в случае компрометации сервера, что даёт возможность запускать серверы ZeroDB даже в не заслуживающих доверия окружениях. Код системы написан на языке Python и опубликован под лицензией AGPLv3 (клиент, сервер). В ближайшее время также планируется опубликовать реализацию клиента ZeroDB на языке JavaScript.

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

Особенностью ZeroDB является то, что выборка, в том числе операции поиска и сортировки, выполняется над зашифрованными данными. При том, что логика формирования БД реализуется на стороне клиента и сервер не имеет сведений о структуре и порядке размещения данных. При выполнении запросов к СУБД end-to-end шифрование не требует загрузки всех данных на сторону клиента, не требует использования перешифрующих прокси и не приводит к провалам в производительности из-за применения ресурсоёмких методов шифрования по открытым ключам.

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

Для доступа к данным ZeroDB предоставляет объектно-ориентированный интерфейс на основе ZODB (Zope Object Database), позволяющий сохранять Python-объекты. Запросы также могут формироваться в формате JSON. Из операций над данными поддерживаются Contains, Eq, NotEq, Gt, Lt, Ge, Le, DoesNotContain, Any, NotAny, All, InRange и NotInRange. Система демонстрирует достаточно неплохую производительность, например, операция полнотекстового поиска над зашифрованной базой, содержащией 250-мегабайтный архив списка рассылки разработчиков ядра Linux, занимает 0.5 сек. Время сохранения данных в БД изменяется логарифмически и для вышеуказанного архива запрос на добавление занимает примерно 0.5 сек.

  1. Главная ссылка к новости (http://blog.zerodb.io/zerodb-o...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/43480-zerodb
Ключевые слова: zerodb, crypt, database
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (25) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 23:31, 08/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Паранойя во все поля. Самое то для сегодняшних реалий.
     
  • 1.3, Aytishnik.com (ok), 00:05, 09/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Причем тут параноя, взламили сайт или сервер уперли базу с данными, а вот хрен они данные прочтут...
     
     
  • 2.5, Аноним (-), 00:26, 09/12/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Прочтут данные от клиента и сохранят не-зашифровано.
     
     
  • 3.6, Аноним (-), 01:55, 09/12/2015 [^] [^^] [^^^] [ответить]  
  • –8 +/
    животное, читать учись: "При использовании ZeroDB данные шифруются на стороне клиента и не могут быть раскрыты в случае компрометации сервера"
     
  • 2.18, Аноним (-), 13:58, 09/12/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Причем тут параноя, взламили сайт или сервер уперли базу с данными, а
    > вот хрен они данные прочтут...

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

     
     
  • 3.21, Челябинские админы (?), 20:25, 09/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Тут и не поспоришь криптодрайв или geli
     
  • 2.27, fleonis (ok), 17:20, 10/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    да, с одной стороны, если они базу данных сперли, то ничего страшного. но с другой.. от куда клиент ключ знает? то есть все равно должен быть доверенный сервер, так? на нем должен сидеть клиент и читать из базы записи, на сколько я понял. то есть просто взломщиком теперь надо взломать и сервер с клиентом и увести базу с другого сервера.

    но вопрос - а почему базу не сделать на доверенном сервере, если он все равно нужен? я вижу пока один ответ - из-за стоимости, если например какой-нибудь сервер дешевле, но доверия к нему нет.

     

  • 1.4, Омский линуксоид (ok), 00:17, 09/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Супер. Люблю такие вещицы. Впрочем каждый омский линуксоид тоже.
     
  • 1.8, Аноним (-), 06:06, 09/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что-то не пойму я принцип работы. Есть у меня текстовые строки, вставляю в ZeroDB - все данные шифруются на клиенте и вставляются в базу уже зашифрованными. Затем я ищу некую строку - я правильно понимаю что сначала индекс тянет на клиента, дешифрует и уже потом дает команду какие строки мне нужно выбрать?
     
     
  • 2.14, Аноним (-), 09:44, 09/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Индексируется зашифрованная строка.
    Клиент отправляет в запросе зашифрованную строку.
    Сервер в индексе находит совпадение и шлёт результат клиенту.
    Клиент расшифровывает результат.
     
     
  • 3.17, Аноним (-), 13:56, 09/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно, если, допустим, зашифрованная строка "Hello World" превращается после зашифровки в, допустим, "$kjasImkhnsdfgh37262" - то как сервер отдаст клиенту выборку, упорядоченную (отсортированную в порядке возрастания) по символам?
     
     
  • 4.20, Аноним (-), 15:01, 09/12/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Никак. Там в API сортировка отсутствует как класс.
     

  • 1.9, Аноним (-), 07:05, 09/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Опять пытаются решать административную проблему техническими методами. Нет доверия к среде - не используй её для критичных данных, это же так просто!

    Здесь мы наблюдаем попытку и на ёлку влезть и жопу не ободрать. Она же "на полшишечки не считается".

     
     
  • 2.11, Аноним (-), 07:40, 09/12/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Опять пытаются решать административную проблему техническими методами. Нет доверия к среде

    это как раз самый верный путь. все административные проблему в конечном счёте должны быть переведены в класс технических, а одминобiдло - во дворы с мётлами

     
     
  • 3.15, Аноним (-), 11:58, 09/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Они и так с метлами в дворах, походу. Грамотного админа найти очень сложно
     
     
  • 4.25, Аноним (-), 16:37, 10/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Они и так с метлами в дворах, походу. Грамотного админа найти очень
    > сложно

    Ага, особенно здесь :)

     

  • 1.12, Аноним (-), 08:01, 09/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Видимо ребята преуспели в криптографии, раз релизят такую систему.

    Когда-то разработчиков СУБД InterBase/FireBird упрекали в отсутствии шифрования, на что те отвечали, что сделать силами СУБД надежное шифрование практически не реально, лучше пусть этим занимаются клиентские приложения, лучше, они сделают легкую быструю СУБД.

     
     
  • 2.13, комментатор (?), 09:35, 09/12/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Написано на питоне, используют обертку над OpenSSL...
     
  • 2.31, Аноним (-), 20:39, 11/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Видимо ребята преуспели в криптографии, раз релизят такую систему.
    > Когда-то разработчиков СУБД InterBase/FireBird упрекали в отсутствии шифрования, на что
    > те отвечали, что сделать силами СУБД надежное шифрование практически не реально,
    > лучше пусть этим занимаются клиентские приложения, лучше, они сделают легкую быструю
    > СУБД.

    версия GDB/интербейза что в танках американских(м1) и в самолетах некоторых(что постарше чуток) - вполне себе поддерживает крипто на уровне ODS-контейнера. "кому надо" и коммерческие форки делал с таким(даже телефонный был вариан ;)

     

  • 1.16, DmA (??), 12:40, 09/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Начато проектирование ПО для будущих соцсетей  и почтовых серверов :)
     
     
  • 2.26, Аноним (-), 16:38, 10/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Начато проектирование ПО для будущих соцсетей  и почтовых серверов :)

    "соцсети" и "безопасность" это взаимоисключающие параграфы. Впрочем, "почтовые сервера" и она же - такой же оксюморон.

     
     
  • 3.28, DmA (??), 22:31, 10/12/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ну пока в России доступ в Интернет будет разрешён только по предъявлению паспорта, можно считать, что мы все помогаем спецслужбам России писать на себя и своих знакомых личные дела!
     
  • 2.30, Вареник (?), 18:35, 11/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Соцсети и почтовые сервера для того и созданы, чтобы поднимать биографию и переписку за всю жизнь одним щелчком.
     

  • 1.23, Аноним (-), 15:34, 10/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    то есть обработка всех данных на клиенте?
     
  • 1.29, fi (ok), 01:57, 11/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А мне понравилось!

    Хранишь "запрещенную литературу" в облаке типа амазон, клиента ставишь на выделенный сервак и данные раздаешь по i2p  куче одноразовых httpd фрондэндов на дешевый виртуалках за биткоины -  фиг подрежешь!

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру