Otorisasi klien adalah metode untuk membuat Onion Service menjadi privat dan terautentikasi. Ini mengharuskan klien Tor menyediakan kredensial autentikasi agar dapat terhubung ke Onion Service. Untuk Onion Services v3, metode ini bekerja dengan sepasang kunci (satu publik dan satu privat). Sisi layanan dikonfigurasi dengan kunci publik dan klien hanya dapat mengaksesnya dengan kunci privat.

Catatan: Setelah Anda mengonfigurasi otorisasi klien, siapa pun yang memiliki alamat tersebut tidak akan dapat mengaksesnya mulai saat ini. Jika tidak ada otorisasi yang dikonfigurasi, layanan akan dapat diakses oleh siapa pun yang memiliki alamat onion.

Mengonfigurasi Onion Services v3

Sisi layanan

Untuk mengonfigurasi otorisasi klien di sisi layanan, direktori <HiddenServiceDir>/authorized_clients/ harus ada. Mengikuti instruksi yang dijelaskan di bagian Penyiapan akan otomatis membuat direktori ini. Otorisasi klien hanya akan diaktifkan untuk layanan tersebut jika tor berhasil memuat setidaknya satu berkas otorisasi.

Untuk saat ini, Anda perlu membuat kunci sendiri dengan skrip (seperti yang ditulis dalam Bash, Rust atau Python) atau secara manual.

Untuk membuat kunci secara manual, Anda perlu memasang openssl versi 1.1+ dan basez.

Langkah 1. Buat kunci menggunakan algoritma x25519:

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

Jika Anda mendapatkan pesan kesalahan, ada sesuatu yang tidak beres dan Anda tidak dapat melanjutkan sampai Anda menemukan mengapa ini tidak berhasil.

Langkah 2. Format kunci ke base32:

Kunci privat

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

Kunci publik

$ 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

Langkah 3. Salin kunci publik:

 $ cat /tmp/k1.pub.key

Langkah 4. Buat berkas klien yang diotorisasi:

Format autentikasi klien dan buat berkas baru di direktori <HiddenServiceDir>/authorized_clients/. Setiap berkas di direktori tersebut harus diakhiri dengan ".auth" (misalnya "alice.auth"; nama berkas tidak penting) dan format kontennya harus:

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

Nilai yang didukung untuk <auth-type> adalah: "descriptor".

Nilai yang didukung untuk <key-type> adalah: "x25519".

<base32-encoded-public-key> adalah representasi base32 dari byte kunci mentah saja (32 byte untuk x25519).

Sebagai contoh, berkas /var/lib/tor/hidden_service/authorized_clients/alice.auth seharusnya terlihat seperti:

 descriptor:x25519:N2NU7BSRL6YODZCYPN4CREB54TYLKGIE2KYOQWLFYC23ZJVCE5DQ

Jika Anda berencana memiliki lebih banyak klien yang terautentikasi, setiap berkas harus hanya berisi satu baris. Berkas yang formatnya salah akan diabaikan.

Langkah 5. Mulai ulang layanan tor:

 $ sudo systemctl reload tor

Jika Anda mendapatkan pesan kesalahan, ada sesuatu yang tidak beres dan Anda tidak dapat melanjutkan sampai Anda menemukan mengapa ini tidak berhasil.

Penting: Pencabutan klien dapat dilakukan dengan menghapus berkas ".auth" mereka, namun pencabutan tersebut baru akan berlaku setelah proses tor dimulai ulang.

Sisi klien

Untuk mengakses Onion Service versi 3 dengan otorisasi klien sebagai klien, pastikan Anda telah mengatur ClientOnionAuthDir di torrc Anda. Sebagai contoh, tambahkan baris ini ke /etc/tor/torrc:

 ClientOnionAuthDir /var/lib/tor/onion_auth

Lalu, di direktori <ClientOnionAuthDir>, buat berkas .auth_private untuk Onion Service yang sesuai dengan kunci ini (misalnya 'bob_onion.auth_private'). Isi berkas <ClientOnionAuthDir>/<user>.auth_private seharusnya terlihat seperti ini:

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

Sebagai contoh:

 rh5d6reakhpvuxe2t3next6um6iiq4jf43m7gmdrphfhopfpnoglzcyd:descriptor:x25519:ZDUVQQ7IKBXSGR2WWOBNM3VP5ELNOYSSINDK7CAUN2WD7A3EKZWQ

Jika Anda membuat pasangan kunci secara manual dengan mengikuti instruksi di halaman ini, Anda dapat menyalin dan menggunakan kunci privat yang dibuat pada Langkah 2. Kemudian mulai ulang tor dan Anda seharusnya dapat terhubung ke alamat Onion Service.

Jika Anda membuat kunci privat untuk sebuah situs onion, pengguna tidak harus mengedit torrc Tor Browser. Anda dapat memasukkan kunci privat tersebut langsung di antarmuka Tor Browser.

Untuk informasi lebih lanjut tentang autentikasi klien, silakan lihat manual Tor.