TOP123导航 - 探索中国以外的互联网
Signal是一款由非营利组织Signal基金会(Signal Foundation)及其子公司Signal Messenger LLC开发的开源加密通讯软件,旨在为用户提供高度安全的即时消息、语音通话和视频通话服务。它最初由Open Whisper Systems于2014年推出(iOS版本),并在随后几年逐步扩展到Android和桌面平台(如Windows、macOS和Linux)。Signal的核心特点是其端到端加密技术,确保只有通信的发送方和接收方能够解密并查看消息内容,服务提供商(包括Signal自身)无法访问用户的通信数据。该通讯工具支持简体中文版本。
值得注意的是,Signal目前在中国是不能直接使用的,无论官网还是应用都是被屏蔽的。但是依然有很多翻墙用户在使用它,如果在中国不会翻墙又希望使用端到端加密的通讯工具,苹果公司的iMessage和Facetime是一个不错的选择,不过记得在使用前将iCloud中将iMessage和Facetime同步到云上贵州选项关闭。
Signal Homepage

主要特点

  1. 端到端加密
    • Signal采用Signal协议(原名TextSecure协议),结合了双棘轮算法(Double Ratchet Algorithm)、预密钥(prekeys)和三次椭圆曲线Diffie-Hellman(3-DH)握手等技术,使用Curve25519、AES-256和HMAC-SHA256等加密原语。这种加密方式确保即使消息被拦截,也无法被第三方解密。
    • 加密密钥存储在用户设备上,而不是服务器端,进一步降低了数据泄露的风险。
  2. 开源性
    • Signal的客户端和服务器代码基于AGPL-3.0许可,完全开源。这意味着任何人都可以审查其代码,验证其安全性和隐私承诺。开源性质使其受到安全专家和隐私倡导者的广泛信任。
  3. 隐私保护
    • Signal几乎不收集用户元数据,仅保留注册时的电话号码和最后一次连接服务器的时间。它不会存储用户的联系人列表、聊天记录或通话内容。
    • 提供可选功能,如隐藏电话号码、设置消息自动删除(可设定时间范围,例如1分钟到4周),以及验证通信对象身份的安全码。
  4. 跨平台支持
    • Signal可在iOS、Android及桌面设备上使用,注册需绑定电话号码。桌面版本需通过移动设备激活。
    • 支持群聊(最多1000人)、语音和视频通话(支持多人群组通话)以及文件传输(如图片、视频和文档)。
  5. 用户体验
    • Signal界面简洁,功能类似于主流消息应用(如WhatsApp),包括表情包、贴纸和阅后即焚的图片/视频功能。
    • 2020年,Signal推出人脸模糊工具,便于抗议者分享内容时保护隐私。

发展与资金来源

  • Signal由Moxie Marlinspike(一位著名安全研究者和黑客)和WhatsApp联合创始人Brian Acton于2018年共同创立的Signal基金会支持。Acton提供了5000万美元的初始资金。
  • 该应用不依赖广告或投资者,完全通过捐款运营。2023年,Signal表示其2025年的运营成本预计为5000万美元,目标是依靠小额捐款实现可持续发展。

用户群体与影响

  • Signal的用户数量从2020年的1200万增长到2024年的7000万,尤其在隐私敏感事件(如2020年弗洛伊德抗议活动和2021年美国国会骚乱)后下载量激增。
  • 它被广泛用于记者、活动家、技术爱好者和需要安全通信的普通用户中。Edward Snowden等知名人士也公开推荐过Signal。

安全性与局限性

  • 优点:专家普遍认为Signal的加密技术是消费级通讯工具中的“金标准”。其端到端加密被WhatsApp、Google Messages和Facebook Messenger等应用借鉴。
  • 潜在风险
    • 如果设备被物理盗取或感染恶意软件(如键盘记录器),加密可能失效。
    • 用户错误(如将消息发错人)也可能导致泄露,2025年美国防部事件就是一个例子。

Signal协议的技术细节

Signal协议(Signal Protocol,前身为TextSecure协议)是由Open Whisper Systems开发的一种先进的端到端加密协议,旨在为即时通讯提供高度安全性和前向保密性。它结合了多种密码学原语和技术,确保消息、通话和其他数据的隐私性。以下是对Signal协议核心技术细节的深入解析:

1. 协议目标与特性

Signal协议设计的核心目标包括:
  • 端到端加密:只有通信的双方可以解密消息,中间人(包括服务器)无法访问明文。
  • 前向保密性(Forward Secrecy):即使长期密钥泄露,过去的会话数据仍无法被解密。
  • 后向保密性(Future Secrecy):如果当前密钥泄露,未来的会话仍可保持安全。
  • 可否认性(Deniability):通信双方可以合理否认消息的真实性(通过某些机制防止第三方证明消息来源)。
  • 异步支持:支持离线消息传递。
这些特性通过复杂的密钥管理和加密算法实现。

2. 核心组件

Signal协议由几个关键密码学机制组成,主要包括:
双棘轮算法(Double Ratchet Algorithm)
  • 概述:双棘轮算法是Signal协议的核心创新,结合了对称密钥棘轮和Diffie-Hellman(DH)密钥交换的棘轮机制,用于动态生成和更新加密密钥。
  • 工作原理
    • DH棘轮:每次通信双方交换消息时,通过椭圆曲线Diffie-Hellman(ECDH)生成新的临时密钥对,确保前向保密性。
    • 对称密钥棘轮:在消息发送过程中,使用密钥派生函数(KDF)从当前密钥生成下一个密钥,用于加密后续消息。
    • 双重性:DH棘轮提供长期密钥更新(会话级),对称密钥棘轮提供短期密钥更新(消息级),形成“双重棘轮”效应。
  • 优势:即使某一消息的密钥泄露,后续消息仍安全,因为密钥不断更新且不可逆。
