客戶驗證是讓洋蔥服務私密與驗核的方式。
它要求 Tor 客戶端提供受授權憑證才能連接洋蔥服務。
洋蔥服務第三版中,這個方案可以和多對密鑰(公鑰與私鑰)使用。
伺服器端使用公鑰設置,客戶必須透過私鑰才能訪問。
注意: 一旦完成用戶端認證設置,之後任何人即便有此地址也無法存取訪問。
如果沒設置授權,則任何取得洋蔥網址的人都可以訪問該服務。
設置洋蔥服務第三版
伺服器面
在伺服器端設置客戶授權,需要有<HiddenServiceDir>/authorized_clients/目錄,依照設定上的指示描述操作即會自動創建此目錄。
只有在 Tor 至少成功地載入一個驗證檔後,才能啟動站台服務的客戶授權。
現在您需要利用腳本來快速建立密鑰 (例如 Bash, Rust 或 Python)或是手動方式建立密鑰。
要手動生成密鑰,須先安裝openssl1.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 表示形式(x25519 為 32 位元組)。
例如檔案 /var/lib/tor/hidden_service/authorized_clients/alice.auth 看起來應像這樣:
descriptor:x25519:N2NU7BSRL6YODZCYPN4CREB54TYLKGIE2KYOQWLFYC23ZJVCE5DQ
如果打算需要更多的客戶驗證,每個檔案應只有一行,不符規式的檔案會被略過。
步驟 5. 重新啟動 Tor 服務:
$ sudo systemctl reload tor
如果您有看到錯誤訊息的話,那就表示有地方做錯了,您必須要先找出問題才能夠繼續往後的步驟。
重要: 撤銷用戶可以透過移除 ".auth" 檔案達成,然而撤銷生效必須等到 Tor 過程重啟。
用戶面
要透過客戶授權來訪問洋蔥服務第3版,請先確認 Tor 設定檔中有設置 ClientOnionAuthDir。
例如新增這行到 /etc/tor/torrc :
ClientOnionAuthDir /var/lib/tor/onion_auth
然後在 <ClientOnionAuthDir>目錄底下建立一個 .auth_private 檔案讓洋蔥服務對應這個密鑰(i.e. '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 就可以連接洋蔥服務的地址。
如果想為某個洋蔥站創建一把私鑰,用戶不一定要編改 Tor 瀏覽器的設定檔 torrc,可直接在 Tor 瀏覽器 界面下輸入私鑰。
更多關於客戶授權的資訊,請參見Tor 手冊.