Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
op4 — Mensageiro criptografado baseado em terminal com criptografia pós-quântica, protocolo Double Ratchet e anonimato via Tor. Inclui frase-senha de coação, autenticação negável e endurecimento ao nível do sistema operacional por meio de seccomp-bpf e mlockall. | Kitploit
Ferramentas/GitHubGitHub/opfour/op4
Autenticação e AutorizaçãoFerramentas DefensivasFerramentas de Criptografia/DescriptografiaCriptografiaPrivacidadeAutenticação
GitHubopfour/op4

op4

Mensageiro criptografado baseado em terminal com criptografia pós-quântica, protocolo Double Ratchet e anonimato via Tor. Inclui frase-senha de coação, autenticação negável e endurecimento ao nível do sistema operacional por meio de seccomp-bpf e mlockall.

Ver Repositório
63há 2 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar


op4 — Mensageiro Seguro de Terminal

O op4 é um aplicativo de mensagens criptografadas para terminal escrito em Rust. Ele oferece mensagens privadas com criptografia de ponta a ponta usando criptografia pós-quântica, roteadas inteiramente pela rede Tor, de modo que nem o conteúdo das suas mensagens nem o seu endereço IP sejam expostos a ninguém — nem mesmo à pessoa com quem você está conversando.






Índice

  1. O que o op4 faz
  2. Instalação
  3. Conectar-se a Outro Usuário
  4. Modelo de segurança
  5. Visão geral da arquitetura
  6. Estrutura do projeto
  7. Status atual

O que o op4 faz

O op4 permite que duas pessoas troquem mensagens privadas sem que nenhuma das partes revele seu endereço IP ou identidade real. Cada mensagem é:

  • Criptografada de ponta a ponta usando um protocolo Double Ratchet — o mesmo design fundamental usado pelo Signal.
  • Reforçada contra computação pós-quântica — a camada de troca de chaves combina o clássico X25519 com ML-KEM-768 (KEM baseado em reticulados padronizado pelo NIST), para que um computador quântico futuro não consiga descriptografar retroativamente o tráfego gravado.
  • Anonimizada — todo o tráfego viaja por serviços ocultos do Tor (endereços .onion). Seu endereço IP nunca é exposto ao seu contato nem a qualquer observador de rede.
  • Armazenada localmente — não há servidor. Suas mensagens e contatos ficam em um arquivo de cofre criptografado na sua própria máquina e em nenhum outro lugar.

O op4 é executado inteiramente no terminal. Não tem GUI, nenhum componente de navegador e nenhuma conta na nuvem. O único processo externo com o qual ele se comunica é o daemon Tor em execução na sua própria máquina.


Instalação

Todas as opções de download — AppImage, tarball do código-fonte, clone e compilação, e instalador automatizado — estão documentadas no guia de Downloads e Instalação. A versão mais recente está disponível na página de Releases.

Debian / Ubuntu (automatizado)

No Debian e no Ubuntu, o install/setup.sh cuida de tudo em um único comando: toolchain Rust, dependências de compilação, Tor, configuração da porta de controle, compilação do binário, usuário do sistema, diretório de dados e perfil AppArmor.

root@kitploit:~
git clone https://github.com/Opfour/op4.git
cd op4
sudo bash install/setup.sh

Depois que o script terminar, você deve sair da sessão e entrar novamente antes de executar o op4. O instalador adiciona seu usuário ao grupo debian-tor para que ele possa ler o arquivo cookie do Tor. O Linux não aplica alterações de grupo a sessões já abertas — é necessário um novo login.

Pular esta etapa fará o op4 falhar na inicialização com: Permission denied reading /run/tor/control.authcookie

Em seguida, verifique se o hash do código-fonte impresso pelo script corresponde ao hash da versão publicada da sua versão antes de confiar no binário.

Verificação do hash da versão

Quando o op4 inicia, ele imprime um hash do código-fonte que cobre todos os arquivos-fonte Rust, Cargo.toml, Cargo.lock e build.rs. Compare-o com o valor abaixo para a versão que você instalou.

Você também pode verificá-lo sem iniciar o aplicativo completo:

root@kitploit:~
op4 --print-hash

Se o hash não corresponder, não use o binário — ele foi compilado a partir de um commit diferente ou foi adulterado.

Fedora / Arch / outras distros (manual)

Instale as dependências primeiro e depois execute o script:

