msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-08-25 16:19+UTC\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: en <LL@li.org>\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

msgid "More help"
msgstr ""

msgid "BSD"
msgstr ""

msgid "Void linux"
msgstr ""

msgid "https://encrypted.google.com/search?q=online%20anonymity&hl=en"
msgstr ""

msgid "content:"
msgstr ""

msgid "`./start-tor-browser.desktop --verbose`"
msgstr ""

msgid "`./start-tor-browser.desktop --log [file]`"
msgstr ""

msgid "`./start-tor-browser.desktop --register-app`"
msgstr ""

msgid "```"
msgstr ""

msgid ""
"curl -s https://openpgpkey.torproject.org/.well-known/openpgpkey/torproject."
"org/hu/kounek7zrdx745qydx6p59t9mqjpuhdf |gpg --import -"
msgstr ""

msgid ""
"gpg --auto-key-locate nodefault,wkd --locate-keys torbrowser@torproject.org"
msgstr ""

msgid ""
"gpg --keyserver keys.openpgp.org --search-keys "
"EF6E286DDA85EA2A4BA7DE684E2C6E8793298290"
msgstr ""

msgid ""
"gpg --output ./tor.keyring --export "
"0xEF6E286DDA85EA2A4BA7DE684E2C6E8793298290"
msgstr ""

msgid "gpg --refresh-keys EF6E286DDA85EA2A4BA7DE684E2C6E8793298290"
msgstr ""

msgid "gpg:               imported: 1"
msgstr ""

msgid "gpg: Total number processed: 1"
msgstr ""

msgid ""
"gpg: key 4E2C6E8793298290: public key \"Tor Browser Developers (signing key) "
"<torbrowser@torproject.org>\" imported"
msgstr ""

msgid ""
"gpgv --keyring ./tor.keyring ~/Downloads/tor-browser-linux-x86_64-13.0.1.tar."
"xz.asc ~/Downloads/tor-browser-linux-x86_64-13.0.1.tar.xz"
msgstr ""

msgid ""
"gpgv --keyring ./tor.keyring ~/Downloads/tor-browser-macos-13.0.1.dmg.asc ~/"
"Downloads/tor-browser-macos-13.0.1.dmg"
msgstr ""

msgid ""
"gpgv --keyring .\\tor.keyring Downloads\\tor-browser-windows-x86_64-"
"portable-13.0.1.exe.asc Downloads\\tor-browser-windows-x86_64-"
"portable-13.0.1.exe"
msgstr ""

msgid ""
"gpgv: Good signature from \"Tor Browser Developers (signing key) "
"<torbrowser@torproject.org>\""
msgstr ""

msgid ""
"uid           [ unknown] Tor Browser Developers (signing key) "
"<torbrowser@torproject.org>"
msgstr ""

msgid "|----------|-----------------|-----------------------|"
msgstr ""

msgid "EF6E286DDA85EA2A4BA7DE684E2C6E8793298290"
msgstr ""

msgid "| -------- |"
msgstr ""

msgid "| Català (ca) |"
msgstr ""

msgid "| Dansk (da) |"
msgstr ""

msgid "| Deutsch (de) |"
msgstr ""

msgid "| English (en) |"
msgstr ""

msgid "| Español (es) |"
msgstr ""

msgid "| Français (fr) |"
msgstr ""

msgid "| Gaeilge (ga-IE) |"
msgstr ""

msgid "| Indonesia (id) |"
msgstr ""

msgid "| Islenska (is) |"
msgstr ""

msgid "| Italiano (it) |"
msgstr ""

msgid "| Language |"
msgstr ""

msgid "| Magyar nyelv (hu) |"
msgstr ""

msgid "| Nederlands (nl) |"
msgstr ""

msgid "| Norsk Bokmål (nb-NO) |"
msgstr ""

msgid "| Polszczyzna (pl) |"
msgstr ""

msgid "| Português Brasil(pt-BR) |"
msgstr ""

msgid "| Română (ro) |"
msgstr ""

msgid "| Shqip (sq) |"
msgstr ""

msgid "| Suomi (fi) |"
msgstr ""

msgid "| Svenska (sv-SE) |"
msgstr ""

msgid "| Tiếng Việt (vi) |"
msgstr ""

msgid "| Türkçe (tr) |"
msgstr ""

msgid "| lietuvių kalba (lt) |"
msgstr ""

msgid "| česky (cs) |"
msgstr ""

msgid "| Ελληνικά (el) |"
msgstr ""

msgid "| Русский (ru) |"
msgstr ""

msgid "| Український (uk) |"
msgstr ""

msgid "| македонски (mk) |"
msgstr ""

msgid "| עברית (he) |"
msgstr ""

msgid "| العربية (ar) |"
msgstr ""

msgid "| ภาษาไทย (th) |"
msgstr ""

msgid "| မြမစ (my) |"
msgstr ""

msgid "| ქართული (ka) |"
msgstr ""

msgid "| 日本語 (ja) |"
msgstr ""

msgid "| 正體字 (zh-TW) |"
msgstr ""

msgid "| 简体中文 (zh-CN) |"
msgstr ""

msgid "| 한국어 (ko) |"
msgstr ""

msgid "| ﺐﻫﺎﺳ ﻡﻼﻳﻭ (ms) |"
msgstr ""

msgid "| ﻑﺍﺮﺴﯾ (fa) |"
msgstr ""

msgid ""
"11/1/2017 21:11:43 PM.500 [NOTICE] Opening Socks listener on 127.0.0.1:9150"
msgstr ""

msgid ""
"11/1/2017 21:11:44 PM.300 [NOTICE] Bootstrapped 80%: Connecting to the Tor "
"network"
msgstr ""

msgid ""
"11/1/2017 21:11:44 PM.300 [WARN] Failed to find node for hop 0 of our path. "
"Discarding this circuit."
msgstr ""

msgid ""
"11/1/2017 21:11:44 PM.500 [NOTICE] Bootstrapped 85%: Finishing handshake "
"with first hop"
msgstr ""

msgid ""
"11/1/2017 21:11:45 PM.300 [WARN] Failed to find node for hop 0 of our path. "
"Discarding this circuit."
msgstr ""

msgid ""
"13-11-17 19:52:24.300 [NOTICE] Bootstrapped 10%: Finishing handshake with "
"directory server"
msgstr ""

msgid ""
"13-11-17 19:53:49.300 [WARN]  1 connections died in state connect()ing with "
"SSL state (No SSL object)"
msgstr ""

msgid ""
"13-11-17 19:53:49.300 [WARN]  9 connections died in state handshaking (TLS) "
"with SSL state SSLv2/v3 read server hello A in HANDSHAKE"
msgstr ""

msgid "13-11-17 19:53:49.300 [WARN] 10 connections have failed:"
msgstr ""

msgid ""
"13-11-17 19:53:49.300 [WARN] Problem bootstrapping. Stuck at 10%: Finishing "
"handshake with directory server. (DONE; DONE; count 10; recommendation warn; "
"host [host] at xxx.xxx.xxx.xx:xxx)"
msgstr ""

msgid ""
"19.11.2017 00:04:47.400 [NOTICE] Opening Socks listener on 127.0.0.1:9150"
msgstr ""

msgid ""
"19.11.2017 00:04:48.000 [NOTICE] Bootstrapped 5%: Connecting to directory "
"server"
msgstr ""

msgid ""
"19.11.2017 00:04:48.200 [NOTICE] Bootstrapped 10%: Finishing handshake with "
"directory server"
msgstr ""

msgid ""
"19.11.2017 00:04:48.800 [WARN] Received NETINFO cell with skewed time (OR:"
"xxx.xx.x.xx:xxxx): It seems that our clock is behind by 1 days, 0 hours, 1 "
"minutes, or that theirs is ahead. Tor requires an accurate clock to work: "
"please check your time, timezone, and date settings."
msgstr ""

msgid ""
"2017-10-29 09:23:40.800 [NOTICE] Opening Socks listener on 127.0.0.1:9150"
msgstr ""

msgid ""
"2017-10-29 09:23:47.900 [NOTICE] Bootstrapped 10%: Finishing handshake with "
"directory server"
msgstr ""

msgid ""
"2017-10-29 09:23:47.900 [NOTICE] Bootstrapped 5%: Connecting to directory "
"server"
msgstr ""

msgid ""
"2017-10-29 09:24:08.900 [WARN] Proxy Client: unable to connect to xx..xxx.."
"xxx.xx:xxxxx (\"general SOCKS server failure\")"
msgstr ""

msgid "$ sudo apt install gnupg"
msgstr ""

msgid "$ sudo apt install tor deb.torproject.org-keyring"
msgstr ""

msgid "$ sudo apt update"
msgstr ""

msgid "$ sudo dnf install tor -y"
msgstr ""

msgid "$ sudo dpkg --print-architecture"
msgstr ""

msgid ""
"$ wget -qO- https://deb.torproject.org/torproject.org/"
"A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | sudo tee /usr/"
"share/keyrings/deb.torproject.org-keyring.gpg >/dev/null"
msgstr ""

msgid "Fingerprint: 999E C8E3 14BC 8D46 022D 6C7D E217 C30C 3621 CD35"
msgstr ""

msgid "From       : https://rpm.torproject.org/fedora/public_gpg.key"
msgstr ""

msgid "`./configure && make`"
msgstr ""

msgid "baseurl=https://rpm.torproject.org/centos/$releasever/$basearch"
msgstr ""

msgid "baseurl=https://rpm.torproject.org/fedora/$releasever/$basearch"
msgstr ""

msgid "cost=100"
msgstr ""

msgid ""
"deb     [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] "
"https://deb.torproject.org/torproject.org <DISTRIBUTION> main"
msgstr ""

msgid ""
"deb-src [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] "
"https://deb.torproject.org/torproject.org <DISTRIBUTION> main"
msgstr ""

msgid "enabled=1"
msgstr ""

msgid "gpgcheck=1"
msgstr ""

msgid "gpgkey=https://rpm.torproject.org/centos/public_gpg.key"
msgstr ""

msgid "gpgkey=https://rpm.torproject.org/fedora/public_gpg.key"
msgstr ""

msgid "name=Tor for Enterprise Linux $releasever - $basearch"
msgstr ""

msgid "name=Tor for Fedora $releasever - $basearch"
msgstr ""

msgid "$ sudo dnf install epel-release -y"
msgstr ""

msgid "`# xbps-install -S tor`"
msgstr ""

msgid "`$ sudo port install tor`"
msgstr ""

msgid "$ sudo apt install apt-transport-https"
msgstr ""

msgid "`# pkg install ca_root_nss`"
msgstr ""

msgid "`# pkg install tor`"
msgstr ""

msgid "`# pkg_add tor`"
msgstr ""

msgid "[tor]"
msgstr ""

msgid "` tar -xzf tor-<version>.tar.gz; cd tor-<version>`"
msgstr ""

msgid "`# brew install tor`"
msgstr ""

msgid ""
"`# echo \"PKG_PATH=http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/$(uname -"
"m)/$(uname -r)/All\" > /etc/pkg_install.conf`"
msgstr ""

msgid "Userid     : \"Kushal Das (RPM Signing key) <kushal@torproject.org>\""
msgstr ""

msgid "`# pacman -Syu tor`"
msgstr ""

msgid "./tor -f torrc"
msgstr ""

msgid "UseBridges 1"
msgstr ""

msgid "Installation"
msgstr ""

msgid "Importing GPG key 0x3621CD35:"
msgstr ""

msgid "$ gpg --auto-key-locate nodefault,wkd --locate-keys ahf@torproject.org"
msgstr ""

msgid ""
"$ gpg --auto-key-locate nodefault,wkd --locate-keys dgoulet@torproject.org"
msgstr ""

