
在信息爆炸的时代,如何安全、私密地分享敏感信息,同时确保其“阅后即焚”,成为了许多人关心的问题。今天,我将向大家介绍一款由 Rust 和 Svelte 强强联手打造的开源工具——Cryptgeon。
它借鉴了 PrivNote 的理念,旨在提供一个极致安全、零数据留存的文本和文件分享服务。无论你是开发者、隐私爱好者,还是日常需要临时分享信息,Cryptgeon 都能成为你的得力助手。
核心特性:隐私至上
Cryptgeon 的设计哲学是隐私优先。它通过以下几个核心特性,确保你的数据安全:
1. 客户端加密,服务器盲盒
这是 Cryptgeon 最引以为傲的特性。当你上传文本或文件时,所有的加密操作都在你的浏览器或客户端本地完成。数据使用 AES-GCM 模式在客户端进行加密。这意味着服务器接收到的永远是密文,它永远无法获取你的加密密钥,也因此无法解密你分享的内容。即使服务器被攻破,攻击者也无法获取明文数据。
2. 内存存储,永不落地
Cryptgeon 的服务器将所有数据存储在内存中,绝不将任何内容持久化到磁盘。一旦你设置的查看次数用尽或时间过期,数据就会从内存中销毁,不留痕迹。这从根本上杜绝了数据泄露的风险。
3. 多端支持,灵活便捷
除了提供直观的 Web 界面外,Cryptgeon 还提供了命令行工具 (CLI) 和 Raycast 扩展,方便用户在不同场景下快速分享。你可以设置查看次数限制、设置过期时间,甚至上传文件而不仅仅是文本。
工作原理速览
Cryptgeon 如何实现这种高度的安全性?简而言之:
- ID 与 Key 生成:每次创建新笔记时,客户端会生成一个唯一的 ID (256位) 和一个加密 Key (256位)。
- 客户端加密:笔记内容在客户端使用生成的 Key 进行 AES-GCM 模式加密。
- 数据传输与存储:加密后的数据连同 ID 一起发送到服务器。服务器仅根据 ID 存储加密内容于内存中。
- 服务器零知识:服务器从始至终都不知道加密 Key,因此无法解密内容。
快速上手:Docker 部署
部署 Cryptgeon 最简单的方式是使用 Docker。以下是一个 docker-compose.yml 示例,让你快速搭建自己的私密分享服务:
yaml
version: '3.8'
services:
redis:
image: redis:7-alpine
# 确保 Redis 只使用内存,不将数据持久化到磁盘
command: redis-server --save "" --appendonly no
# 防止创建匿名卷,确保数据不落地
tmpfs:
- /data
app:
image: cupcakearmy/cryptgeon:latest
depends_on:
- redis
environment:
# 设置单次分享的最大大小限制,例如 4 MiB
SIZE_LIMIT: 4 MiB
# 允许上传文件 (默认为 true)
ALLOW_FILES: true
# 允许高级配置,如设置查看次数、过期时间 (默认为 true)
ALLOW_ADVANCED: true
ports:
- "80:8000"
重要提示:为了启用浏览器端的加密功能,请务必为你的 Cryptgeon 服务配置 HTTPS。部署后,你可以在浏览器中访问 http://localhost (如果你映射到 80 端口) 来体验。
总结
Cryptgeon 凭借其 Rust + Svelte 的技术栈,客户端加密和内存存储的核心设计,为我们提供了一个可靠的私密信息分享解决方案。如果你对隐私和数据安全有高要求,不妨尝试自建一个 Cryptgeon 实例,将你的敏感信息分享风险降至最低。
评论区