开发文档

TDLib 群组通话加密与状态验证

依据 TDLib 源码文档理解群组状态链、共享密钥、签名和表情核验,明确当前协议的信任边界。

GetTGAPI 编辑团队更新于
文档解读核对日期

来源版本 a94b83d67ab4 · TDLib contributors · BSL-1.0

依据官方资料整理,由 GetTGAPI 独立维护。 文档目录与术语表 →

本页内容
  1. 状态链管理参与者与密钥变化
  2. 媒体加密和身份核验分别承担作用
  3. 研究与接入建议

状态链管理参与者与密钥变化

此处的 blockchain 是通话参与者共同维护的状态账本,不是购买虚拟币或支付网络。区块记录前序 Hash、高度、变更、签名和状态证明;应用区块要求全部通过,不能只接受其中一部分。

变更可以涉及键值数据、参与者权限或共享密钥。区块内前一项变更可能影响后续权限,校验顺序因此是协议的一部分。

媒体加密和身份核验分别承担作用

媒体包以帧为单位加密并带签名;序号用于防重放。共享密钥按参与者分别加密,下发失败的参与者不能继续参与核验流程。

表情核验使用承诺后揭示的机制引入不可预测值。源码文档明确指出,当前方案的安全性依赖参与者核对一致的表情;不能因为“用了区块链”就省略该步骤或宣称获得永久身份认证。

研究与接入建议

阅读完整源文档、对应 schema 和实现测试后再考虑修改协议。保持成员变化、密钥变化及 UI 中的参与者列表一致。无法解密、分叉或签名错误应清楚失败,不静默继续播放。原始文档与许可包可从页首下载,本文不提供简化后可直接投产的密码算法。

原文许可与归属 · BSL-1.0

TDLib contributors · 完整许可文件

Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:

The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.