Toolchain Rust (fixada em 1.89.0 via rust-toolchain.toml):

root@kitploit:~
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

Tor e dependências de compilação:

root@kitploit:~
# Fedora
sudo dnf install tor gcc pkg-config openssl-devel

# Arch
sudo pacman -S tor base-devel pkg-config openssl

Configure a porta de controle do Tor — adicione ao /etc/tor/torrc:

root@kitploit:~
ControlPort 9051
CookieAuthentication 1
root@kitploit:~
sudo systemctl restart tor

Adicione seu usuário ao grupo do Tor:

root@kitploit:~
sudo usermod -aG tor $USER        # Fedora / Arch

Você deve sair da sessão e entrar novamente após esta etapa. Alterações na associação de grupos não são aplicadas a sessões ativas. Até que você faça isso, o op4 falhará com Permission denied reading /run/tor/control.authcookie.

Para aplicar a alteração sem um logout completo, execute:

root@kitploit:~
newgrp tor

Compile e instale:

root@kitploit:~
git clone https://github.com/Opfour/op4.git
cd op4
cargo build --release
sudo bash install/setup.sh

Executar

root@kitploit:~
op4
# or, without system install:
./target/release/op4

Na primeira execução, o op4 o guiará pela definição de uma senha normal e uma senha de coação e, em seguida, gerará suas chaves de identidade. Seu cofre é armazenado em ~/.local/share/op4/vault.op4.

Plataformas suportadas

Kernel mínimo: 4.15 (5.4+ recomendado). Arquitetura: x86-64 (aarch64 deve funcionar, mas não é testado).


Conectar-se a Outro Usuário

Cada pessoa precisa ter o op4 instalado, o Tor em execução e o cofre desbloqueado. A troca é assimétrica: uma pessoa envia seu código de contato primeiro, a outra o adiciona e depois envia sua primeira mensagem, que chega como uma solicitação pendente que a primeira pessoa aceita.

Etapa 1 — Primeira execução

Na primeira execução, o op4 pede uma senha normal e uma senha de coação e, em seguida, gera suas chaves de identidade. Isso só acontece uma vez. Seu cofre é armazenado em ~/.local/share/op4/vault.op4.

root@kitploit:~
$ op4

Etapa 2 — Obtenha seu código de contato

Seu código de contato contém seu conjunto completo de chaves públicas e seu endereço .onion. A outra pessoa precisa disso para entrar em contato com você.

  1. Navegue até a aba Contatos (pressione 2 ou →)
  2. Pressione e para exportar seu código de contato
  3. Seu código aparece na tela — é uma longa string Base58 que começa com op4:
  4. Copie-o e envie-o à outra pessoa fora de banda (Signal, e-mail, pessoalmente etc.)

Seu código de contato não é secreto. É seguro compartilhá-lo publicamente. Ele contém apenas suas chaves públicas e o endereço onion — nenhum material privado.

Etapa 3 — Adicione a outra pessoa como contato

Quando você tiver o código de contato dela:

  1. Na aba Contatos, pressione a para adicionar um contato
  2. Cole o código de contato op4: dela e pressione Enter
  3. Dê a ela um nome e pressione Enter

Etapa 4 — Envie sua primeira mensagem

  1. Selecione o contato na sua lista de contatos (use ↑/↓ e depois Enter)
  2. Mude para a aba Mensagens (pressione 3 ou →)
  3. Digite sua mensagem e pressione Enter

Essa primeira mensagem inicia o handshake criptografado e é entregue ao endereço .onion dela via Tor. Ela aparecerá como uma solicitação de contato pendente.

Etapa 5 — Aceite uma solicitação recebida

Quando alguém envia uma primeira mensagem, um selo aparece na aba Contatos mostrando quantas solicitações estão aguardando.

  1. Vá para a aba Contatos (pressione 2)
  2. Pressione p para revisar as solicitações pendentes
  3. Você verá a impressão digital do remetente e a primeira mensagem dele
  4. Digite um nome para esse contato e pressione Enter para aceitar (pressione Esc para rejeitar e descartar)

Após a aceitação, o Double Ratchet é inicializado e a conversa fica imediatamente disponível na aba Mensagens.

Etapa 6 — Verifique a impressão digital (recomendado)

