ドキュメント / 10
セキュリティを確保してください
Telegramの通信経路、公開プロキシリスト、およびオプションの外部サービスについてご確認ください。各設定がどのような機能をもたらすか、どのような保護機能が適用されるか、そしてどのような点はユーザー自身に委ねられているかをご理解ください。
すべての情報が集約されている場所
コレクター、その操作パネル、および保存されたすべての記録は、実行しているコンピュータまたはサーバー上に残ります。デフォルトではTelegramのみが保存先となりますが、その他の保存先は個別の設定スイッチで指定可能です。
- Telegram常に・お客様のルートを通じて
アカウントのMTProto接続方法:ダイレクト、SOCKS5、HTTP、またはMTProxyです。「IP非表示モード」は、正常に動作するプロキシを待機します。ダイレクトへのフォールバックには、それを明示的に許可するモードが必要です。
- 外部サイト用コピーオプション・デフォルトではオフ
ジャーナル、ファイル、チェックポイントは、S3互換のストレージにアップロードされる前にAES-GCMで暗号化されます。鍵はユーザーが管理します。添付ファイルの名前は、内容ハッシュではなく、鍵付きハッシュによって付けられます。
- 通知オプション・デフォルトではオフ
チャットタイトル付きの課題と変更点の一覧。メッセージの抜粋は、有効に設定した場合にのみ送信されます。
- タイムスタンプの信頼性オプション・デフォルトではオフ
署名付きチェックポイントの SHA-256 ハッシュと、ランダムなノンスのみが含まれます。メッセージやチャット名は一切含まれません。
- Witnessオプション・デフォルトではオフ
読み取り専用トークンを使用して、署名付きチェックポイントとキャプチャカウンターを取得します。会話の内容を読み取ったり、設定を変更したりすることはできません。
デフォルト設定:Telegramへの接続のみがこのマシンから行われます。
それぞれの秘密が解き明かすもの
| Secret | 保存場所 | このツールがもたらす可能性 | 万が一情報が漏洩した場合 |
|---|---|---|---|
| パネルトークン | データディレクトリ内のpanel-token.txt;ブラウザはこれをそのタブのみのために保持します | すべてのワークスペース内のあらゆる内容:閲覧・エクスポート、範囲の変更、アカウントへのログイン | TgWitnessを停止し、panel-token.txtを削除してから再起動してください:新しいトークンが作成されます |
| Telegramのセッション | Vault、暗号化済み(credentials.enc) | Telegramアカウント自体 | Telegramの「設定」→「デバイス」からセッションを終了してください。 |
| 署名鍵 | Vault、暗号化済み(signing.enc) | ご自身のフィンガープリントで検証可能な署名付き記録 | チェックポイントは別の場所に保存されており、証人およびタイムスタンプにより、以前の状態が確認できます。 |
| Vaultキー | データの横にvault.keyを記載するか、新しいデータディレクトリ用の外部マスターキーを指定してください。 | 「Vault」の解読 | セッションキーおよび署名キーも漏洩したものとして扱ってください |
| Witnessトークン | witnessホストについて | 読み取り専用:署名付きチェックポイントおよび健全性 | 「Witness」ページでこれを削除し、新しいページを作成してください。 |
| 外部サイト用コピー用キー | Vault:復元のために一度ダウンロードしてください | オフサイトコピーの解読 | 保存されたオブジェクトを保持している者であれば誰でも復号可能です。そのコピーは公開されているものとみなしてください。 |
保護の対象となる範囲
掲載済み
- エクスポートされた記録が変更、削除、または順序が入れ替えられた場合、ハッシュチェーンまたは署名が検証できなくなります。
- チェックポイント後にジャーナルが切り詰められたり再構築されたりした場合、そのジャーナルは別の場所に保存されていたチェックポイントと一致しなくなります。
- パネルトークンの推測:256ビットのランダムなビット列を定数時間で照合します。1分間に15回失敗すると、そのアドレスへのアクセスが拒否されます。
- 有害なチャットコンテンツ:テキストはテキストとして挿入され、HTMLとして挿入されることはありません。添付ファイルはファイルとしてダウンロードされ、パネルは他のサイトから何も読み込みません。
- 外部の保管庫キーが設定されたコピーデータディレクトリ:マスターキーがなければ、セッションおよび署名キーは暗号化されたままとなります。
ご判断にお任せいたします
- メインパネルのトークンが完全な制御権を持ちます。他のユーザーには、必要なアカウント、チャット、操作に対して範囲を限定したアクセス権を付与し、メインキーは非公開にしてください。
- システムの管理者は、すべての内容を閲覧し、ジャーナルを書き換え、再署名することができます。フィンガープリントとチェックポイントは別のシステムで保管してください。
- TgWitness では、メッセージ本文やメディアは暗号化されません。ディスクの暗号化と厳格なアクセス権限の設定を行ってください。
- localhost 以外の通常の HTTP 接続では、ネットワーク上でトークンが公開されてしまいます。HTTPS または SSH トンネルをご利用ください。
- 署名は、記録された内容が改ざんされていないことを証明するものであり、Telegram上のすべてのイベントが記録されたことを証明するものではありません。
権限設定、有効期限、セッション制限を設定して、案件へのアクセス権を共有できます。ウィットネストークンは、独立した認証情報として保持されます。
インストールのセキュリティ強化
- 専用のTelegramアカウントを使用してください。メインのアカウントは絶対に使用しないでください。パネルトークンとセッションにより、そのアカウントを完全に制御できます。
- パネルは 127.0.0.1 に固定してください。リモートからのアクセスは、HTTPS(同梱の Caddy 設定)または SSH トンネルを通じてのみ行ってください。
- データディレクトリが格納されているディスクを暗号化してください。メッセージ本文やメディアは、受信時のまま保存されます。
- データディレクトリをサービスアカウントに限定してください。Unix では、新しいディレクトリにモード 0700 が設定されます。Windows では、フォルダのアクセス権を設定してください。
- Vaultのマスターキーはサーバー上の別の場所に保管してください。データディレクトリを作成する前に、
TGWITNESS_VAULT_KEY_FILEを設定してください。 - 署名鍵のフィンガープリントとチェックポイントを別のシステムに保存し、別のホストにウィットネスを追加してください。
data/、セッション、panel-token.txt、またはVaultキーをGitHubやチャットにアップロードしないでください。- リバースプロキシでは、
Authorizationヘッダーやリクエスト本文をログに記録しないでください。
データを失うことなく、パネルトークンを変更することはできますか?
はい。このトークンはパネルを開くだけのものです。TgWitnessを停止し、データディレクトリからpanel-token.txtを削除してから、再度起動してください。ジャーナル、セッション、および鍵は変更されません。TGWITNESS_TOKENが設定されている場合、ファイルの代わりに環境変数の値が使用されます。
なぜメッセージは保存時に暗号化されないのですか?
収集担当者は、検索、バージョンの比較、およびエクスポートを行うために、これらのデータを閲覧する必要があります。同じマシン上の鍵でデータを暗号化しても、そのマシンを読み取ることができる相手に対しては、ほとんど効果はありません。ディスク暗号化は、停止中または盗難に遭ったディスクを保護しますが、厳格なアクセス権限設定は、稼働中のディスクを保護します。
脆弱性を報告する
GitHubリポジトリの「Security」→「Report a vulnerability」をご利用ください。バージョン、影響範囲、および再現に必要な最小限の情報を記載してください。認証情報、アカウントディレクトリ、実際の証拠アーカイブは絶対に送信しないでください。非公開での報告が利用できない場合は、エクスプロイトの詳細を記載せずに、非公開チャネルの開設を依頼するイシューを作成してください。