参考 / 证据
Telegram · 账户导出
导出该账户当前可读取的内容:范围、可恢复的任务、经签名的存档以及已缩减的共享副本。
账号导出会独占该账号。启动或恢复前,请明确暂停监控或其他采集任务;应用绝不会自动停止它们。
作为安装管理员,请选择“从这里开始”→“导出我的账户”,或“导出”→“Telegram 账户”→“配置账户导出”。 如有需要请登录,查看权限范围,并明确启动导出。无需持续监控。已保存的观察记录是对现有日志的单独导出;其ZIP包含所有来源,不受日志过滤器限制。每个工作区都有独立的任务、签名身份和存储空间。已授予的面板访问权限(包括无限制的普通导出权限)无法访问这些全账户范围的路径。
“按发件人或消息文本过滤”下可展开发件人和文本过滤器。“账户数据与连接方式”包含可选的账户分类以及“Takeout”与“常规会话”选项;其摘要会显示当前选中的选项,即使关闭后依然可见。关闭这些部分后,其设置将得以保留。在切换视图时,导出和报告草稿仍保留在当前面板会话中;重载浏览器后,这些草稿不会被保存。无论选择哪种导出方式,均可访问现有任务。
此工作流会导出当前已连接账户可访问的数据。默认使用 Telegram Takeout 功能;这并非对不可用或已删除的 Telegram 数据的备份。秘密聊天、不可访问的历史记录以及早前的编辑内容均无法恢复。Telegram 可能会在 Takeout 开始前设置等待期。控制面板会显示该等待时间;系统不会在用户不知情的情况下切换传输方式。显式的常规 API 选项覆盖范围不同,并会记录不受支持的类别。
Takeout 是 Telegram Desktop 也使用的官方导出 API。TgWitness 可以直接从其自身的采集数据中写入 与 Desktop 兼容的 JSON;无需导入他人的 存档。两种传输方式均可获取聊天和消息 ID。 公开聊天或转发权限并不能保证导出速度更快,也无法消除 Takeout 的审批延迟。在比较速度之前,请先测量相同的范围和媒体设置。
对于最多20个明确选定的聊天ID,常规API导出会在考虑该账户完整的对话列表之前
直接解析这些对等方。因此,即使该公共频道未出现在对话列表中,
也可以在无需加入该频道的情况下将其导出。 未缓存的对等方将回退到普通对话列表。
归档过滤器仍会生效:如果 Telegram 未返回某个对话,且已归档
的聊天被排除在外,则未知归档状态将被记录为遗漏。
Takeout 保留其分段范围对话列表处理流程。两种路径均不会加入聊天或
更改转发权限。
在与桌面版兼容的 JSON 中,Telegram 标记为 left 的频道将显示在
left_chats 下,包括该账户尚未加入的可读公共频道。
FLOOD_WAIT和FLOOD_PREMIUM_WAIT都会在服务器要求的整个
时段内暂停请求。该账户的截止时间在重新连接和重启后仍会保留;后续设置的
较短等待时间无法缩短该截止时间。重试次数受限,取消操作会保留已密封的页面,
且 API 凭据不会轮换以绕过速率限制。不会进行任何 Premium 购买。
选择要收集的内容#
| 设置 | 含义 |
|---|---|
| 目的 | 请记录此次收购的必要性。请勿在此处填写不必要的姓名或敏感的案件细节。 |
| 报告语言 | 选择可读报告中标签的语言。原始消息文本保持不变;未翻译的模板标签使用英语。该语言通过已签名的任务选项固定。 |
| 聊天类型 / 聊天 ID | 可选择所有类型,或仅选择列出的聊天;“已保存的消息”属于私人聊天。已归档的聊天可单独选择。 |
| 日期 | UTC。面板中的“起始”和“截止”日历日期均包含在内。该 API 使用包含起始日期的 from_utc 和排他 to_utc;面板会发送“截止”日期之后的第一天。若边界为空,则该侧不受限制。 |
| 发送者 ID | 仅显示所列发件人的消息;若列表为空,则包含所有发件人的消息。 |
| 文本包含 | 不区分大小写的字面短语,通过“OR”进行匹配。发件人/日期/自有消息条件则通过“AND”进行组合。 |
| 自己的消息 | 仅保留发送的消息。 |
| 媒体类型 | 选择附件类别,或清除所有选项以避免下载消息文件。 |
| 文件/媒体总量限制 | 按文件计算的 MiB 以及已下载媒体的总容量(GiB)。文本、收据、可读报告以及 ZIP 占用的空间需要额外的磁盘空间。 |
| 账户分类 | 个人资料、联系人、头像、动态、会话元数据及其他 Takeout 数据均设有独立的控制选项。 |
“最小化”集合预设会禁用文件和账户元数据。发送者/内容过滤器会在保留的消息页面和媒体下载之前生效。Telegram 仍会传输包含评估这些过滤器所需消息的 API 历史记录页面:过滤并不保证未选中的消息绝不会进入进程内存。工作区中的其他持续监控项目拥有各自的范围和保留设置。
个人资料照片历史记录和动态消息默认不被选中。当案件仅需消息时,请同时禁用个人资料和联系人。如果附件或元数据并非必需,在采集过程中将其排除可避免在本次导出中保留另一份私有副本。
照片有效载荷采用其元数据和哈希清单中标识的静态图像变体,包括带有动画头像变体的照片。该动画不会替代所选的静态图像。比观察到的大小更短或更长的有效载荷将被记录为附件失败,而在文件引用更新期间发生表示形式变更的情况将被拒绝。这些失败会导致存档不完整,但会保留消息记录。 独立验证还会拒绝那些签名长度与其实际大小或表示形式不符的已保存附件,包括旧存档中的附件。
简历、报道范围与验证#
每个任务都会锁定其选项和账户身份。清单和捕获的页面均经过签名;页面收据记录了哈希值、光标位置、时间、附件结果及其前一个收据。只有已提交的页面才会推进进度。重启/恢复操作会在继续之前检查这些记录。若账户发生变更、已签名页面发生变更或收据链不一致,则会被拒绝。在捕获过程中无法编辑选项:如需处理其他范围的内容,请启动另一个任务。
“暂停”会中止正在运行的账户操作。重新启动应用程序后,未完成的工作仍可被显式恢复。过期的 Takeout 会话需要显式恢复;更改 Telegram 分段范围可能需要重新进行数据采集。恢复操作会保留之前的观察结果,因此长时间运行的导出并非单个原子快照。在数据采集期间,其他账户切换操作和冲突的导出操作将被阻止。请等待打包完成后再删除工作区。
“恢复”功能会在继续操作前验证已捕获的内容。存储在低速存储设备上的大型存档可能超过“参数 → 面板操作超时”(默认值为 120 秒)的配置值。请在重试前提高该设置;取消操作或存储中断会导致任务暂停,而完整性检查失败则会生成一个附带说明的失败任务。必须先完成验证或安全停止,才能关闭相关文件。合成测试尚未验证任何关于大型账户吞吐量的声明。
该面板可区分已完成的选定范围与部分存档,并记录遗漏和读取失败的情况。有意排除的文件与读取失败或不可用的文件有所不同。即使完整性验证成功,也应检查覆盖范围。没有任何本地读取器能够证明 Telegram 返回了所有曾经存在过的消息。
已完成的ZIP仍可供重复下载和HTTP范围下载。一个账户存档包含 manifest.json, manifest.sig、已签名 job.json, inventory.json, receipts/、权威 data/*.jsonl、已筛选 media/、可读的 HTML 以及验证器。通过独立信道固定收集器的指纹,然后使用可信安装环境进行验证:
python -m tgwitness.verify account-export.zip --fingerprint TRUSTED_SHA256
对于展开后内容超过 4 GiB 的存档,请显式设置适当的 --max-gib。该面板通过声明的展开大小和已发布的ZIP摘要来验证其经过认证且完整的本地存档;外部命令行界面(CLI)则保持其独立的大小限制。在打开可读的 HTML 文件之前请先进行验证。虽然存档中捆绑的验证器很方便,但使用独立获取的验证器可以避免信任随证据一起提供的可执行代码。
Ed25519签名和SHA-256哈希值可检测收集器提交相关字节后的变更。它们并不能not证明Telegram对这些消息进行了签名、收集器操作员行为诚实、该账户的历史记录完整,或法院会采纳该材料。捕获时间以收集器的时钟为准。独立的时间戳和独立的采集来源必须分别进行评估。
为律师或其他收件人准备一份披露文件#
下载完成的导出文件后,请保留原始的 ZIP,并从 index.html
解压后的副本。该报告说明了其范围、可用覆盖范围和
限制。其记录引用结合了存档引用、文档路径和
记录编号,因此收件人可以在 HTML 或打印件中找到相同的条目。
有关实际示例,请参见 打开虚构报告。
在完成的账户导出中,选择“准备共享副本”。这将生成一个独立的、经过签名的衍生副本。源文件 ZIP 保持不变且为私有;除非收件人被授权接收其完整内容,否则请勿将其与经过简化的衍生副本一同发送。请单独选择其报告语言。更改语言或任何选择设置后,在创建前需要再次预览。
- 输入披露目的,并选择日期、发送者 ID 以及文本内容条件。
- 您可以选择保留真实身份、仅显示列出的参与者,或对所有人进行化名处理。在任何化名模式下,聊天 ID/标题和消息 ID 也会被替换。化名在同一份披露文件内保持不变,但在独立准备的披露文件之间会发生变化。
- 可保留消息正文、完全省略,或添加具体名称/短语进行屏蔽。在私密模式下,该工具还会屏蔽已知的隐藏发件人名称和别名、完整令牌形式的发件人 ID、私聊昵称、链接、电子邮箱地址以及类似电话号码的字符串。已知名称匹配功能支持 Unicode 大小写转换,包括
Straße/STRASSE。通用群组/频道名称不会自动从消息文本中移除。若已知身份屏蔽限制被超过,请缩小源导出范围或省略文本;该工具不会默认跳过后续的名称。这些规则仅为尽力而为,并非普遍的匿名化处理。 - 除非收件人需要,否则请勿包含文件。包含的原始文件将保留其像素、音频、文本和元数据。该工具不会对这些文件进行匿名化处理。
- 预览计数、警告和转换后的消息示例,然后明确确认创建。示例限制为每条消息 12 条,每条文本长度不超过 2,000 个字符。这仅为示例,并非对结果的完整审查。更改设置需要再次预览。预览在 15 分钟后失效,且与该管理员会话及原始的 ZIP 严格绑定;创建后无法重复使用。新的预览将使同一任务和会话中的先前预览失效。
- 查看生成的完整
index.html并messages.jsonl在本地进行检查。若发现其中包含不必要的信息,请创建一份新的披露文件并设置更严格的排除条款。请勿直接编辑已签名的ZIP。
筛选后未包含的消息#
预览。当披露内容不完整时,其显示效果也会不完整。在每个包含至少一条已披露消息的聊天中,选定范围未包含的消息会以标记形式显示, [withheld by selection — rule: sender] (或 text, period)。选择“被选定范围排除的消息”:每组连续被排除的消息显示一个标记(默认),或每条消息显示一个标记。标记仅包含规则和计数,绝不包含文本、发件人、日期或文件。未披露任何内容的聊天将被完全排除,因此该软件包不会透露其存在。
已披露的回复会说明其回复对象:是本副本中包含的消息、被筛选排除的消息,还是源导出中不存在的消息(在导出前已被删除或从未被导出;导出数据无法区分这两种情况)。 被披露回复所回应的被屏蔽消息始终带有独立标记,因此该回复会指向一条解释其为何为空的记录。这三种状态有别于删除和数据缺失,后者属于源导出数据本身。
在 messages.jsonl (格式 tgwitness-account-disclosure-v2)中,每条消息包含 state: disclosed,或 withheld 带有 rules 和 count。已披露的回复包含 reply_to 与目标 id 和 state (disclosed, withheld, not_in_source)。清单统计了已公开的消息、聊天、媒体和 withheld 消息。 verify.py 会拒绝携带内容的标记,以及指向包中缺失记录的回复;版本 1 的包仍按原有方式进行验证。
精简格式省略了结构化的账户资料、联系人、头像、会话、故事、原始 Telegram 对象、转发头信息、回复引用、联系人卡片和位置元数据。它不包含原始 JSONL 文件、私有过滤器设置、化名密钥和身份映射。选中的文本、明确保留的身份信息以及包含的文件仍可能包含与这些过滤器中相同的名称、ID 或短语;这些内容需要单独审查。 隐私策略和化名密钥以加密形式保存在该任务的本地保险库中;删除任务将清除其关联的隐私披露记录。公共策略记录的是过滤器计数而非过滤器值。声明的目的在清单和 HTML 中是公开的:明确的隐私标准以及在化名模式下已知的隐藏身份也会被遮蔽,包括在省略消息文本的情况下。请确保目的陈述中不包含不必要的个人细节;未知的身份识别上下文可以保留。
其清单文件将衍生文件、公开政策以及原始 ZIP 的哈希值绑定在一起。通过验证可以确认文件的完整性,如果源文件在本地提供,还可以验证源文件的关联性:
python -m tgwitness.verify minimized-disclosure.zip --fingerprint TRUSTED_SHA256
python -m tgwitness.verify minimized-disclosure.zip --fingerprint TRUSTED_SHA256 --evidence account-export.zip
来源链接本身并不能独立证明该转换过程已选取所有必需项目或移除了所有可识别细节。原始明文并未作为证明嵌入其中。对此判断需要进行新的审查。
共享与托管捕获#
选择收件人所需的消息和文件,审查完整的共享副本,并将源文件单独保留。记录已发送 ZIP 文件的哈希值,以便收件人能够识别并验证该确切副本。通过假名化处理替换所选标识符;包含的文本和原始文件仍作为审查内容的一部分。
GitHub Actions 支持通过 Takeout 或常规 API 导出整个账户或选定聊天记录,还支持单个聊天的事件日志。托管捕获指南详细说明了设置验证及 120 分钟的时限。要验证从托管捕获生成的共享副本,请将该副本的源哈希值与原始存档进行比对,并使用特定模式的检查方法验证该存档的认证信息。