L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

implementing-end-to-end-encryption-for-messaging

implementing-end-to-end-encryption-for-messaging

端对端加密(E2EE)确保只有通信双方能够读取消息,任何中间方(包括服务器)都无法解密。本技能实现 Signal 协议的双棘轮(Double Ratchet)算法简化版本,使用 X25519 进行密钥交换,HKDF 进行密钥派生,AES-256-GCM 进行消息加密。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: implementing-end-to-end-encryption-for-messaging description: 端对端加密(E2EE)确保只有通信双方能够读取消息,任何中间方(包括服务器)都无法解密。本技能实现 Signal 协议的双棘轮(Double Ratchet)算法简化版本,使用 X25519 进行密钥交换,HKDF 进行密钥派生,AES-256-GCM 进行消息加密。 domain: cybersecurity subdomain: cryptography tags: [cryptography, encryption, e2e, messaging, signal-protocol] version: "1.0" author: mahipal license: Apache-2.0

为消息传递实现端对端加密

概述

端对端加密(E2EE,End-to-End Encryption)确保只有通信双方能够读取消息,任何中间方(包括服务器)都无法解密。本技能实现 Signal 协议的双棘轮(Double Ratchet)算法简化版本,使用 X25519 进行密钥交换,HKDF 进行密钥派生,AES-256-GCM 进行消息加密。

目标

  • 实现 X25519 Diffie-Hellman 密钥交换以建立会话
  • 构建双棘轮密钥管理算法
  • 使用每条消息独立的密钥加密和解密消息
  • 实现前向保密(Forward Secrecy)(当前密钥泄露不会暴露过去的消息)
  • 处理乱序消息投递
  • 使用 X3DH(扩展三重 Diffie-Hellman)实现密钥协商

核心概念

Signal 协议组件

组件用途算法
X3DH初始密钥协商X25519
Double Ratchet持续密钥管理X25519 + HKDF + AES-GCM
Sending Chain每条消息的加密密钥HMAC-SHA256 链
Receiving Chain每条消息的解密密钥HMAC-SHA256 链
Root Chain在 DH 棘轮时派生新链密钥HKDF

前向保密

每条消息使用从棘轮链派生的唯一加密密钥。密钥使用后立即删除,确保当前状态的泄露不会暴露之前发送/接收的消息。

安全注意事项

  • 解密后立即删除消息密钥
  • 实现消息排序和重放保护
  • 对所有消息使用认证加密(AES-GCM)
  • 使用设备级安全保护身份密钥
  • 通过带外方式(safety numbers)验证身份密钥

验证标准

  • X25519 密钥交换产生共享密钥
  • 消息在双方之间能正确加密和解密
  • 不同消息产生不同密文
  • 前向保密:旧密钥无法解密新消息
  • 乱序消息可被解密
  • 被篡改的消息被认证机制拒绝
Skills enregistrées