Ауторизација клијента је метод да се Онион Услуга учини приватном и аутентификованом. Захтева од Тор клијената да обезбеде акредитацију за аутентификацију како би се повезали на Онион Услугу. За v3 Онион услуге, овај метод ради са паром кључева (јавни и приватни). Страна услуге је конфигурисана са јавним кључем и клијент може приступити само са приватним кључем.

Напомена: Када конфигуришете ауторизацију клијента, било ко са адресом неће моћи да јој приступи од тог тренутка. Ако ауторизација није конфигурисана, услуга ће бити доступна свима са онион адресом.

Конфигурисање v3 Онион услуга

Страна услуге

Да бисте конфигурисали ауторизацију клијента на страни услуге, потребно је да постоји директоријум <HiddenServiceDir>/authorized_clients/. Пратећи упутства описана у одељку Подешавање аутоматски ће се креирати овај директоријум. Ауторизација клијента ће бити омогућена за услугу само ако Тор успешно учита бар један фајл за ауторизацију.

За сада, потребно је да сами креирате кључеве скриптом (као што су ове написане у Bash, Rust или Python) или ручно.

Да бисте ручно генерисали кључеве, потребно је да инсталирате openssl верзију 1.1+ и basez.

Корак 1. Генеришите кључ користећи алгоритам x25519:

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

Ако добијете поруку о грешци, нешто је пошло наопако и не можете наставити док не схватите зашто ово није функционисало.

Корак 2. Форматирајте кључеве у base32:

Приватни кључ

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

Јавни кључ

$ 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

Корак 3. Копирајте јавни кључ:

 $ cat /tmp/k1.pub.key

Корак 4. Направите фајл овлашћеног клијента:

Форматирајте аутентификацију клијента и направите нови фајл у директоријуму <HiddenServiceDir>/authorized_clients/. Сваки фајл у том директоријуму треба да има наставак ".auth" (нпр. "alice.auth"; име фајла је небитно) и његов формат садржаја мора бити:

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

Подржане вредности за <auth-type> су: "descriptor".

Подржане вредности за <key-type> су: "x25519".

<base32-encoded-public-key> је base32 репрезентација само сирових бајтова кључа (32 бајта за x25519).

На пример, фајл /var/lib/tor/hidden_service/authorized_clients/alice.auth треба да изгледа овако:

 descriptor:x25519:N2NU7BSRL6YODZCYPN4CREB54TYLKGIE2KYOQWLFYC23ZJVCE5DQ

Ако планирате да имате више овлашћених клијената, сваки фајл мора да садржи само један ред. Сваки неисправно форматиран фајл ће бити игнорисан.

Корак 5. Поново покрените тор сервис:

 $ sudo systemctl reload tor

Ако добијете поруку о грешци, нешто је пошло наопако и не можете наставити док не схватите зашто ово није функционисало.

Важно: Опозив клијента може се извршити уклањањем његовог ".auth" фајла, међутим опозив ће ступити на снагу тек након поновног покретања тор процеса.

Клијентска страна

Да бисте приступили верзији 3 Онион Услуге са ауторизацијом клијента као клијент, уверите се да имате подешен ClientOnionAuthDir у вашем torrc. На пример, додајте овај ред у /etc/tor/torrc:

 ClientOnionAuthDir /var/lib/tor/onion_auth

Затим, у директоријуму <ClientOnionAuthDir>, направите .auth_private фајл за Онион Услугу која одговара овом кључу (нпр. 'bob_onion.auth_private'). Садржај фајла <ClientOnionAuthDir>/<user>.auth_private треба да изгледа овако:

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

На пример:

 rh5d6reakhpvuxe2t3next6um6iiq4jf43m7gmdrphfhopfpnoglzcyd:descriptor:x25519:ZDUVQQ7IKBXSGR2WWOBNM3VP5ELNOYSSINDK7CAUN2WD7A3EKZWQ

Ако сте ручно генерисали пар кључева пратећи упутства на овој страници, можете копирати и користити приватни кључ креиран у Кораку 2. Затим поново покрените tor и требало би да можете да се повежете на адресу Онион Услуге.

Ако генеришете приватни кључ за онион сајт, корисник не мора нужно да уређује torrc Тор претраживача. Могуће је унети приватни кључ директно у интерфејс Тор претраживача.

За више информација о аутентификацији клијента, погледајте Тор приручник.