文件說明 / 10
確保安全
了解 Telegram 的傳輸路徑、公開代理伺服器清單以及可選的外部服務。了解每項密鑰能解鎖哪些功能、防護措施涵蓋哪些範圍,以及哪些部分需要您自行處理。
所有內容的匯集之處
該收集器、其控制面板以及所有儲存的記錄,均保留在您運行該工具的電腦或伺服器上。預設情況下,Telegram 是唯一的輸出目的地;其他每個目的地皆需透過獨立開關設定。
- Telegram隨時 · 透過您的路徑
該帳戶的 MTProto 連線方式:直接連線、SOCKS5、HTTP 或 MTProxy。「隱藏 IP」模式會等待可用的代理伺服器;若要啟用直接連線備用機制,則需選用明確允許此功能的模式。
- 站外文案可選 · 預設為關閉
日誌、檔案及檢查點在上傳至 S3 相容儲存空間前,均會以 AES-GCM 加密。金鑰由您自行保管;附件名稱採用帶有金鑰的雜湊值,而非其內容雜湊值。
- 通知可選 · 預設為關閉
包含問題清單及聊天室標題的變更次數。訊息摘錄僅在您啟用該功能時才會發送。
- 時間戳權威性可選 · 預設為關閉
僅包含簽名檢查點的 SHA-256 值與一個隨機的非ce值。不包含任何訊息內容,亦不包含聊天室名稱。
- Witness可選 · 預設為關閉
透過唯讀憑證擷取經簽名的檢查點與擷取計數器。該工具無法讀取對話內容或變更設定。
預設設定:僅 Telegram 連線會離開這台機器。
每個秘密所揭示的真相
| 機密 | 儲存位置 | 它能帶來什麼 | 若發生洩漏 |
|---|---|---|---|
| 面板代幣 | 資料目錄中的 panel-token.txt;瀏覽器僅將其保留於該分頁中 | 每個工作區中的所有內容:閱讀與匯出、變更範圍、登入帳戶 | 停止 TgWitness、刪除 panel-token.txt,然後重新啟動:將建立一個新的代幣 |
| Telegram 會話 | Vault,加密版(credentials.enc) | Telegram 帳號本身 | 請在 Telegram 的「設定」→「裝置」中結束該會話 |
| 簽名金鑰 | Vault,加密版(signing.enc) | 透過您的數位指紋進行驗證的簽名記錄 | 檢查點儲存於其他位置,透過「見證」與時間戳記,可顯示先前存在的內容 |
| 金庫金鑰 | 資料旁標示的 vault.key,或用於新資料目錄的外部主金鑰 | 解密金庫 | 請將會話金鑰與簽署金鑰也視為已外洩 |
| Witness 代幣 | 關於 Witness 主機 | 唯讀:簽名檢查點與系統狀態 | 請在「Witness」頁面中刪除該內容;並建立一個新的頁面 |
| 站外文案關鍵詞 | Vault;只需下載一次即可進行資料恢復 | 解密離線副本 | 凡持有儲存物件者皆可解密該物件:請將該副本視為已外洩 |
保護範圍涵蓋哪些內容
已涵蓋
- 若匯出紀錄中出現遭變更、刪除或重新排序的項目:雜湊鏈或簽名將無法通過驗證。
- 若日誌在檢查點之後被刪減或重建,且該檢查點已儲存於其他位置:則保留的檢查點將不再與當前日誌內容相符。
- 面板代幣猜測機制:256 位元隨機位元組,以恆定時間進行比對;若每分鐘失敗 15 次,該位址將被拒絕。
- 具敵意之聊天內容:文字以純文字形式插入,絕不以 HTML 格式呈現;附件將以檔案形式下載;該面板不會從其他網站載入任何內容。
- 一個包含外部金庫金鑰的複製資料目錄:若無主金鑰,會話與簽名金鑰將保持加密狀態。
交由您決定
- 主控制面板的代幣擁有完全控制權。可授予他人有限度的存取權限,使其僅能存取所需的帳戶、聊天室及操作;請務必將主金鑰保密。
- 該伺服器的管理員可讀取所有內容,並能重寫及重新簽署該日誌。請將指紋與檢查點儲存於另一套系統中。
- TgWitness 不會對訊息內容及媒體檔案進行加密。請使用磁碟加密並設定嚴格的存取權限。
- 若透過 localhost 以外的純 HTTP 連線,網路將暴露該存取憑證。請使用 HTTPS 或 SSH 隧道。
- 簽名用以證明所記錄的內容未被篡改,而非證明每個 Telegram 事件均已被記錄。
可透過權限設定、有效期限及會話限制,分享案件存取權限。證人代幣仍為獨立的憑證。
強化安裝安全性
- 請使用專用的 Telegram 帳號——切勿使用您的主要帳號。控制面板代幣與會話可讓您完全掌控該帳號。
- 請將控制面板維持在 127.0.0.1。僅可透過 HTTPS(內建的 Caddy 設定)或 SSH 隧道進行遠端存取。
- 對存放資料目錄的磁碟進行加密:訊息內容與媒體檔案均以原始接收狀態儲存。
- 將資料目錄限制在服務帳戶內。在 Unix 系統上,新建立的目錄預設權限為 0700;在 Windows 系統上,請設定該資料夾的權限。
- 請將金庫主金鑰存放於其他伺服器上:在建立資料目錄之前,請先設定
TGWITNESS_VAULT_KEY_FILE。 - 請將簽名金鑰的指紋和檢查點儲存於另一套系統中,並在另一台主機上新增一名見證者。
- 切勿將
data/、會話金鑰、panel-token.txt或金庫金鑰上傳至 GitHub 或聊天室。 - 請勿在反向代理伺服器上記錄
Authorization標頭或請求正文。
我可以在不丟失資料的情況下變更面板代幣嗎?
是的。該代幣僅用於開啟控制面板。停止 TgWitness 運作,從資料目錄中刪除 panel-token.txt,然後重新啟動;日誌、會話及金鑰均保持不變。若設定為 TGWITNESS_TOKEN,則會使用環境變數值而非檔案內容。
為何訊息在靜止狀態下未經加密?
收集者必須讀取這些記錄,才能進行搜尋、比對版本及匯出。若僅在同一台機器上使用金鑰進行加密,對於能夠讀取該機器的人而言,幾乎起不到任何防護作用。磁碟加密能保護已停用或遭竊的磁碟;嚴格的權限設定則能保護正在運行的磁碟。
回報漏洞
請透過 GitHub 儲存庫中的「安全性」→「回報漏洞」功能進行回報。請包含版本資訊、影響範圍以及最簡化的重現步驟。切勿傳送憑證、帳戶目錄或真實證據檔案。若無法進行私下回報,請開啟一個問題,請求開設私人頻道,並避免在其中提及漏洞利用細節。