TgWitness / ドキュメント

テスト済みの内容 →

参考文献 / 収集

Telegram · シークレットチャット:実装とデモ

独立した「シークレットチャット」の実装を理解し、架空のインターフェースを試用し、未解決の不具合を確認してください。

TgWitness / ドキュメント

確認日: 6 11月 2026: 別の「シークレットチャット」の実装が 開発中です。これは、公開された main at 3d23e52b647b. 通常のコレクターおよびTakeoutエクスポートは、シークレットチャットを収集しません。 インタラクティブなウェブサイトのシナリオでは、架空のデータを用いてインターフェースを実演していますが、 Telegramでの通信は行えません。

実装の場所#

コミット 0e60f88e により、ローカル開発ブランチ fix/panel-routes-sessions に「Sources → Pseudo-secret」が追加されました。チェックされたスナップショットは bb8788fb685c です。 その実装には、tgwitness/secret_chats.py、アプリケーションルート、 tgwitness/static/views/secret-chats.js、および専用のテストが含まれています。

そのブランチのオプション機能であるsecret-chatsは、 KiaroSama/Telethon-Secret-Chat を使用し、d87bf037b90060383c7b704d8a06ebb98c621c6fにピン留めされています。このライブラリは、 アカウントの既存のTelethon認証に基づいて、Telegramのエンドツーエンドチャットプロトコルを実装しています。 このライブラリを単独でインストールしても、mainに不足している統合機能は追加されません。

開発インターフェースの機能#

アクション 記録された動作
ユーザー名またはユーザーIDでチャットを開始する リクエストを送信してください。相手側がそれを受け入れる必要があります。
着信リクエストを受け付ける TgWitnessは、そのチャットの受信エンドポイントとなります。自動受諾は別の設定であり、デフォルトではオフになっています。
メッセージの送受信 送信または受信のsecret_chat.messageレコードを追加し、スレッドに表示します。
添付ファイルを受信する これを復号し、SHA-256でバイト列を保存し、secret_chat.fileを記録してください。
タイマーまたは削除通知を受け取る 通知を記録し、以前にキャプチャされたコンテンツを保持してください。
会話の内容を確認する メッセージ、ファイル、通知、および主要な可視化情報を表示します。開いているタブは4秒ごとに更新されます。

この統合機能が含まれる開発ビルドにおいて、オペレーターは選択したアカウントに対してモジュールを有効化し、接続します。開始、受諾、送信には、 やり取りを行うための権限と、アカウントの読み取り専用保護がオフになっていることが必要です。もう一方の 参加者は、新しい送信チャットを受諾する必要があります。これらの制御機能は、 上記のリビジョン時点では公開アプリケーションには存在しません。

このTgWitnessセッションによって作成または承認されたチャットのみが対象となります。端末上に既存の シークレットチャットは、その端末に残ります。セッションのインポートでは、 それらの個別の暗号化キーは提供されません。シークレットチャットの鍵素材およびカウンターは ワークスペースの保管庫に保存され、保存されたメッセージおよび復号化されたファイルは、通常の ワークスペースの保存保護措置に従います。

Webサイトでのデモ#

ウェブサイトの「Try Secret Chat」シナリオでは、架空の会話が開かれます。これにより、 読者はリクエストを開始し、その受け入れをシミュレートし、サンプルメッセージを送信し、 スクリプト化された返信とファイルを受信し、タイマーや削除通知を確認することができます。受信した リクエストを受け入れることも可能です。コントロールには、シミュレートされた相手側のアクションが明示的に表示されます。

このシナリオはブラウザのメモリ上で実行されます。リセットまたは再読み込みを行うと、内容は消去されます。ログインを行ったり、 Telegramに接続したり、実際の暗号化キーを作成したり、署名付きサンプルのダウンロードを変更したりすることはありません。 表示されるメッセージは、署名付き証拠ではありません。このシナリオは意図された 操作を実証するものであり、開発実装が完成していることを保証するものではありません。

確認事項および未解決の不具合#

既存の5つのテストは、暗号化された鍵の永続性、ライフサイクルおよびメッセージ レコード、受信受け入れポリシー、読み取り専用送信、および添付ファイルのエクスポートを網羅しています。 これらは、11月6日のレビューにおいて、固定されたライブラリに対して合格しました。さらに3つの 合成チェックにより、同じスナップショットで欠陥が再現されました:

発見事項 結果
read_onlyのバイパスを閉じる close path は、インタラクションをブロックすべき場合にリモートアクションを実行できます。
重複検出は、直近500件のレコードのみを対象とします。 古いリプレイは、再起動後に重複データが生成される可能性があります。
添付ファイルのダウンロードに失敗すると、その保留中のエントリは削除されます 一時的な障害が発生すると、リトライジョブが失われます。

これらは未修正の不具合であり、 公開された監査報告書にも記録されています。5つの合格テストでは、 これらの不具合は網羅されていません。本レビューでは、合成ワークスペースを使用し、Telegramの 動作を模擬して実施したものであり、実際のハンドシェイクを再現したり、本番環境への展開を検証したりしたものではありません。