TerminalPhone
Comunicação de voz push-to-talk criptografada através de serviços ocultos Tor.
TerminalPhone é um único script Bash autocontido que fornece comunicação de voz e texto anônima e criptografada de ponta a ponta entre duas ou mais partes através da rede Tor. Funciona como um walkie-talkie: você grava uma mensagem de voz, e ela é comprimida, criptografada e transmitida à parte remota como uma única unidade. Você também pode enviar mensagens de texto criptografadas durante uma chamada. Sem infraestrutura de servidor, sem contas, sem números de telefone. Seu endereço .onion do serviço oculto Tor é sua identidade.
Índice
Recursos
- Modo Walkie-Talkie Push-to-Talk -- Grave uma mensagem de voz completa e transmita-a ao soltar.
- Chat Criptografado Durante a Chamada -- Envie e receba mensagens de texto criptografadas durante uma chamada. Pressione
T para digitar uma mensagem.
- Identificação de Chamada -- Ambas as partes trocam automaticamente endereços
.onion ao conectar. O endereço remoto é exibido no cabeçalho da chamada.
- Detecção Automática de Desligamento -- Quando uma parte desliga, a outra é notificada imediatamente e a chamada termina automaticamente.
- Cifra Configurável -- Escolha entre 21 cifras selecionadas, classificadas por força (256 bits → 128 bits). Inclui as famílias AES, ChaCha20, Camellia e ARIA. Cifras fracas (DES, RC4, modos ECB) são excluídas.
- Negociação de Cifra em Tempo Real -- Ambas as partes trocam informações de cifra ao conectar. O cabeçalho da chamada mostra as cifras local e remota com indicadores verde (correspondência) ou vermelho (incompatibilidade), atualizados em tempo real.
- Configurações Durante a Chamada -- Pressione
S durante uma chamada para acessar as configurações. Altere sua cifra em tempo real; a exibição da parte remota é atualizada automaticamente.
- Informações da Bridge Snowflake -- Ao usar Snowflake para contornar censura, a página da chamada exibe o nome do descritor da bridge, a impressão digital e o status da conexão de transporte extraídos dos logs do Tor.
- Auto-Escuta -- Quando habilitado, um ouvinte em segundo plano inicia automaticamente quando o Tor é inicializado. Chamadas recebidas são detectadas e aceitas a partir do menu principal sem precisar selecionar manualmente "Ouvir chamadas". Após uma chamada terminar, o ouvinte reinicia.
- Tecla PTT Configurável -- Altere a tecla push-to-talk da barra de espaço padrão para qualquer tecla através do menu Configurações.
- Estatísticas de Mensagens -- A tela de chamada exibe o tamanho do payload criptografado para mensagens enviadas e recebidas, atualizado no local.
- Status PTT Remoto -- A tela de chamada mostra um indicador estático para o estado da parte remota: "Idle" (verde) ou "● Recording" (vermelho). Reinicia imediatamente quando dados de áudio chegam, antes do início da reprodução.
- Chime PTT -- Som de notificação opcional quando a parte remota começa a gravar. Cinco presets integrados (tone, double, chirp, ding, click) gerados com sox, além da capacidade de gravar um chime personalizado de 2 segundos. Configurável via Configurações.
- Animação de Conexão -- Ao chamar um endereço remoto, uma animação cíclica é reproduzida até que a interface de chamada carregue.
- Modificador de Voz -- Aplique efeitos de voz ao áudio de saída. Inclui 6 presets (deep, high, robot, echo, whisper) e um modo personalizado totalmente configurável com pitch shift, overdrive, flanger, echo, filtro highpass e tremolo. Os efeitos são processados usando sox antes da codificação Opus.
- PTT por Volume (Termux) -- Modo experimental que permite tocar duas vezes no botão Volume Down para alternar a gravação, mesmo quando o Termux está em segundo plano. Requer
jq (instalado sob demanda). O volume é restaurado automaticamente após cada acionamento.
- Serviço Oculto Tor -- Cada instância executa seu próprio serviço oculto Tor. Seu endereço
.onion serve como um endpoint permanente e roteável. Sem necessidade de encaminhamento de portas ou IP público.
- Criptografia de Ponta a Ponta -- Todo o áudio e texto é criptografado usando uma cifra configurável (padrão: AES-256-CBC) com derivação de chave PBKDF2 a partir de um segredo pré-compartilhado antes de entrar na rede Tor.
- Segredo Protegido por Passphrase -- O segredo compartilhado pode ser criptografado em repouso usando uma passphrase escolhida pelo usuário (AES-256-CBC, 100.000 iterações PBKDF2). Segredos em texto simples existentes são detectados automaticamente com uma oferta de migração.
- Baixa Largura de Banda -- Codec Opus a 16kbps, 8kHz mono. Uma mensagem de voz típica de 10 segundos tem menos de 20KB, bem dentro da capacidade do Tor.
- Compartilhamento por QR Code -- A opção 3 pode exibir seu endereço
.onion como um QR code escaneável no terminal. Se qrencode não estiver instalado, você será solicitado a instalá-lo. O QR code é renderizado no buffer de tela alternativo e é destruído quando descartado. Uma nota avisa que alguns scanners de QR code adicionam automaticamente http://; este prefixo é removido automaticamente ao discar.
- Arquivos Temporários Opacos -- Todos os arquivos temporários usam extensões genéricas
.tmp e identificadores hexadecimais aleatórios. Nenhum tipo de arquivo ou metadado de temporização é vazado para o sistema de arquivos.
- Exibição de Saltos do Circuito -- Exibição opcional do caminho do seu circuito Tor durante as chamadas, mostrando nomes de relays e nomes completos de países. Atualiza automaticamente a cada 60 segundos. Configurável via Configurações → Configurações do Tor.
- Excluir Países -- Exclua países específicos dos seus circuitos Tor. Presets para as alianças Five Eyes, Nine Eyes e Fourteen Eyes, ou insira códigos de país personalizados. Usa
ExcludeNodes com StrictNodes no torrc.
- Autenticação de Protocolo HMAC -- Assinatura HMAC-SHA256 opcional de todas as mensagens de protocolo (voz, texto, sinais de controle) usando o segredo compartilhado. Um nonce aleatório é incluído por mensagem, e nonces vistos são rastreados para rejeitar repetições. Mensagens não assinadas, forjadas ou repetidas são descartadas silenciosamente. O estado HMAC é congelado no início da chamada para evitar dessincronização durante a chamada. Configurável via Configurações → Segurança.