Générer une adresse .onion vanity avec mkp224o : tutoriel complet

Les adresses .onion v3 font 56 caractères de base32. Par défaut, Tor les génère aléatoirement : dreadytofatroptsdj6io7l3xptbet6onoyno2yv7jicoxknyazubrad.onion. Impossible à mémoriser, facile à usurper par phishing — un attaquant peut générer une adresse qui ressemble superficiellement à la vôtre. La parade : générer une adresse vanity, c'est-à-dire forcer un préfixe choisi (par exemple oniondir) en brute-forçant des milliers de clés Ed25519 jusqu'à tomber sur une qui produit une empreinte commençant par le préfixe souhaité. L'outil standard pour cette tâche est mkp224o, développé par « cathugger ». Ce tutoriel couvre l'installation, la génération, et l'intégration dans la configuration Tor.

⚫ Cette page est la vitrine. Le reste est ailleurs. Accès Tor →

Pourquoi une adresse vanity

Trois raisons principales justifient l'effort :

  1. Mémorabilitéoniondxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.onion est reconnaissable au premier coup d'œil, contrairement à une adresse totalement aléatoire. Vos utilisateurs peuvent vérifier visuellement le préfixe, même si les 50 caractères suivants restent impossibles à mémoriser entièrement.
  2. Anti-phishing — un attaquant qui veut usurper votre adresse devrait brute-forcer le même préfixe, ce qui coûte exactement le même temps que votre propre génération. Pour un préfixe de 6-7 caractères, ça devient prohibitif pour les phishers opportunistes.
  3. Signalement éditorial — afficher un préfixe signifie que vous avez mis de la ressource dans le projet. C'est un signal de sérieux apprécié par les utilisateurs méfiants du dark web.

Difficulté et temps de calcul

Les adresses .onion v3 utilisent 32 caractères possibles (base32 : a-z + 2-7). La difficulté de trouver un préfixe de longueur n est donc de 32^n, et il faut en moyenne essayer 32^n / 2 clés avant de tomber sur une adresse commençant par ce préfixe.

Préfixe Difficulté Temps sur CPU 8 cœurs 2024
3 char32 768Instantané
4 char1MQuelques secondes
5 char33M1 à 5 minutes
6 char1 milliard30 min à 3 h
7 char34 milliards1 à 5 jours
8 char1 trillion1 à 6 mois

Les GPU (via le fork gpg-onion-finder ou des adaptations CUDA) divisent ces temps par 20 à 100 selon la carte, rendant 8-9 caractères accessibles à moins de 1 semaine sur RTX 4090.

Installation de mkp224o

Dépendances

Sur Debian / Ubuntu :

sudo apt install gcc libsodium-dev make autoconf

Sur macOS (via Homebrew) :

brew install libsodium autoconf automake

Sur Fedora / RHEL :

sudo dnf install gcc libsodium-devel make autoconf automake

Compilation

git clone https://github.com/cathugger/mkp224o.git
cd mkp224o
./autogen.sh
./configure
make

Le binaire ./mkp224o est créé à la racine. Les optimisations AVX2 sont activées automatiquement si votre CPU les supporte (vérifiez avec cat /proc/cpuinfo | grep avx2 sur Linux).

Générer l'adresse

Commande de base pour trouver une adresse commençant par « onion » (5 caractères) :

./mkp224o -n 1 -d output onion
  • -n 1 : s'arrête après avoir trouvé 1 adresse valide
  • -d output : dossier de sortie
  • onion : le préfixe cherché (minuscules uniquement, base32 donc pas de 0, 1, 8, 9)

Pour chercher plusieurs motifs simultanément, listez-les séparés par espaces :

./mkp224o -n 1 -d output oniondir annuaire

Pour utiliser tous les cœurs CPU (défaut), ajoutez -t N où N = nombre de threads :

./mkp224o -n 1 -d output -t 16 oniondir

Pendant la génération, mkp224o affiche périodiquement sa vitesse (keys/s) et ses progrès. À 8-10 millions de clés/seconde sur un CPU moderne, un préfixe de 6 caractères tombe en moyenne en 1-2 heures.

Vérifier les fichiers produits

Quand l'outil trouve une adresse, il crée un sous-dossier dans output/ nommé d'après l'adresse complète. Exemple :

