İstemci kimliği doğrulama, bir onion hizmetini istemciye özel ve kimlik doğrulamalı yapma yöntemidir. Tor istemcilerinin onion hizmeti ile bağlantı kurmak için bir kimlik doğrulama bilgisi vermesini gerektirir.

  1. sürüm onion hizmetleri için bu yöntem bir çift anahtar kullanır (herkese açık ve özel). Hizmet tarafı herkese açık bir anahtarla yapılandırılmıştır ve istemci ona yalnız özel 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 hizmetleri 3. sürümü 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ız, 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ız 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ız 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 3. sürüm onion hizmetine erişmek 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 özel anahtarı kopyalayıp kullanabilirsiniz. Ardından tor hizmetini yeniden başlatın. Onion hizmeti adresine bağlanabilmeniz gerekir.

Bir onion sitesi için bir özel anahtar oluşturuyorsanız, kullanıcının Tor Browser torrc dosyasını düzenlemesi gerekmez. Özel 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 hizmetleri 2. sürümü yapılandırmak

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

 HiddenServiceAuthorizeClient [auth-type] [service-name]

Tor hizmetini yeniden başlatın ve onion hizmetinizin 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.