UI はローカライズ済みです。スキルの紹介と説明文書は選択した言語へ AI が自動翻訳し、コード・コマンド・パス・専門用語は原文のままです。原作者の文書が優先されます。
スキルを探す
生産性・共同作業 · 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

スキルの説明

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 密钥交换产生共享密钥
  • 消息在双方之间能正确加密和解密
  • 不同消息产生不同密文
  • 前向保密:旧密钥无法解密新消息
  • 乱序消息可被解密
  • 被篡改的消息被认证机制拒绝
保存したスキル