CottonЦелостность базы данных
Целостность базы данных

Подписанные метаданные базы данных для системы хранения.

Безопасность хранилища в Cotton — не только зашифрованные блобы. База данных описывает, кто владеет контентом, где он виден, какие токены валидны и какие манифесты/чанки живы, поэтому защищённые строки SQL тоже несут подписи целостности.

Подписанные строкиЦелостность SQLВыведено из master keyПроверки подмены метаданных

Почему метаданные важны

В контентно-адресуемом файловом облаке база данных — не просто состояние UI. Она задаёт пользователей, учётные данные, узлы раскладки, файлы узлов, манифесты, чанки, refresh-токены, токены скачивания, токены шар и настройки сервера. Если эти метаданные тихо поменять, зашифрованное хранилище уже не спасает всю картину.

Подписи защищённых строк

Cotton пишет теневые колонки целостности для защищённых сущностей через дескрипторы, а не через россыпь ad-hoc сериализации. Чувствительные к безопасности чтения проверяют, что каноничные данные строки всё ещё совпадают с подписью.

  • Пользователи и учётные данные passkey могут быть покрыты.
  • Refresh-токены, токены скачивания и токены шар могут быть покрыты.
  • Узлы, файлы узлов, манифесты, чанки манифестов, чанки и настройки сервера могут быть покрыты.

Связь с master key

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

Мостовая раскатка

Для существующих баз данных мостовая раскатка может подписать старые неподписанные строки и предупредить админов, что раскатка ещё не закончена. Невалидные подписи остаются сбоями целостности; неподписанные исторические строки получают контролируемый путь миграции.

Что это ловит

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

Что это не заменяет

Подписание строк базы данных не заменяет бэкапы, контроль доступа PostgreSQL, развёртывание по принципу наименьших привилегий, проверки консистентности хранилища или внешний аудит безопасности. Оно поднимает планку и делает невидимую подмену труднее игнорировать.

Подписанные поверхности

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

Защищать надо карту, а не только байты

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

Целостность — не секретность

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

Вопросы

Прямые ответы

Это то же самое, что шифрование базы данных?

Нет. Подписи целостности базы данных ловят подмену в защищённых строках. Сами по себе они не скрывают каждое значение базы данных от администратора и не заменяют зашифрованное хранилище.

Почему это полезно для файлового облака?

Потому что владение, раскладка, токены, манифесты, чанки и настройки живут в метаданных. Защищать блобы, но не аутентифицировать критичные метаданные — крупная дыра, в которую однажды кто-нибудь да провалится.

Что операционно значит сбой целостности?

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