msgid ""
"$ gpg --auto-key-locate nodefault,wkd --locate-keys nickm@torproject.org"
msgstr ""

msgid ""
"$ gpg --output ./tor.keyring --export "
"0x2133BC600AB133E1D826D173FE43009C4607B1FB"
msgstr ""

msgid "2133BC600AB133E1D826D173FE43009C4607B1FB"
msgstr ""

msgid "certUtil -hashfile tor-0.4.6.10.tar.gz.sha256sum SHA256"
msgstr ""

msgid ""
"gpg: key FE43009C4607B1FB: public key \"Nick Mathewson <nickm@torproject."
"org>\" imported"
msgstr ""

msgid ""
"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)"
msgstr ""

msgid ""
"00:00:00:00 W/onionmasq: tor_chanmgr::transport::default: Connection to "
"[scrubbed] failed: error: Network is unreachable (os error 101)"
msgstr ""

msgid "00:00:00:000 CONNECTION_ERROR"
msgstr ""

msgid "00:00:00:000 D/onionmasq: onionmasq_mobile: closing proxy..."
msgstr ""

msgid ""
"00:00:00:000 E/onionmasq: onionmasq_mobile::ffi: runProxy() returned error: "
"couldn't start onionmasq proxy"
msgstr ""

msgid "gpgv: Signature made Mon 16 Aug 2021 04:44:27 PM -03"
msgstr ""

msgid "pub   rsa4096 2016-09-21 [C] [expires: 2025-10-04]"
msgstr ""

msgid "sha256sum -c tor-0.4.6.10.tar.gz.sha256sum"
msgstr ""

msgid "shasum -a 256 tor-0.4.6.10.tar.gz.sha256sum"
msgstr ""

msgid "sub   rsa4096 2016-09-23 [E] [expires: 2025-10-04]"
msgstr ""

msgid "sub   rsa4096 2016-09-23 [S] [expires: 2025-10-04]"
msgstr ""

msgid "uid           [ unknown] Nick Mathewson <nickm@torproject.org>"
msgstr ""

msgid ""
"gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum.asc ~/"
"Downloads/tor-0.4.6.10.tar.gz.sha256sum"
msgstr ""

msgid ""
"gpgv --keyring .\\tor.keyring Downloads\\tor-0.4.6.10.tar.gz.sha256sum.asc "
"Downloads\\tor-0.4.6.10.tar.gz.sha256sum"
msgstr ""

msgid ""
"gpgv:                using RSA key 7A02B3521DC75C542BA015456AFEE6D49E92B601"
msgstr ""

msgid "gpgv: Good signature from \"Nick Mathewson <nickm@torproject.org>\""
msgstr ""

msgid "SocksListenAddress 0.0.0.0:9100"
msgstr ""

msgid "SocksListenAddress 10.x.x.x:9100 #eth1"
msgstr ""

msgid "SocksListenAddress 127.0.0.1"
msgstr ""

msgid "SocksListenAddress 192.168.x.x:9100"
msgstr ""

msgid "SocksListenAddress 192.168.x.x:9100 #eth0"
msgstr ""

msgid "\" | sudo tee /etc/apt/sources.list.d/tor.sources"
msgstr ""

msgid "$ sudo apt install apt-transport-tor"
msgstr ""

msgid "Architectures: amd64 arm64"
msgstr ""

msgid "Components: main"
msgstr ""

msgid "Signed-By: /usr/share/keyrings/deb.torproject.org-keyring.gpg"
msgstr ""

msgid "Types: deb deb-src"
msgstr ""

msgid ""
"URIs: tor+http://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd."
"onion/torproject.org"
msgstr ""

msgid ""
"deb [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] "
"tor+http://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/"
"torproject.org <DISTRIBUTION> main"
msgstr ""

msgid ""
"deb [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] "
"tor+http://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/"
"torproject.org tor-nightly-main-<DISTRIBUTION> main"
msgstr ""

msgid "835B 4E04 F6F7 4211 04C4  751A 3EF9 EF99 6604 DE41"
msgstr ""

msgid "!NickServ- Successfully set +R on your nick."
msgstr ""

msgid "*!NickServ*checkverify"
msgstr ""

msgid "/msg nickserv IDENTIFY your-password"
msgstr ""

msgid "/msg nickserv checkverify"
msgstr ""

msgid "Usermodechange: +R"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Control listener\",direction=\"received\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid "tor_relay_load_socket_total"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Control listener\",direction=\"received\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Control listener\",direction=\"received\","
"state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Control listener\",direction=\"received\","
"state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Control\",direction=\"initiated\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Control\",direction=\"initiated\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Control\",direction=\"received\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Control\",direction=\"received\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Control\",direction=\"received\","
"state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Control\",direction=\"received\","
"state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"DNS listener\",direction=\"initiated\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid "`# curl http://127.0.0.1:9035/metrics`"
msgstr ""

msgid "`# echo 15000 64000 > /proc/sys/net/ipv4/ip_local_port_range`"
msgstr ""

msgid "`# sysctl -w net.ipv4.ip_local_port_range=\"15000 64000\"`"
msgstr ""

msgid "if RAM >= 8GB {"
msgstr ""

msgid "memory = RAM * 40%"
msgstr ""

msgid "memory = RAM * 75%"
msgstr ""

msgid "memory = max(250MB, memory)"
msgstr ""

msgid "memory = min(memory, 8GB) -> [8GB on 64bit and 2GB on 32bit)"
msgstr ""

msgid "tor_relay_circuits_total{state=\"opened\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Control listener\","
"direction=\"initiated\",state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Control listener\","
"direction=\"initiated\",state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"DNS listener\",direction=\"initiated\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"DNS listener\",direction=\"received\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"DNS listener\",direction=\"received\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"DNS listener\",direction=\"received\","
"state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"DNS listener\",direction=\"received\","
"state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Directory listener\","
"direction=\"initiated\",state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Directory listener\","
"direction=\"initiated\",state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Directory listener\","
"direction=\"received\",state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Directory listener\","
"direction=\"received\",state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Directory listener\","
"direction=\"received\",state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Directory listener\","
"direction=\"received\",state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Directory\",direction=\"initiated\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Directory\",direction=\"initiated\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Directory\",direction=\"received\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Directory\",direction=\"received\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Directory\",direction=\"received\","
"state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Directory\",direction=\"received\","
"state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Exit\",direction=\"initiated\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Exit\",direction=\"initiated\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Exit\",direction=\"received\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Exit\",direction=\"received\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Exit\",direction=\"received\","
"state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Exit\",direction=\"received\","
"state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Extended OR listener\","
"direction=\"initiated\",state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Extended OR listener\","
"direction=\"initiated\",state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Extended OR listener\","
"direction=\"received\",state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Extended OR listener\","
"direction=\"received\",state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Extended OR listener\","
"direction=\"received\",state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Extended OR listener\","
"direction=\"received\",state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Extended OR\",direction=\"initiated\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Extended OR\",direction=\"initiated\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Extended OR\",direction=\"received\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Extended OR\",direction=\"received\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Extended OR\",direction=\"received\","
"state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Extended OR\",direction=\"received\","
"state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"HTTP tunnel listener\","
"direction=\"initiated\",state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"HTTP tunnel listener\","
"direction=\"initiated\",state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"HTTP tunnel listener\","
"direction=\"received\",state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"HTTP tunnel listener\","
"direction=\"received\",state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"HTTP tunnel listener\","
"direction=\"received\",state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"HTTP tunnel listener\","
"direction=\"received\",state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Metrics listener\","
"direction=\"initiated\",state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Metrics listener\","
"direction=\"initiated\",state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Metrics listener\",direction=\"received\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Metrics listener\",direction=\"received\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Metrics listener\",direction=\"received\","
"state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Metrics listener\",direction=\"received\","
"state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Metrics\",direction=\"initiated\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Metrics\",direction=\"initiated\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Metrics\",direction=\"received\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Metrics\",direction=\"received\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Metrics\",direction=\"received\","
"state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Metrics\",direction=\"received\","
"state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"OR listener\",direction=\"initiated\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"OR listener\",direction=\"initiated\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"OR listener\",direction=\"received\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"OR listener\",direction=\"received\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"OR listener\",direction=\"received\","
"state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"OR listener\",direction=\"received\","
"state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"OR\",direction=\"initiated\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"OR\",direction=\"initiated\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"OR\",direction=\"received\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"OR\",direction=\"received\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"OR\",direction=\"received\","
"state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"OR\",direction=\"received\","
"state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Socks listener\",direction=\"initiated\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Socks listener\",direction=\"initiated\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Socks listener\",direction=\"received\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Socks listener\",direction=\"received\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Socks listener\",direction=\"received\","
"state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Socks listener\",direction=\"received\","
"state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Socks\",direction=\"initiated\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Socks\",direction=\"initiated\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Socks\",direction=\"received\","
"state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Socks\",direction=\"received\","
"state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Socks\",direction=\"received\","
"state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Socks\",direction=\"received\","
"state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Transparent natd listener\","
"direction=\"initiated\",state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Transparent natd listener\","
"direction=\"initiated\",state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Transparent natd listener\","
"direction=\"received\",state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Transparent natd listener\","
"direction=\"received\",state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Transparent natd listener\","
"direction=\"received\",state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Transparent natd listener\","
"direction=\"received\",state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Transparent pf/netfilter listener\","
"direction=\"initiated\",state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Transparent pf/netfilter listener\","
"direction=\"initiated\",state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Transparent pf/netfilter listener\","
"direction=\"received\",state=\"created\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Transparent pf/netfilter listener\","
"direction=\"received\",state=\"created\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Transparent pf/netfilter listener\","
"direction=\"received\",state=\"rejected\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections_total{type=\"Transparent pf/netfilter listener\","
"direction=\"received\",state=\"rejected\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Control listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Control listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Control listener\",direction=\"received\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Control listener\",direction=\"received\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Control\",direction=\"initiated\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Control\",direction=\"initiated\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Control\",direction=\"received\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Control\",direction=\"received\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"DNS listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"DNS listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"DNS listener\",direction=\"received\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"DNS listener\",direction=\"received\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Directory listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Directory listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Directory listener\",direction=\"received\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Directory listener\",direction=\"received\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Directory\",direction=\"initiated\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Directory\",direction=\"initiated\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Directory\",direction=\"received\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Directory\",direction=\"received\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Exit\",direction=\"initiated\",state=\"opened\","
"family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Exit\",direction=\"initiated\",state=\"opened\","
"family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Exit\",direction=\"received\",state=\"opened\","
"family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Exit\",direction=\"received\",state=\"opened\","
"family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Extended OR listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Extended OR listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Extended OR listener\",direction=\"received\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Extended OR listener\",direction=\"received\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Extended OR\",direction=\"initiated\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Extended OR\",direction=\"initiated\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Extended OR\",direction=\"received\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Extended OR\",direction=\"received\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"HTTP tunnel listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"HTTP tunnel listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"HTTP tunnel listener\",direction=\"received\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"HTTP tunnel listener\",direction=\"received\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Metrics listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Metrics listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Metrics listener\",direction=\"received\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Metrics listener\",direction=\"received\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Metrics\",direction=\"initiated\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Metrics\",direction=\"initiated\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Metrics\",direction=\"received\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Metrics\",direction=\"received\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"OR listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"OR listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"OR listener\",direction=\"received\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"OR listener\",direction=\"received\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"OR\",direction=\"initiated\",state=\"opened\","
"family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"OR\",direction=\"initiated\",state=\"opened\","
"family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"OR\",direction=\"received\",state=\"opened\","
"family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"OR\",direction=\"received\",state=\"opened\","
"family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Socks listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Socks listener\",direction=\"initiated\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Socks listener\",direction=\"received\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Socks listener\",direction=\"received\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Socks\",direction=\"initiated\","
"state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Socks\",direction=\"initiated\","
"state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Socks\",direction=\"received\",state=\"opened\","
"family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Socks\",direction=\"received\",state=\"opened\","
"family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Transparent natd listener\","
"direction=\"initiated\",state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Transparent natd listener\","
"direction=\"initiated\",state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Transparent natd listener\","
"direction=\"received\",state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Transparent natd listener\","
"direction=\"received\",state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Transparent pf/netfilter listener\","
"direction=\"initiated\",state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Transparent pf/netfilter listener\","
"direction=\"initiated\",state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Transparent pf/netfilter listener\","
"direction=\"received\",state=\"opened\",family=\"ipv4\"} 0"
msgstr ""

