İstemci kimliği doğrulama ile, bir Onion Hizmeti o istemciye özel ve kimlik doğrulamalı olur. Tor istemcilerinin Onion Hizmeti ile bağlantı kurması için bir kimlik doğrulama bilgisi vermesi gerekir. Bu yöntemde Onion Hizmeti 3. sürümü için bir anahtar çifti kullanılır (herkese açık ve kişisel). Hizmet tarafı herkese açık bir anahtarla yapılandırılmıştır ve istemci ona yalnızca kişisel bir anahtarla erişebilir.

Not: İstemci kimlik doğrulamasını yapılandırdıktan sonra, hiç kimse adres üzerinden hizmete erişemeyecektir. Herhangi bir kimlik doğrulaması yapılandırılmamış ise, herkes onion adresi üzerinden hizmete erişebilir.

Onion Hizmeti 3. sürümünü yapılandırmak

Hizmet tarafı

Hizmet tarafında istemci kimlik doğrulamasını yapılandırmak için, <HiddenServiceDir>/authorized_clients/ klasörünün var olması gerekir. Kurulum bölümündeki yönergelerin izlenmesi bu klasörü otomatik olarak oluşturur. Hizmet için istemci kimlik doğrulaması yalnızca, Tor en az bir kimlik doğrulama dosyasını yüklerse etkinleştirilir.

Şimdilik, anahtarları bir betik ile (Bash için, Rust için ya da Python için) ya da el ile sizin oluşturmanız gerekir.

Anahtarları el ile üretmek için,openssl 1.1+ sürümü ve basez kurmanız gerekir.

1. Adım x25519 algoritmasını kullanarak bir anahtar üretin:

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

Bir sorun çıktığı hakkında bir hata iletisi görürseniz, sorunun ne olduğunu anlayana kadar sonraki adıma geçemezsiniz.

2. Adım Anahtarları base32 biçimine dönüştürün:

Kişisel anahtar

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

Herkese açık anahtar

$ 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. adım Herkese açık anahtarı kopyalayın:

 $ cat /tmp/k1.pub.key

4. Adım Kimliği doğrulanmış bir istemci dosyası oluşturun:

İstemci kimlik doğrulamasını biçimlendirin ve <HiddenServiceDir>/authorized_clients/ klasöründe yeni bir dosya oluşturun. bu klasördeki her dosyanın adı ".auth" son eki ile bitmelidir (dosya adından bağımsız olarak "alice.auth" gibi) ve içerik biçimi şu şekilde olmalıdır:

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

<auth-type> için desteklenen değerler: "descriptor".

<key-type> için desteklenen değerler: "x25519".

<base32-encoded-public-key>, yalnızca ham anahtar baytlarının base32 gösterimidir (x25519 için 32 bayt).

Örneğin, /var/lib/tor/hidden_service/authorized_clients/alice.auth dosyası şöyle görünmelidir:

 descriptor:x25519:N2NU7BSRL6YODZCYPN4CREB54TYLKGIE2KYOQWLFYC23ZJVCE5DQ

Daha fazla kimliği doğrulanmış istemciye sahip olmayı planlıyorsanız, her dosyada yalnızca bir satır bulunmalıdır. Hatalı olarak biçimlendirilmiş dosyalar yok sayılır.

5. adım Tor hizmetini yeniden başlatın:

 $ sudo systemctl reload tor

Bir sorun çıktığı hakkında bir hata iletisi görürseniz, sorunun ne olduğunu anlayana kadar sonraki adıma geçemezsiniz.

Önemli: Bir istemci, ".auth" dosyası silinerek kaldırılabilir. İptal işlemi ancak Tor hizmeti yeniden başlatıldıktan sonra geçerli olur.

İstemci tarafı

İstemci olarak, istemci kimlik doğrulaması kullanan bir Onion Hizmeti 3. sürümü adresi ile bağlantı kurmak için torrc dosyanızda ClientOnionAuthDir seçeceğinin ayarlanmış olduğundan emin olun. Örneğin /etc/tor/torrc dosyasına şu satırı ekleyin:

 ClientOnionAuthDir /var/lib/tor/onion_auth

Ardından <ClientOnionAuthDir> klasöründe, Onion Hizmeti için bu anahtara karşı gelen bir .auth_private dosyası oluşturun ('ahmet_onion.auth_private' gibi). <ClientOnionAuthDir>/<user>.auth_private dosyasının içeriği şöyle görünmelidir:

 <.onion-parcasi-olmadan-56-karakter-onion-adresi>:descriptor:x25519:<x25519 private key in base32>

Örnek:

 rh5d6reakhpvuxe2t3next6um6iiq4jf43m7gmdrphfhopfpnoglzcyd:descriptor:x25519:ZDUVQQ7IKBXSGR2WWOBNM3VP5ELNOYSSINDK7CAUN2WD7A3EKZWQ

Bu sayfadaki yönergeleri izleyerek anahtar çiftini el ile oluşturduysanız, 2. Adımda oluşturulan kişisel anahtarı kopyalayıp kullanabilirsiniz. Ardından tor hizmetini yeniden başlatın. Onion Hizmeti adresine bağlanabilmeniz gerekir.

Bir onion sitesi için bir kişisel anahtar oluşturuyorsanız, kullanıcının Tor Browser torrc dosyasını düzenlemesi gerekmez. Kişisel anahtar doğrudan Tor Browser arayüzünden eklenebilir.

İstemci kimlik doğrulaması hakkında ayrıntılı bilgi almak için Tor rehberi bölümüne bakabilirsiniz.

Onion Hizmeti 2. sürümünü yapılandırmak

Onion Hizmeti 2. sürümü için çerez kimlik doğrulamasını ayarlamak için, Tor el kitabındaki HidServAuth ve HiddenServiceAuthorizeClient seçeneklerine bakın. Önce Onion Hizmeti torrc dosyasına şu satırı ekleyin:

 HiddenServiceAuthorizeClient [auth-type] [service-name]

Tor hizmetini yeniden başlatın ve Onion Hizmeti sunucu adı dosyasından çerezi okuyun, örneğin /var/lib/tor/gizli_hizmet_yolu/sunucuadi. Bir Tor istemcisi üzerinden erişmek için torrc dosyasına aşağıdaki satırı ekledikten sonra Tor hizmetini yeniden başlatın:

 HidServAuth [onion-address] [auth-cookie] [service-name]

Artık Onion Hizmeti adresi ile bağlantı kurabilirsiniz.