扩展三重Diffie-Hellman握手(X3DH)
  • 概述:X3DH是Signal协议用于初始密钥交换的机制,支持异步通信(一方离线时仍可建立安全会话)。
  • 流程
    1. 预密钥(Prekeys):接收方在服务器上存储一组预生成的一次性公钥(Prekey)和一个签名公钥(Signed Prekey),以及一个长期身份公钥。
    2. 发起方操作
      • 发起方从服务器获取接收方的公钥束(Identity Key, Signed Prekey, Prekey)。
      • 使用自己的身份私钥和临时私钥,与接收方的公钥执行三次ECDH计算,生成共享密钥(Master Secret)。
    3. 密钥派生:共享密钥通过HKDF(HMAC-based Key Derivation Function)生成会话的根密钥(Root Key)。
  • 安全性
    • 三次ECDH增加了攻击难度,确保即使部分密钥泄露,仍然难以推导出最终密钥。
    • 预密钥机制允许异步通信,同时限制服务器的元数据收集。
密钥管理
  • 根密钥(Root Key):由X3DH生成,作为会话的初始密钥,用于后续棘轮过程。
  • 链密钥(Chain Key):由根密钥派生,用于对称棘轮,每次消息发送时更新。
  • 消息密钥(Message Key):由链密钥通过KDF生成,用于加密单条消息,之后立即丢弃。
  • 棘轮步骤:每次发送或接收消息时,链密钥和消息密钥都会单向更新,确保前向保密性。
加密与完整性
  • 加密算法:使用AES-256(CBC模式或GCM模式)对消息明文进行加密。
  • 完整性校验:通过HMAC-SHA256生成消息认证码(MAC),确保消息未被篡改。
  • 封装格式:加密后的消息包含头信息(用于密钥同步)和密文,头信息本身也被加密保护。

3. 使用的密码学原语

Signal协议依赖以下标准化的密码学工具:
  • 椭圆曲线加密(ECC)
    • 使用Curve25519(一种高性能椭圆曲线)进行ECDH密钥交换,提供128位安全强度。
    • 签名使用Ed25519(基于Curve25519的变体),用于验证预密钥的真实性。
  • 对称加密
    • AES-256用于消息加密,支持CBC(带填充)和GCM(带认证)模式。
  • 密钥派生
    • HKDF(基于HMAC-SHA256)用于从共享密钥生成各种用途的子密钥。
  • 消息认证
    • HMAC-SHA256确保消息完整性和来源可信性。

4. 协议工作流程示例

以下是Signal协议在典型双人聊天中的简化工作流程:
  1. 会话初始化
    • 用户A向服务器请求用户B的公钥束(Identity Key, Signed Prekey, Prekey)。
    • A使用X3DH与B的公钥计算共享密钥,派生根密钥和初始链密钥。
  2. 消息发送
    • A从链密钥派生消息密钥,加密消息并附加MAC。
    • 发送后,链密钥通过对称棘轮更新。
    • 如果A发送多条消息,每条消息使用新消息密钥,链密钥持续推进。
  3. 消息接收与回复
    • B收到消息后,使用自己的私钥和A的公钥执行X3DH,派生相同根密钥。
    • B解密消息并验证MAC。
    • B回复时触发DH棘轮,双方交换新公钥对,更新根密钥和链密钥。
  4. 持续通信
    • 每次消息交换,协议交替使用对称棘轮和DH棘轮,确保密钥动态刷新。

5. 高级特性

  • 群聊加密
    • Signal使用Sender Keys机制:群内每人生成一个发送密钥,分发给其他成员,用于加密群消息。
    • 当成员加入或离开时,发送密钥更新并重新分发。
  • 会话恢复
    • 如果设备丢失,Signal不存储历史消息密钥,用户需重新建立会话。
    • 支持“安全码”(Safety Number),用户可手动验证对方身份密钥,防止中间人攻击。
  • 前向保密性优化
    • 通过棘轮机制,每条消息的密钥独立,即使长期密钥泄露,攻击者无法解密历史消息。

6. 安全性分析

  • 优点
    • 双棘轮算法提供的双重密钥更新机制,使协议在动态环境中极为安全。
    • X3DH支持异步通信,同时保持强加密。
    • 开源代码经过广泛审计(如2016年由牛津大学等团队验证),未发现重大漏洞。
  • 潜在弱点
    • 如果设备端点被攻破(如恶意软件窃取私钥),加密失效。
    • 元数据(发送时间、消息大小)可能泄露通信模式,尽管内容安全。
    • 依赖用户正确验证安全码,否则可能遭受中间人攻击。

7. 与其他协议的比较

  • 与PGP相比:Signal提供前向保密性,而PGP没有动态密钥更新。
  • 与OMEMO相比:OMEMO(基于XMPP的协议)也使用双棘轮,但Signal的实现更专注于移动端优化。
  • 与WhatsApp的实现:WhatsApp借鉴了Signal协议,但Signal不收集元数据,且完全开源。
0已收藏
0已赞

阅读榜

更多

联系我们

回顶部