msgid ""
"tor_relay_connections{type=\"Transparent pf/netfilter listener\","
"direction=\"received\",state=\"opened\",family=\"ipv6\"} 0"
msgstr ""

msgid "tor_relay_dos_total{type=\"circuit_killed_max_cell\"} 0"
msgstr ""

msgid "tor_relay_dos_total{type=\"circuit_killed_max_cell_outq\"} 0"
msgstr ""

msgid "tor_relay_dos_total{type=\"circuit_rejected\"} 0"
msgstr ""

msgid "tor_relay_dos_total{type=\"concurrent_conn_rejected\"} 0"
msgstr ""

msgid "tor_relay_dos_total{type=\"conn_rejected\"} 0"
msgstr ""

msgid "tor_relay_dos_total{type=\"introduce2_rejected\"} 0"
msgstr ""

msgid "tor_relay_dos_total{type=\"marked_address\"} 0"
msgstr ""

msgid "tor_relay_dos_total{type=\"marked_address_maxq\"} 0"
msgstr ""

msgid "tor_relay_dos_total{type=\"single_hop_refused\"} 0"
msgstr ""

msgid "tor_relay_exit_dns_error_total{reason=\"cancel\"} 0"
msgstr ""

msgid "tor_relay_exit_dns_error_total{reason=\"format\"} 0"
msgstr ""

msgid "tor_relay_exit_dns_error_total{reason=\"nodata\"} 0"
msgstr ""

msgid "tor_relay_exit_dns_error_total{reason=\"notexist\"} 0"
msgstr ""

msgid "tor_relay_exit_dns_error_total{reason=\"notimpl\"} 0"
msgstr ""

msgid "tor_relay_exit_dns_error_total{reason=\"refused\"} 0"
msgstr ""

msgid "tor_relay_exit_dns_error_total{reason=\"serverfailed\"} 0"
msgstr ""

msgid "tor_relay_exit_dns_error_total{reason=\"shutdown\"} 0"
msgstr ""

msgid "tor_relay_exit_dns_error_total{reason=\"success\"} 0"
msgstr ""

msgid "tor_relay_exit_dns_error_total{reason=\"tor_timeout\"} 0"
msgstr ""

msgid "tor_relay_exit_dns_error_total{reason=\"truncated\"} 0"
msgstr ""

msgid "tor_relay_exit_dns_error_total{reason=\"unknown\"} 0"
msgstr ""

msgid "tor_relay_exit_dns_query_total 0"
msgstr ""

msgid "tor_relay_flag{type=\"Authority\"} 0"
msgstr ""

msgid "tor_relay_flag{type=\"Exit\"} 0"
msgstr ""

msgid "tor_relay_flag{type=\"Fast\"} 0"
msgstr ""

msgid "tor_relay_flag{type=\"Guard\"} 0"
msgstr ""

msgid "tor_relay_flag{type=\"HSDir\"} 0"
msgstr ""

msgid "tor_relay_flag{type=\"Running\"} 0"
msgstr ""

msgid "tor_relay_flag{type=\"Stable\"} 0"
msgstr ""

msgid "tor_relay_flag{type=\"Sybil\"} 0"
msgstr ""

msgid "tor_relay_flag{type=\"V2Dir\"} 0"
msgstr ""

msgid "tor_relay_load_global_rate_limit_reached_total{side=\"read\"} 0"
msgstr ""

msgid "tor_relay_load_global_rate_limit_reached_total{side=\"write\"} 0"
msgstr ""

msgid "tor_relay_load_onionskins_total{type=\"fast\",action=\"dropped\"} 0"
msgstr ""

msgid "tor_relay_load_onionskins_total{type=\"fast\",action=\"processed\"} 0"
msgstr ""

msgid "tor_relay_load_onionskins_total{type=\"ntor\",action=\"dropped\"} 0"
msgstr ""

msgid "tor_relay_load_onionskins_total{type=\"ntor\",action=\"processed\"} 0"
msgstr ""

msgid "tor_relay_load_onionskins_total{type=\"ntor_v3\",action=\"dropped\"} 0"
msgstr ""

msgid ""
"tor_relay_load_onionskins_total{type=\"ntor_v3\",action=\"processed\"} 0"
msgstr ""

msgid "tor_relay_load_onionskins_total{type=\"tap\",action=\"dropped\"} 0"
msgstr ""

msgid "tor_relay_load_onionskins_total{type=\"tap\",action=\"processed\"} 0"
msgstr ""

msgid "tor_relay_load_oom_bytes_total{subsys=\"cell\"} 0"
msgstr ""

msgid "tor_relay_load_oom_bytes_total{subsys=\"dns\"} 0"
msgstr ""

msgid "tor_relay_load_oom_bytes_total{subsys=\"geoip\"} 0"
msgstr ""

msgid "tor_relay_load_oom_bytes_total{subsys=\"hsdir\"} 0"
msgstr ""

msgid "tor_relay_load_socket_total 0"
msgstr ""

msgid "tor_relay_load_socket_total{state=\"opened\"} 0"
msgstr ""

msgid "tor_relay_load_tcp_exhaustion_total 0"
msgstr ""

msgid "tor_relay_streams_total{type=\"BEGIN\"} 0"
msgstr ""

msgid "tor_relay_streams_total{type=\"BEGIN_DIR\"} 0"
msgstr ""

msgid "tor_relay_streams_total{type=\"RESOLVE\"} 0"
msgstr ""

msgid "tor_relay_traffic_bytes{direction=\"read\"} 0"
msgstr ""

msgid "tor_relay_traffic_bytes{direction=\"written\"} 0"
msgstr ""

msgid "}"
msgstr ""

msgid "} else {"
msgstr ""

msgid "UseBridge 1"
msgstr ""

msgid "accept *:*"
msgstr ""

msgid "reject *:119"
msgstr ""

msgid "reject *:1214"
msgstr ""

msgid "reject *:135-139"
msgstr ""

msgid "reject *:25"
msgstr ""

msgid "reject *:445"
msgstr ""

msgid "reject *:4661-4666"
msgstr ""

msgid "reject *:563"
msgstr ""

msgid "reject *:6346-6429"
msgstr ""

msgid "reject *:6699"
msgstr ""

msgid "reject *:6881-6999"
msgstr ""

msgid "reject 0.0.0.0/8"
msgstr ""

msgid "reject 10.0.0.0/8"
msgstr ""

msgid "reject 127.0.0.0/8"
msgstr ""

msgid "reject 169.254.0.0/16"
msgstr ""

msgid "reject 172.16.0.0/12"
msgstr ""

msgid "reject 192.168.0.0/16"
msgstr ""

msgid "Bandwidth limits"
msgstr ""

msgid "AccountingMax 50 GBytes"
msgstr ""

msgid "AccountingMax 500 GBytes"
msgstr ""

msgid "AccountingStart day 0:00"
msgstr ""

msgid "AccountingStart day 12:00"
msgstr ""

msgid "AccountingStart day week month [day] HH:MM"
msgstr ""

msgid "AccountingStart week 3 10:00"
msgstr ""

msgid "RelayBandwidthRate 1000 KBytes"
msgstr ""

msgid "MetricsPort 127.0.0.1:9035"
msgstr ""

msgid "MetricsPortPolicy accept 127.0.0.1"
msgstr ""

msgid "| ------------------- | --------------- |"
msgstr ""

msgid "|------------------|-------------------|---------------------------|----------------------------|----------------------------|------------------------|----------------------------|"
msgstr ""

msgid "[mikeperry@torproject.org](mailto:mikeperry@torproject.org)"
msgstr ""

msgid "<a id=\"0-introduction\"></a>"
msgstr ""

msgid "<a id=\"1-overview\"></a>"
msgstr ""

msgid "<a id=\"11-threat-model-summary\"></a>"
msgstr ""

msgid "<a id=\"2-security-properties\"></a>"
msgstr ""

msgid "<a id=\"21-low-level-vpn-security-properties\"></a>"
msgstr ""

msgid "<a id=\"22-ictm-security-invariants\"></a>"
msgstr ""

msgid "<a id=\"23-ictm-security-invariant-activation-conditions\"></a>"
msgstr ""

msgid "<a id=\"3-android-app-types-and-configurations\"></a>"
msgstr ""

msgid "<a id=\"31-application-types\"></a>"
msgstr ""

msgid "<a id=\"32-device-configurations\"></a>"
msgstr ""

msgid "<a id=\"4-threat-model-matrices\"></a>"
msgstr ""

msgid "<a id=\"41-tor-vpn-per-app-mode-matrix\"></a>"
msgstr ""

msgid "<a id=\"42-tor-vpn-all-app-mode-matrix\"></a>"
msgstr ""

msgid "<a id=\"5-known-weaknesses\"></a>"
msgstr ""

msgid "<a id=\"51-all-android-versions\"></a>"
msgstr ""

msgid "<a id=\"511-network-interface-ip-address-visibility\"></a>"
msgstr ""

msgid "<a id=\"512-push-notification-linkability\"></a>"
msgstr ""

msgid "<a id=\"513-multicast-dns-and-ssdp-leaks\"></a>"
msgstr ""

msgid "<a id=\"514-android-id\"></a>"
msgstr ""

msgid "<a id=\"515-sim-card-operator-id\"></a>"
msgstr ""

msgid "<a id=\"516-wifi-calling\"></a>"
msgstr ""

msgid "<a id=\"52-stock-android\"></a>"
msgstr ""

msgid "<a id=\"521-apps-can-use-cell-network-to-bypass-vpn\"></a>"
msgstr ""

msgid "<a id=\"522-secondary-user-profiles-bypass-vpn-at-start\"></a>"
msgstr ""

msgid "<a id=\"523-google-account-linkability\"></a>"
msgstr ""

msgid "<a id=\"524-various-dns-leaks\"></a>"
msgstr ""

msgid "<a id=\"525-vpn-bypass-whitelist\"></a>"
msgstr ""

msgid "<a id=\"53-grapheneos\"></a>"
msgstr ""

msgid "<a id=\"531-android-advertising-id-linkability\"></a>"
msgstr ""

msgid "<a id=\"anonymity-apps\"></a>"
msgstr ""

msgid "<a id=\"censorship-circumvention\"></a>"
msgstr ""

msgid "<a id=\"full-anonymity\"></a>"
msgstr ""

msgid "<a id=\"google-free-configuration\"></a>"
msgstr ""

msgid "<a id=\"ip-address-privacy-configuration\"></a>"
msgstr ""

msgid "<a id=\"isolated-user-profile-configuration\"></a>"
msgstr ""

msgid "<a id=\"linkable-pseudonymity\"></a>"
msgstr ""

msgid "<a id=\"network-app-isolation\"></a>"
msgstr ""

msgid "<a id=\"network-leak-safety\"></a>"
msgstr ""

