systemslibrarian/crypto-lab-ratchet-wire

GitHub: systemslibrarian/crypto-lab-ratchet-wire

该项目是一个基于浏览器的 Double Ratchet Algorithm 交互式演示工具,通过模拟双方端到端加密对话来直观展示前向保密和密钥泄露后的破解恢复机制。

Stars: 0 | Forks: 0

# crypto-lab-ratchet-wire ## 1. 这是什么 Ratchet Wire 是一个基于浏览器的 Double Ratchet Algorithm 演示,结合了 Simplified X3DH 会话设置,使用 X25519 进行密钥协商,HKDF-SHA256 进行密钥派生,以及 AES-256-GCM 进行消息加密。它展示了双方如何在不受信任的通道上交换消息的同时,不断派生出新的密钥。该算法解决了端到端消息的机密性问题,并具备前向保密和状态泄露后的破解恢复能力。其安全模型是混合的:非对称密钥协商用于建立和刷新共享密钥,而对称 ratchet 则为每条消息派生加密密钥。 ## 2. 何时使用 - 将其用于异步端到端消息传递系统,即每条消息都需要独立的新加密密的系统,因为 Double Ratchet Algorithm 旨在保障长对话过程中的机密性。 - 当聊天协议需要前向保密和破解恢复时使用它,因为被泄露的当前状态不应暴露旧流量,并且应在一次 ratchet 步骤之后停止帮助攻击者。 - 用于需要共同展示 X25519、HKDF-SHA256、AES-256-GCM 和 Simplified X3DH 的教育或原型开发工作,因为此演示直接在 UI 和源码中呈现了这些组件。 - 不要将此演示用作生产环境的通讯软件,因为 Simplified X3DH 实现明确省略了签名、一次性 pre-keys 和持久状态管理。 ## 3. 在线演示 在线演示:https://systemslibrarian.github.io/crypto-lab-ratchet-wire/ 该演示允许你在“会话”、“Ratchet State”、“破解恢复”和“工作原理”选项卡之间切换,同时以 Alice 或 Bob 的身份发送消息,并实时观察 root-key 和 chain-key 状态的更新。它还包含“破解 Bob 的密钥”、“Alice 发送消息”和“Bob 接收(DH Ratchet)”控制按钮,以便你逐步调试破解恢复行为。此演示中没有密钥长度或迭代次数的控制;交互控制项包括发送者选择器、消息输入、选项卡和恢复按钮。 ## 4. 如何在本地运行 ``` git clone https://github.com/systemslibrarian/crypto-lab-ratchet-wire.git cd crypto-lab-ratchet-wire/ratchet-wire npm install npm run dev ``` 不需要环境变量。 ## 5. Crypto-Lab 系列的一部分 此演示是位于 https://systemslibrarian.github.io/crypto-lab/ 的更广泛的 Crypto-Lab 集合中的一个项目。 无论作什么,或吃或喝,或作别的事,都要为上帝的荣耀而行。——《哥林多前书》10:31
标签:Web安全, 前端演示, 加密算法, 密码学, 手动系统调用, 数据可视化, 暗色界面, 端到端加密, 网络安全, 自动化攻击, 蓝队分析, 隐私保护