使用 Cryptomator:为云存储提供零知识加密
随着云存储服务的普及,个人数据被存储在云端,带来了便利,但也引发了数据安全问题。云服务商理论上可以访问用户数据,即使进行了加密,服务商也可能拥有解密密钥。为了实现真正的零知识存储,需要在上传前进行本地加密。Cryptomator是一款开源的客户端加密软件,用于在上传到云存储之前对文件进行加密,支持主流云存储和多平台。它采用客户端加密、零知识架构和开源透明的方式,确保云服务商只能看到加密后的文件。Cryptomator使用现代加密算法保护数据,包括AES-256、Scrypt和GCM模式,并对文件名进行加密。用户可以创建Vault,设置密码,解锁Vault,并自动同步加密后的文件。
一、为什么需要云端加密
随着云存储服务的普及,越来越多的个人数据被存储在云端。
云存储带来了极大的便利:
- 多设备同步
- 自动备份
- 随时访问
但与此同时,也带来了一个关键问题:
云服务商理论上可以访问你的数据。
即使服务商声称进行了加密,这通常也是:
服务器端加密(Server-side encryption)
这意味着:
- 服务商拥有解密密钥
- 在某些情况下数据可能被访问
如果你希望实现真正的:
零知识(Zero-Knowledge)存储
就需要在上传前进行本地加密。这正是 Cryptomator 的用途。
二、什么是 Cryptomator
Cryptomator 是一款开源的客户端加密软件,用于在上传到云存储之前对文件进行加密。
其核心特点包括:
- 客户端加密(Client-side encryption)
- 零知识架构(Zero-knowledge)
- 开源透明
- 支持主流云存储
支持平台:
- Windows
- macOS
- Linux
- iOS
- Android
支持的云存储:
- iCloud Drive
- Google Drive
- Dropbox
- OneDrive
- WebDAV
Cryptomator 本身并不提供云存储服务,而是作为:
云存储的安全层(Security Layer)

三、Cryptomator 的工作原理
Cryptomator 的核心思路非常简单:
在本地创建一个“保险库(Vault)”。
所有文件在进入保险库时都会被自动加密。
基本流程如下:
明文文件
↓
本地加密(AES)
↓
密文文件
↓
上传到云存储当用户访问文件时:
云端密文
↓
下载到本地
↓
即时解密
↓
用户读取明文关键点在于:
云服务商始终只能看到加密后的文件。
四、文件加密方式
Cryptomator 使用现代加密算法保护数据:
主要包括:
- AES-256:文件内容加密
- Scrypt:密钥派生
- GCM 模式:认证加密
此外,Cryptomator 还做了一件非常重要的事情:
文件名加密
普通加密软件通常只加密文件内容,而文件名仍然暴露。
Cryptomator 会把:
photo.jpg转换为类似:
AB/CD/EFG234ADF...这样云端无法知道:
- 文件类型
- 文件结构
- 文件名称
五、目录结构设计
Cryptomator 并不是将所有数据打包为一个大型容器。相反,它采用:逐文件加密(per-file encryption)
优点包括:
- 支持云同步
- 修改一个文件只需同步该文件
- 避免整库重新上传
典型的 vault 结构如下:
vault/
├─ d/
│ ├─ AB/
│ │ └─ encrypted-file
├─ m/
└─ masterkey.cryptomator其中:
- masterkey.cryptomator 保存加密配置
- d/ 存储加密后的数据块
六、使用流程
使用 Cryptomator 的基本步骤如下:
1 创建 Vault
选择云存储目录,例如:
iCloud Drive/CryptomatorVault创建新的 Vault。
2 设置密码
用户需要设置一个主密码。
注意:
如果忘记密码,数据将无法恢复。
Cryptomator 不保存任何恢复密钥。
3 解锁 Vault
解锁后,系统会挂载一个虚拟磁盘。用户可以像普通文件夹一样操作:
- 新建文件
- 修改文件
- 删除文件
4 自动同步
文件会自动:
本地加密 → 云端同步整个过程用户几乎感知不到。
七、我的使用场景
我将加密的文件存在我的 nas 上,fnOS 支持使用 webDAV 访问文件。通过 WireGuard 访问解密后的文件,整体体验很不错。