Antes de confiar em um contato, confirme se a impressão digital dele corresponde ao que ele vê na própria tela. Isso evita um ataque man-in-the-middle durante a troca inicial de contatos.

  1. Na aba Contatos, selecione o contato
  2. O painel de impressão digital à direita mostra uma string hex de 16 grupos, ex.: A3F2:91BC:…
  3. Peça à outra pessoa que leia a impressão digital que ela vê para sua entrada — ela deve corresponder exatamente
  4. A verificação pode ser feita por chamada de voz, pessoalmente ou em qualquer outro canal em que você possa confirmar a identidade dela

Referência de navegação

Rotação de chaves

Se você acredita que suas chaves de identidade podem ter sido comprometidas:

  1. Vá para a aba Configurações (pressione 4 ou navegue para a direita)
  2. Pressione r para rotacionar as chaves
  3. O op4 gera um novo par de chaves, assina um certificado de revogação com sua chave antiga e o transmite para todos os seus contatos via Tor
  4. Seu código de contato muda — compartilhe o novo com seus contatos

Modelo de segurança

Primitivas criptográficas (todas do ecossistema RustCrypto)

Double Ratchet

O op4 usa um protocolo Double Ratchet (semelhante ao Signal Protocol) para sigilo de encaminhamento. Isso significa:

  • Cada mensagem é criptografada com uma chave exclusiva derivada de uma cadeia de ratchet.
  • Comprometer a chave de uma mensagem não expõe nenhuma outra mensagem.
  • Se o seu dispositivo for apreendido, mensagens passadas que já foram excluídas não podem ser descriptografadas mesmo que o invasor descubra a senha do seu cofre.

Troca de chaves híbrida pós-quântica

A etapa KEM combina X25519 e ML-KEM-768 da seguinte forma:

root@kitploit:~
shared_secret = HKDF(X25519_ss || MLKEM_ss)

Um invasor precisa quebrar ambos os algoritmos para comprometer a troca de chaves. Isso protege contra um adversário quântico (ML-KEM-768) enquanto permanece seguro contra ataques clássicos se o ML-KEM-768 tiver uma falha desconhecida (fallback X25519).

Autenticação negável

As mensagens são autenticadas com HMAC-SHA256 usando uma chave derivada do estado compartilhado do ratchet. Como ambas as partes possuem a mesma chave HMAC, qualquer uma delas poderia ter produzido qualquer MAC. Essa é a mesma propriedade de negação usada por OTR e Signal: as mensagens não podem ser criptograficamente atribuídas a um remetente específico em um processo judicial.

Cofre e senha de coação

O arquivo de cofre em ~/.local/share/op4/vault.op4 armazena todos os contatos, conversas e chaves de identidade. Ele é protegido com duas chaves independentes derivadas de Argon2id:

  • Senha normal — desbloqueia seus contatos e mensagens reais.
  • Senha de coação — desbloqueia uma caixa de entrada falsa, visualmente idêntica mas vazia. Use-a se você for coagido a desbloquear o aplicativo. Externamente, as duas senhas são indistinguíveis.

Anonimato de rede

O op4 cria um serviço oculto Tor v3 para sua caixa de entrada. Seu endereço .onion é derivado deterministicamente da sua chave de identidade (via HKDF), portanto, ele é estável entre reinicializações sem precisar armazenar uma chave separada. Mensagens de saída são enviadas através do proxy SOCKS5 do Tor. Seu endereço IP real nunca aparece em nenhum pacote de rede relacionado ao op4.

O tráfego de cobertura (mensagens fictícias com distribuição de Poisson enviadas para você mesmo, intervalo médio de 30 segundos) impede que um observador de rede descubra se você está conversando ativamente com alguém ao observar o volume de tráfego.

Reforço de segurança em nível de SO

  • mlockall — impede que chaves do cofre e texto simples sejam gravados na swap.
  • RLIMIT_CORE = 0 — desativa core dumps que poderiam expor memória.
  • PR_SET_DUMPABLE = 0 — impede que outros processos anexem um depurador.
  • seccomp-bpf — instala uma lista de permissão de chamadas de sistema (syscalls). Qualquer syscall fora da lista faz o processo ser morto imediatamente.
  • Perfil AppArmor (apparmor/op4.profile) — restringe o acesso ao sistema de arquivos apenas ao diretório do cofre, dispositivos de terminal e Tor.

