
TorChat - Tor 네트워크를 통한 안전하고 비공개적이며 익명의 P2P 채팅
Tor 네트워크를 통한 안전하고 사적이며 익명인 피어 투 피어 채팅.
TorChat은 정말 멋집니다. 다른 것들에는 없는 멋진 기능들을 가지고 있습니다.
영구 주소를 사용하는 표준 Tor 채팅 시스템과 달리, 이 구현은 완전히 일시적입니다.
영구 저장 없음: 서버는 임시 히든 서비스를 생성합니다. 세션이 끝나면 .onion 주소는 삭제되며 복구하거나 재사용할 수 없습니다.
하이브리드 아키텍처: Tor 서비스를 호스팅하는 것이 보통 사용자들에게 가장 어려운 부분이라는 것을 알게 되었습니다. 이를 해결하기 위해 서버 모드는 설정이 전혀 필요 없는 내장 Tor 프로세스를 사용합니다. 클라이언트 모드는 여러분이 이미 가지고 있을 가능성이 높은 Tor 인스턴스(예: Tor Browser)에 간단히 연결됩니다. 즉, 시스템 tor를 사용합니다.
단순한 보안: 암호화를 위해 ChaCha20-Poly1305를 선택했습니다. 대부분의 하드웨어에서 AES보다 빠르며 내장 인증을 제공합니다. 즉, 전송 중에 메시지의 단 하나의 비트라도 변조되면 앱이 이를 거부합니다.
네, 🔏와 함께 설계되었습니다.
참고: ChaCha20-Poly1305는 ChaCha20 스트림 암호와 Poly1305 메시지 인증 코드를 결합한 연관 데이터 인증 암호화(AEAD) 알고리즘입니다.[1] 소프트웨어 성능이 빠르며, 하드웨어 가속이 없으면 일반적으로 AES-GCM보다 빠릅니다.[1]: §B
출처: https://en.wikipedia.org/wiki/ChaCha20-Poly1305 https://protonvpn.com/blog/chacha20
자동 설정: 네트워크 전문가가 될 필요가 없습니다. 서버가 Tor 핸드셰이크를 처리하고 비밀 .onion 주소를 자동으로 생성해 줍니다.
초대 링크: 호스트는 무작위 32바이트 방 비밀을 포함한 링크를 받습니다. 링크를 가진 사람은 누구나 최대 16명의 피어까지 참여할 수 있습니다. 호스트가 종료하고 onion 주소가 삭제되는 순간 링크는 작동을 멈춥니다.
QR 코드 공유: 56자 onion 주소를 입력하는 대신(실수하기 쉬움), 호스트는 게스트가 스캔할 수 있는 QR 코드를 보여주기만 하면 됩니다.
그룹 방: 한 방에 최대 16명. 호스트는 모든 메시지를 다른 모든 사람에게 중계하며, 사람들은 다른 사람이 끝내기를 기다리지 않고 동시에 입력하고 받을 수 있습니다.
신뢰할 수 있는 전달: 메시지는 암호화 전에 길이 접두사가 붙으므로, 네트워크가 메시지를 여러 조각으로 나누더라도 올바르게 재조립됩니다.
완전한 삭제: 이 도구는 일시적입니다. 즉, 흔적을 남기지 않습니다. 로그도, 기록도, 저장된 파일도 없습니다. 채팅을 닫으면 주소와 메시지는 존재하지 않았던 것처럼 사라집니다.
TorChat은 최상의 사용자 경험을 위해 Tor 아키텍처를 사용합니다:
의존성 없음 - 내장 Tor 사용
AppImage를 그냥 실행하면 됩니다. AppImage를 위해 해야 할 설정은 없습니다.
./TorChat-x86_64.AppImage
# Choose: [1] Host room (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] Join room (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] Join room (Client)
사람 1 (호스트):
chmod +x TorChat-x86_64.AppImage
./TorChat-x86_64.AppImage # Choose [1] Server
# Share the invite URL/QR code
# Type /invite any time to print it again
사람 2 (참여):
# Open Tor Browser first, then:
./TorChat-x86_64.AppImage # Choose [2] Client
# Paste the invite URL
# Repeat for as many people as you want in the room
자신이 멋진 개발자라고 생각한다면 이것은 당신을 위한 것입니다.
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바이트 nonce가 생성됩니다.
메시지가 암호화되고, nonce가 데이터 앞에 붙습니다.
수신자는 처음 12바이트를 떼어내어 복호화를 위한 nonce로 사용합니다.
네트워킹:
서버: 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
"Address not found": Tor 네트워크가 새 .onion 디스크립터를 게시할 때까지 30–60초를 기다리라고 사용자에게 알리는 내용을 추가했습니다.
"Connection timed out": Tor 서비스 상태와 네트워크 연결을 확인하도록 제안합니다.
sudo systemctl status tor
이제 이것보다 더 많은 기능이 있습니다

TorChat은 합법적인 프라이버시 강화 통신을 위한 것입니다. 책임감 있게 사용하고 현지 법률을 준수하십시오.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE를 참조하십시오.
TorChat을 더 좋게 만들고 싶으신가요? 기여를 환영합니다!