TgWitness / 文件說明

已測試的內容 →

參考資料 / 證據

Telegram · 帳戶匯出

匯出該帳號當前可讀取的內容:範圍、可恢復的任務、經簽名的存檔,以及已最小化的共享副本。

TgWitness / 文件說明 · 證據與驗證

證據與驗證

帳號匯出會獨占該帳號。啟動或恢復前,請明確暫停監控或其他蒐集工作;應用程式絕不會自動停止它們。

身為安裝管理員,請選擇「從這裡開始」→「匯出我的帳號」,或「匯出」→「Telegram 帳號」→「設定帳號匯出」。 如有需要請先登入,檢視權限範圍,並明確啟動匯出程序。無需持續監控。已儲存的觀察記錄是對現有日誌的獨立匯出;其 ZIP 包含所有來源,不受日誌篩選器限制。每個工作區皆擁有專屬的任務、簽署身分及儲存空間。已授予的面板存取權限(包含無限制的普通匯出授權)無法開啟這些帳戶層級的路徑。

「依發送者或訊息內容篩選」下可展開發送者與文字篩選器。「帳戶資料與連線方式」包含可選的帳戶類別以及「Takeout/一般會話」選項;其摘要區塊即使在關閉時,仍會顯示當前的選項。關閉這些區段後,其設定將予以保留。在切換檢視模式時,「匯出」與「報告草稿」會保留在當前面板會話中;但重新載入瀏覽器後,這些內容將不會被保存。無論選擇哪種匯出方式,皆可存取現有的工作項目。

此工作流程會匯出目前連線帳戶可存取的資料。預設使用 Telegram Takeout 功能;這並非針對無法存取或已刪除的 Telegram 資料所做的備份。秘密聊天、無法存取的歷史紀錄及較早的編輯內容均無法恢復。Telegram 可能會在 Takeout 開始前設定一段等待時間。控制面板會顯示該等待時間;系統不會在未提示的情況下切換傳輸方式。明確選用的「標準 API」選項涵蓋範圍不同,並會記錄不支援的類別。

Takeout 是官方匯出 API,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 雜湊值可偵測收集器提交相關位元組後所發生的變更。它們並不能 不 證明 Telegram 確實簽署了那些訊息、收集器操作者誠實無欺、該帳戶的歷史紀錄完整,或法院會接受該材料。擷取時間以收集器的時鐘為準。獨立的時間戳記與獨立的擷取來源必須分別進行評估。

為律師或其他收件人準備一份資訊披露文件#

下載完成的匯出檔後,請保留原始的 ZIP,並從 index.html 從解壓縮後的副本中開啟。該報告說明其範圍、可用的涵蓋內容及 限制。其記錄參考結合了存檔參考、文件路徑和 記錄編號,因此收件者可在 HTML 或列印本中找到相同的條目。 如需實際範例,請參閱 開啟虛構報告。

從已完成的帳戶匯出檔案中,選擇「準備分享副本」。此操作將建立一個獨立的簽名衍生檔。原始檔 ZIP 保持不變且為私有;除非收件者獲授權接收完整內容,否則請勿將其與已精簡的衍生檔一併傳送。請另行選擇報告語言。若要變更語言或任何選取設定,必須在建立前再次預覽。

  1. 輸入披露目的,並選擇日期、發送者 ID 及文字內容篩選條件。
  2. 您可以選擇保留真實身分、僅顯示列出的參與者,或對所有人進行假名化處理。在任何假名化模式下,聊天 ID/標題和訊息 ID 也會被替換。假名在單一披露範圍內保持不變,但在獨立準備的披露之間會發生變化。
  3. 可保留訊息內容、完全省略,或新增具體名稱/短語以進行遮蔽。在私密模式下,本工具還會遮蔽已知的隱藏發訊者名稱與替代使用者名稱、完整代碼的發訊者 ID、私訊名稱、連結、電子郵件地址及類似電話號碼的字串。已知名稱比對功能會處理 Unicode 大小寫轉換,包括 Straße/STRASSE。通用群組/頻道名稱不會自動從訊息文字中移除。若已知身分遮蔽限制被超過,請縮小來源匯出範圍或省略文字;本工具不會在未提示的情況下跳過後續的名稱。這些規則僅為盡力而為,並非普遍性的匿名化處理。
  4. 除非收件者需要,否則請勿包含檔案。所包含的原始檔案會保留其像素、音訊、文字及元資料。本工具不會對其進行匿名化處理。
  5. 預覽計數、警告及轉換後的訊息範例後,請明確確認建立。每個範例限 12 則訊息,且每則訊息的文字長度不得超過 2,000 個字元。此為範例,並非對結果的完整檢視。變更設定需再次進行預覽。預覽將於 15 分鐘後失效,且綁定於該管理員會話及原始的 ZIP;建立後無法重複使用。建立新的預覽將使同一工作與會話中的先前預覽失效。
  6. 檢視完整的結果 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 分鐘的限制。若要驗證源自託管擷取的共享副本,請將其來源雜湊值與原始存檔進行比對,並透過特定模式的檢查來驗證該存檔的認證。

證據格式 · 案例報告