Почему метаданные важны
В контентно-адресуемом файловом облаке база данных — не просто состояние UI. Она задаёт пользователей, учётные данные, узлы раскладки, файлы узлов, манифесты, чанки, refresh-токены, токены скачивания, токены шар и настройки сервера. Если эти метаданные тихо поменять, зашифрованное хранилище уже не спасает всю картину.
Подписи защищённых строк
Cotton пишет теневые колонки целостности для защищённых сущностей через дескрипторы, а не через россыпь ad-hoc сериализации. Чувствительные к безопасности чтения проверяют, что каноничные данные строки всё ещё совпадают с подписью.
- Пользователи и учётные данные passkey могут быть покрыты.
- Refresh-токены, токены скачивания и токены шар могут быть покрыты.
- Узлы, файлы узлов, манифесты, чанки манифестов, чанки и настройки сервера могут быть покрыты.
Связь с master key
Материал подписи выводится из материала, защищённого master key, поэтому целостность строк живёт в той же границе безопасности, что и шифрование хранилища и защита бэкапа базы данных.
Мостовая раскатка
Для существующих баз данных мостовая раскатка может подписать старые неподписанные строки и предупредить админов, что раскатка ещё не закончена. Невалидные подписи остаются сбоями целостности; неподписанные исторические строки получают контролируемый путь миграции.
Что это ловит
Подписи строк нужны, чтобы ловить несанкционированные или случайные изменения метаданных на границах чтения: правки токенов, подмену учётных данных, изменения настроек сервера, мутацию связей узел/файл или порчу ссылок хранилища.
Что это не заменяет
Подписание строк базы данных не заменяет бэкапы, контроль доступа PostgreSQL, развёртывание по принципу наименьших привилегий, проверки консистентности хранилища или внешний аудит безопасности. Оно поднимает планку и делает невидимую подмену труднее игнорировать.
Подписанные поверхности
Пруф в защищённых поверхностях: пользователей, учётные данные passkey, refresh-токены, токены скачивания и шар, настройки сервера, узлы, файлы узлов, манифесты, чанки манифестов и чанки можно подписать и проверить на чувствительных к безопасности границах чтения.
Защищать надо карту, а не только байты
Файловое облако не может защищать только байты блобов и оставлять карту к этим байтам открытой для тихой мутации. Cotton считает метаданные хранилища частью модели безопасности.
Целостность — не секретность
Подписи целостности — это обнаружение и харденинг, а не магическая секретность базы данных. Операторам всё равно нужны вменяемые права PostgreSQL, бэкапы, хранение ключей, проверки хранилища и харденинг развёртывания.