The OpenNET Project / Index page

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

Опубликована СУБД immudb 1.0, обеспечивающая защиту от искажения данных

27.05.2021 15:20

Представлен значительный выпуск СУБД immudb 1.0, гарантирующей неизменность и сохранение всех когда-либо добавленных данных, а также предоставляющей защиту от внесения изменений задним числом и дающей возможность криптографического доказательства владения данными. Изначально проект развивался как специализированное NoSQL-хранилище, манипулирующее данными в формате ключ/значение, но начиная с выпуска 1.0 immudb позиционируется как полноценная СУБД с поддержкой SQL. Код проекта написан на языке Go и распространяется под лицензией Apache 2.0.

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

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

Высокая производительность достигается благодаря применению дерева LSM (Log-structured merge-tree) c логом значений, обеспечивающего быстрый доступ к записям при высокой интенсивности добавления данных. Для поддержания целостности хранилища дополнительно задействована древовидная структура "дерево Меркла" (Merkle Tree), в которой каждая ветка верифицирует все нижележащие ветки и узлы благодаря совместному (древовидному) хешированию. Имея конечный хеш, пользователь может удостовериться в корректности всей истории операций, а также в корректности прошлых состояний БД (корневой проверочный хеш нового состояния базы вычисляется с учётом прошлого состояния).

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

Из функциональных возможностей СУБД упоминается поддержка SQL, режим хранения ключ/значение, индексы, сегментирование БД (sharding), создание снапшотов состояния данных, транзакции ACID с поддержкой изоляцией снапшотов (SSI), высокая производительность чтения и записи, оптимизации для эффективной работы на SSD-накопителях, поддержка работы в форме сервера и встраиваемой библиотеки, поддержка REST API и наличие web-интерфейса для управления. Из типичных областей применения, в которых востребованы СУБД, подобные immudb, отмечаются ведение транзакций с кредитными картами, хранение открытых ключей, цифровых сертификатов, контрольных сумм и логов, создание дублирующего хранилища для важных полей в традиционных СУБД. Клиентские библиотеки для работы с immudb подготовлены для Go, Java, .NET, Python и Node.js.

