ZboxFS Файловая система для параноиков (и не только)

28 июл 2025

Это архивный репозиторий и может быть устаревшим.

1,543
85
1
2 года

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

Что в коробке?

ZboxFS — это не просто библиотека для шифрования файлов. Это полноценная in-app файловая система с рядом уникальных особенностей:

  • Полное шифрование — не только содержимое файлов, но и метаданные, структура каталогов
  • Гибкое хранилище — можно использовать память, файловую систему ОС, SQLite, Redis или облако
  • Версионность — автоматическое отслеживание изменений файлов
  • Дедупликация — экономия места за счет устранения дубликатов

Кому это нужно?

Разработчикам, которые:

  1. Создают приложения с повышенными требованиями к конфиденциальности
  2. Хотят избежать сложностей с ручным шифрованием данных
  3. Нужна кроссплатформенная файловая система (Linux, macOS, Windows, Android)
  4. Работают на Rust и ценят безопасность

Как это работает?

Технически ZboxFS — это виртуальная файловая система, работающая в пространстве памяти вашего приложения. Вот что скрывается под капотом:

  • Шифрование: AES-256-GCM или XChaCha20-Poly1305
  • Хеширование: Argon2 для паролей
  • Дедупликация: Алгоритм Rabin для контента, Merkle-деревья для файлов
  • Сжатие: LZ4 (опционально)
// Пример использования:
use zbox::{init_env, RepoOpener, OpenOptions};

fn main() {
    init_env();
    
    let mut repo = RepoOpener::new()
        .create(true)
        .open("file://./secure_repo", "strong_password")
        .unwrap();
        
    let mut file = OpenOptions::new()
        .create(true)
        .open(&mut repo, "/secret.txt")
        .unwrap();
        
    file.write_all(b"Confidential data").unwrap();
    file.finish().unwrap(); // Фиксация изменений
}

Чем лучше альтернатив?

ZboxFS выгодно отличается от решений вроде EncFS или VeraCrypt:

Реклама

| Особенность | ZboxFS | Обычные FS | |-------------------|--------|------------| | Шифрование метаданных | ✅ | ❌ | | API для разработчиков | ✅ | ❌ | | Встроенная дедупликация | ✅ | ❌ | | Версионность файлов | ✅ | ❌ |

Производительность

На MacBook Pro 2017 ZboxFS показывает:

  • Чтение: до 605 МБ/с (в памяти)
  • Запись: до 186 МБ/с
  • Транзакции: до 1783 операций в секунду

Для большинства приложений этих показателей более чем достаточно.

Когда использовать?

  1. Мобильные приложения — безопасное хранение данных на устройстве
  2. Десктопные утилиты — защита конфигураций и кэшей
  3. Облачные сервисы — шифрование перед отправкой на сервер
  4. Блокчейн-проекты — безопасное хранение ключей

Начните использовать уже сегодня

Добавьте в Cargo.toml:

[dependencies]
zbox = { version = "0.9.2", features = ["libsodium-bundled"] }

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

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.