1 个不稳定版本

0.7.0 2023年7月10日

#10 in #crypto-api


zerostash 中使用

MIT/Apache

97KB
2.5K SLoC

Zerostash

master

Zerostash 是一个具有版本控制的去重加密文件存储。

它旨在提高速度并确保所有与文件相关的元数据的安全,包括存储数据的准确大小。

在 M1 MacBook Air 上,Zerostash 可以达到大约 1GB/s 的速度。

用例

  • 云或外部硬盘上的增量备份
  • 加密并存储整个工作区,以实现计算机之间的快速同步
  • 加密 Git

入门指南

使用以下方法之一安装 0s 命令后,您就可以开始备份了

0s commit /path/to/repository $(pwd)

就是这样!无需配置。

您将被要求输入用户名和密码来创建一个储藏库,您需要在后续调用时输入这些信息。

如果您想更高级,您可以在提交中留下注释,就像您使用 Git 一样。

0s commit -m 'My first backup!' /path/to/repository $(pwd)

只有在运行之间存在更改时才会创建提交以节省空间并提高速度。

然后您可以使用 checkout 子命令和输入您的凭据来恢复备份

0s checkout /path/to/repository files_to_restore/*

有关更多详细信息,请运行

0s --help

远程备份

您可以使用以下语法将备份对象发送到兼容 S3 的远程位置

0s commit s3://accesskey:secretkey@region#server.com/bucket /

例如,如果您的文件在 AWS 上,位于 us-east-1 区域,您可以使用以下方式使用存储桶

0s commit s3://us-east-1#/backups

从 URL 中省略访问密钥和秘密密钥参数将从环境中读取它们

export AWS_ACCESS_KEY_ID=xxxx
export AWS_SECRET_ACCESS_KEY=xxxx

配置

包含示例和文档的配置文件可以在此存储库中找到:此处

将其放置在 ~/.config/zerostash/config.toml 或您的 $XDG_CONFIG_HOME/zerostash 目录中。

使用配置文件是可选的,但可以使管理储藏库更容易,并且一些强大的后端配置目前尚未在 CLI 上公开。

一个示例配置如下所示

[mystash]
key = { source = "ask"}
backend = { type = "fs", path = "/archive" }

要在备份中使用您新定义的 mystash 储藏库,只需使用它代替存储库的路径即可。

0s commit mystash /path/to/movies

安装

Zerostash 在 Linux、macOS 和 Windows 上运行,您可以下载 预构建的二进制文件

如果您正在寻找包管理器集成,请查看以下内容。

在macOS上的安装

您可以使用一个Homebrew tap!

brew install symmetree-labs/homebrew-tap/zerostash

在NixOS上的安装

实际上,这是一个nix flake!您可以在基于flake的配置中包含zerostash包,或者直接这样运行

nix run github:symmetree-labs/zerostash

注意:由于一个已知问题,nix/macOS目前不受支持。请帮助我们找到解决方案!

使用cargo安装

假设您的系统已安装cargo,您可以使用它从crates.io安装zerostash。

cargo install zerostash

使用预构建的二进制文件

您可以从GitHub Releases页面下载一个静态Linux二进制文件。

将其放置在您的$PATH中,然后运行

0s --help

从源码构建

您也可以使用常规的Rust咒语来构建自己的二进制文件。使用rustup来运行cargo或使用您的包管理器,然后继续

cargo build --release

威胁模型

Zerostash将以下内容视为威胁模型的一部分

  • 保护数据机密性、完整性和真实性
  • 数据的确切大小不应为人所知
  • 个人用户数据不应在共享存储中可追踪
  • 一旦数据被共享,它就不再安全。
  • 应能够从存储中删除数据
  • 仅访问密钥和原始数据不足以完全泄露数据

设计

有关加密设计的更多详细信息,请参阅底层文档(在Infinitree库中)。

安全通知

这是一个未经审查的安全软件。请自行承担风险。

许可

在GPLv3下分发。

依赖关系

~25–37MB
~666K SLoC