
TorChat - Torネットワーク上の安全、プライベート、匿名のピアツーピアチャット
Torネットワークを介した、安全でプライベートかつ匿名のピアツーピアチャット。
TorChatは本当にクールです。 他のツールにはないクールな機能があります。
永続的なアドレスを使用する標準のTorチャットシステムとは異なり、この実装は完全に一時的です。
ゼロ永続性: サーバーは一時的な隠しサービスを作成します。セッションが終了すると、.onionアドレスは削除され、復元も再利用もできません。
ハイブリッドアーキテクチャ: Torサービスをホストすることは通常ユーザーにとって最も難しい部分だと気づきました。これを解決するために、サーバーモードはゼロ設定で動作する埋め込みTorプロセスを使用します。クライアントモードは、おそらく既にお持ちのTorインスタンス(Tor Browserなど)にフックするだけです。つまり、システムのTorを使用します。
シンプルなセキュリティ: 暗号化にはChaCha20-Poly1305を選択しました。これはほとんどのハードウェアでAESよりも高速で、組み込みの認証機能を提供します。つまり、転送中にメッセージの1ビットでも改ざんされると、アプリはそれを拒否します。
ええ、🔏(鍵)で設計されています。
注 : ChaCha20-Poly1305は、ChaCha20ストリーム暗号とPoly1305メッセージ認証コードを組み合わせた、関連データ付き認証暗号(AEAD)アルゴリズムです。[1] ソフトウェアでの性能が速く、ハードウェアアクセラレーションなしでは通常AES-GCMよりも高速です。[1]: §B
出典 : https://en.wikipedia.org/wiki/ChaCha20-Poly1305 https://protonvpn.com/blog/chacha20
自動セットアップ: ネットワークの専門家である必要はありません。サーバーがTorハンドシェイクを処理し、秘密の.onionアドレスを自動的に作成します。
自己破壊型招待: 招待にはタイマーが組み込まれています。リンクは10分間のみ有効で、その間に誰も参加しないと「ドア」は永久的にロックされます。
QRコード共有: 56文字のオニオンアドレス(間違えやすい)を入力する代わりに、ホストはQRコードを表示してゲストにスキャンしてもらえます。
双方向通信(全二重モード): Pythonスレッドを使用して、両者が同時に入力と受信ができ、相手の終了を待つ必要がありません。
完全消去: このツールは一時的です。つまり、痕跡を残しません。ログ、履歴、保存ファイルはありません。チャットを閉じると、アドレスとメッセージはまるで存在しなかったかのように消え去ります。
TorChatはTorアーキテクチャを使用しており、最適なユーザー体験を提供します:
依存関係ゼロ - 埋め込みTorを使用
AppImageを実行するだけです。AppImageのために必要な設定はありません。
./TorChat-x86_64.AppImage
# Choose: [1] Host chat (Server)
Torが必要 - システムTorまたはTor Browserを使用
ほとんどの人はすでにこれを持っています。たぶん。
オプションA: Tor Browserを使用(最も簡単)
# 1. First you need to open the Tor Browser because it gives you a SOCKS proxy that works on port 9150 which's the Tor Browser.
# 2. Run TorChat client
./TorChat-x86_64.AppImage
# Choose: [2] Connect to peer (Client)
オプションB: システムTorを使用
# 1. Install and start system Tor
sudo apt install tor [ debian ]
sudo pacman -S tor [ arch ]
To start the tor service you need to use the following command:
sudo systemctl start tor.
This will get the tor service up and running. You have to use the tor service if you want to use tor. The command sudo
systemctl start tor
is what you should type to start tor.
# 2. Run TorChat client
./TorChat-x86_64.AppImage
# Choose: [2] Connect to peer (Client)
Person 1 (Host):
chmod +x TorChat-x86_64.AppImage
./TorChat-x86_64.AppImage # Choose [1] Server
# Share the invite URL/QR code
Person 2 (Join):
# Open Tor Browser first, then:
./TorChat-x86_64.AppImage # Choose [2] Client
# Paste the invite URL
自分をクールな開発者だと思うなら、これはあなたのためのものです。
Python 3.7+
システムTor(クライアントモードのみ)
git clone https://github.com/blackXploit-404/torchat.git
cd torchat
python -m venv torchat
source torchat/bin/activate
pip install -r requirements.txt
サーバー(ホスト):
python3 server.py
# This uses embedded Tor, so no setup is needed
クライアント(参加):
# Start system Tor first
python3 client.py
暗号化フロー:
共有シークレットはSHA256でハッシュ化され、32バイトのキーが作成されます。
メッセージごとにランダムな12バイトのノンスが生成されます。
メッセージが暗号化され、ノンスがデータの先頭に付加されます。
受信者は最初の12バイトを取り出し、それを復号のためのノンスとして使用します。
ネットワーク:
サーバー: 127.0.0.1:5000にバインドされ、Torがそれを公開の.onionアドレスにマッピングします。
クライアント: SOCKS5プロトコルを使用して、Tor回路を通してTCP接続をトンネリングします。
┌─────────────────┐ ┌─────────────────┐
│ SERVER MODE │ │ CLIENT MODE │
├─────────────────┤ ├─────────────────┤
│ Embedded Tor │ │ System Tor │
│ - Tor process │◄──►│ - SOCKS proxy │
│ - Hidden service│ │ - Port 9050/9150│
│ - No dependencies│ │ - Existing Tor │
└─────────────────┘ └─────────────────┘
SENDER SIDE:
User Message: "Hello World"
│
▼
┌─────────────────────┐
│ ChaCha20-Poly1305 │
│ Encryption Engine │
├─────────────────────┤
│ Key: SHA256(secret) │
│ Nonce: 12 random │
│ Plaintext: message │
└─────────────────────┘
│
▼
Encrypted Bytes: [nonce + ciphertext + auth_tag]
│
▼
┌─────────────────────┐
│ Tor Network │
│ (3-hop anonymity) │
└─────────────────────┘
RECEIVER SIDE:
I got some encrypted bytes. These encrypted bytes were received. The encrypted bytes are now here.
│
▼
┌─────────────────────┐
│ ChaCha20-Poly1305 │
│ Decryption Engine │
├─────────────────────┤
│ Key: SHA256(secret) │
│ Nonce: extract │
│ Verify: auth_tag │
└─────────────────────┘
│
▼
Decrypted Message: "Hello World"
HOST TOR NETWORK CLIENT
┌─────────┐ ┌───┐ ┌───┐ ┌───┐ ┌─────────┐
│Embedded │───────────▶│ A │───▶│ B │───▶ │ C │◄─────│ System|│
│ Tor │ │ │ │ │ │ │ │ Tor │
└─────────┘ └───┘ └───┘ └───┘ └─────────┘
│ Entry Middle Exit │
│ Node Node Node │
▼ ▼
.onion Address 3-Hop Encrypted Circuit SOCKS5 Proxy
共有シークレット。この方法は既に設定されたパスワードを使用しており、当面は問題なく使用できます。
ユーザー認証なし。招待URLを入手した人は誰でも参加できます。
メッセージ履歴なし。メッセージはどこにも保存されません。つまり、メッセージを送信してもどこにも保持されません。後で見返すことはできません。システムはこのように動作します。メッセージは保存されず、そのまま消えます。
招待の有効期限 - セキュリティのために招待は期限切れになります(デフォルト10分)
# Embedded Tor (Server)
DataDirectory /tmp/tor_chat_xyz/
HiddenServiceDir /tmp/tor_chat_xyz/hidden_service/
HiddenServicePort 5000 127.0.0.1:5000
SocksPort 0 # Disabled for server
# System Tor (Client)
SocksPort 9050
# Default system configuration
"アドレスが見つからない": 新しい.onion記述子がTorネットワークに公開されるまで30~60秒待つようにユーザーに注意を促す追加。
"接続タイムアウト": Torサービスのステータスとネットワーク接続を確認するよう提案。
sudo systemctl status tor
現在はこれよりも多くの機能があります

TorChatは合法的なプライバシー強化通信を目的としています。責任を持って使用し、現地の法律を遵守してください。
このプロジェクトはMITライセンスの下で提供されています。詳細はLICENSEをご覧ください。
TorChatをより良くしたいですか?貢献を歓迎します!