关于 implementing-end-to-end-encryption-for-messaging
用于实现简化版 Signal Protocol 风格消息加密的安全技能,涵盖 X3DH 和 Double Ratchet。面向开发加密消息功能及开展安全评估的人员,重点包括逐条消息密钥和乱序传递处理。
主要功能
- 01X25519 密钥交换
- 02X3DH 会话协商
- 03Double Ratchet 密钥管理
- 04AES-256-GCM 消息加密
- 05前向保密
- 06处理乱序消息
适用场景
- 01构建加密消息会话
- 02测试消息加解密
- 03评估前向保密行为
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill implementing-end-to-end-encryption-for-messaging安装后在 Claude Code 中输入/implementing-end-to-end-encryption-for-messaging确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py详细介绍
为消息传递实现端到端加密
概述
端到端加密(E2EE)确保只有通信双方能够读取消息,任何中间方(包括服务器)都无法解密。本技能实现了 Signal Protocol 的 Double Ratchet 算法的简化版本,使用 X25519 进行密钥交换、HKDF 进行密钥派生,并使用 AES-256-GCM 进行消息加密。
何时使用
- 在环境中部署或配置为消息传递实现端到端加密的能力时
- 在建立符合合规要求的安全控制时
- 在为该领域构建或改进安全架构时
- 在开展需要此实现的安全评估时
前置条件
- 熟悉密码学概念与工具
- 可访问用于安全执行的测试或实验环境
- 已安装所需依赖的 Python 3.8+
- 对任何测试活动具有适当的授权
目标
- 实现用于会话建立的 X25519 Diffie-Hellman 密钥交换
- 构建 Double Ratchet 密钥管理算法
- 使用每条消息独立的密钥加密和解密消息
- 实现前向保密(当前密钥泄露不会暴露过往消息)
- 处理乱序消息投递
- 使用 X3DH(扩展三重 Diffie-Hellman)实现密钥协商
关键概念
Signal Protocol 组件
| 组件 | 用途 | 算法 |
|---|---|---|
| X3DH | 初始密钥协商 | X25519 |
| Double Ratchet | 持续密钥管理 | X25519 + HKDF + AES-GCM |
| Sending Chain | 每条消息的加密密钥 | HMAC-SHA256 链 |
| Receiving Chain | 每条消息的解密密钥 | HMAC-SHA256 链 |
| Root Chain | 在 DH ratchet 时派生新的链密钥 | HKDF |
前向保密
每条消息都使用由棘轮链派生的唯一加密密钥。密钥使用后即被删除,确保当前状态泄露不会暴露先前发送/接收的消息。
安全注意事项
- 解密后立即删除消息密钥
- 实现消息排序与重放保护
- 对所有消息使用认证加密(AES-GCM)
- 使用设备级安全保护身份密钥
- 通过带外方式验证身份密钥(安全码)
验证标准
- X25519 密钥交换生成共享密钥
- 消息在双方之间正确加密和解密
- 不同的消息产生不同的密文
- 前向保密:旧密钥无法解密新消息
- 乱序消息可以解密
- 被篡改的消息会被认证拒绝
评论
支持 Markdown