msgid "<a id=\"network-privacy\"></a>"
msgstr ""

msgid "<a id=\"no-additional-security\"></a>"
msgstr ""

msgid "<a id=\"privacy-hostile-apps\"></a>"
msgstr ""

msgid "<a id=\"pseudonym-friendly-apps\"></a>"
msgstr ""

msgid "<a id=\"pseudonymous-app-configuration\"></a>"
msgstr ""

msgid "<a id=\"pseudonymous-google-configuration\"></a>"
msgstr ""

msgid "<a id=\"tor-vpn-threat-model\"></a>"
msgstr ""

msgid "<a id=\"unlinkable-pseudonymity\"></a>"
msgstr ""

msgid "<a id=\"unmasked-apps\"></a>"
msgstr ""

msgid "<a id=\"mike-perry\"></a>"
msgstr ""

msgid "echo \"\\"
msgstr ""

msgid "Avalon (mirror-master.dragonflybsd.org);"
msgstr ""

msgid "cd /usr"
msgstr ""

msgid "make pkg-bootstrap"
msgstr ""

msgid "pkg update -f"
msgstr ""

msgid "pkg upgrade -y -f"
msgstr ""

msgid "pkg-static install -y pkg"
msgstr ""

msgid "rehash"
msgstr ""

msgid ""
"Alexander Færøy: [514102454D0A87DB0767A1EBBE6A0531C18A9179](https://keys."
"openpgp.org/vks/v1/by-fingerprint/1C1BC007A9F607AA8152C040BEA7B180B1491921)"
msgstr ""

msgid ""
"David Goulet: [B74417EDDF22AC9F9E90F49142E86A2A11F48D36](https://keys."
"openpgp.org/vks/v1/by-fingerprint/B74417EDDF22AC9F9E90F49142E86A2A11F48D36)"
msgstr ""

msgid ""
"Nick Mathewson: [2133BC600AB133E1D826D173FE43009C4607B1FB](https://keys."
"openpgp.org/vks/v1/by-fingerprint/2133BC600AB133E1D826D173FE43009C4607B1FB)"
msgstr ""

msgid "`$ sha256sum -c *.sha256sum`"
msgstr ""

msgid "<a id=\"metricsport\"></a>"
msgstr ""

msgid "<a id=\"tcp-port-exhaustion\"></a>"
msgstr ""

msgid ""
"<a id=\"tor-relay-load-onionskins-total-type-ntor-action-dropped-0\"></a>"
msgstr ""

msgid "<a id=\"tor-relay-load-oom-bytes-total\"></a>"
msgstr ""

msgid "<a id=\"tuning-sysctl-for-network-memory-and-cpu-load\"></a>"
msgstr ""

msgid "<a id=\"onion-icon\"></a>"
msgstr ""

msgid ""
"Bridge snowflake 192.0.2.3:80 2B280B23E1107BB62ABFC40DDCC8824814F80A72 "
"fingerprint=2B280B23E1107BB62ABFC40DDCC8824814F80A72 url=https://1098762253."
"rsc.cdn77.org front=www.phpmyadmin.net,cdn.zk.mk ice=stun:stun.antisip."
"com:3478,stun:stun.epygi.com:3478,stun:stun.uls.co.za:3478,stun:stun."
"voipgate.com:3478,stun:stun.mixvoip.com:3478,stun:stun.nextcloud.com:3478,"
"stun:stun.bethesda.net:3478,stun:stun.nextcloud.com:443 utls-"
"imitate=hellorandomizedalpn"
msgstr ""

msgid ""
"ClientTransportPlugin meek_lite,obfs4,snowflake,webtunnel exec /Users/user/"
"Downloads/tor/pluggable_transports/lyrebird"
msgstr ""

msgid ""
"ClientTransportPlugin meek_lite,obfs4,snowflake,webtunnel exec /home/user/"
"Downloads/tor/pluggable_transports/lyrebird"
msgstr ""

msgid ""
"ClientTransportPlugin meek_lite,obfs4,snowflake,webtunnel exec C:"
"\\Users\\user\\Downloads\\tor\\pluggable_transports\\lyrebird.exe"
msgstr ""

msgid "Wolfpond (pkg.wolfpond.org)."
msgstr ""

msgid "Tor Project Inc."
msgstr ""

msgid "X"
msgstr ""

msgid "ExoneraTor"
msgstr ""

msgid "Compass"
msgstr ""

msgid "Dangerzone"
msgstr ""

msgid "GSoC"
msgstr ""

msgid "GSoD"
msgstr ""

msgid "GetTor"
msgstr ""

msgid "HTTP"
msgstr ""

msgid "HashRing"
msgstr ""

msgid "JavaScript"
msgstr ""

msgid "MetricsPort"
msgstr ""

msgid "Onion-Location"
msgstr ""

msgid "Orfox"
msgstr ""

msgid "SOCKS5"
msgstr ""

msgid "Satori"
msgstr ""

msgid "ScrambleSuit"
msgstr ""

msgid "Stem"
msgstr ""

msgid "TPI"
msgstr ""

msgid "Tor2Web"
msgstr ""

msgid "firefox.exe"
msgstr ""

msgid "TorBrowser"
msgstr ""

msgid "lyrebird.exe"
msgstr ""

msgid "tor.exe"
msgstr ""

msgid "tor.real"
msgstr ""

msgid "Kaspersky Internet Security 2012"
msgstr ""

msgid "Microsoft Security Essentials"
msgstr ""

msgid "Sophos Antivirus for Mac"
msgstr ""

