Tor VPN 手冊
⚠️ 警告:Tor VPN 為測試版軟體。 請勿在測試以外用途依賴它。 可能洩漏資訊,不應用於任何敏感用途。
入門
了解 Tor VPN 的基本概念。
功能特點
Tor VPN 功能。
規避
了解如何以 Tor VPN 繞過網路審查
遇到問題
疑難排解常見問題,以及遇到問題時聯絡支援的方式
安全性
Tor VPN 的安全特性與屬性
⚠️ 警告:Tor VPN 為測試版軟體。 請勿在測試以外用途依賴它。 可能洩漏資訊,不應用於任何敏感用途。
了解 Tor VPN 的基本概念。
Tor VPN 功能。
了解如何以 Tor VPN 繞過網路審查
疑難排解常見問題,以及遇到問題時聯絡支援的方式
Tor VPN 的安全特性與屬性
了解 Tor VPN 的基本概念。
Tor VPN 是以 Tor 為核心的應用程式,可將使用者裝置上的其他應用程式流量經由 Tor 網路轉送。 Tor VPN 具備 Tor 的隱私保護、可隱藏真實 IP 位址,並防範監控與審查。
⚠️ 警告:Tor VPN 為測試版軟體。 請勿在測試以外用途依賴它。 可能洩漏資訊,不應用於任何敏感用途。
The Tor network can be understood as a network of virtual tunnels that allows you to improve your privacy and security on the Internet. Tor 會將您的流量經由 Tor 網路中三個隨機伺服器(中繼點)轉送。 電路最後一個中繼(「出口節點」)會將流量送向公開網際網路。 使用 Tor 網路時,網路上任一單點都無法同時看到流量來源與最終目的地,因而難以追蹤使用者的網路活動。 此舉可對網路服務商(ISP)與監看您連線的本地端隱藏流量目的地(例如您造訪的網站名稱與位址);您所存取的網站與服務營運方及其監看者,會看到連線來自 Tor 網路而非您的真實 IP 位址。
Tor VPN 是由 Tor Project 開發的免費開源軟體,屬 Tor 型應用程式,可將使用者裝置上其他應用程式的流量經由 Tor 網路轉送。 Tor VPN 利用 Tor 網路,將流量經由 Tor 中繼點轉送。 使用 Tor VPN 的主要用途與優點:
Tor VPN 僅提供 Android 版本。
Tor VPN 為自由軟體。 免費:自由軟體(libre),且免費提供。 請確保僅從下列官方來源下載,以安裝正確的 Tor VPN。
Tor VPN 僅適用於 Android 作業系統,需符合:
不支援 Android 平板與 Chromebook。
你可以從 Google Play 商店 下載並安裝 Tor VPN。
你可以從 F-Droid 下載並安裝 Tor VPN。
安裝完成後,可從 Play 商店點選「Open」啟動,或從手機應用程式清單開啟 Tor VPN。 在「Connect」畫面,預設會開啟「All apps protected」,並將手機上所有應用程式設定為經 Tor VPN 轉送。
從首次啟動到 Tor VPN 連線建立的畫面流程
你可以設定 Tor VPN 在每次啟動時,使用先前儲存的連線設定自動連線至 Tor 網路。
設定每次啟動時自動連線 Tor VPN。
請隨時將 Tor VPN 更新至最新版本。 若你持續使用過時版本,可能暴露於嚴重的安全漏洞之下,進而危及你的隱私與匿名性。
您可從應用程式商店更新 Tor VPN。
你可以直接透過 Google Play 商店、F-Droid,或手機的應用程式設定解除安裝 Tor VPN。
Tor VPN 功能。
預設情況下,手機上安裝的應用程式皆會經由 Tor VPN 轉送,Tor 系列應用程式(例如 Android 版 Tor Browser 與 Orbot)除外。
您也可以只允許特定應用程式使用 Tor VPN 並經 Tor 網路轉送。
設定應用程式使用 Tor VPN
出口節點是每條 Tor 電路的最後一跳。 您可設定 Tor VPN 只從特定國家選擇出口節點。
透過 Tor 網路連線時,網站與應用程式會認為您從 Tor 出口節點所在國家連線。
若要設定 Tor 連線的出口位置:
設定 Tor 連線的出口位置
「Kill switch」可在無法連上 Tor 網路時,阻擋應用程式連線至網際網路。
若要啟用「Kill switch」:
設定 Tor VPN 應用程式在手機上的顯示方式。
若要變更應用程式圖示與名稱的外觀:
設定 Tor VPN 在裝置上的顯示方式。
了解如何以 Tor VPN 繞過網路審查
有時候可能無法直接連到 Tor 網路。 此時可將 Tor VPN 與稱為「橋接」的審查規避工具搭配使用。
在嘗試常見疑難排解步驟後,若 Tor VPN 仍無法建立與 Tor 網路的連線,您的連線可能遭到審查封鎖。 此時可嘗試使用其中一種內建的審查規避連線方式。
Tor VPN 支援下列橋接類型:
依您所在地區,某種橋接類型可能較為有效。
若內建、obfs4 與 Snowflake 等審查規避方式皆無效,您必須另行申請其他橋接。 橋接位址並非公開,您必須在應用程式內自行申請:
若透過電子郵件或 Bridges 網站取得橋接,您必須手動新增。
設定 Tor VPN 使用橋接
執行 Tor VPN 時常見錯誤的疑難排解。
若 Tor VPN 無法連線,您可能會看到錯誤訊息:
Tor VPN 連線錯誤。
疑難排解時,請依序嘗試以下方法:
查看 Tor VPN 記錄有助於診斷問題。 取得 Tor VPN 記錄的方式:
00:00:00:00 W/onionmasq: onion_tunnel::runtime: Arti failed to connect to [2a00:ccc1:1:2c::1]:9000: Network is unreachable (os error 101)
00:00:00:00 W/onionmasq: tor_chanmgr::transport::default: Connection to [scrubbed] failed: error: Network is unreachable (os error 101)
00:00:00:000 E/onionmasq: onionmasq_mobile::ffi: runProxy() returned error: couldn't start onionmasq proxy
00:00:00:000 CONNECTION_ERROR
00:00:00:000 D/onionmasq: onionmasq_mobile: closing proxy...
此時可嘗試其中一種審查規避方式。
如何聯絡支援、回報錯誤或提供意見。
若您遇到的問題未在文件說明中,請先嘗試疑難排解步驟。 若仍無法解決,請提交錯誤回報或聯絡支援團隊。
提交支援請求、反饋或程式錯誤回報時,請盡量提供更多資訊:
請在 Tor 論壇 建立帳號以發表新主題。 發文前請閱讀討論規範並搜尋是否已有相關主題。
若您要回報錯誤,請至我們的 錯誤追蹤系統 提交。 請先確認該錯誤是否已有人回報。 若要搜尋並瀏覽所有 Tor VPN 相關錯誤回報,請前往 Tor VPN 程式庫。
若要建立新的錯誤回報,請申請新帳號以存取 Tor Project 的 GitLab。 請在 Tor VPN 儲存庫 提交錯誤回報。
請透過 @TorProjectSupportBot 傳訊息給我們。
發送電子郵件到 frontdesk@torproject.org
請在電子郵件主旨說明您要回報的內容。 主旨越具體,我們越能掌握並後續處理。 有時沒有主旨的郵件會被誤判為垃圾郵件。
請透過 +447421000612 以 WhatsApp 訊息聯絡我們。
請透過 +17787431312 以 Signal 訊息聯絡我們。
Tor VPN 的安全特性與屬性
本文件說明 Tor VPN 的安全特性、所提供益處的性質,以及適用情境。 本威脅模型文件預設讀者為開發者、UX 設計師、文件撰寫者、技術培訓人員與技術使用者。
August 6, 2025
Similar to Tor Browser, and unlike traditional VPNs, Tor VPN gives each application its own route through the Tor network. This feature prevents network adversaries from linking a user's private activity with their non-private activity.
In contrast to Tor Browser, the privacy benefits that Tor VPN provides depend highly upon the behavior of individual applications, the permissions granted to those applications, and the configuration of the base Android system.
For privacy-hostile applications in partial Tor mode, or for applications that users only occasionally use with Tor, Tor VPN provides only censorship circumvention and protection from network surveillance.
When used on properly configured privacy-enhanced Android distributions such as GrapheneOS, Tor VPN can provide additional privacy benefits even for privacy-hostile applications.
This document describes the nature of the benefits that Tor VPN provides and when they apply.
The Tor VPN threat model uses the ICTM methodology. ICTM specifies security invariants that the user can expect when using the software in a particular way or in a particular environment. An ICTM threat model starts from a point of "No Security" and adds security invariants when the software environment meets particular requirements.
We express what Tor VPN provides in terms of ICTM security invariants, which apply to specific application types and usage scenarios.
In our usage of ICTM, we define five ICTM security invariants that represent levels of privacy that Tor VPN provides. This document links these invariant terms in Capitalized Bold Italic to their definition sections.
These security invariants apply to the combination of four types of Android applications, two modes of Tor VPN (all-app or per-app), and five Android device configurations. This document links these classification terms in Capitalized Bold to their definition sections.
The combined outcome results in two threat model matrices that represent the ICTM security invariant that is active in a given situation.
The level of pseudonymity that Tor VPN provides to the user guides the overall threat model.
Tor VPN provides at least censorship circumvention to all selected apps.
Tor VPN does not magically make all apps anonymous or pseudonymous. If the user used their real name or even created their account without Tor, then they have no pseudonymity.
If the user uses a privacy-enhanced version of Android and is careful about their Google account setup and app usage, then Tor VPN can help protect the usage of a single pseudonym for the user of the device. (The user may try to use different names in different apps, but app behavior can link these pseudonyms to the Google account and/or to each other).
If the user uses privacy-preserving apps with proper configuration, then Tor VPN can enable the usage of separate pseudonyms in those apps. (When properly configured, an adversary cannot link the different pseudonyms used in distinct privacy-preserving apps).
Essentially, this threat model describes the circumstances under which the user obtains these different levels of pseudonymity protection.
The low-level VPN security properties and the ICTM security invariants support the Tor VPN threat model.
Two low-level security properties that the OnionMasq networking daemon provides support the ICTM security invariants. These low-level security properties must hold for the ICTM invariants to apply:
Network Leak Safety. Apps MUST NOT be able to bypass the VPN when it is enabled. This includes during device startup, if the VPN is not connected yet, or if the network is temporarily disconnected. The VPN industry calls this property a "Kill Switch", "Always On VPN Lockdown", or "On Demand". The Always-on Lockdown feature of Android 8 and above provides this property.
Network App Isolation. All network activity of each Tor-routed app MUST be isolated from other apps by using its own dedicated Tor circuit(s). Specific apps MAY bypass Tor entirely if the user chooses to allow this. Android 10 及更新版本的 ConnectivityManager API 提供此屬性。
These are the security invariants that Tor VPN is capable of providing to individual apps. To simplify activation conditions, some invariants inherit the properties of earlier ones. We list these inherited invariants under each invariant.
The high-level conceptualization to keep in mind is that we are defining distinctions in the level of pseudonymity that the user can expect for an app: no pseudonymity, multi-app shared pseudonymity, per-app pseudonymity, and anonymity.
The next section lists the activation conditions under which they apply.
NOTE: Linkable Pseudonymity is a fragile state. As pseudonymous activity is linked together, the odds increase that there is some way to deanonymize some of that activity, thus deanonymizing all of it. One can conceptualize this invariant as providing "Multi-App Shared Pseudonymity," where all apps with Linkable Pseudonymity on the device effectively share the same pseudonym. This is why we require either the Pseudonymous Google Configuration or Google-Free Configuration for apps to gain this invariant. (Pseudonymity would otherwise vanish as soon as it was linked to a non-pseudonymous Google account.)
NOTE: One can conceptualize this invariant as providing "Per-App Pseudonymity." Because of Tor VPN's Network App Isolation, when this invariant is active for an app, its activity cannot be linked to non-private activity on the device. This is not the case for traditional VPNs, which allow the VPN operator and VPN endpoint observers to link such activity.
Our security invariants activate depending on what type of app is in use, the Tor VPN mode (per-app or all-apps), and properties of the base OS and configuration.
The lowest numbered invariant where an app matches these clauses is the invariant for that app.
A device may have multiple apps operating at different security invariant levels, depending on these conditions.
The Threat Model Matrices present this same activation information in table form.
Rationale: Surprisingly, this is a common failure mode for VPN apps among people who do not understand how they work.
Rationale: We cannot provide any additional security to a device that is already vulnerable to unfixed, publicly disclosed security flaws. We assume these public flaws can subvert any privacy or security properties the user would hope to gain by running Tor VPN.
Rationale: In per-app mode, apps that are not selected for Tor use get no protection. (Though they could if we implemented a per-app network block feature).
Rationale: Privacy-hostile applications can trick the user into opening URLs in apps that are not selected to use Tor and can link non-Tor activity to their activity.
Rationale: On all versions of Android, Privacy-hostile applications can use the
ACCESS_NETWORK_STATEAndroid permission to determine the SIM card IP address and can engage in data sharing with the ISP, which removes Network Privacy. On Stock Google Android (but not GrapheneOS), they can bind to the cell network interface to directly bypass the VPN for arbitrary network connections.
Rationale: We assume unmasked apps have no pseudonymity.
Rationale: Privacy-hostile apps can link their activity to the user's real name and Google account unless the user takes further steps.
Rationale: Pseudonym-friendly apps can be accidentally linked to a user's real name and Google account through push notifications, phone number authentication, and other mechanisms, unless the user takes further steps.
Rationale: The usage of Google push notifications links the pseudonymous app to the device's Google account, which is also pseudonymous in this configuration.
Rationale: Privacy-hostile apps can cooperate with other privacy-hostile apps on the phone to link activity, even without a device Google account.
Rationale: These device configurations prevent linkability of the pseudonymous app to the device's Google account.
Rationale: This device configuration isolates privacy-hostile apps from the device's Google account and from each other.
Rationale: Anonymity apps have no other identifiers other than the current IP address, which is now a Tor exit IP address.
As can be seen, our security invariants depend upon the app type and the Android device configuration. In this section, we define those applications and configurations specifically.
We classify Android applications into four types:
NOTE: Once an app is unmasked on a device, creating a new pseudonymous account in the same app does not remove this classification. In fact, due to the Android ID identifier behavior, deleting the app and reinstalling it in the same profile still allows a new pseudonym to be linked to the deleted one. A user must use the Isolated User Profile Configuration to create a new device user profile to use the app in an unlinkable way with respect to the current profile's Android ID for that app.
Architecturally, Tor VPN is capable of providing a high degree of unlinkability to applications on the same device, as we can see from the security invariants. Unfortunately, Android is an extremely privacy-invasive platform. The Android ecosystem has been built upon the same advertising model that the web has been built upon. Because Google controls Android and is the primary benefactor (if not sole conduit) of Android advertising revenue, Google designed the platform to maximize the ability to track usage and to link user activity together to build a comprehensive advertising profile of the user. This linkability is problematic even for apps that provide pseudonymity as a design goal, merely through their usage of the system APIs. The primary way that the system subverts pseudonymity is by associating the pseudonym with the Google account, most often through push notifications, but also through associating location information with the Android Advertising ID. On a stock Google Android, the device's Google account gets full device information: serial number, IMEI, IMSI, phone number, WiFi MAC address, full location history, and installed application list. We assume that any linking mechanism to the stock Android Google account provides deanonymization of a pseudonym. In these cases, apps can gain Network Privacy at most. The good news is that there are ways of configuring an Android device that improve the ICTM security invariant that Tor VPN can provide:
ACCESS_NETWORK_STATE permission, which gives access to all IP addresses on the device, along with a lot of other network interface information that can be used to track the user. For a good overview of all the information that is available by default, install Network Analyzer or use the Device ID test in our VPN Test App. Unfortunately, even privacy-preserving Android distributions such as GrapheneOS do not provide the ability to redact non-VPN network information and non-VPN IP addresses when a VPN is active. Additionally, on stock Android, apps can bypass the VPN interface by binding to the cell network interface, regardless of Always-on and Block Connections Android settings. Until those tickets are fixed:
When these properties are met, the app will not be linked to the device's Google account, which is a common source of deanonymization.
NOTE: Removing push notification permission is NOT ENOUGH to prevent apps from being able to register with Firebase (Google) to receive a push token that links the app to the Google account. See the Push Notification section of Known Weaknesses for more information. For now, if an app does not provide settings to disable notification registration, then you must use one of the following configurations instead. (For example: Session Messenger allows push registration to be disabled or switched to non-Google; Signal currently offers no such configuration).
It turns out that from the point of view of our ICTM security invariants, both of these are equivalent: they both result in Linkable Pseudonymity for both pseudonym-friendly apps and privacy-hostile apps because they significantly reduce the amount of linkable information, but they do not eliminate it. The primary reason is due to the remaining push notification linkability. See the Push Notification Linkability section of Known Weakness for more info. If the push notification linkability weakness is mitigated, then pseudonym-friendly apps will have Unlinkable Pseudonymity in this configuration when using push notifications. The first option accepts linkability through the Google account but mitigates deanonymization through careful management of this Google account. In this configuration, the user creates a new Google account over Tor and relies on the GrapheneOS Google Sandbox to provide pseudonymity for the device's Google account. In this sandbox, the system treats Google as a normal app, with revocable permissions and no access to hardware identifiers. Additionally, GrapheneOS requires the user to manually disable the Android Advertising ID. Doing so eliminates a large source of excess linkability. The Android Advertising ID is heavily used to link pseudonyms to location data. In the second option, the user configures a new privacy-enhanced Android device without a Google account but still uses push notifications with sandboxed Google Play Services on GrapheneOS. The user can use F-Droid or Aurora Store to install apps without a Google account. Without a Google account, there is less linkability risk between apps through other Google APIs other than push.
NOTE: The device must always use Tor to avoid linking its device push registration to a non-Tor IP address. This may be problematic in censorship scenarios where configuration information is delivered over push notifications. In this case, without a device Google account, it may be possible to clear registration data and re-register to remove linkability. But the effectiveness of this will depend on the data retention duration of the services involved for expired push tokens. See the Push Notification Linkability section of Known Weaknesses.
- These properties define this configuration:
- Configure with the IP Address Privacy Configuration to prevent Google Services and hostile apps from using the cell IP address for linkability.
- Optional Google Account Config:
- Create a new pseudonymous Google account over Tor for the device, using an SMS or VoIP phone number.
- The Android Advertising ID of this account has been disabled.
- Do not use the device phone number or Google account for app registration. Use a different online SMS or VoIP provider over Tor.
- If Tor VPN is in per-app mode, all Google Play Services and Google apps must be selected to use Tor in this configuration.
- Disable Private DNS and Connectivity Checks.
The active security invariant for a given scenario can be summarized in two matrices: one for Tor VPN per-app mode and one for Tor VPN all-app mode. These two matrices exactly represent the ICTM security invariant clauses from Section 2.3.
In this section, we list the known weaknesses of both stock Android and privacy-enhancing Android, where fixing a weakness would significantly improve the available security invariants.
For each weakness, we list the Consequences for the user and the mitigating configurations the user must perform, when possible.
We also provide fix Recommendations for developers of GrapheneOS, Android, and pseudonym-friendly apps.
The following Android privacy issues apply to all Android versions, including GrapheneOS and CalyxOS.
In all versions of Android, when apps have the ACCESS_NETWORK_STATE permission (which nearly all Android apps have), they can examine properties of all network interfaces, including the IP address. For a good overview of all the information that is available by default, install Network Analyzer or use our VPN Leak Test App.
Consequences: This weakness prevents Tor VPN from providing Network Privacy (or further invariants) to Privacy-hostile apps. This weakness also exposes the user to IP address leaks even for Pseudonym-friendly apps that disclose all device IP addresses during WebRTC calls. In both cases, the user must use their phone with a mobile WiFi hotspot, rather than a SIM card, to mitigate this weakness.
Recommendation: When a VPN is enabled, the Android OS should simulate non-VPN interfaces as disconnected, or it should spoof unused RFC1918 addresses for non-VPN interfaces. If addresses are spoofed, the system should not provide the same values to all apps, to prevent the use of spoofed values as identifiers (which likely already happens with IP address values today). These mitigations are essential because they enable VPNs to provide Network Privacy. Most VPN users naturally want their IP addresses to be unavailable to apps for tracking purposes.
All versions of Android (and also all versions of iOS) are currently subject to linkability through push notifications, even when the user has denied push notification permission to all apps.
When registering for Google's Firebase push notifications, apps obtain an FCM "token" from Firebase, which they submit to their servers. Their servers use this token to deliver messages to Google, who then uses the token ID to look up the device and send it the message.
Our VPN Leak Test App verifies that this registration ability is possible without any push notification permission, in the Device ID test.
This means that a series of record requests (sent first to the app developers and then to Google) will discover the Google account in use with a particular app. From there, even if there is no device Google account, the other push tokens associated with the device can be used to make further record requests to other app service providers for account data associated with their respective token IDs.
Because Google (and many apps) operate internationally, these requests can come from arbitrary jurisdictions. The Anti-Foreign Sanctions Law in China is one such example of a law that can be used for this purpose, although no direct reports of China using push notifications have been made public. It seems likely that Wyden's concerns did not come from nowhere, though.
This linkability is possible even for apps like Signal that do not send any actual content in the push notification and use it only as a wake-up notification. Because Signal still stores the token ID with the user's account on their servers, this linkability also exists for them.
This makes it impossible to have distinct pseudonyms for Signal, or any other app that registers with FCM, unless the user configures their device without Google Play Services or creates a separate user profile without Google Services for these apps.
Consequences: This weakness makes the Pseudonymous App Configuration impossible for many apps, because FCM push registration cannot actually be disabled by the user by denying push notification permission to an app. It also makes Pseudonymous Google Configuration have far more app linkability to the Google account (or device) than would otherwise be the case, linking many privacy-hostile apps to Google and to other pseudonym-friendly apps. The user has no real mitigation options, because disabling push notifications still allows this registration and resulting linkability.
Recommendations:
There are a few different approaches that can reduce the user's exposure to this linkability:
In our testing, we discovered that apps can bypass the VPN by using mDNS requests and SSDP activity. We have a reproduction case in our VPN Leak Test App. This test leaks on all versions of Android, including GrapheneOS. GrapheneOS has attempted to fix some multicast leaks, but our test app shows that these fixes are insufficient.
Additionally, these multicast leaks enable privacy-hostile apps to communicate on a local network, further linking user pseudonyms to other app activity on that same network.
This behavior is also observed in the wild, with Spotify engaging in communication over the local network through this bypass mechanism.
Consequences: This weakness allows Privacy-hostile apps to communicate on the local network to link their usage to other users on the network.
Recommendation: The Android OS should route this multicast behavior through the VPN interface. This will enable the VPN app to decide whether to allow these local network connections.
The Android ID is essentially a 64-bit identifier that is shared by all apps in a user profile with the same signing key.
This identifier persists across re-installations of the same app, which can be verified using our VPN Leak Test App using the Device Identifier test. Users who expect to be able to delete an app and then reinstall it to sign in under a different pseudonym will have their pseudonyms linked by Privacy-hostile apps that make use of this identifier.
Consequences: This weakness prevents users from being able to reinstall apps to change pseudonyms without linking those pseudonyms together. Basically, due to this weakness, once an app is linked to the user's real identity on a profile, that app will always be an Unmasked App, even after reinstallation. Users must install that app in a separate profile to avoid this linkability.
Recommendation: This ID should be randomized with every app installation, rather than persisting after uninstallation. This will allow users to delete an app to change pseudonyms.
For some reason, no Android permissions are necessary to determine the cell network ID and the provider name of the user's SIM card. This information can be used to determine the user's rough geographic location, depending on the range of the cell provider (typically at least country-level, but sometimes regional, state, or province-level). The Device ID test of our VPN Leak Test app displays this information. It is also visible in Network Analyzer.
Consequences: This weakness does not directly impact any of our privacy invariants, but it is generally bad for privacy.
Recommendation: These APIs should always return NULL/empty (the default when no eSIMs are configured), because this information is not necessary for app operation.
We observed that when WiFi calling is enabled for an activated eSIM, the device makes IPsec connections to the eSIM provider, bypassing the VPN.
Consequences: This weakness does not directly impact any of our privacy invariants, but it is generally bad for privacy in that it exposes the user's WiFi IP address to their cell network.
Recommendation: Allow VPN interfaces control of routing this connection, so that it may be disabled if the user chooses to block it.
Stock Android has a number of edge cases that can leak DNS or multicast, which can remove the Network Privacy invariant by revealing to the local network that a particular app may be in use.
Stock Android allows apps to bind to the cell network interface and then connect to an IP address, bypassing any VPN in place, regardless of Always-On or Block Connections VPN settings. Our VPN Test App has a reproduction case for this as part of the Leak Test. This leak is only possible over the cell network interface.
GrapheneOS fixed this issue in the 2025072700 Release.
Consequences: This leak allows Privacy-hostile apps to remove Network Privacy on stock Android. Users must use the IP Address Privacy Configuration and/or use GrapheneOS to prevent this leak.
Recommendations: Google shouldn't allow rogue apps to bind to the cell interface to bypass the VPN in Lockdown Mode, because VPN users expect that apps can't bypass the VPN in this mode.
On stock Android, user profile isolation can leak packets upon first use after restart.
Consequences: This leak prevents stock Android users from successfully using Isolated User Profile Configuration to isolate sensitive app activity. Users have to install GrapheneOS to mitigate this.
Recommendation: These leaks should be fixed, because users expect Always on VPN and Block Connection settings to work in all user profiles.
On stock Android, the device Google account has access to all hardware identifiers, as well as SIM card identifiers and phone number. This access typically means that any form of linking to the device Google account (through push notifications, Gmail use, or Google OAuth sign-in) typically means deanonymization of a pseudonym.
Consequences: It is difficult for a user to maintain a pseudonym even in Pseudonym-friendly apps without careful configuration.
Recommendations: Both privacy-conscious apps and Google should have more transparency with respect to actions that link the app's account to the device Google account, because users tend to expect that pseudonymity is not actively subverted behind their backs. In the meantime, the GrapheneOS Google Sandbox enables Pseudonymous Google Configuration.
Multiple issues with DNS exist in stock Android. Apps that use getaddrinfo() from the C library can bypass the VPN. Our VPN Leak Test app reproduces this leak as part of the main Leak Test.
Additional, DNS leaks can happen if the VPN malfunctions or shuts down.
Consequences: DNS leaks can erode Network Privacy by allowing local ISPs to determine which apps are in use. Users must use GrapheneOS to avoid these leaks.
Recommendations: GrapheneOS has fixed these issues. Google Android should upstream these fixes, because users expect that their DNS activity will not bypass their VPN.
Android has a secure setting Settings.Secure.always_on_vpn_lockdown_whitelist, which allows custom Android builds to define a list of apps that always bypass the VPN, regardless of VPN settings. Google and GrapheneOS both have this setting empty, but third-party Android builds may place their apps in this setting. The ReThink Firewall App has a ticket describing this issue.
Google Android also allows connectivity checks to bypass the VPN. GrapheneOS provides a setting to disable this.
Consequences: On Android rebuilds, various vendor apps may be exempted from the VPN, allowing them to connect outside of it. Users must use GrapheneOS to avoid these leaks.
Recommendations: Users should disable or remove vendor apps that they don't need.
The following weaknesses are unique to GrapheneOS. Note that the universal Android weaknesses also apply to GrapheneOS.
Additionally, the default-on behavior of the Android Advertising ID is another source of linkability between apps. GrapheneOS requires users to manually disable this ID, but this is not prominently documented during setup.
A better default would be to have the Android Advertising ID disabled by default or to provide a prominent setup step that educates users about this privacy risk.
We list this as a GrapheneOS-specific weakness because other privacy-preserving versions of Android randomize this ID automatically.
Consequences: Users who are not aware that they need to configure their Google account to disable this identifier will have all of their Privacy-hostile app activity linked to their Google account and to each other. Users must manually disable the Advertising ID in their Google account settings.
建議:與 GrapheneOS 代理定位 API 的方式類似,此 API 亦應透過代理回傳隨機或歸零的數值,因為此 API 是極具侵入性的連結性來源,會讓跨應用程式的位置與使用資料被彙整。
你可以用多種方式聯絡 Tor Project;本節也說明應提供哪些資訊,協助我們更快處理你的問題。
Tor 有賴世界各地的用戶與志願者的各種支持,來提升我們的軟體與相關資源,因此您的回饋對我們(以及所有 Tor 用戶)是極為珍貴的。
當您要提供回饋建議或是通報臭蟲時,請盡可能的包含下列資訊:
我們設有多種不同的聯繫方式,請按您需要選用。
我們建議你到 Tor Forum 尋求協助。 您需要先建立帳號才能發文。 提問前,請先閱讀我們的討論規範。 這一刻如果希望盡快得到答覆,請以英文撰寫。 如果您發現臭蟲的話,請利用 GitLab 提報。
首先,請先確認該程式問題是否已知。 您可以在https://gitlab.torproject.org/上搜尋查閱所有的問題。 若要提報一個新的問題,請先索取一個新帳號以存取 Tor Project 的 GitLab 服務,並在尋找正確的儲存庫來滙報您的問題。 你也可以透過 Anon Ticket 匿名回報錯誤或提供意見,無需建立帳號。 我們在 Tor 瀏覽器問題追蹤器上,追蹤所有跟 Tor 瀏覽器有關的問題。 關於我們網站上的問題,請到網頁問題追蹤器提交。
如果需要幫助安裝 Tor 瀏覽器或排查故障,並且所在地屏蔽或審查 Tor 論壇,可以通過 Telegram https://t.me/TorProjectSupportBot與我們聯繫。 Tor 支持專員將協助你。
您可以發送文字訊息到 WhatsApp號碼: +447421000612 以聯絡我們的支援團隊。 本服務僅限文字訊息,並不支援視訊或語音通話。
您可發送文字訊息到 Signal 號碼: +17787431312 或 Signal 用戶名 @torsupport.89以聯絡我們團隊。 Signal 是一個免費及關注隱私的通訊應用程式。 本服務僅限文字訊息,並不支援視訊或語音通話。 發送訊息之後,支援人員會引導協助您進行疑難排解。
發送電子郵件到 frontdesk@torproject.org。
請在郵件的主旨表明要通報的問題。 郵件主旨寫得越具體明確的話(例如:「連線失敗」、「網站意見反饋」、「Tor 瀏覽器意見反饋」、「要求橋接器」),那麼我們就可以更容易了解和跟進。 沒有主旨的電子郵件有時會被標記為垃圾郵件,以致我們沒有留意到。
為了能夠更快速的回覆您,麻煩請儘量以英文、西班牙文或葡萄牙文撰寫。 如果這幾種語言您都不熟悉的話,請您直接以自己舒適的語言來撰寫,但請留意這會需要較長的時間才能夠回覆,因為我們需要尋求翻譯協助才能理解您的問題。
您可以在與您所遭遇的問題有關的部落格貼文裡留言。 如果在部落格上沒有與您的問題有關的貼文,請用其他方式與我們聯繫。
你可以在 OFTC 的 #tor 頻道,或 #tor:matrix.org 找到我們,提供回饋或回報問題。 我們可能不會立即回覆您,但我們都會回頭檢閱聊天記錄,也會盡快跟您聯繫。
了解如何連上OFTC 伺服器。
若要利用郵件清單來通報錯誤或回饋意見的話,我們建議您提報至與您想通報的主題最接近的郵件清單,您可以在這裡找到我們目前的所有郵件清單列表。
通報與洋蔥路由中繼節點有關的問題或意見:tor-relays
如果發現安全問題,請發郵件至 security@torproject.org。
如果需要對郵件加密,可以從這個地址keys.openpgp.org獲得 OpenPGP 的公鑰。以下是當前的指紋:
835B 4E04 F6F7 4211 04C4 751A 3EF9 EF99 6604 DE41
如果要參加漏洞賞金計劃,請注意,向第三方網站報告安全問題會帶來我們無法控制的風險,所以請直接向我們報告。
了解如何聯絡 Tor Project 以取得支援、回報錯誤或提供意見。
提交支援請求、反饋或程式錯誤回報時,請盡量提供更多資訊:
週一至週四:用戶支援頻道在電子郵件、Telegram、WhatsApp 及 Signal 均會運作。
週五至週日:客服專線暫停服務。 請放心,我們的團隊會在週一回覆您的訊息。
我們設有多種不同的聯繫方式,請按您需要選用。
我們提供有數個官方 Telegram 機器人與頻道:
我們建議可以在 Tor 論壇上尋求協助。 您需要先建立帳號才能發文。 請先參閱論壇討論指南並查看已有的討論主題後再作提問。 這一刻如果希望盡快得到答覆,請以英文撰寫。 如發現程式錯誤,請使用 GitLab。
您可以發送文字訊息到 WhatsApp號碼: +447421000612 以聯絡我們的支援團隊。 本服務僅限文字訊息,並不支援視訊或語音通話。
您可發送文字訊息到 Signal 號碼: +17787431312 或 Signal 用戶名 @torsupport.89以聯絡我們團隊。 Signal 是一個免費及關注隱私的通訊應用程式。 目前我們的支援頻道提供英語、俄語和波斯語,並集中協助處於網路審查地區的 Tor 用戶。 本服務僅限文字訊息,並不支援視訊或語音通話。 發送訊息之後,支援人員會引導協助您進行疑難排解。
發送電子郵件到 frontdesk@torproject.org
請在郵件的主旨表明要通報的問題。 郵件主旨寫得越具體明確的話(例如:「連線失敗」、「網站意見反饋」、「Tor 瀏覽器意見反饋」、「要求橋接器」),那麼我們就可以更容易了解和跟進。 沒有主旨的電子郵件有時會被標記為垃圾郵件,以致我們沒有留意到。
若要取得最快的回覆,請盡可能以英語、俄語、波斯語、西班牙語、印度語、孟加拉語或葡萄牙語撰寫。 如果這幾種語言您都不熟悉的話,請您直接以自己舒適的語言來撰寫,但請留意這會需要較長的時間才能夠回覆,因為我們需要尋求翻譯協助才能理解您的問題。
您可以在 OFTC 的 #tor頻道或 MatrixTor 用戶支援頻道找到我們。我們或許無法即時回覆,但我們會查看累積日誌並會盡快回應。
了解如何連上OFTC 伺服器。
首先,請先確認該程式問題是否已知。 您可以在https://gitlab.torproject.org/上搜尋查閱所有的問題。 若要提報一個新的問題,請先索取一個新帳號以存取 Tor Project 的 GitLab 服務,並在尋找正確的儲存庫來滙報您的問題。 我們在 Tor 瀏覽器問題追蹤器上,追蹤所有跟 Tor 瀏覽器有關的問題。 關於我們網站上的問題,請到網頁問題追蹤器提交。