output/oniondabc123xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.onion/
├── hostname                    (l'adresse .onion complète)
├── hs_ed25519_public_key        (clé publique)
└── hs_ed25519_secret_key        (clé privée — à protéger)

Vérifiez le contenu de hostname — c'est l'adresse exacte que Tor publiera.

Installation sur le serveur Tor

Transférez le dossier vers votre serveur via SCP :

scp -r output/oniondabc123.../ root@votre-serveur:/var/lib/tor/mon-service/

Sur le serveur, ajustez les permissions (critique) :

chown -R debian-tor:debian-tor /var/lib/tor/mon-service/
chmod 700 /var/lib/tor/mon-service/
chmod 600 /var/lib/tor/mon-service/hs_ed25519_secret_key
chmod 600 /var/lib/tor/mon-service/hs_ed25519_public_key
chmod 600 /var/lib/tor/mon-service/hostname

Le propriétaire est debian-tor sur Debian/Ubuntu, _tor sur macOS (Homebrew), tor sur Fedora/RHEL. Vérifiez avec ps aux | grep tor le nom d'utilisateur exact.

Configuration torrc

Ajoutez à /etc/tor/torrc :

HiddenServiceDir /var/lib/tor/mon-service/
HiddenServiceVersion 3
HiddenServicePort 80 127.0.0.1:8080

127.0.0.1:8080 est le port local où votre serveur web (nginx, Apache, Caddy) écoute. Adaptez selon votre configuration.

Rechargez Tor :

systemctl restart tor
journalctl -u tor -f   # suivre les logs

Si la configuration est bonne, Tor publie le descripteur du hidden service dans le DHT en 2-5 minutes. Ouvrez Tor Browser, tapez votre adresse .onion : le service doit répondre.

Sauvegarde de la clé privée

Ne pas sauvegarder la clé privée est la pire erreur possible. Si votre serveur crashe, est saisi, ou est réinstallé, vous perdez définitivement l'adresse .onion sauf si vous avez la clé. Personne ne peut la régénérer — c'est un nombre aléatoire de 32 octets.

Méthode recommandée

  1. Chiffrer le dossier mon-service/ avec GnuPG : tar czf - mon-service/ | gpg -c > backup.tar.gz.gpg
  2. Copier backup.tar.gz.gpg sur au moins deux supports physiques distincts (clé USB chiffrée + stockage cloud chiffré, par exemple)
  3. Stocker la passphrase GnuPG dans un password manager (Bitwarden, KeePassXC)
  4. Tester la restauration sur une machine de test avant d'avoir besoin de la sauvegarde en urgence

Bonnes pratiques

  • Ne jamais committer la clé privée dans git ou tout système de versioning partagé
  • Générer sur une machine isolée si le projet est très sensible (Qubes OS, Tails, machine déconnectée pendant la génération)
  • Utiliser un préfixe qui inclut votre nom de marque ou domaine pour renforcer l'anti-phishing
  • Publier l'adresse via PGP-signed message sur vos canaux officiels pour éviter que des variantes frauduleuses circulent
  • Surveiller les usurpations — des services comme OnionSearch ou des scanners custom peuvent détecter les imitations de votre préfixe

FAQ sur les adresses vanity .onion

Qu'est-ce qu'une adresse .onion vanity ?
Une adresse .onion vanity est une adresse de hidden service Tor (56 caractères pour v3) qui commence par un préfixe choisi par l'opérateur. Exemples célèbres : nytimesn7cgmftshazwhfgzm37qxb44r64ytbb2dj3x62d2lae7s3yd.onion (New York Times) ou duckduckgogg42ts72.onion (DuckDuckGo, v2 historique). Le préfixe ne change rien à la sécurité cryptographique, mais améliore la mémorabilité et réduit les risques de phishing.
Combien de temps prend la génération ?
Cela dépend de la longueur du préfixe et de la puissance CPU. Sur un CPU moderne 8 cœurs : 3 caractères = instantané, 4 caractères = quelques secondes, 5 caractères = quelques minutes, 6 caractères = quelques heures, 7 caractères = quelques jours, 8 caractères = plusieurs mois. Au-delà, l'espace de recherche devient prohibitif. La difficulté est exponentielle (base 32).
Mkp224o est-il sûr ?
Oui, mkp224o est un outil open source audité par la communauté Tor Project. Il utilise les mêmes algorithmes cryptographiques (Ed25519) que Tor officiel. La clé privée générée a la même robustesse qu'une clé générée automatiquement par Tor. Le code source est sur GitHub (cathugger/mkp224o) et compile en C avec des optimisations AVX2 si disponibles.
Peut-on générer des suffixes ou motifs au milieu de l'adresse ?
Mkp224o supporte les motifs avec * comme wildcard, mais seuls les préfixes sont efficaces en temps de calcul raisonnable. Chercher un motif au milieu de l'adresse revient à chercher un préfixe + un suffixe simultanément — la difficulté s'additionne. En pratique, on se limite à un préfixe de 6-7 caractères ou un suffixe de 4-5 caractères.
Comment protéger la clé privée générée ?
La clé privée (hs_ed25519_secret_key) est la seule chose qui permet à Tor de ressusciter votre service .onion après une panne. Elle doit être sauvegardée sur au moins deux supports hors ligne, chiffrée avec GnuPG ou LUKS. Si la clé est volée, un attaquant peut usurper votre hidden service. Si elle est perdue, votre adresse .onion disparaît définitivement.
Peut-on générer la clé sur une autre machine que le serveur ?
Oui, c'est même recommandé. Générez sur votre poste de travail puissant (desktop avec CPU multi-cœurs), puis transférez les 3 fichiers (hostname, hs_ed25519_public_key, hs_ed25519_secret_key) via SSH/SCP chiffré vers le serveur où tourne Tor. Assurez-vous que les permissions Unix sont 0700 sur le dossier et 0600 sur les fichiers, et que le propriétaire est l'utilisateur Tor (debian-tor, _tor selon distro).