L’autorisation des client est une méthode qui rend le service oignon privé et authentifié. Cela requiert la fourniture d’identifiants d’authentification par les clients Tor pour se connecter au service oignon. Pour les services oignon v3, cette méthoer fonctionne avec une paire de clefs (une publique et une privée). Le partie service est configurée avec une clef publique and le client peut y accéder uniquement avec la clef privée.
Note : une fois que vous avez configuré l’autorisation des clients, il ne sera plus possible pour n’importe qui d’accéder au service. Si aucune autorisation n’est configurée, le service sera accessible pour quiconque à cette adresse oignon.
Configurer des services oignon v3
Côté service
To configure client authorization on the service side, the <HiddenServiceDir>/authorized_clients/
directory needs to exist. Following the instructions described in the section Setup will automatically create this directory.
L’autorisation de clients ne sera activée pour le service que si tor charge avec succès au moins un fichier d’autorisation.
Il est maintenant nécessaire de créer les clefs vous-même avec un script (comme ceux-ci écrits en Bash, Rust ou Python) ou manuellement.
Pour générer manuellement les clefs, vous devez installer openssl
version 1.1+ et basez
.
Etape 1. Créer une clef utilisant l’algorithme x25519 :
$ openssl genpkey -algorithm x25519 -out /tmp/k1.prv.pem
Si vous obtenez un message d’erreur, quelque chose s’est mal passé et vous ne pouvez pas continuer avant de trouver ce qui ne fonctionne pas.
Etape 2. Formater les clefs en base32 :
Clef privée
$ cat /tmp/k1.prv.pem | grep -v " PRIVATE KEY" | base64pem -d | tail --bytes=32 | base32 | sed ’s/=//g’ > /tmp/k1.prv.key
Clef publique
$ openssl pkey -in /tmp/k1.prv.pem -pubout | grep -v " PUBLIC KEY" | base64pem -d | tail --bytes=32 | base32 | sed ’s/=//g’ > /tmp/k1.pub.key
Etape 3. Copier la clef publique :
$ cat /tmp/k1.pub.key
Etape 4. Créer un fichier de clients autorisés :
Formater l’authentification client et créer un nouveau fichier dans le dossier <HiddenServiceDir>/authorized_clients/
.
Chaque fichier dans ce dossier doit être suffixé par ".auth" (i.e. "alice.auth"; le nom de fichier est sans objet) et son format de contenu doit être :
<auth-type>:<key-type>:<base32-encoded-public-key>
Les valeurs prises en charge pour <auth-type>
sont : "descriptor".
Les valeurs prises en charge pour <key-type>
sont : "x25519".
Le <base32-encoded-public-key>
est la représentation en base32 des octets de clef brute seulement (32 octets pour x25519).
Par exemple, le fichier /var/lib/tor/hidden_service/authorized_clients/alice.auth
doit ressembler à :
descriptor:x25519:N2NU7BSRL6YODZCYPN4CREB54TYLKGIE2KYOQWLFYC23ZJVCE5DQ
Si vous prévoyez d’avoir plus de clients authentifiés, chaque fichier ne doit contenir qu’une seule ligne. Chaque fichier malformé sera ignoré.
Etape 5. Redémarrer le service tor :
$ sudo systemctl reload tor
Si vous obtenez un message d’erreur, quelque chose s’est mal passé et vous ne pouvez pas continuer avant de trouver ce qui ne fonctionne pas.
Important : Révoquer un client peut être fait en supprimant le fichier ".auth", cependant la révocation ne sera effective qu’une fois le process tor redémarrer.
Côté client
Pour accéder à un service oignon version 3 avec une autorisation en tant que client, assurez-vous d’avoir ClientOnionAuthDir
configuré dans votre torrc.
Par exemple, ajouter cette ligne à /etc/tor/torrc
:
ClientOnionAuthDir /var/lib/tor/onion_auth
Puis, dans le dossier <ClientOnionAuthDir>
, créer un fichier .auth_private
pour le service oignon correspondant à cette clef (i.e. ’bob_onion.auth_private’).
Le contenu du fichier <ClientOnionAuthDir>/<user>.auth_private
doit ressembler à :
<56-char-onion-addr-without-.onion-part>:descriptor:x25519:<x25519 private key in base32>
Par exemple :
rh5d6reakhpvuxe2t3next6um6iiq4jf43m7gmdrphfhopfpnoglzcyd:descriptor:x25519:ZDUVQQ7IKBXSGR2WWOBNM3VP5ELNOYSSINDK7CAUN2WD7A3EKZWQ
Si vous avez généré manuellement la paire de clef en suivant les instructions de cette page, vous pouvez copier et utiliser la clef privée créée à l’Etape 2.
Ensuite redémarrer tor
et vous serez capable de vous connecter à l’adresse du service oignon.
Si vous générez la clef privée pour un site oignon, l’utilisateur n’a pas besoin d’éditer le torrc de son Navigateur Tor. Il est possible de saisir la clef privée directement dans l’interface du Navigateur Tor.
Pour plus de précisions sur l’authentification client, veuillez consulter le guide de Tor.
Configurer des services oignon v2
Pour mettre en place l’authentification par Cookie pour les services v2, consulter les sections pour les options HidServAuth et HiddenServiceAuthorizeClient dans le manuel tor. D’abord ajouter la ligne suivante dans le fichier torrc de votre service oignon :
HiddenServiceAuthorizeClient [auth-type] [service-name]
Redémarrer tor et lire le témoin à partir du fichier hostname de votre service oignon, par exemple dans
/var/lib/tor/hidden_service_path/hostname
.
Pour y accéder avec un client tor, ajouter la ligne suivante à torrc et redémarrer tor :
HidServAuth [onion-address] [auth-cookie] [service-name]
Vous pouvez maintenant vous connecter à l’adresse du service oignon.