Visão geral da arquitetura

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│                        op4 process                          │
│                                                             │
│  ┌──────────┐   ┌──────────────────┐   ┌────────────────┐  │
│  │   TUI    │   │  Double Ratchet  │   │  Tor Transport │  │
│  │ (ratatui)│──▶│  + Hybrid PQ     │──▶│  nym_client.rs │  │
│  │          │   │  Crypto          │   │                │  │
│  └──────────┘   └──────────────────┘   └───────┬────────┘  │
│                                                │           │
│  ┌──────────────────────────────┐              │           │
│  │  Encrypted Vault             │    SOCKS5 / control port │
│  │  ~/.local/share/op4/vault.op4│              │           │
│  └──────────────────────────────┘              │           │
└────────────────────────────────────────────────┼───────────┘
                                                 │
                                    ┌────────────▼────────────┐
                                    │      Tor daemon         │
                                    │  127.0.0.1:9050 (SOCKS) │
                                    │  127.0.0.1:9051 (ctrl)  │
                                    └────────────┬────────────┘
                                                 │
                                         Tor network
                                                 │
                                    ┌────────────▼────────────┐
                                    │  Peer's .onion address  │
                                    │  (their hidden service) │
                                    └─────────────────────────┘

Estrutura do projeto

root@kitploit:~
op4/
├── src/
│   ├── main.rs                  Entry point, startup sequence
│   ├── error.rs                 Unified error types
│   ├── crypto/
│   │   ├── keys.rs              Hybrid KEM + signature keypairs
│   │   ├── primitives.rs        AEAD, HKDF, HMAC, Argon2id
│   │   ├── ratchet.rs           Double Ratchet implementation
│   │   ├── hmac_auth.rs         Deniable authentication tags
│   │   └── handshake.rs         Initial key agreement (X3DH-style)
│   ├── network/
│   │   ├── nym_client.rs        Tor hidden-service transport
│   │   └── message.rs           Wire message format + padding
│   ├── storage/
│   │   └── vault.rs             Encrypted vault (Argon2id + AEAD)
│   ├── identity/
│   │   ├── profile.rs           Contact codes, stored contacts
│   │   └── revocation.rs        Key revocation records
│   ├── hardening/
│   │   ├── memory.rs            mlockall, RLIMIT_CORE, dumpable
│   │   └── seccomp.rs           seccomp-bpf syscall filter
│   └── ui/
│       ├── app.rs               TUI event loop and state machine
│       ├── contacts.rs          Contacts tab rendering
│       ├── conversation.rs      Messages tab rendering
│       ├── settings.rs          Settings tab rendering
│       ├── duress.rs            Duress inbox rendering
│       ├── input.rs             Input sanitization (CSI/OSC strip)
│       └── passphrase.rs        Secure passphrase prompts
├── apparmor/
│   └── op4.profile              AppArmor MAC profile
├── install/
│   └── setup.sh                 System installation script
├── build.rs                     Embeds source hash at compile time
├── deny.toml                    cargo-deny licence + advisory rules
├── rust-toolchain.toml          Pins Rust 1.89.0
└── docs/                        This documentation

Status atual

Versão: 0.2.0-dev (pré-lançamento)

O op4 está em desenvolvimento ativo. As seguintes camadas estão completas e testadas:

  • Cofre (criar, desbloquear, salvar, modo de coação)
  • Todas as primitivas criptográficas (12/12 testes de unidade passando)
  • Transporte por serviço oculto do Tor (conectar, enviar, receber, tráfego de cobertura)
  • Interface de terminal (navegação, gerenciamento de contatos, visualização de conversas)
  • Reforço do SO (memória, seccomp, AppArmor)

Todas as camadas agora estão integradas de ponta a ponta:

  • Os pares de chaves de identidade (X25519+ML-KEM-768, Ed25519+ML-DSA-65) são gerados na primeira execução e armazenados criptografados no cofre.
  • A exportação do código de contato produz um PublicKeyBundle real codificado em Base58 (seu conjunto completo de chaves públicas + endereço onion).
  • Enviar uma mensagem executa um handshake completo no estilo X3DH na primeira mensagem para um contato e, em seguida, criptografia Double Ratchet nas mensagens subsequentes, transmitidas via Tor.
  • As mensagens recebidas são consultadas no transporte Tor no loop de eventos da TUI e exibidas na visualização de conversa (padrão sealed-sender: a camada de roteamento nunca revela quem enviou a mensagem).