Ключевые улучшения в выпуске immudb 1.0:

  • Поддержка SQL с возможностью защиты строк от скрытой модификации.
  • Режим TimeTravel, дающий возможность переключить состояние БД на определённый момент в прошлом. В том числе время среза данных можно устанавливать на уровне отдельных подзапросов, что упрощает анализ изменений и проведение сравнения данных.
  • Поддержка клиентского протокола PostgreSQL, позволяющего использовать с immudb существующие приложения и библиотеки, рассчитанные на работу с PostgreSQL. В том числе помимо родных клиентских библиотек можно применять типовые клиентские библиотеки Ruby, C, JDBC, PHP и Perl.
  • Web Console для интерактивной навигации по данным и администрирования СУБД. Через web-интерфейс можно отправлять запросы, создавать пользователей и управлять данными. Дополнительно доступна обучающая среда Playground.


  1. Главная ссылка к новости (https://www.codenotary.com/blo...)
  2. OpenNews: СУБД Dolt, позволяющая манипулировать данными в стиле Git
  3. OpenNews: Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.9.3
  4. OpenNews: Выпуск СУБД TimescaleDB 2.0
  5. OpenNews: Первый стабильный выпуск графо-ориентированной СУБД Nebula Graph
  6. OpenNews: Выпуск распределённой СУБД TiDB 4.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/55219-immudb
Ключевые слова: immudb, database
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (53) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 15:55, 27/05/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    СУБД и искажение данных - оксюморон, имхо.
     
     
  • 2.2, Аноним (1), 16:08, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ...и защита от*
     
     
  • 3.5, OnTheEdge (??), 16:18, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    сглаза?
     
  • 2.3, Bx (ok), 16:08, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • –14 +/
    Так прикольно же, повреждаем первую запись и вуаля - цепочка доверия прервана. Никакого злого умысла, что вы!
    Очередное мы написали, патамучта учили Go, B-tree и нам было нужно показать преподу/идиоту-заказчику/начальнику-самодуру какие мы офигенные.
     
     
  • 3.4, Аноним (4), 16:17, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +8 +/
    И что? Вы же будете знать, что данные повреждены и доверять им уже нельзя. В отличие от изменения обычных БД, где вы изменения записи не заметите.
     
     
  • 4.11, Аноньимъ (ok), 17:34, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Замечу при сравнении снап шотов.

    Решение подобных проблем лежит обычно в административной плоскости.

    А с имму дб этой можно и хеш намайнить при желании.
    Или просто всю базу пересобрать.

    Проэкт интересный в общем но сложно представить реальное применение.

     
     
  • 5.14, мишалипут (?), 18:01, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Замечу при сравнении снап шотов.

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

     
     
  • 6.20, Аноньимъ (ok), 19:09, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Это как - при каждой операции чтения или записи нужно сравнивать сотни
    > гигабайтов снапшотов?

    Зачем при каждой? И зачем гигабайты?

    Как именно зависит от конкретной задачи.

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

    Как вот по вашему бухгалтера работают три тысячи лет без имутабельных баз на блокчейне?

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

    Они тут фактически черезпопно совместили этот лог с бд что вот совсем не хорошо.

     
     
  • 7.30, YetAnotherOnanym (ok), 21:09, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > критичных к изменению данных не так и много

    В Росреестре данные критичные к изменению?

     
     
  • 8.34, Аноньимъ (ok), 22:44, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Смотря кому их нужно изменять ... текст свёрнут, показать
     
  • 8.37, Аноним (37), 01:58, 28/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Думается мне как только вы внедрите эту базу в росреестр вас тут же уволят и объ... текст свёрнут, показать
     
     
  • 9.38, Аноним (38), 02:04, 28/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А что, россреестр полезных сайтов не должен гарантировать сохранности перечней ... текст свёрнут, показать
     
  • 8.41, Lex (??), 05:20, 28/05/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В Росреестре многие проблемы не связаны с не_изменяемостью БД Доходит до смешно... текст свёрнут, показать
     
  • 5.15, Bx (ok), 18:05, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Проэкт интересный в общем но сложно представить реальное применение.

    Real world examples
    We already learned about the following use cases from users:

    use immudb to immutably store every update to sensitive database fields (credit card or bank account data) of an existing application database
    store CI/CD recipes in immudb to protect build and deployment pipelines
    store public certificates in immudb
    use immudb as an additional hash storage for digital objects checksums
    store log streams (i. e. audit logs) tamperproof

    Сами мы сомневаемся, зачем вам это, но снежинки сами за нас все придумали.
    Впрочем, похоже, это расширение к постгресу. БД мы запилили, угу.

     
     
  • 6.16, Bx (ok), 18:30, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Впрочем, похоже, это расширение к постгресу. БД мы запилили, угу.

    Был не прав. Запилили.

     
  • 6.21, Аноньимъ (ok), 19:13, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну то есть они изобрели аудит лог чтобы можно было хранить аудит лог в аудит логе.
     
     
  • 7.23, Bx (ok), 19:25, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну то есть они изобрели аудит лог чтобы можно было хранить аудит
    > лог в аудит логе.

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

     
     
  • 8.25, Аноньимъ (ok), 20:02, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Дело в том, что, в задачах купли продажи, и вообще финансовых отношений, решаетс... текст свёрнут, показать
     
     
  • 9.27, Bx (ok), 20:20, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Так а я о чем Ну, в конце концов, можно всегда поглядеть, как люди делали, что ... текст свёрнут, показать
     
  • 3.6, имятакое (?), 16:35, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    ля ты крутой. даже не почитав о проекте уже прям диагнозы всем выписал ). выходит зря чуваки 3+ млн раз качали докер образ.
     
     
  • 4.39, Аноним (37), 02:05, 28/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    3 миллиона тараканов не могут ошибаться? Дихлофос лучшая еда для инсектойдов! Если не понравится, мы вернем вам деньги!
     
  • 3.12, Anonimous (?), 17:38, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    чукча не читатель...
     
  • 2.8, имятакое (?), 16:38, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    это прикольно, да, взять два слова из разных контекстов и замесить это в псевдоумное заключение )
     

  • 1.7, Аноним (7), 16:36, 27/05/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    > Информация в immudb хранится с использование блокчейн-подобной структуры, гарантирующей целостность всей цепочки имеющихся записей и не позволяющей изменить уже сохранённые данные или подменить/вставить запись в историю транзакций.

    Интересно, а в новостях про Git так пишут? Там ведь тоже "блокчейн-подобная" структура, где каждый коммит содержит хэш родительских коммитов.

     
     
  • 2.9, Bx (ok), 16:45, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> Информация в immudb хранится с использование блокчейн-подобной структуры, гарантирующей целостность всей цепочки имеющихся записей и не позволяющей изменить уже сохранённые данные или подменить/вставить запись в историю транзакций.
    > Интересно, а в новостях про Git так пишут? Там ведь тоже "блокчейн-подобная"
    > структура, где каждый коммит содержит хэш родительских коммитов.

    Git - это про работать, там и так все всё знают, кому надо. А тут считают количество скачиваний докер образов.

     
     
  • 3.26, СеменСеменыч777 (?), 20:18, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    но ведь докер не предназначен для БД, которые "хранить вечно" (или около того).
    или я чего-то не понимаю ?
     
     
  • 4.28, Bx (ok), 20:31, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > но ведь докер не предназначен для БД, которые "хранить вечно" (или около
    > того).
    > или я чего-то не понимаю ?

    Ну, вроде как маунты/волюмы есть персистентные. Зато образ можно с новой версией скачать, забубенить, убедиться, что не работает, откатиться на старый и увидеть, что с ним тоже больше не работает. БД в докере, ну, не знаю, надо девляпсов спросить.

     
  • 2.42, Аноним (-), 07:26, 28/05/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В Гите-то легко можно отредактировать эти ссылки
     

  • 1.10, rshadow (ok), 16:57, 27/05/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Прикольная тема. В больших конторах может прижиться. В маленьких просто не поймут зачем все это.
     
     
  • 2.13, Аноним (38), 17:45, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В больших конторах и так петабайты бэкапов, зачем им весь любой мусор хранить?
     
     
  • 3.47, YetAnotherOnanym (ok), 09:40, 28/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Восстановление бэкапа занимает время -> простой -> убытки.
     
  • 2.18, Dark_MX (?), 18:53, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Конфликт с GDPR и возможность быть забытым.
     
     
  • 3.29, Аноним (29), 20:41, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Шериф и проблемы европейцев.
     
     
  • 4.35, Аноним (35), 22:46, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А российский майор будет доволен. Никто не забыт, ничто не забыто.
     
     
  • 5.36, Аноним (38), 23:42, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вообще-то Россия це европа больше чем цеевропа (404) и в РФ данные удаляют по решению суда как минимум.
     
     
  • 6.43, Аноним (-), 07:28, 28/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    они где надо удаляются, а где надо - в папочку и на полочку, чтоб если начальник спросит - ты ему бумажку на стол, и ему приятно - и тебе премия
     
  • 3.31, rshadow (ok), 21:14, 27/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, если ты хранишь например логи пользователя и его id-шник. Удаляешь из сервиса авторизации привязку фио и т.д. к id-шнику и это просто обезличенный лог.
     
  • 3.49, anonymous (??), 12:15, 28/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Далеко не каждый data является personal data.
     

  • 1.19, Аноним (19), 19:06, 27/05/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –2 +/
     

  • 1.32, Аноним (32), 22:06, 27/05/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Готовятся к эре дешевых но ненадёжных серверных комплектующих
     
  • 1.40, Аноним (40), 02:43, 28/05/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Не вижу реальных примеров кому и зачем это может понадобится. Насыщение текста баззвордами - это не объяснение
     
     
  • 2.44, Аноним (44), 08:30, 28/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Система обмена документами между разными организациями, с эл.подписями и прочим. Чтобы никто потом не отмазался, что документ не отправлял или чтобы никто потом задним числом записи в базе данных за взятку не исправил.
     
     
  • 3.50, Анончик (?), 12:48, 28/05/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Каким образом это спасает? если у тебя есть электронная подпись, зачем вот это вот все?
    >базе данных за взятку не исправил

    если у тебя бд в единственном числе где ее можно исправить, у тебя уже проблемы.

     
  • 3.51, Аноним (44), 14:58, 28/05/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы новость читали Как работает асимметричное шифрование, электронные подписи - ... большой текст свёрнут, показать
     
  • 2.45, Прохожий (??), 08:34, 28/05/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не видишь потому, что твой кругозор сильно ограничен. И, может, ты ещё читать не умеешь. В новости есть некоторые примеры. Бухгалтерия (например, документы строгой отчётности, налоговой отчётности), финансы, государственные реестры, аптечные склады и так далее, и тому подобное.
     
     
  • 3.46, Lex (??), 09:34, 28/05/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И чем это лучше иных решений ?

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

    Та бд, кстати, защищает лишь от замены отдельных элементов( и то, условно ). Что помешает при сильном желании по новой накатить всю базу с уже содержащимися в ней «поправками» ?

     
     
  • 4.48, Аноним (44), 11:42, 28/05/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Что помешает при сильном желании по новой накатить всю базу с уже содержащимися в ней «поправками» ?

    Вот что помешает (из статьи):
    "предоставляющей защиту от внесения изменений задним числом и дающей возможность криптографического доказательства владения данными. "
    ...
    "Клиентам и аудиторам предоставляется криптографическое доказательство владения и целостности данных. Применение криптографии по открытым ключам не требует от клиента доверия к серверу, а подключение каждого нового клиента к СУБД увеличивает общей уровень доверия ко всему хранилищу"

    т.е. тебе придется оббежать всех клиентов этой БД, попросить у них ("- На время, очень надо!") их приватные ключи, переподписать старые данные/транзакции в новом блок-чейне вместе со своей правочкой.

     
     
  • 5.53, kusb (?), 07:42, 30/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Можно сделать так, что и оббежать не получится, наверное. Добавить ещё данных от какого-нибудь биткоина?
     
  • 2.52, kusb (?), 07:39, 30/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Кому нужна база данных, где данные трудно заменить задним числом? Она же это делает, я правильно понимаю?
    Ну много кому, даже некоторым людям домой, но вообще в государственный реестр продажи домов, например.
     

  • 1.54, Gogi (??), 14:08, 30/05/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сначала какая-то студота (ну а кто ещё падкий на NoSQL хайп??) пилит ОЧЕРЕДНУЮ "древобазу". Ну да, нам же мало десятка недопроектов, которые все страдают синдромом NIH!
    Затем понимают, что "обычные запросы" никуда не делись и что "древовидность" базы вообще нахрен никому не упёрлась - люди по-прежнему используют тонны ОДНОТИПНЫХ данных. Ладно, прикручивают SQL (чему и остальные NoSQL-шники тоже вынужденно следуют). Тоже "нефичасто" - проект всё ещё нафиг не нужен.
    "А давайте придумаем фишку!" - ну да, ну да, вы же Дональд Кнут, мозг ИТ! И не "придумывают" фишку, а тупо вкорячивают то, что и так доступно БЕЗ их недобазы - ПОДПИСЬ! Ну вот прям шокировали ветеранов ИТ!! :)))
    А что, тупо в SQL добавить поле с подписью - религия не позволяет? Это и будет "защита от изменений"! Ни бог весть какая фича, да ещё и ПРИКЛАДНОГО характера (т.е. ей вообще нечего делать на системном уровне СУБД).

    Нда... обмельчала молодёжь - ничего путного, ничего нового.

     
  • 1.55, нах.. (?), 20:31, 30/05/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как всегда, интерфейс либо черное на белом, либо наоборот. Мамкины хацкеры более ни на что не способны
     
  • 1.56, DmA (??), 12:58, 01/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    вот бы ещё при  любом чтении базы состояние как-то менялось, чтобы понятно, что кто-то лазил
     

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



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

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