msgid "Webroot SecureAnywhere"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"(For example: Session Messenger allows push registration to be disabled or "
"switched to non-Google; Signal currently offers no such configuration)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"(Pseudonymity would otherwise vanish as soon as it was linked to a non-"
"pseudonymous Google account.)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"(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)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "(Though they could if we implemented a per-app network block feature)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"(When properly configured, an adversary cannot link the different pseudonyms "
"used in distinct privacy-preserving apps)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Activation Condition**: Active for [**Anonymity Apps**](#anonymity-apps) "
"when the user runs Tor VPN in either all-app mode or per-app mode."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Activation Condition**: Active for [**Privacy-hostile Apps**](#privacy-"
"hostile-apps) when the user runs Tor VPN in all-app mode and has configured "
"the device with [**Isolated User Profile Configuration**](#isolated-user-"
"profile-configuration)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Activation Condition**: Active for [**Privacy-hostile Apps**](#privacy-"
"hostile-apps) when the user runs Tor VPN in all-app mode and the device uses "
"only the [**IP Address Privacy Configuration**](#ip-address-privacy-"
"configuration) (and not any further unlinkability configuration)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Activation Condition**: Active for [**Privacy-hostile Apps**](#privacy-"
"hostile-apps) when the user runs Tor VPN in all-app mode and the device uses "
"the [**IP Address Privacy Configuration**](#ip-address-privacy-"
"configuration)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Activation Condition**: Active for [**Privacy-hostile Apps**](#privacy-"
"hostile-apps) when the user runs Tor VPN in all-app mode and the device uses "
"the [**Pseudonymous Google Configuration**](#pseudonymous-google-"
"configuration) or [**Google-Free Configuration**](#google-free-"
"configuration)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Activation Condition**: Active for [**Privacy-hostile Apps**](#privacy-"
"hostile-apps) when the user runs Tor VPN in per-app mode."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Activation Condition**: Active for [**Pseudonym-friendly Apps**]"
"(#pseudonym-friendly-apps) when the user runs Tor VPN in either all-app mode "
"or per-app mode, and has configured the device and app with [**Pseudonymous "
"App Configuration**](#pseudonymous-app-configuration) or [**Google-Free "
"Configuration**](#google-free-configuration)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Activation Condition**: Active for [**Pseudonym-friendly Apps**]"
"(#pseudonym-friendly-apps) when the user runs Tor VPN in either all-app mode "
"or per-app mode, and the device uses the [**Pseudonymous Google "
"Configuration**](#pseudonymous-google-configuration) and the user grants "
"push notification permission to the app."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Activation Condition**: Active for [**Pseudonym-friendly Apps**]"
"(#pseudonym-friendly-apps) when the user runs Tor VPN in either all-app mode "
"or per-app mode, when the device uses only the [**IP Address Privacy "
"Configuration**](#ip-address-privacy-configuration) (and not any further "
"unlinkability configuration)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Activation Condition**: Active for all apps when the user installs Tor VPN "
"but does not enable it at all."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Activation Condition**: Active for all apps when the user installs Tor VPN "
"on a device past the [end-of-life for Android security fixes](https://"
"endoflife.date/android)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Activation Condition**: Active for all privacy-hostile and pseudonymous "
"[**Unmasked Apps**](#unmasked-apps) not covered by the previous invariant "
"when the user runs Tor VPN in either per-app or all-app mode."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Activation Condition**: Active for apps that are not selected to use Tor "
"when the user runs Tor VPN in per-app mode."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**Anonymity Apps**"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**App Config Options**: In the meantime, privacy-preserving apps can offer "
"the option to disable push registration or use an alternate provider such as "
"[Unified Push](https://unifiedpush.org/)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Blinded FCM Registration Tokens**: At Google Firebase itself, either "
"[Blind Signatures](https://en.wikipedia.org/wiki/Blind_signature) or "
"[Privacy Pass](https://datatracker.ietf.org/wg/privacypass/about/) could be "
"used during push registration such that the push server authenticates the "
"registration in the normal way, but the actual token is blinded."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Consequences**: DNS leaks can erode [**_Network Privacy_**](#network-"
"privacy) by allowing local ISPs to determine which apps are in use."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Consequences**: It is difficult for a user to maintain a pseudonym even in "
"[**Pseudonym-friendly apps**](#pseudonym-friendly-apps) without [careful "
"configuration](#pseudonymous-app-configuration)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Consequences**: On Android rebuilds, various vendor apps may be exempted "
"from the VPN, allowing them to connect outside of it."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Consequences**: This leak allows [**Privacy-hostile apps**](#privacy-"
"hostile-apps) to remove [**_Network Privacy_**](#network-privacy) on stock "
"Android."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Consequences**: This leak prevents stock Android users from successfully "
"using [**Isolated User Profile Configuration**](#isolated-user-profile-"
"configuration) to isolate sensitive app activity."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Consequences**: This weakness allows [**Privacy-hostile apps**](#privacy-"
"hostile-apps) to communicate on the local network to link their usage to "
"other users on the network."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Consequences**: This weakness does not directly impact any of our privacy "
"invariants, but it is generally bad for privacy."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Consequences**: This weakness makes the [**Pseudonymous App "
"Configuration**](#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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Consequences**: This weakness prevents Tor VPN from providing [**_Network "
"Privacy_**](#network-privacy) (or further invariants) to [**Privacy-hostile "
"apps**](#privacy-hostile-apps)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Consequences**: This weakness prevents users from being able to reinstall "
"apps to change pseudonyms without linking those pseudonyms together."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**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**](#privacy-hostile-apps) activity linked to their Google "
"account and to each other."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**Google-Free Configuration**"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**IP Address Privacy Configuration**"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Inherited Invariants**: [**_Censorship Circumvention_**](#censorship-"
"circumvention)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Inherited Invariants**: [**_Censorship Circumvention_**](#censorship-"
"circumvention), [**_Network Privacy_**](#network-privacy)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Invariant Property**: _A local network adversary is unable to determine "
"which applications are used with Tor VPN, and apps are unable to determine "
"the user's current IP address (i.e., approximate current location)._"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Invariant Property**: _A network adversary is unable to block application "
"traffic._"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Invariant Property**: _App usage has pseudonymity, but this pseudonymity "
"may be linked to other activity on the device or to a **sandboxed and "
"pseudonymous** Google account. This is also known as **Multi-App Shared "
"Pseudonymity**._"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Invariant Property**: _App usage has unique pseudonymity that is not "
"possible to link to other device activity."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Invariant Property**: _App usage is unlinkable to other device activity, "
"as well as to previous activity of that same app._"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**Invariant Property**: _Tor VPN provides no additional security._"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**Isolated User Profile Configuration**"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Permissions Enforcement for Push Registration**: Access to the FCM Push "
"Registration APIs (or their Google Service Framework downstream calls) "
"should be blocked if the user has not granted push permissions to an app, "
"because users expect that denying push notifications prevents an app's "
"ability to register for push notifications with their Google account."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**Privacy-hostile Apps**"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**Pseudonym-friendly Apps**"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**Pseudonymous App Configuration**"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**Pseudonymous Google Configuration**"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Recommendation**: Allow VPN interfaces control of routing this connection, "
"so that it may be disabled if the user chooses to block it."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Recommendation**: These APIs should always return NULL/empty (the default "
"when no eSIMs are configured), because this information is not necessary for "
"app operation."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Recommendation**: These leaks should be fixed, because users expect Always "
"on VPN and Block Connection settings to work in all user profiles."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Recommendation**: This ID should be randomized with every app "
"installation, rather than persisting after uninstallation."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**Recommendations**:"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**Recommendations**: GrapheneOS has fixed these issues."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Recommendations**: Users should disable or remove vendor apps that they "
"don't need."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"**Sandbox Registration APIs Separately**: On GrapheneOS, since it already "
"has a Google sandbox, FCM Registration APIs could be directed to _separate_ "
"instances of the Google Services Framework that are not associated with the "
"device's Google account or any of the device permissions that may have been "
"granted to the main GSF instance (such as SMS permission or Location "
"permission)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**Unmasked Apps**"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**_Censorship Circumvention_**"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**_Full Anonymity_**"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**_Linkable Pseudonymity_**"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**_Network Privacy_**"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**_No Additional Security_**"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "**_Unlinkable Pseudonymity_**"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "0. Introduction"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "0.1. Table of Contents"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "1. **Network Leak Safety**."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "1. Overview"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "1.1. Threat Model Summary"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "2. **Network App Isolation**."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "2. Security Properties"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "2.1. Low-level VPN Security Properties"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "2.2. ICTM Security Invariants"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "2.3. ICTM Security Invariant Activation Conditions"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "3. Android App Types and Configurations"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "3.1. Application Types"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "3.2. Device Configurations"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "4. Threat Model Matrices"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "4.1. Tor VPN Per-App Mode Matrix"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "4.2. Tor VPN All-App Mode Matrix"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5. Known Weaknesses"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5.1. All Android Versions"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5.1.1. Network Interface IP Address Visibility"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5.1.2. Push Notification Linkability"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5.1.3. Multicast DNS and SSDP Leaks"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5.1.4. Android ID"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5.1.5. SIM Card Operator ID"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5.1.6. WiFi Calling"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5.2. Stock Android"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5.2.1. Apps Can Use Cell Network to Bypass VPN"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5.2.2. Secondary User Profiles Bypass VPN at Start"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5.2.3. Google Account Linkability"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5.2.4. Various DNS Leaks"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5.2.5. VPN Bypass Whitelist"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5.3. GrapheneOS"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "5.3.1. Android Advertising ID Linkability"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **Rationale**: In per-app mode, apps that are not selected for Tor use get "
"no protection."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **Rationale**: On all versions of Android, Privacy-hostile applications "
"can use the `ACCESS_NETWORK_STATE` Android permission to [determine the SIM "
"card IP address](#511-network-interface-ip-address-visibility) and can "
"engage in data sharing with the ISP, which removes [**_Network Privacy_**]"
"(#network-privacy)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **Rationale**: Surprisingly, this is a common failure mode for VPN apps "
"among people who do not understand how they work."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **Rationale**: We cannot provide any additional security to a device that "
"is already vulnerable to unfixed, publicly disclosed security flaws."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **Rationale:** Anonymity apps have no other identifiers other than the "
"current IP address, which is now a Tor exit IP address."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **Rationale:** Privacy-hostile apps can cooperate with other privacy-"
"hostile apps on the phone to link activity, even without a device Google "
"account."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **Rationale:** Privacy-hostile apps can link their activity to the user's "
"real name and Google account unless the user takes further steps."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **Rationale:** The [usage of Google push notifications links](https://www."
"jdsupra.com/legalnews/push-notifications-the-latest-law-5635235/) the "
"pseudonymous app to the device's Google account, which is also pseudonymous "
"in this configuration."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **Rationale:** These device configurations prevent linkability of the "
"pseudonymous app to the device's Google account."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **Rationale:** This device configuration isolates privacy-hostile apps "
"from the device's Google account and from each other."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "> **Rationale:** We assume unmasked apps have no pseudonymity."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **_NOTE_**: Once an app is unmasked on a device, creating a new "
"pseudonymous account in the same app does not remove this classification."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **_NOTE_**: One can conceptualize this invariant as providing \"Per-App "
"Pseudonymity.\""
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **_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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **_NOTE_**: The device must always use Tor to avoid linking its device "
"push registration to a non-Tor IP address."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"> **_NOTE_**: [**_Linkable Pseudonymity_**](#linkable-pseudonymity) is a "
"fragile state."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "A ProtonMail account accessed over non-Tor."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"A device may have multiple apps operating at different security invariant "
"levels, depending on these conditions."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"A user must use the [**Isolated User Profile Configuration**](#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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Additional, DNS leaks can happen if the [VPN malfunctions](https://github."
"com/GrapheneOS/os-issue-tracker/issues/3442) or [shuts down](https://github."
"com/GrapheneOS/os-issue-tracker/issues/3831)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Additionally, GrapheneOS requires the user to [manually disable the Android "
"Advertising ID](https://github.com/GrapheneOS/os-issue-tracker/issues/5313)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Additionally, on stock Android, apps can [bypass the VPN interface by "
"binding to the cell network interface](#521-apps-can-use-cell-network-to-"
"bypass-vpn), regardless of Always-on and Block Connections Android settings."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Additionally, the default-on behavior of the Android Advertising ID is "
"another source of linkability between apps."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"All network activity of each Tor-routed app MUST be isolated from other apps "
"by using its own dedicated Tor circuit(s)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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**."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "An Element account linked to an email address in the user's real name."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"An ICTM threat model starts from a point of \"No Security\" and adds "
"security invariants when the software environment meets particular "
"requirements."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Any app that has been linked to a pseudonymous Google account that is later "
"accessed over non-Tor."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Any app that has been linked with a non-pseudonymous Google account (via "
"push notifications, location usage, etc.)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Apps MUST NOT be able to bypass the VPN when it is enabled."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Apps that [use `getaddrinfo()` from the C library](https://issuetracker."
"google.com/issues/337961996) can bypass the VPN."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"As can be seen, our security invariants depend upon the app type and the "
"Android device configuration."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"As per the app classification, [**Pseudonym-friendly Apps**](#pseudonym-"
"friendly-apps) are privacy-focused apps that provide a pseudonym and do not "
"actively try to deanonymize the user."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "August 6, 2025"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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**]"
"(#unmasked-apps), even after reinstallation."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Because Google (and many apps) operate internationally, these requests can "
"[come from arbitrary jurisdictions](https://www.wyden.senate.gov/news/press-"
"releases/wyden-seeks-answers-from-justice-department-on-alleged-surveillance-"
"of-apple-and-google-mobile-push-notifications)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Because Signal still [stores the token ID](https://github.com/signalapp/"
"Signal-Server/blob/main/service/src/main/java/org/whispersystems/"
"textsecuregcm/grpc/DevicesGrpcService.java#L131) with the [user's account]"
"(https://github.com/signalapp/Signal-Server/blob/main/service/src/main/java/"
"org/whispersystems/textsecuregcm/storage/AccountsManager.java) on their "
"servers, this linkability also exists for them."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Because of Tor VPN's [Network App Isolation](#network-app-isolation), when "
"this invariant is active for an app, its activity cannot be linked to non-"
"private activity on the device."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"But the effectiveness of this will depend on the data retention duration of "
"the services involved for expired push tokens."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Configure with [**IP Address Privacy Configuration**](#ip-address-privacy-"
"configuration)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Configure with the [**IP Address Privacy Configuration**](#ip-address-"
"privacy-configuration) to prevent Google Services and hostile apps from "
"using the cell IP address for linkability."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Create a new pseudonymous Google account over Tor for the device, using an "
"[SMS or VoIP phone number](https://kycnot.me/?"
"categories=sms&categories=esim)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Disable [Private DNS and Connectivity Checks](https://grapheneos.org/faq#vpn-"
"support)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Disable notifications from **within the app** (disabling push permission is "
"insufficient)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Do not use the device phone number for app registration. Use a different "
"[online SMS or VoIP provider](https://kycnot.me/?"
"categories=sms&categories=esim) over Tor."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Do not use the device phone number for app registration. Use an [online SMS "
"or VoIP provider](https://kycnot.me/?categories=sms&categories=esim) over "
"Tor."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Do not use the device phone number or Google account for app registration. "
"Use a different [online SMS or VoIP provider](https://kycnot.me/?"
"categories=sms&categories=esim) over Tor."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Do not use the device's Gmail account for app registration."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Doing so eliminates a large source of excess linkability."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Essentially, this threat model describes [the circumstances](#4-threat-model-"
"matrices) under which the user obtains these different levels of "
"pseudonymity protection."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Example Apps: Facebook, Instagram, WhatsApp, TikTok, X, and Reddit."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Example Apps: Signal, Session, Element, ProtonMail, and TutaMail."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Example Apps: Zashi, Cake Wallet, and private browsers."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Examples of unmasked usage include:"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"For a good overview of all the information that is available by default, "
"install [Network Analyzer](https://play.google.com/store/apps/details?id=net."
"techet.netanalyzerlite.an&hl=en-US) or use our [VPN Leak Test App](https://"
"gitlab.torproject.org/tpo/applications/vpn-leak-test)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"For a good overview of all the information that is available by default, "
"install [Network Analyzer](https://play.google.com/store/apps/details?id=net."
"techet.netanalyzerlite.an&hl=en-US) or use the [Device ID test](https://"
"gitlab.torproject.org/tpo/applications/vpn-leak-test/-/blob/main/app/src/"
"main/java/org/torproject/vpnleaktest/tests/DeviceIDsTest.kt?ref_type=heads) "
"in our [VPN Test App](https://gitlab.torproject.org/tpo/applications/vpn-"
"leak-test)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"For apps that are capable of making voice and video calls, either use [**IP "
"Address Privacy Configuration**](#ip-address-privacy-configuration), or "
"configure the app to always relay these calls for you."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"For each weakness, we list the **Consequences** for the user and the "
"mitigating configurations the user must perform, when possible."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"For now, if an app does not provide settings to disable notification "
"registration, then you must use one of the following configurations instead."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"For some reason, no Android permissions are necessary to determine the cell "
"network ID and the provider name of the user's SIM card."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"From a VPN provider's perspective, the most unfortunate aspect of Android is "
"that every app on the device typically has the `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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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]"
"(https://www.eff.org/deeplinks/2025/06/how-cops-can-get-your-private-online-"
"data) to other app service providers for account data associated with their "
"respective token IDs."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Google Android also allows [connectivity checks to bypass the VPN](https://"
"issuetracker.google.com/issues/250529027)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Google Android should upstream these fixes, because users expect that their "
"DNS activity will not bypass their VPN."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Google and GrapheneOS both have this setting empty, but third-party Android "
"builds may place their apps in this setting."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"GrapheneOS fixed [this issue](https://github.com/GrapheneOS/os-issue-tracker/"
"issues/2381) in [the 2025072700 Release](https://grapheneos.org/"
"releases#2025072700)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"GrapheneOS is needed to [ensure apps from separate profiles cannot "
"communicate](https://grapheneos.org/features#end-session) or [bypass the VPN]"
"(#522-secondary-user-profiles-bypass-vpn-at-start)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "GrapheneOS provides a setting to disable this."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"GrapheneOS requires users to [manually disable this ID](https://github.com/"
"GrapheneOS/os-issue-tracker/issues/5313), but this is not prominently "
"documented during setup."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"ICTM specifies security invariants that the user can expect when using the "
"software in a particular way or in a particular environment."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"If Tor VPN is in per-app mode, all Google Play Services and Google apps must "
"be selected to use Tor in this configuration."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"If the push notification linkability weakness is mitigated, then pseudonym-"
"friendly apps will have [**_Unlinkable Pseudonymity_**](#unlinkable-"
"pseudonymity) in this configuration when using push notifications."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"If the user used their real name or even created their account without Tor, "
"then they have no pseudonymity."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"If the user uses [privacy-preserving apps](#pseudonym-friendly-apps) with "
"[proper configuration](#pseudonymous-app-configuration), then Tor VPN can "
"enable the usage of separate pseudonyms in those apps."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"If the user uses a [privacy-enhanced version of Android](https://eylenburg."
"github.io/android_comparison.htm) and is careful about their [Google account "
"setup and app usage](#pseudonymous-google-configuration), then Tor VPN can "
"help protect the usage of a single pseudonym for the user of the device."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"In a default Android configuration, these apps gain [**_Network Privacy_**]"
"(#network-privacy) from Tor VPN."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"In a stock Android configuration, these apps gain [**_Censorship "
"Circumvention_**](#censorship-circumvention) from Tor VPN, but can gain "
"higher Tor VPN invariants when used with privacy-enhancing Android "
"distributions, as referenced in those invariants."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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](https://"
"github.com/GrapheneOS/os-issue-tracker/issues/5081)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"In both cases, the user must [use their phone with a mobile WiFi hotspot]"
"(#ip-address-privacy-configuration), rather than a SIM card, to mitigate "
"this weakness."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "In essence, these apps have been _unmasked_ to the user's real name."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"In fact, due to the [Android ID identifier behavior](#514-android-id), "
"deleting the app and reinstalling it in the same profile still allows a new "
"pseudonym to be linked to the deleted one."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"In other cases, such as Zcash wallets, the app uses Zero-Knowledge proofs "
"rather than trackable identifiers."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"In our testing, we discovered that apps can bypass the VPN by using mDNS "
"requests and SSDP activity."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"In our usage of ICTM, we define [five ICTM security invariants](#22-ictm-"
"security-invariants) that represent levels of privacy that Tor VPN provides."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"In some cases, such as private browsers, the app clears identifiers upon "
"restart or otherwise regularly."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"In the meantime, the [GrapheneOS Google Sandbox](https://grapheneos.org/"
"usage#sandboxed-google-play) enables [**Pseudonymous Google Configuration**]"
"(#pseudonymous-google-configuration)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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](https://grapheneos.org/"
"usage#sandboxed-google-play)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"In these cases, apps can gain [**_Network Privacy_**](#network-privacy) at "
"most."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"In this case, without a device Google account, it may be possible to clear "
"registration data and re-register to remove linkability."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"In this configuration, the user creates a new Google account over Tor and "
"relies on the [GrapheneOS Google Sandbox](https://grapheneos.org/"
"usage#sandboxed-google-play) 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](https://"
"grapheneos.org/faq#hardware-identifiers)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"In this configuration, the user installs GrapheneOS without Google Play "
"Services installed at all, yielding a fully \"de-Googled\" Android device. "
"The user can still use [Aurora Store](https://f-droid.org/packages/com."
"aurora.store/) to install apps without a Google account, though many apps "
"may crash or fail without access to Google Play Services."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"In this section, we define those applications and configurations "
"specifically."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Install GrapheneOS, but do not install Google Play Services."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"It also makes [**Pseudonymous Google Configuration**](#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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"It is also visible in [Network Analyzer](https://play.google.com/store/apps/"
"details?id=net.techet.netanalyzerlite.an&hl=en-US)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"It seems likely that Wyden's concerns did not come from nowhere, though."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"It turns out that from the point of view of our [ICTM security invariants]"
"(#22-ictm-security-invariants), both of these are equivalent: they both "
"result in [**_Linkable Pseudonymity_**](#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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Make a new pseudonymous Google account on GrapheneOS."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Mike Perry"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Most VPN users naturally want their IP addresses to be unavailable to apps "
"for tracking purposes."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Multiple issues with DNS exist in stock Android."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Note that Signal already provides the ability to deliver notifications "
"through its own WebSocket mechanism, but this is only used if Google Play "
"Services are absent."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"On Stock Google Android (but not GrapheneOS), they can [bind to the cell "
"network interface](#521-apps-can-use-cell-network-to-bypass-vpn) to directly "
"bypass the VPN for arbitrary network connections."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"On stock Android, linking activity to the Google account typically means "
"deanonymization."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"On stock Android, the device Google account has access to [all hardware "
"identifiers](https://calyxos.org/docs/guide/security/identifiers/#permanent-"
"device-identifiers), as well as SIM card identifiers and phone number."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"On stock Android, user profile isolation can [leak packets upon first use "
"after restart](https://issuetracker.google.com/issues/252851265)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"One can conceptualize this invariant as providing \"Multi-App Shared "
"Pseudonymity,\" where all apps with [**_Linkable Pseudonymity_**](#linkable-"
"pseudonymity) on the device effectively share the same pseudonym."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Optional Google Account Config:"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Our [VPN Leak Test App](https://gitlab.torproject.org/tpo/applications/vpn-"
"leak-test) verifies that this registration ability is possible without any "
"push notification permission, in the [Device ID test](https://gitlab."
"torproject.org/tpo/applications/vpn-leak-test/-/blob/main/app/src/main/java/"
"org/torproject/vpnleaktest/tests/DeviceIDsTest.kt#L257)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Our [VPN Leak Test](https://gitlab.torproject.org/tpo/applications/vpn-leak-"
"test) app [reproduces this leak](https://gitlab.torproject.org/tpo/"
"applications/vpn-leak-test/-/blob/main/nativelib/src/main/cpp/nativelib."
"cpp#L22) as part of the main Leak Test."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Our [VPN Test App](https://gitlab.torproject.org/tpo/applications/vpn-leak-"
"test) has a [reproduction case](https://gitlab.torproject.org/tpo/"
"applications/vpn-leak-test/-/blob/main/app/src/main/java/org/torproject/"
"vpnleaktest/tests/BindToInterfaceTest.kt?ref_type=heads) for this as part of "
"the Leak Test."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Our security invariants activate depending on [what type of app is in use]"
"(#31-application-types), the Tor VPN mode (per-app or all-apps), and "
"properties of the [base OS and configuration](#32-device-configurations)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Privacy-hostile apps are apps that use every available mechanism to attempt "
"to link their activity to other user activity."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Privacy-hostile apps are considerably harder to make unlinkable. Because the "
"Android system allows apps to communicate with each other, and because there "
"is [evidence of apps willfully abusing this communication to link activity]"
"(https://localmess.github.io/), the only real option to make privacy-hostile "
"apps unlinkable is to install them in their own Android user profile on an "
"Android distribution that supports strong profile isolation."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"See [**Device Configurations**](#32-device-configurations) for specific "
"configuration details."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"See the [Push Notification Linkability](#512-push-notification-linkability) "
"section of [Known Weakness](#5-known-weaknesses) for more info."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"See the [Push Notification Linkability](#512-push-notification-linkability) "
"section of [Known Weaknesses](#5-known-weaknesses)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"See the [Push Notification](#512-push-notification-linkability) section of "
"[Known Weaknesses](#5-known-weaknesses) for more information."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Separate sandboxing is useful, because it will allow users to register for "
"push notifications without [associating push registration with their Google "
"account](https://www.jdsupra.com/legalnews/push-notifications-the-latest-"
"law-5635235/)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Signal registered with a regular phone number."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Similar to Tor Browser, and unlike traditional VPNs, Tor VPN gives each "
"application its own route through the Tor network."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Specific apps MAY bypass Tor entirely if the user chooses to allow this."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Stock Android has a [number of edge cases that can leak DNS or multicast]"
"(https://grapheneos.org/features#improved-vpn-leak-blocking), which can "
"remove the [**_Network Privacy_**](#network-privacy) invariant by revealing "
"to the local network that a particular app may be in use."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The Android ecosystem has been built upon the same advertising model that "
"the web has been built upon."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The Google account is typically in the user's real name, and even if not, it "
"has access to all device identifiers, including cell network and location "
"history."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The Tor VPN threat model uses the [ICTM](https://github.com/defuse/ictm) "
"methodology."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The VPN industry calls this property a \"Kill Switch\", \"Always On VPN "
"Lockdown\", or \"On Demand\"."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The [Always-on Lockdown feature of Android 8 and above](https://developer."
"android.com/guide/topics/connectivity/vpn#always-on) provides this property."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The [Android Advertising ID](https://policies.google.com/technologies/ads) "
"is [heavily used](https://krebsonsecurity.com/2024/10/the-global-"
"surveillance-free-for-all-in-mobile-ad-data/) to link pseudonyms to location "
"data."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The [Android Advertising ID](https://policies.google.com/technologies/ads) "
"of this account has been disabled."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The [Android ID](https://calyxos.org/docs/guide/security/identifiers/"
"#android-id) is essentially a 64-bit identifier that is shared by all apps "
"in a user profile with the same signing key."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The [Anti-Foreign Sanctions Law](https://www.hugheshubbard.com/news/chinas-"
"anti-foreign-sanctions-law-gets-teeth-understanding-the-2025-implementation-"
"regulations) in China is one [such example](https://www.voanews.com/a/"
"covering-china-brings-surveillance-harassment-report-finds/7564828.html) of "
"a law that can be used for this purpose, although no direct reports of China "
"using push notifications have been made public."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The [Device ID test](https://gitlab.torproject.org/tpo/applications/vpn-leak-"
"test/-/blob/main/app/src/main/java/org/torproject/vpnleaktest/tests/"
"DeviceIDsTest.kt#L235) of our [VPN Leak Test app](https://gitlab.torproject."
"org/tpo/applications/vpn-leak-test) displays this information."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The [ReThink Firewall App has a ticket describing this issue](https://github."
"com/celzero/rethink-app/issues/224)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The [Threat Model Matrices](#4-threat-model-matrices) present this same "
"activation information in table form."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The [high-level conceptualization](#11-threat-model-summary) 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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The combined outcome results in [two threat model matrices](#4-threat-model-"
"matrices) that represent the ICTM security invariant that is active in a "
"given situation."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The device must be in Airplane mode and used with a WiFi hotspot or tethered "
"to another phone."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The first option accepts linkability through the Google account but "
"mitigates deanonymization through careful management of this Google account."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The following Android privacy issues apply to all Android versions, "
"including GrapheneOS and CalyxOS."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The following weaknesses are unique to GrapheneOS. Note that the [universal "
"Android weaknesses](#51-all-android-versions) also apply to GrapheneOS."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The good news is that there are ways of configuring an Android device that "
"improve the [ICTM security invariant](#22-ictm-security-invariants) that Tor "
"VPN can provide:"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "The level of pseudonymity that Tor VPN provides to the user guides the"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The low-level VPN security properties and the ICTM security invariants "
"support the Tor VPN threat model."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The lowest numbered invariant where an app matches these clauses is the "
"invariant for that app."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The main downside of this approach is that each user profile must run its "
"own instance of Tor VPN."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The next section lists the activation conditions under which they apply."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The primary reason is due to the remaining push notification linkability."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The primary way that the system subverts pseudonymity is by associating the "
"pseudonym with the Google account, most often [through push notifications]"
"(https://www.jdsupra.com/legalnews/push-notifications-the-latest-"
"law-5635235/), but also through [associating location information with the "
"Android Advertising ID](https://krebsonsecurity.com/2024/10/the-global-"
"surveillance-free-for-all-in-mobile-ad-data/)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "The profile needs its own installation of Tor VPN."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "The profile should not install Google Play Services."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "The properties of this configuration are:"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The push tokens would then be unlinkable to the actual device or Google "
"account, but are still authenticated themselves through the blind signature."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The user can use [F-Droid](https://F-Droid.org/) or [Aurora Store](https://f-"
"droid.org/packages/com.aurora.store/) to install apps without a Google "
"account."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"The user has no real mitigation options, because disabling push "
"notifications still allows this registration and resulting linkability."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"There are a few different approaches that can reduce the user's exposure to "
"this linkability:"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"There are two levels of reducing the damage that this linkability can do "
"while still retaining key device functionality:"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"There is no exposed user option for WebSocket push for users with Google "
"Services installed. Alternate push configuration will be useful because it "
"will help users have push notifications without associating their Google "
"account to their app accounts, before the above options are available."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"These apps _can_ gain [**_Unlinkable Pseudonymity_**](#unlinkable-"
"pseudonymity) from Tor VPN on stock Android, under the device configuration "
"conditions specified in that invariant."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "These apps gain [**_Full Anonymity_**](#full-anonymity) from Tor VPN."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "These are apps that do not store long-term identifiers or logins."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"These are apps that provide accounts with some degree of pseudonymity, "
"either as an explicit design goal or as a consequence of not actively trying "
"to link user activity together or otherwise track the user."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"These are the security invariants that Tor VPN is capable of providing to "
"individual apps."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"These low-level security properties must hold for the ICTM invariants to "
"apply:"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"These mitigations are essential because they enable VPNs to provide "
"[**_Network Privacy_**](#network-privacy)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "These properties define this configuration:"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"These security invariants apply to the combination of [four types of Android "
"applications](#31-application-types), two modes of Tor VPN (all-app or per-"
"app), and [five Android device configurations](#32-device-configurations)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"These two matrices exactly represent the [ICTM security invariant clauses "
"from Section 2.3](#23-ictm-security-invariant-activation-conditions)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"They also may not necessarily ensure that this pseudonym is fully unlinkable."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"They make use of the Android Advertising ID, identifiers, network state, "
"location, sensors, etc."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This access typically means that any form of linking to the device Google "
"account (through [push notifications](#512-push-notification-linkability), "
"Gmail use, or Google OAuth sign-in) typically means deanonymization of a "
"pseudonym."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This behavior is also observed in the wild, with Spotify engaging in "
"communication over the local network through this bypass mechanism."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This blinding will be beneficial to both users and to Google, because it "
"will save Google the cost of answering push-related record requests from "
"arbitrary international jurisdictions, since push tokens would not be "
"possible to associate with account or device info."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This configuration entirely prevents linkability through push notifications "
"and other Google API usage. For the apps that function, these foot-guns will "
"be completely unavailable."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This document describes the nature of the benefits that Tor VPN provides and "
"when they apply."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This document links these classification terms in [**Capitalized Bold**](#3-"
"android-app-types-and-configurations) to their definition sections."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This document links these invariant terms in [**_Capitalized Bold Italic_**]"
"(#22-ictm-security-invariants) to their definition sections."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This feature prevents network adversaries from linking a user's private "
"activity with their non-private activity."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This identifier persists across re-installations of the same app, which can "
"be verified using our [VPN Leak Test App](https://gitlab.torproject.org/tpo/"
"applications/vpn-leak-test) using the Device Identifier test."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This includes during device startup, if the VPN is not connected yet, or if "
"the network is temporarily disconnected."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "This is also known as **Per-App Pseudonymity**._"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This is not the case for traditional VPNs, which allow the VPN operator and "
"VPN endpoint observers to link such activity."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This is why these apps are still listed as having [**_Linkable "
"Pseudonymity_**](#linkable-pseudonymity), but this linkability is "
"significantly less than with a Google account or Google APIs involved."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This is why we require either the [**Pseudonymous Google Configuration**]"
"(#pseudonymous-google-configuration) or [**Google-Free Configuration**]"
"(#google-free-configuration) for apps to gain this invariant."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "This leak is only possible over the cell network interface."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This linkability is problematic even for apps that provide pseudonymity as a "
"design goal, merely through their usage of the system APIs."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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](#google-free-configuration) or creates a "
"[separate user profile](#isolated-user-profile-configuration) without Google "
"Services for these apps."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This may be problematic in censorship scenarios where [configuration "
"information is delivered over push notifications](https://gitlab.torproject."
"org/tpo/anti-censorship/team/-/wikis/Signaling-Channels/Push-Notifications)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This means that a [series of record requests](https://www.jdsupra.com/"
"legalnews/push-notifications-the-latest-law-5635235/) (sent first to the app "
"developers and then to Google) will discover the Google account in use with "
"a particular app."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This test leaks on all versions of Android, including GrapheneOS. GrapheneOS "
"has attempted to [fix some multicast leaks](https://github.com/GrapheneOS/os-"
"issue-tracker/issues/3443), but our test app shows that these fixes are "
"insufficient."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"This weakness also exposes the user to IP address leaks even for "
"[**Pseudonym-friendly apps**](#pseudonym-friendly-apps) that disclose all "
"device IP addresses during WebRTC calls."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "This will allow users to delete an app to change pseudonyms."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"To ensure that [**Pseudonym-friendly Apps**](#pseudonym-friendly-apps) are "
"unlinkable to other device activity, the user must do the following:"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"To simplify activation conditions, some invariants inherit the properties of "
"earlier ones."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Tor VPN does not magically make all apps anonymous or pseudonymous."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Tor VPN provides at least censorship circumvention to all selected apps."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Two low-level security properties that the [OnionMasq](https://gitlab."
"torproject.org/tpo/core/onionmasq) networking daemon provides support the "
"ICTM security invariants."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Unfortunately, Android is an extremely privacy-invasive platform."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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](https://github.com/GrapheneOS/"
"os-issue-tracker/issues/5081)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Unfortunately, the Android OS can easily subvert their pseudonymity through "
"misconfiguration or even basic usage."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Unmasked apps are apps that were previously used outside of Tor, associated "
"with a non-pseudonymous phone number, or associated with a real name/email."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Unmasked apps can no longer have any strong pseudonymity expectations and "
"can at most gain only [**_Network Privacy_**](#network-privacy) from Tor VPN."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Until those tickets are fixed:"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Use [Aurora Store](https://f-droid.org/packages/com.aurora.store/) to "
"install apps."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Use a GrapheneOS device with the Google Service Framework package installed, "
"but without a Google account."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Users have to install GrapheneOS to mitigate this."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Users must [install that app in a separate profile](#isolated-user-profile-"
"configuration) to avoid this linkability."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Users must manually disable the Advertising ID in their Google account "
"settings."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "Users must use GrapheneOS to avoid these leaks."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Users must use the [**IP Address Privacy Configuration**](#ip-address-"
"privacy-configuration) and/or use GrapheneOS to prevent this leak."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"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**](#privacy-hostile-apps) that make use of this "
"identifier."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"We also provide fix **Recommendations** for developers of GrapheneOS, "
"Android, and pseudonym-friendly apps."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"We assume that any linking mechanism to the stock Android Google account "
"provides deanonymization of a pseudonym."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"We assume these public flaws can subvert any privacy or security properties "
"the user would hope to gain by running Tor VPN."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "We classify Android applications into four types:"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"We express what Tor VPN provides in terms of ICTM security invariants, which "
"apply to specific application types and usage scenarios."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"We have a [reproduction case](https://gitlab.torproject.org/tpo/applications/"
"vpn-leak-test/-/blob/main/app/src/main/java/org/torproject/vpnleaktest/tests/"
"MDNSSpotifyTest.kt?ref_type=heads) in our [VPN Leak Test App](https://gitlab."
"torproject.org/tpo/applications/vpn-leak-test)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "We list these inherited invariants under each invariant."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"We list this as a GrapheneOS-specific weakness because other privacy-"
"preserving versions of Android randomize this ID automatically."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"We observed that when WiFi calling is enabled for an activated eSIM, the "
"device makes IPsec connections to the eSIM provider, bypassing the VPN."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"We still assume that privacy-hostile applications can link their activity in "
"this mode if they cooperate on-device or via sensor side channels."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"When registering for Google's Firebase push notifications, apps obtain an "
"FCM \"token\" from Firebase, which they submit to their servers."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"When these properties are met, the app will not be linked to the device's "
"Google account, which is a [common source of deanonymization](https://www."
"jdsupra.com/legalnews/push-notifications-the-latest-law-5635235/)."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"When used on properly configured [privacy-enhanced Android distributions]"
"(https://eylenburg.github.io/android_comparison.htm) such as GrapheneOS, Tor "
"VPN can provide additional privacy benefits even for privacy-hostile "
"applications."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"Without a Google account, there is less linkability risk between apps "
"through other Google APIs other than push."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[0. Introduction](#0-introduction)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[0.1. Table of Contents](#01-table-of-contents)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[1. Overview](#1-overview)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[1.1. Threat Model Summary](#11-threat-model-summary)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[2. Security Properties](#2-security-properties)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"[2.1. Low-level VPN Security Properties](#21-low-level-vpn-security-"
"properties)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[2.2. ICTM Security Invariants](#22-ictm-security-invariants)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"[2.3. ICTM Security Invariant Activation Conditions](#23-ictm-security-"
"invariant-activation-conditions)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"[3. Android App Types and Configurations](#3-android-app-types-and-"
"configurations)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[3.1. Application Types](#31-application-types)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[3.2. Device Configurations](#32-device-configurations)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[4. Threat Model Matrices](#4-threat-model-matrices)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[4.1. Tor VPN Per-App Mode Matrix](#41-tor-vpn-per-app-mode-matrix)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[4.2. Tor VPN All-App Mode Matrix](#42-tor-vpn-all-app-mode-matrix)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[5. Known Weaknesses](#5-known-weaknesses)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[5.1. All Android Versions](#51-all-android-versions)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"[5.1.1. Network Interface IP Address Visibility](#511-network-interface-ip-"
"address-visibility)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"[5.1.2. Push Notification Linkability](#512-push-notification-linkability)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"[5.1.3. Multicast DNS and SSDP Leaks](#513-multicast-dns-and-ssdp-leaks)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[5.1.4. Android ID](#514-android-id)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[5.1.5. SIM Card Operator ID](#515-sim-card-operator-id)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[5.1.6. WiFi Calling](#516-wifi-calling)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[5.2. Stock Android](#52-stock-android)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"[5.2.1. Apps Can Use Cell Network to Bypass VPN](#521-apps-can-use-cell-"
"network-to-bypass-vpn)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"[5.2.2. Secondary User Profiles Bypass VPN at Start](#522-secondary-user-"
"profiles-bypass-vpn-at-start)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[5.2.3. Google Account Linkability](#523-google-account-linkability)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[5.2.4. Various DNS Leaks](#524-various-dns-leaks)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[5.2.5. VPN Bypass Whitelist](#525-vpn-bypass-whitelist)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[5.3. GrapheneOS](#53-grapheneos)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"[5.3.1. Android Advertising ID Linkability](#531-android-advertising-id-"
"linkability)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[Mike Perry](#mike-perry)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "[Tor VPN Threat Model](#tor-vpn-threat-model)"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid "overall threat model."
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"| **[Anonymity Apps](#anonymity-apps)** | [**_Full Anonymity_**](#full-"
"anonymity) | [**_Full Anonymity_**](#full-anonymity) | [**_Full Anonymity_**]"
"(#full-anonymity) | [**_Full Anonymity_**](#full-anonymity) | [**_Full "
"Anonymity_**](#full-anonymity) | [**_Full Anonymity_**](#full-anonymity) |"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"| **[Privacy-hostile Apps](#privacy-hostile-apps)** | [**_Censorship "
"Circumvention_**](#censorship-circumvention) | [**_Censorship "
"Circumvention_**](#censorship-circumvention) | [**_Censorship "
"Circumvention_**](#censorship-circumvention) | [**_Censorship "
"Circumvention_**](#censorship-circumvention) | [**_Censorship "
"Circumvention_**](#censorship-circumvention) | [**_Censorship "
"Circumvention_**](#censorship-circumvention) |"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"| **[Privacy-hostile Apps](#privacy-hostile-apps)** | [**_Censorship "
"Circumvention_**](#censorship-circumvention) | [**_Network Privacy_**]"
"(#network-privacy) | [**_Network Privacy_**](#network-privacy) | "
"[**_Linkable Pseudonymity_**](#linkable-pseudonymity) | [**_Linkable "
"Pseudonymity_**](#linkable-pseudonymity) | [**_Unlinkable Pseudonymity_**]"
"(#unlinkable-pseudonymity) |"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"| **[Pseudonym-friendly Apps](#pseudonym-friendly-apps)** | [**_Network "
"Privacy_**](#network-privacy) | [**_Network Privacy_**](#network-privacy) | "
"[**_Unlinkable Pseudonymity_**](#unlinkable-pseudonymity) (without push "
"registration[**](#512-push-notification-linkability)) | [**_Linkable "
"Pseudonymity_**](#linkable-pseudonymity) (with push registration[**](#512-"
"push-notification-linkability)) | [**_Unlinkable Pseudonymity_**]"
"(#unlinkable-pseudonymity) | [**_Unlinkable Pseudonymity_**](#unlinkable-"
"pseudonymity) |"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"| **[Unmasked Privacy-hostile Apps](#unmasked-apps)** | [**_Censorship "
"Circumvention_**](#censorship-circumvention) | [**_Censorship "
"Circumvention_**](#censorship-circumvention) | [**_Censorship "
"Circumvention_**](#censorship-circumvention) | [**_Censorship "
"Circumvention_**](#censorship-circumvention) | [**_Censorship "
"Circumvention_**](#censorship-circumvention) | [**_Censorship "
"Circumvention_**](#censorship-circumvention) |"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"| **[Unmasked Privacy-hostile Apps](#unmasked-apps)** | [**_Censorship "
"Circumvention_**](#censorship-circumvention) | [**_Network Privacy_**]"
"(#network-privacy) | [**_Network Privacy_**](#network-privacy) | [**_Network "
"Privacy_**](#network-privacy) | [**_Network Privacy_**](#network-privacy) | "
"[**_Network Privacy_**](#network-privacy) |"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"| **[Unmasked Pseudonym-friendly Apps](#unmasked-apps)** | [**_Network "
"Privacy_**](#network-privacy) | [**_Network Privacy_**](#network-privacy) | "
"[**_Network Privacy_**](#network-privacy) | [**_Network Privacy_**](#network-"
"privacy) | [**_Network Privacy_**](#network-privacy) | [**_Network "
"Privacy_**](#network-privacy) |"
msgstr ""

#: (content/tor-vpn/security/threat-model/contents+en.lr:content.content)
#: https://support.torproject.org/tor-vpn/security/threat-model/
msgid ""
"| App Type / Android Config | [Base Android](#32-device-configurations) | "
"[**IP Address Privacy Configuration**](#ip-address-privacy-configuration) | "
"[**Pseudonymous App Configuration**](#pseudonymous-app-configuration) | "
"[**Pseudonymous Google Configuration**](#pseudonymous-google-configuration) "
"| [**Google-Free Configuration**](#google-free-configuration) | [**Isolated "
"User Profile Configuration**](#isolated-user-profile-configuration) |"
msgstr ""

msgid "fte"
msgstr ""

msgid "tpo"
msgstr ""

msgid "Suites: bookworm"
msgstr ""

msgid "nyx"
msgstr ""

msgid "MyFamily $fingerprint1,$fingerprint2,$fingerprint3"
msgstr ""

msgid "obfs3"
msgstr ""

msgid "obfs4"
msgstr ""

msgid "TYPE tor_relay_circuits_total gauge"
msgstr ""

msgid "TYPE tor_relay_connections gauge"
msgstr ""

msgid "TYPE tor_relay_connections_total counter"
msgstr ""

msgid "TYPE tor_relay_dos_total counter"
msgstr ""

msgid "TYPE tor_relay_exit_dns_error_total counter"
msgstr ""

msgid "TYPE tor_relay_exit_dns_query_total counter"
msgstr ""

msgid "TYPE tor_relay_flag gauge"
msgstr ""

msgid "TYPE tor_relay_load_global_rate_limit_reached_total counter"
msgstr ""

msgid "TYPE tor_relay_load_onionskins_total counter"
msgstr ""

msgid "TYPE tor_relay_load_oom_bytes_total counter"
msgstr ""

msgid "TYPE tor_relay_load_socket_total gauge"
msgstr ""

msgid "TYPE tor_relay_load_tcp_exhaustion_total counter"
msgstr ""

msgid "TYPE tor_relay_streams_total counter"
msgstr ""

msgid "TYPE tor_relay_traffic_bytes counter"
msgstr ""

msgid "`./start-tor-browser.desktop`"
msgstr ""

msgid "Obfs4"
msgstr ""

msgid "<a id=\"01-table-of-contents\"></a>"
msgstr ""

msgid "<a id=\"new-identity\">"
msgstr ""

msgid "`tar -xzf tor-<version>.tar.gz; cd tor-<version>`"
msgstr ""

msgid "Suites: <DISTRIBUTION>"
msgstr ""

msgid "Suites: tor-experimental-<DISTRIBUTION>"
msgstr ""

#: templates/macros/banner.html:6
msgid "Fundraising campaign announcement"
msgstr ""

#: templates/macros/banner.html:14
msgid "A wireframe globe breaking out of chains"
msgstr ""

#: templates/macros/banner.html:18
msgid "Free the internet"
msgstr ""

#: templates/macros/banner.html:20
msgid "Support tools that break the chains of censorship and surveillance."
msgstr ""

msgid "tor_relay_load_tcp_exhaustion_total"
msgstr ""

msgid "HELP tor_relay_circuits_total Total number of circuits"
msgstr ""

msgid "HELP tor_relay_connections Total number of opened connections"
msgstr ""

msgid ""
"HELP tor_relay_connections_total Total number of created/rejected connections"
msgstr ""

msgid "HELP tor_relay_dos_total Denial of Service defenses related counters"
msgstr ""

msgid ""
"HELP tor_relay_exit_dns_error_total Total number of DNS errors encountered "
"by this relay"
msgstr ""

msgid ""
"HELP tor_relay_exit_dns_query_total Total number of DNS queries done by this "
"relay"
msgstr ""

msgid "HELP tor_relay_flag Relay flags from consensus"
msgstr ""

msgid ""
"HELP tor_relay_load_global_rate_limit_reached_total Total number of global "
"connection bucket limit reached"
msgstr ""

msgid "HELP tor_relay_load_onionskins_total Total number of onionskins handled"
msgstr ""

msgid ""
"HELP tor_relay_load_oom_bytes_total Total number of bytes the OOM has freed "
"by subsystem"
msgstr ""

msgid "HELP tor_relay_load_socket_total Total number of sockets"
msgstr ""

msgid ""
"HELP tor_relay_load_tcp_exhaustion_total Total number of times we ran out of "
"TCP ports"
msgstr ""

msgid "HELP tor_relay_streams_total Total number of streams"
msgstr ""

msgid "HELP tor_relay_traffic_bytes Traffic related counters"
msgstr ""

msgid "URIs: https://deb.torproject.org/torproject.org/"
msgstr ""

msgid "tor_relay_load_oom_bytes_total{...}"
msgstr ""

msgid "tor_relay_load_global_rate_limit_reached_total"
msgstr ""

msgid "tor_relay_exit_dns_error_total{...}"
msgstr ""

msgid "Bridge <ip>:<port>"
msgstr ""

msgid "<h3 id=\"using-pluggable-transports\">"
msgstr ""

msgid "</h3>"
msgstr ""

msgid "-NickServ- Successfully set +R on your nick."
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"metricsport\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"tcp-port-exhaustion\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"tor-relay-load-onionskins-total-type-ntor-"
"action-dropped-0\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"tor-relay-load-oom-bytes-total\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"tuning-sysctl-for-network-memory-and-cpu-"
"load\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"bridge-moji\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"tb-check-version\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"tba-check-version\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"tba-tor-logs\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"letterboxing\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"operating-system-spoofing\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"new-identity\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"onion-icon\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"onion-service-auth\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"cryptocurrency-safety\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"tba-connect\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"tba-connection-assist\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"download-and-install\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"install-tba-fdroid\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"install-tba-play-store\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"uninstall-tba-android-settings\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"uninstall-tba-fdroid\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"uninstall-tba-play-store\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"update-tba-froid\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"update-tba-play-store\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"update-tba-website\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"0-introduction\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"01-table-of-contents\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"1-overview\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"11-threat-model-summary\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"2-security-properties\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"21-low-level-vpn-security-properties\"></"
"div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"22-ictm-security-invariants\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"23-ictm-security-invariant-activation-"
"conditions\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"3-android-app-types-and-"
"configurations\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"31-application-types\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"32-device-configurations\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"4-threat-model-matrices\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"41-tor-vpn-per-app-mode-matrix\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"42-tor-vpn-all-app-mode-matrix\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"5-known-weaknesses\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"51-all-android-versions\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"511-network-interface-ip-address-"
"visibility\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"512-push-notification-linkability\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"513-multicast-dns-and-ssdp-leaks\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"514-android-id\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"515-sim-card-operator-id\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"516-wifi-calling\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"52-stock-android\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"521-apps-can-use-cell-network-to-bypass-"
"vpn\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"522-secondary-user-profiles-bypass-vpn-at-"
"start\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"523-google-account-linkability\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"524-various-dns-leaks\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"525-vpn-bypass-whitelist\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"53-grapheneos\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"531-android-advertising-id-"
"linkability\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"anonymity-apps\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"censorship-circumvention\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"full-anonymity\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"google-free-configuration\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"ip-address-privacy-configuration\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"isolated-user-profile-configuration\"></"
"div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"linkable-pseudonymity\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"mike-perry\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"network-app-isolation\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"network-leak-safety\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"network-privacy\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"no-additional-security\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"privacy-hostile-apps\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"pseudonym-friendly-apps\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"pseudonymous-app-configuration\"></div>"
msgstr ""

msgid ""
"<div class=\"heading-anchor\" id=\"pseudonymous-google-configuration\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"tor-vpn-threat-model\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"unlinkable-pseudonymity\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"unmasked-apps\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"using-pluggable-transports\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"legacy-linux\"></div>"
msgstr ""

msgid "<div class=\"heading-anchor\" id=\"legacy-windows-macos\"></div>"
msgstr ""
