
TorChat - Chat ponto a ponto seguro, privado e anônimo através da rede Tor
Chat ponto a ponto seguro, privado e anônimo através da rede Tor.
O TorChat é realmente fixe. tem umas coisas fixes que os outros não têm.
Ao contrário dos sistemas de chat Tor padrão que usam endereços permanentes, esta implementação é totalmente efémera.
Zero Persistência: O servidor cria um serviço oculto temporário. Assim que a sessão termina, o endereço .onion é eliminado e não pode ser recuperado ou reutilizado.
Arquitetura Híbrida: Reparei que alojar um serviço Tor é normalmente a parte mais difícil para os utilizadores. Para resolver isto, o modo Servidor usa um processo Tor incorporado que não requer qualquer configuração. O modo Cliente simplesmente liga-se à instância Tor que provavelmente já tem (como o Tor Browser). ou seja, usa o tor do sistema.
Segurança Simples: Escolhi ChaCha20-Poly1305 para encriptação. É mais rápido que o AES na maioria do hardware e fornece autenticação incorporada, o que significa que se um único bit da sua mensagem for adulterado durante o trânsito, a aplicação rejeita-a.
sim, concebido com 🔏.
Nota : ChaCha20-Poly1305 é um algoritmo de encriptação autenticada com dados associados (AEAD), que combina a cifra de fluxo ChaCha20 com o código de autenticação de mensagem Poly1305.[1] Tem um desempenho rápido em software e, sem aceleração de hardware, é normalmente mais rápido que o AES-GCM.[1]: §B
fonte : https://en.wikipedia.org/wiki/ChaCha20-Poly1305 https://protonvpn.com/blog/chacha20
Configuração Automática: Não precisa de ser um especialista em redes. O servidor trata do handshake Tor e cria o endereço .onion secreto por si automaticamente.
Links de Convite: O anfitrião recebe um link contendo um segredo de sala aleatório de 32 bytes. Qualquer pessoa que tenha o link pode entrar, até 16 pares. O link deixa de funcionar no momento em que o anfitrião sai e o endereço onion é eliminado.
Partilha por Código QR: Em vez de escrever um endereço onion de 56 caracteres (que é fácil de errar), o anfitrião pode simplesmente mostrar um código QR para o convidado digitalizar.
Salas de Grupo: Até 16 pessoas numa sala. O anfitrião retransmite cada mensagem para todos os outros, e as pessoas podem escrever e receber ao mesmo tempo sem esperar que alguém termine.
Entrega Fiável: As mensagens têm o comprimento prefixado antes da encriptação, para que uma mensagem seja remontada corretamente independentemente de como a rede a divide em pedaços.
Apagamento Total: Esta ferramenta é efémera. Isto significa que não deixa rastos. Não há registos, nem histórico, nem ficheiros guardados. Assim que fechar o chat, o endereço e as mensagens desaparecem como se nunca tivessem existido.
O TorChat usa uma arquitetura Tor, para a melhor experiência de utilizador:
Zero Dependências - Usa Tor incorporado
Pode simplesmente executar o AppImage. Não há qualquer configuração que precise de fazer para o AppImage.
./TorChat-x86_64.AppImage
# Choose: [1] Host room (Server)
Requer Tor - Usa o Tor do sistema ou o Tor Browser
A maioria das pessoas já tem isto espero eu.
Opção A: Usando o Tor Browser (Mais Fácil)
# 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)
Opção B: Usando o Tor do Sistema
# 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)
Pessoa 1 (Anfitrião):
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
Pessoa 2 (Entrar):
# 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
Se achas que és um dev fixe então é para ti.
Python 3.7+
Tor do Sistema (apenas para o modo cliente)
git clone https://github.com/blackXploit-404/torchat.git
cd torchat
python -m venv torchat
source torchat/bin/activate
pip install -r requirements.txt
Servidor (Anfitrião):
python3 server.py
# This uses embedded Tor, so no setup is needed
Cliente (Entrar):
# Start system Tor first
python3 client.py
Fluxo de Encriptação:
Um segredo partilhado é transformado em hash usando SHA256 para criar uma chave de 32 bytes.
Para cada mensagem, é gerado um nonce aleatório de 12 bytes.
A mensagem é encriptada, e o nonce é pré-anexado aos dados.
O recetor retira os primeiros 12 bytes para usar como nonce para desencriptação.
Rede:
Servidor: Liga-se a 127.0.0.1:5000, que o Tor mapeia para um endereço .onion público.
Cliente: Usa o protocolo SOCKS5 para encaminhar a ligação TCP através do circuito Tor.
┌─────────────────┐ ┌─────────────────┐
│ 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.
│
▼