Skip to content
KitploitKITPLOIT
工具博客
Log in
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Seal — 点对点、端到端加密聊天。没有收件箱。没有可恢复的账户。没有人窃听——包括我们自己。 | Kitploit
工具/GitHubGitHub/emn4tor/seal
加密/解密工具密码学隐私保护
GitHubemn4tor/seal

Seal

点对点、端到端加密聊天。没有收件箱。没有可恢复的账户。没有人窃听——包括我们自己。

查看仓库
9311个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
Seal logo

Seal

点对点、端到端加密聊天。
无收件箱。无账户需要恢复。没有人在监听——包括我们。

github.com/Emn4tor/Seal

Rust: 1.97+ Tauri: 2.11.5 React: 19.2 Platforms: macOS, Linux, Windows Encryption: Olm / Megolm Server-side message storage: none

GitHub stars GitHub forks GitHub issues GitHub last commit GitHub repo size

Contributors Total commits

消息通过 libp2p 在节点之间直接传输,并在离开你的设备之前使用 Signal 风格的 Olm/Megolm 协议(通过 vodozemac)加密。唯一涉及的服务器是一个小型目录,帮助节点找到彼此的当前地址。它永远看不到消息内容,而且可以用一条命令清除。

有关实际防护的内容以及方式,请参阅 docs/THREAT_MODEL.md 和 docs/SECURITY.md。

Contents

  • 截图
  • 功能特性
  • 工作原理
  • 项目结构
  • 1. 前置要求
  • 2. 构建
  • 3. 以开发模式运行
  • 4. 测试
  • 5. 后端(目录服务器)设置
  • 6. 使用应用

截图

首次运行 —— 只需选择一个名称;无需其他设置。

Seal 的首次运行界面:加密模型说明旁边是显示名称表单,并带有一个登录时启动开关



会话 —— 群组栏、联系人列表和端到端加密聊天面板。

Seal 中的直接消息会话,显示群组栏、联系人列表和端到端加密聊天面板



设置 —— 麦克风灵敏度、按键通话、登录时启动、网络可达性。

Seal 的设置面板:麦克风灵敏度、按键通话、登录时启动和网络可达性

功能特性

  • 始终端到端加密 —— 每条消息在离开你的设备之前,都会使用 Olm(1:1) 或 Megolm(群组)进行密封,采用 vodozemac 的双棘轮(Double-Ratchet)式方案: 每条消息都有自己独立的密钥。
  • 永远没有收件箱 —— 消息通过点对点直接连接 (libp2p:QUIC/TCP + Noise,支持中继和 NAT 打洞)传输。如果接收方离线,消息会在本地等待并重试——绝不会排队存储在任何其他人的基础设施上。
  • 目录,而非数据库 —— 唯一涉及的服务器 (crates/directory-server)仅将用户 ID 映射到当前网络地址, 除此之外不做任何事情。它在结构上无法读取消息内容: 其 Cargo.toml 甚至不依赖任何知道如何读取消息内容的 crate。
  • 一台设备,多个账户 —— 完全独立的身份(密钥、 联系人、消息),无需重启即可切换。
  • 支持真实成员变更的群组 —— 每个群组都有文本和语音频道; 移除某人会轮换群组密钥,使其无法读取此后发送的任何内容。
  • 内置语音 —— 通过系统级快捷键进行按键通话(适用于任何应用,而不仅仅是 Seal),可调节麦克风灵敏度,并可选变声器。
  • 无元数据的附件 —— 图片在发送前会剥离 EXIF 数据(GPS 位置、 相机/设备信息),默认开启。
  • 真正的紧急按钮 —— 设置 → 数据与隐私可立即且不可逆地删除本设备上的所有密钥、联系人和消息,而不会对你联系过的任何人产生任何影响。
  • 如果需要,登录时启动 —— 默认开启,在设置中一键切换。
  • 一套代码库,三个平台 —— 通过 Tauri 在 macOS、Windows 和 Linux 上提供原生窗口。

工作原理

这个应用中有两种身份,它们被刻意分开:

  • 你的聊天身份 是 vodozemac 在你首次打开应用时在本地生成的 Ed25519/Curve25519 密钥对(identity::Identity)。你的公开“用户 ID”就是该密钥的指纹(wire_proto::user_id_from_ed25519)。任何服务器都无法签发或吊销它,因为它的创建过程不涉及任何服务器。
  • 你的网络身份 是一个单独的 libp2p 密钥对(PeerId),仅用于传输层。它可以在重启之间变化,而完全不影响你的聊天身份;两者仅通过你自行签名的在线状态记录绑定在一起。

找到某人并真正与他们交谈是两个不同的步骤:``` ┌────────────────────────┐ │ directory server │ │ (axum + one SQLite │ │ file: users, │ │ presence, group │ │ rosters. Never │ │ message content.) │ └─────────┬───────────────┘ 1. "where is bob │ 2. "here's my current right now?" │ address" (signed, │ expires in minutes) ┌─────────┴───────────────┐ ▼ ▼ ┌───────┐ 3. direct libp2p ┌───────┐ │ alice │◄──── connection ────►│ bob │ └───────┘ (Noise + Olm/ └───────┘ Megolm encrypted)

1. Alice 通过 Bob 的用户 ID 在目录中查找他。这会返回他的
   公钥以及他最后通告的网络地址。这就是目录所持有的全部内容:
   公钥、显示名称、组成员列表,
   以及短期有效的地址通告
   (`crates/directory-server`)。
2. Alice 直接通过 libp2p(QUIC 或 TCP+Noise,带中继 +
   NAT 打洞,用于 NAT 后的对等方;参见 `crates/net`)呼叫 Bob。目录从
   此刻起完全不再参与。
3. 实际消息会使用 **Olm**(用于 1:1 聊天)或
   **Megolm**(用于群组,`crates/crypto-session`),这是一种 Double-Ratchet 风格
   方案,每条消息在放到该 libp2p 连接之前
   都有自己的密钥。没有服务器端收件箱:如果 Bob 离线,
   消息会在本地等待并重试,而不是存储在任何其他人的
   基础设施上。

以上所有内容均由 `crates/core` 的 `AppService` 编排,它
是 Tauri 应用的 Rust 后端(`apps/desktop/src-tauri`)实际调用的对象;
UI 从不直接与网络通信。

## 项目布局```
crates/
  wire-proto        shared signed-request types for the directory API
  identity          vodozemac identity, OS-keychain key management
  storage           local encrypted store (contacts, messages, groups)
  net               libp2p transport + directory HTTP client
  crypto-session    Olm (1:1) / Megolm (group) session management
  core              orchestrates the above into `AppService` / `ChatNode`
  directory-server  the one server component (axum + SQLite)
apps/desktop         the Tauri + React app
scripts/             build + backend-deployment scripts (§2, §5)

1. 前置要求

你在每个平台上都需要 Rust 和 Node.js,此外还需要 Tauri 用于构建原生窗口的、特定于平台的 工具链。storage 和 directory-server 还会从源码捆绑编译 SQLite,这需要一个普通的 C 编译器(本项目中 任何地方都不需要 OpenSSL 或其他原生加密库)。

所有平台通用:

  • Rust(稳定版渠道;通过 rustup 安装,不要用操作系统的包管理器)
  • Node.js 20+ 和 npm
下载工具