Autorizarea clientului este o metodă de a face un serviciu Onion privat și autentificat. Este necesar ca clienții Tor să furnizeze o acreditare de autentificare pentru a se conecta la serviciul Onion. Pentru serviciile v3 Onion, această metodă funcționează cu o pereche de chei (un public și un privat). Partea de service este configurată cu o cheie publică, iar clientul obține acces numai cu o cheie privată.

Notă: Odată ce ați configurat autorizarea clientului, oricine cu adresa nu va putea să obțină acces din acest punct. Dacă nu este configurată nicio autorizație, serviciul va fi accesibil oricui are adresa Onion.

Configurarea serviciilor Onion v3

Partea de servicii

Pentru a configura autorizarea clientului pe partea de service, directorul <HiddenServiceDir>/authorized_clients/ trebuie să existe. Urmând instrucțiunile descrise în secțiunea Configurare va crea automat acest director. Autorizarea clientului va fi activată pentru service numai dacă tor încarcă cu succes cel puțin un fișier de autorizare.

Pentru moment, trebuie să creați cheile cu un script (cum ar fi acestea scrise în bash, Rust sau Python) sau manual.

Pentru a genera manual cheile, trebuie să instalați openssl versiunea 1.1+ și basez.

Pasul 1. Generează o cheie folosind algoritmul x25519:

 $ openssl genpkey -algorithm x25519 -out /tmp/k1.prv.pem

Dacă primiți un mesaj de eroare, ceva a mers prost și nu puteți continua până când nu v-ați dat seama de ce acest lucru nu a funcționat.

Pasul 2. Formatează cheile în base32:

Cheie privată

$ cat /tmp/k1.prv.pem | grep -v " PRIVATE KEY" | base64pem -d | tail --bytes=32 | base32 | sed 's/=//g' > /tmp/k1.prv.key

Cheie publică

$ 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

Pasul 3. Copiați cheia publică:

 $ cat /tmp/k1.pub.key

Pasul 4. Creați un fișier client autorizat:

Formatați autentificarea clientului si creați un fișier nou în directorul <HiddenServiceDir>/authorized_clients/. Fiecare fișier din acel director ar trebui să fie sufixed cu ".auth" (adică "alice.auth"; numele fișierului este irelevant) și formatul său de conținut trebuie să fie:

 <auth-type>:<key-type>:<base32-encoded-public-key>

Valorile acceptate pentru <auth-type> sunt: "descriptor".

Valorile acceptate pentru <key-type> sunt: "x25519".

<base32-encoded-public-key> este reprezentarea de base32 numai a octeților de chei brute (32 octeți pentru x25519).

De exemplu, fișierul /var/lib/tor/hidden_service/autorizat_clients/alice.auth ar trebui să arate ca:

 descriptor:x25519:N2NU7BSRL6YODZCYPN4CREB54TYLKGIE2KYOQWLFYC23ZJVCE5DQ

Dacă intenționați să aveți mai mulți clienți autentificați, fiecare fișier trebuie să conțină o singură linie. Orice fișier malformat va fi ignorat.

Pasul 5. Reporniți serviciul Tor:

 $ sudo systemctl reload tor

Dacă primiți un mesaj de eroare, ceva a mers prost și nu puteți continua până când nu v-ați dat seama de ce acest lucru nu a funcționat.

Important: Revocarea unui client se poate face prin eliminarea fișierului ".auth", însă revocarea va fi în vigoare numai după ce procesul Tor este repornit.

Partea clientului

Pentru a accesa un serviciu Onion versiunea 3 cu autorizarea clientului ca client, asigurați-vă că aveți setat ClientOnionAuthDir în torrc. De exemplu, adăugați această linie la /etc/tor/torrc:

 ClientOnionAuthDir /var/lib/tor/onion_auth

Apoi, în directorul <ClientOnionAuthDir>, creați un fișier .auth_private pentru serviciul Onion corespunzător acestei chei (adică 'bob_onion.auth_private'). Conținutul fișierului <ClientOnionAuthDir>/<user>.auth_private trebuie să arate astfel:

 <56-char-onion-addr-without-.onion-part>:descriptor:x25519:<x25519 private key in base32>

De exemplu:

 rh5d6reakhpvuxe2t3next6um6iiq4jf43m7gmdrphfhopfpnoglzcyd:descriptor:x25519:ZDUVQQ7IKBXSGR2WWOBNM3VP5ELNOYSSINDK7CAUN2WD7A3EKZWQ

Dacă ați generat manual perechea de chei urmând instrucțiunile din această pagină, puteți copia și utiliza cheia privată creată în pasul 2. Apoi reporniți tor și ar trebui să vă puteți conecta la adresa serviciului Onion.

Dacă generați o cheie privată pentru un site Onion, utilizatorul nu trebuie neapărat să editeze torrc-ul Tor Browser. Este posibil să introduceți cheia privată direct în interfața Tor Browser.

Pentru mai multe informații despre autentificarea clientului, consultați manualul Tor.