Todas as limitações conhecidas foram resolvidas. O aplicativo agora está em status de funcionalidades completas para 0.2.0-dev:

  • Autenticação negável HMAC está totalmente integrada. Toda mensagem de dados de saída carrega uma tag HMAC-SHA256 calculada a partir da chave de ratchet por mensagem sobre (conversation_id || message_counter || ciphertext). Mensagens recebidas são verificadas antes de serem aceitas; tags preenchidas com zeros de pares mais antigos são toleradas para compatibilidade retroativa.

  • O histórico de mensagens persiste entre reinicializações. O log completo da conversa é criptografado com uma chave derivada de HKDF por conversa e armazenado no campo message_log_ct do cofre. As mensagens são carregadas do cofre quando uma conversa é aberta e gravadas de volta após cada envio ou recebimento.

  • Solicitações de contato recebidas de partes desconhecidas são enfileiradas em vez de descartadas. A aba Contatos mostra um selo quando há solicitações aguardando. Pressione [p] para revisar: você vê a impressão digital do remetente e a primeira mensagem dele, digita um nome e pressiona Enter para aceitar (ou Esc para rejeitar). Ao aceitar, o contato é adicionado, o Double Ratchet é inicializado e a mensagem inicial é salva no cofre.

  • Cofre de coação preservado entre salvamentos. O formato do arquivo de cofre (v2) armazena os comprimentos exatos do texto cifrado no cabeçalho para que a descriptografia AEAD opere nos bytes reais em vez de seções preenchidas com zeros. A seção de coação criptografada é armazenada literalmente em cada chamada de save(), mantendo a senha de coação válida indefinidamente.

  • Chave de inicialização dedicada do Double Ratchet. Um par de chaves X25519 separado (identity_ratchet_secret) é gerado na primeira execução e incluído no código de contato como ratchet_pub. O ratchet da Alice é inicializado com o do Bob em vez da chave de identidade KEM dele, separando as funções das chaves.

Baixar ferramenta
VersãoHash do código-fonte
0.3.080820cb41a63575d2c139dadd425d13d1e87e62a9d60200ae7b894ae2e9ad8ed
0.3.148115efb12747fa78b627ddbf7a56c46169f59e777d7d7508941bf89e4fe7521
0.2.0-dev35740577f6c4a4f19c5a08fe85b1f78a10347f2ba9dd7642d126552266bfa5a5
0.1.0e1a94761c7d3fa589ba892b47d5295aa417f95aee126809d51a7e7fb7e78982c
DistribuiçãoStatus
Ubuntu 22.04 / 24.04Suportado
Debian 12Suportado
Fedora 39+Suportado
Arch Linux (atual)Suportado
Tails OSSuportado (guia de configuração)
macOS / Windows / WSL1Não suportado
TeclaAção
1 / ← →Alternar abas (Contatos / Mensagens / Configurações)
↑ ↓Mover a seleção
EnterAbrir conversa / confirmar
EscCancelar / voltar
eExportar seu código de contato (aba Contatos)
aAdicionar um contato (aba Contatos)
pRevisar solicitações pendentes (aba Contatos)
dExcluir o contato selecionado (aba Contatos)
rRotacionar suas chaves (aba Configurações)
qSair
ObjetivoAlgoritmo
Derivação da chave do cofreArgon2id (m=64 MiB, t=3, p=1)
Criptografia do cofreChaCha20-Poly1305 (chave de 256 bits, nonce de 96 bits)
Criptografia de mensagensChaCha20-Poly1305 (chave por mensagem do ratchet)
Derivação de chave (ratchet)HKDF-SHA256
Autenticação negávelHMAC-SHA256
Troca de chaves clássicaX25519
Troca de chaves pós-quânticaML-KEM-768 (FIPS 203)
Assinaturas clássicasEd25519
Assinaturas pós-quânticasML-DSA-65 (FIPS 204)
Anonimato de transporteServiços ocultos Tor v3 (.onion)
ratchet_pub
  • Aba Configurações totalmente funcional. O endereço SOCKS5 do Tor e o limite de exclusão automática podem ser editados inline. A rotação de chaves (gera um novo par de chaves, transmite um certificado de revogação assinado a todos os contatos, atualiza o código de exportação) e a revogação por aposentadoria de chave estão ambas integradas e operacionais.

  • Revogação de chave integrada de ponta a ponta. Estruturas RevocationCertificate são assinadas com o par de chaves híbrido Ed25519+ML-DSA-65 e enviadas a todos os contatos como mensagens WireMessageType::Revocation via Tor.