Шифрование на уровне хранилища
Cotton шифрует хранимые данные файлов в серверном конвейере хранения. Этот слой всегда часть модели хранилища и отделён от браузерной E2E-политики папок, которая описана на отдельной странице.
Cotton шифрует файлы в основном серверном конвейере хранения. Стандартный AES-GCM, отдельные ключи файлов и проверка каждого чанка защищают сохранённые данные без загрузки целого файла в память и без отдельного небезопасного режима ради скорости.
Cotton шифрует хранимые данные файлов в серверном конвейере хранения. Этот слой всегда часть модели хранилища и отделён от браузерной E2E-политики папок, которая описана на отдельной странице.
Шифрование работает на уровне приложения, поэтому в хранилище и его резервные копии попадают уже зашифрованные чанки. Это дополняет защиту диска и контейнера: оператору не приходится выбирать между обычной работой с файлами и шифрованием сохранённых данных.
Зашифрованный поток использует модель в стиле контейнера с ключевым материалом на уровне файла и аутентификацией на уровне чанков. Каждый чанк аутентифицируется как часть потока, вместо того чтобы превращать огромный файл в один монолитный криптообъект.
Файл проходит через ограниченный потоковый буфер и делится на чанки. Для файла используется отдельный ключевой материал, а каждый чанк получает собственный nonce и тег аутентификации. При чтении тег проверяется до того, как расшифрованным данным можно доверять.
AES-GCM — широко применяемый режим аутентифицированного шифрования: он защищает конфиденциальность и целостность, когда дисциплина ключей/nonce сделана нормально. Он аппаратно ускоряется на распространённых платформах и доступен через стандартную криптографию рантайма — практичный дефолт для кроссплатформенного self-hosted файлового облака.
Cotton не просит пользователей доверять новому алгоритму шифрования. Заявление скромнее и сильнее: стандартный AES-GCM внутри формата хранения, который понимает огромные файлы, разбиение на чанки, чтение по диапазонам, ограниченную память и необходимость аутентифицировать каждый кусок, прежде чем ему доверять.
Путь шифрования построен на потоковых буферах и примитивах .NET с низкой нагрузкой на аллокацию. Локальные бенчмарк-базисы показывают, что у слоя крипты достаточно запаса, чтобы видимым лимитом обычно были диск, сеть или сжатие.
Криптомодуль покрыт тестами на золотые векторы, детерминированный формат, подмену, усечение, дубликаты чанков, пропуски чанков, строгую длину, pipe, отмену и производительность. Это всё ещё не независимый аудит, поэтому публичный маркетинг говорит, что есть, а не занимает доверие взаймы.
Клиентски зашифрованные папки — дополнительная фича. Браузер шифрует выбранные файлы до загрузки и хранит зашифрованные отображаемые метаданные, а сервер всё равно сохраняет получившуюся полезную нагрузку через обычный чанковый конвейер хранения.
Серверное AES-GCM защищает сохранённые чанки и позволяет обнаруживать их подмену или повреждение. Оно не скрывает открытый текст от работающего приложения Cotton: сервер должен обработать обычную загрузку до записи и расшифровать обычный файл при чтении. Если содержимое не должен видеть даже сервер, нужна отдельная E2E-папка.
Прикладное шифрование не отменяет обычную эксплуатационную безопасность. Источник мастер-ключа, доступ к PostgreSQL и постоянному хранилищу, TLS, обновления, резервные копии и тест восстановления остаются ответственностью владельца сервера.
Публичное заявление: потоковый AES-GCM на слое хранилища с обёрнутыми ключами на файл, тегами аутентификации на чанк, дисциплиной nonce/AAD, ограниченными буферами и тестами вокруг формата контейнера. Это фича конвейера хранения, а не общее заявление про E2E.
Cotton может держать шифрование включённым, потому что шифрование — в основном пути, а реализация намеренно консервативна. Продукту не нужна отдельная небезопасная скоростная полоса для обычной файловой работы.
Шифрование хранилища всё ещё оставляет серверную обработку и часть метаданных видимыми для сервера. Для выбранного контента, который должен быть непрозрачным до загрузки, используйте клиентски зашифрованные папки.
Нет. Потоковый AES-GCM — конвейер шифрования хранилища Cotton. Поверхность E2E — отдельная фича клиентски зашифрованных папок/файлов, где браузерное хранилище шифрует выбранные загрузки до сервера.
Нет. Cotton использует AES-GCM через стандартные криптографические примитивы. Cotton-специфичная часть — контейнер хранения файлов: обёрнутые ключи на файл, теги аутентификации чанков, раскладка nonce, AAD, потоковые буферы и тесты.
Цель продукта — шифрование как позиция хранилища по умолчанию. Работа над производительностью нужна, чтобы операторы не выключали безопасность ради скорости.
Нет. Путь хранения построен на потоковых буферах и работе на чанк, поэтому шифрование остаётся в пути записи без превращения больших файлов в полнофайловые события в памяти.
AES-GCM проверяет тег аутентификации чанка. Повреждённые или подменённые данные не должны молча выдаваться как корректный файл: проверка завершится ошибкой, которую нужно расследовать и устранять восстановлением из проверенной копии.
Да. Прикладное шифрование Cotton защищает сохранённые данные, но не заменяет TLS, права доступа, обновления, изоляцию контейнера, защиту PostgreSQL, хранение ключей и резервные копии.
Нет. Точное заявление — инженерные свидетельства внутри проекта: стандартный AES-GCM, явные правила контейнера, золотые векторы, тесты на подмену и покрытие бенчмарками. Сторонний аудит надо заявлять только после того, как он случился.