
Messagerie chiffrée en ligne de commande avec cryptographie post-quantique, protocole Double Ratchet et anonymat Tor. Fonctionnalités : phrase de passe sous contrainte, authentification déniable et durcissement au niveau du système d'exploitation via seccomp-bpf et mlockall.
op4 — Messagerie sécurisée en terminal
Op4 est une application de messagerie chiffrée fonctionnant en terminal, écrite en Rust. Elle propose des messages privés chiffrés de bout en bout avec une cryptographie post-quantique, acheminés entièrement via le réseau Tor, de sorte que ni le contenu de vos messages ni votre adresse IP ne soient exposés à quiconque — pas même à la personne à qui vous parlez.
op4 permet à deux personnes d'échanger des messages privés sans qu'aucune des deux ne révèle son adresse IP ou sa véritable identité. Chaque message est :
op4 s'exécute entièrement dans le terminal. Il n'a ni interface graphique, ni composant navigateur, ni compte cloud. Le seul processus externe qu'il contacte est le démon Tor tournant sur votre propre machine.
Toutes les options de téléchargement — AppImage, archive source, clone et compilation, et installateur automatisé — sont documentées dans le Guide de téléchargement et d'installation. La dernière version est disponible sur la page des versions.
Sur Debian et Ubuntu, install/setup.sh gère tout en une seule commande :
chaîne d'outils Rust, dépendances de compilation, Tor, configuration du port de contrôle,
compilation du binaire, utilisateur système, répertoire de données et profil AppArmor.
git clone https://github.com/Opfour/op4.git
cd op4
sudo bash install/setup.sh
Après la fin du script, vous devez vous déconnecter et vous reconnecter avant de lancer op4. L'installateur ajoute votre utilisateur au groupe
debian-torafin qu'il puisse lire le fichier cookie de Tor. Linux n'applique pas les changements de groupe aux sessions déjà ouvertes — une nouvelle connexion est requise.Ignorer cette étape entraînera un échec au démarrage d'op4 avec :
Permission denied reading /run/tor/control.authcookie
Ensuite, vérifiez que le hash source affiché par le script correspond au hash publié pour votre version avant de faire confiance au binaire.
Lorsqu'op4 démarre, il affiche un hash source couvrant tous les fichiers source Rust,
Cargo.toml, Cargo.lock et build.rs. Comparez-le avec la valeur
ci-dessous pour la version que vous avez installée.
| Version | Hash source |
|---|---|
0.3.0 | 80820cb41a63575d2c139dadd425d13d1e87e62a9d60200ae7b894ae2e9ad8ed |
0.3.1 | 48115efb12747fa78b627ddbf7a56c46169f59e777d7d7508941bf89e4fe7521 |
0.2.0-dev | 35740577f6c4a4f19c5a08fe85b1f78a10347f2ba9dd7642d126552266bfa5a5 |
0.1.0 | e1a94761c7d3fa589ba892b47d5295aa417f95aee126809d51a7e7fb7e78982c |
Vous pouvez également le vérifier sans lancer l'application complète :
op4 --print-hash
Si le hash ne correspond pas, n'utilisez pas le binaire — il a été soit compilé à partir d'un commit différent, soit falsifié.
Installez d'abord les dépendances, puis exécutez le script :
Chaîne d'outils Rust (épinglée à la version 1.89.0 via rust-toolchain.toml) :
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
Tor et dépendances de compilation :
# Fedora
sudo dnf install tor gcc pkg-config openssl-devel
# Arch
sudo pacman -S tor base-devel pkg-config openssl
Configurer le port de contrôle Tor — ajoutez dans /etc/tor/torrc :
ControlPort 9051
CookieAuthentication 1
sudo systemctl restart tor
Ajoutez votre utilisateur au groupe Tor :
sudo usermod -aG tor $USER # Fedora / Arch
Vous devez vous déconnecter et vous reconnecter après cette étape. Les changements d'appartenance à un groupe ne sont pas appliqués aux sessions actives. Jusqu'à ce que vous le fassiez, op4 échouera avec
Permission denied reading /run/tor/control.authcookie.Pour appliquer le changement sans déconnexion complète, exécutez :
newgrp tor
Compilation et installation :
git clone https://github.com/Opfour/op4.git
cd op4
cargo build --release
sudo bash install/setup.sh
op4
# ou, sans installation système :
./target/release/op4
Au premier lancement, op4 vous guidera pour définir une phrase de passe normale
et une phrase de passe de contrainte, puis générera vos clés d'identité. Votre
coffre est stocké dans ~/.local/share/op4/vault.op4.
| Distribution | Statut |
|---|---|
| Ubuntu 22.04 / 24.04 | Pris en charge |
| Debian 12 | Pris en charge |
| Fedora 39+ | Pris en charge |
| Arch Linux (actuel) | Pris en charge |
| Tails OS | Pris en charge (guide d'installation) |
| macOS / Windows / WSL1 | Non pris en charge |
Noyau minimum : 4.15 (5.4+ recommandé). Architecture : x86-64 (aarch64 devrait fonctionner mais n'est pas testé).
Deux personnes ont besoin chacune d'op4 installé, de Tor en cours d'exécution et de leur coffre déverrouillé. L'échange est asymétrique : une personne envoie d'abord son code de contact, l'autre l'ajoute, puis envoie son premier message, qui arrive comme une demande en attente que la première personne doit accepter.
Au premier lancement, op4 demande une phrase de passe normale et une phrase de passe
de contrainte, puis génère vos clés d'identité. Cela ne se produit qu'une seule fois.
Votre coffre est stocké dans ~/.local/share/op4/vault.op4.
$ op4
Votre code de contact contient l'intégralité de votre trousseau de clés publiques et votre adresse
.onion. L'autre personne en a besoin pour vous joindre.
2 ou →)e pour exporter votre code de contactop4:Votre code de contact n'est pas secret. Il peut être partagé publiquement sans risque. Il ne contient que vos clés publiques et votre adresse onion — aucun matériel privé.
Une fois que vous avez son code de contact :