<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Psylo on Mysk Blog – In-Depth Cybersecurity &amp; Mobile App Privacy Research</title>
    <link>https://mysk.blog/category/psylo/</link>
    <description>Recent content in Psylo on Mysk Blog – In-Depth Cybersecurity &amp; Mobile App Privacy Research</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 04 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://mysk.blog/category/psylo/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>IP and DNS Leaks in WebKit Affecting Proxy Browsers and Apple iCloud Private Relay</title>
      <link>https://mysk.blog/2026/08/04/webkit-proxy-icloud-private-relay-ip-leak/</link>
      <pubDate>Tue, 04 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://mysk.blog/2026/08/04/webkit-proxy-icloud-private-relay-ip-leak/</guid>
      <description>&lt;aside class=&#34;psylo-callout&#34;&gt;
  &lt;a class=&#34;psylo-callout-icon&#34; href=&#34;https://apps.apple.com/app/psylo-private-browser-proxy/id6741358035&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;
    &lt;img src=&#34;https://mysk.blog/assets/img/common/psylo-iOS-Default-1024x1024@1x.webp&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;
  &lt;/a&gt;
  &lt;div class=&#34;psylo-callout-body&#34;&gt;
    &lt;p class=&#34;psylo-callout-headline&#34;&gt;Like our research? Try Psylo.&lt;/p&gt;
    &lt;p class=&#34;psylo-callout-text&#34;&gt;&lt;strong&gt;Psylo&lt;/strong&gt; is our privacy-first browser for iOS and iPadOS, with a built-in proxy network, per-tab isolated web sessions, and anti-fingerprinting. Using it helps fund more work like this.&lt;/p&gt;
    &lt;p class=&#34;psylo-callout-secondary&#34;&gt;
      &lt;a href=&#34;https://mysk.blog/2025/06/17/introducing-psylo/&#34;&gt;Read why we built it &amp;rarr;&lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
  &lt;a class=&#34;psylo-callout-cta&#34; href=&#34;https://apps.apple.com/app/psylo-private-browser-proxy/id6741358035&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Download Psylo &amp;rarr;&lt;/a&gt;
&lt;/aside&gt;

&lt;h2 id=&#34;summary&#34;&gt;Summary&lt;/h2&gt;

  &lt;figure class=&#34;floatRight&#34; &gt;
    &lt;img src=&#34;https://mysk.blog/assets/img/posts/webkit-proxy-icloud-private-relay-ip-leak/webkit-ip-leak.webp&#34;   /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Our proof-of-concept website leaks.psylo.app that detects the leaks&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;p&gt;WebKit-based browsers on iOS and macOS can be built to route all web traffic through proxy servers. This is how all proxy browsers work on iOS, including iOS Tor browsers and our own browser, Psylo. Every network connection a web page makes is supposed to flow through the configured proxy, so websites only ever see the proxy&amp;rsquo;s IP address. We found three WebKit features that bypass the proxy configuration and send traffic directly from the device instead:&lt;/p&gt;</description>
      <content>&lt;aside class=&#34;psylo-callout&#34;&gt;
  &lt;a class=&#34;psylo-callout-icon&#34; href=&#34;https://apps.apple.com/app/psylo-private-browser-proxy/id6741358035&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;
    &lt;img src=&#34;https://mysk.blog/assets/img/common/psylo-iOS-Default-1024x1024@1x.webp&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;
  &lt;/a&gt;
  &lt;div class=&#34;psylo-callout-body&#34;&gt;
    &lt;p class=&#34;psylo-callout-headline&#34;&gt;Like our research? Try Psylo.&lt;/p&gt;
    &lt;p class=&#34;psylo-callout-text&#34;&gt;&lt;strong&gt;Psylo&lt;/strong&gt; is our privacy-first browser for iOS and iPadOS, with a built-in proxy network, per-tab isolated web sessions, and anti-fingerprinting. Using it helps fund more work like this.&lt;/p&gt;
    &lt;p class=&#34;psylo-callout-secondary&#34;&gt;
      &lt;a href=&#34;https://mysk.blog/2025/06/17/introducing-psylo/&#34;&gt;Read why we built it &amp;rarr;&lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
  &lt;a class=&#34;psylo-callout-cta&#34; href=&#34;https://apps.apple.com/app/psylo-private-browser-proxy/id6741358035&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Download Psylo &amp;rarr;&lt;/a&gt;
&lt;/aside&gt;

&lt;h2 id=&#34;summary&#34;&gt;Summary&lt;/h2&gt;

  &lt;figure class=&#34;floatRight&#34; &gt;
    &lt;img src=&#34;https://mysk.blog/assets/img/posts/webkit-proxy-icloud-private-relay-ip-leak/webkit-ip-leak.webp&#34;   /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Our proof-of-concept website leaks.psylo.app that detects the leaks&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;p&gt;WebKit-based browsers on iOS and macOS can be built to route all web traffic through proxy servers. This is how all proxy browsers work on iOS, including iOS Tor browsers and our own browser, Psylo. Every network connection a web page makes is supposed to flow through the configured proxy, so websites only ever see the proxy&amp;rsquo;s IP address. We found three WebKit features that bypass the proxy configuration and send traffic directly from the device instead:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DNS prefetching&lt;/strong&gt; resolves hostnames through the device&amp;rsquo;s normal DNS path, which reveals the user&amp;rsquo;s real DNS servers instead of the proxy&amp;rsquo;s. Available since iOS 26.0.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WebAuthn Related Origin Requests&lt;/strong&gt; make the operating system&amp;rsquo;s credential service fetch a validation file directly from the device. This exposes the device&amp;rsquo;s real IP address. Available since iOS 18.0.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WebTransport&lt;/strong&gt; opens a direct HTTP/3 connection and bypasses the proxy, which also exposes the device&amp;rsquo;s real IP address. Available since iOS 26.4.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These leaks also impact Apple&amp;rsquo;s iCloud Private Relay. It must be noted that VPNs are not affected, since they tunnel the device&amp;rsquo;s entire network traffic at the system level.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ve reached out to the Tor Project and the developers of &lt;a href=&#34;https://onionbrowser.com&#34;&gt;Onion Browser on iOS&lt;/a&gt; about these issues.&lt;/p&gt;
&lt;p&gt;To test the leaks, you can visit our proof-of-concept website at &lt;a href=&#34;https://leaks.psylo.app&#34;&gt;leaks.psylo.app&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Fixed in Psylo 1.3.1:&lt;/strong&gt; Psylo now blocks &lt;code&gt;dns-prefetch&lt;/code&gt; hints and disables WebTransport and WebAuthn by default. For websites that genuinely need these features, each one can be re-enabled through per-silo toggles. This explicit opt-in keeps the privacy trade-offs in the user&amp;rsquo;s hands. See &lt;a href=&#34;https://mysk.blog/2026/08/04/webkit-proxy-icloud-private-relay-ip-leak/#mitigations-introduced-in-psylo-131&#34;&gt;Mitigations Introduced in Psylo 1.3.1&lt;/a&gt; for details.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;background&#34;&gt;Background&lt;/h2&gt;
&lt;h3 id=&#34;proxy-configuration-on-ios-and-macos&#34;&gt;Proxy Configuration on iOS and macOS&lt;/h3&gt;
&lt;p&gt;Introduced in iOS 17 and macOS 14, &lt;code&gt;WKWebsiteDataStore.proxyConfigurations&lt;/code&gt; allows WebKit-based browsers route all of their own web traffic through proxy servers at the application level. This API is the foundation of proxy browsers on iOS: every network connection a web page makes is supposed to flow through the configured proxy, so websites only ever see the proxy&amp;rsquo;s IP address.&lt;/p&gt;
&lt;h3 id=&#34;dns-leak-reported-by-a-psylo-user&#34;&gt;DNS Leak Reported by a Psylo User&lt;/h3&gt;
&lt;p&gt;This investigation started with a bug report from a &lt;a href=&#34;https://psylo.app&#34;&gt;Psylo&lt;/a&gt; user who noticed DNS leaks when visiting only certain websites, and we immediately started looking into it. Psylo routes all traffic from each silo through the &lt;a href=&#34;https://mysk.blog/2025/06/30/psylo-1.0-system-architecture/&#34;&gt;Mysk Private Proxy Network&lt;/a&gt; (or the user&amp;rsquo;s own configured custom proxy), so DNS queries should all originate from the proxy server and never from the device. It also seemed odd that this only affected some websites, and not all.&lt;/p&gt;
&lt;p&gt;As we dug deeper, we found the source of the DNS leaks, plus two more leaks that actually reveal the device&amp;rsquo;s real IP address. All three leaks live in WebKit, where they bypass the proxy settings provided by &lt;code&gt;WKWebsiteDataStore.proxyConfigurations&lt;/code&gt;. Since Apple&amp;rsquo;s App Store policy requires every iOS browser to use WebKit, any iOS browser that relies on this API for proxying is affected, including all iOS Tor browsers and Psylo. These leaks are also present in Apple&amp;rsquo;s iCloud Private Relay. VPNs, on the other hand, are not affected by these issues, since the device&amp;rsquo;s entire network traffic is tunneled through the VPN at the system level.&lt;/p&gt;
&lt;h3 id=&#34;icloud-private-relay&#34;&gt;iCloud Private Relay&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://support.apple.com/en-ca/102602&#34;&gt;iCloud Private Relay&lt;/a&gt; is Apple&amp;rsquo;s privacy feature for iCloud+ subscribers. When enabled, it proxies Safari&amp;rsquo;s
(and only Safari&amp;rsquo;s) web traffic and DNS queries through a two-hop relay, designed so that no single party, not even Apple, can see both who you are and which sites you visit. As it turns out, all three leaks described in this article occur outside WebKit’s standard page-loading process, meaning Private Relay is susceptible to the same leaks.&lt;/p&gt;
&lt;h2 id=&#34;1-dns-prefetching&#34;&gt;1. DNS Prefetching&lt;/h2&gt;
&lt;p&gt;DNS prefetching lets a website ask the browser to resolve a hostname before it&amp;rsquo;s needed. So when later it needs to connect to that hostname, the lookup is already done and the connection starts faster. This is done through a &lt;code&gt;&amp;lt;link rel=&amp;quot;dns-prefetch&amp;quot;&amp;gt;&lt;/code&gt; HTML tag.&lt;/p&gt;
&lt;p&gt;When a page includes that tag, WebKit resolves the hostname through the device&amp;rsquo;s normal DNS path, regardless of any proxy set by the browser through &lt;code&gt;WKWebsiteDataStore.proxyConfigurations&lt;/code&gt;. A page can embed unique per-visitor hostnames in these tags, then watch the queries arrive at its own authoritative DNS server from the visitor&amp;rsquo;s real network rather than the proxy&amp;rsquo;s.&lt;/p&gt;
&lt;p&gt;This was the leak behind the original user report, and it explains why only some websites triggered it: without prefetch tags on the page, WebKit doesn&amp;rsquo;t perform this DNS lookup.&lt;/p&gt;
&lt;p&gt;Private Relay doesn&amp;rsquo;t catch this one. It normally proxies Safari&amp;rsquo;s DNS queries, but these prefetch lookups skip it. The query reaches the authoritative server from the device&amp;rsquo;s real network even with Private Relay enabled.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Desktop Safari has supported &lt;code&gt;&amp;lt;link rel=&amp;quot;dns-prefetch&amp;quot;&amp;gt;&lt;/code&gt; since Safari 5, but iOS ignored it until iOS 26.0 (September 2025), when WebKit enabled it in the same change that removed iOS&amp;rsquo;s older, implicit speculative DNS prefetching (&lt;a href=&#34;https://bugs.webkit.org/show_bug.cgi?id=285744&#34;&gt;bug 285744&lt;/a&gt;, &lt;a href=&#34;https://commits.webkit.org/290327@main&#34;&gt;290327@main&lt;/a&gt;; &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/rel/dns-prefetch&#34;&gt;browser-compat data&lt;/a&gt;). That resolver had been rewritten the year before, to keep hostnames out of system logs during private browsing (&lt;a href=&#34;https://bugs.webkit.org/show_bug.cgi?id=272190&#34;&gt;bug 272190&lt;/a&gt;, &lt;a href=&#34;https://commits.webkit.org/279199@main&#34;&gt;279199@main&lt;/a&gt;).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;2-webauthn-related-origin-requests&#34;&gt;2. WebAuthn Related Origin Requests&lt;/h2&gt;
&lt;p&gt;WebAuthn is the web standard behind passkeys. A passkey is normally bound to a single domain, but Related Origin Requests let an organization use one passkey across a small set of domains it owns.&lt;/p&gt;
&lt;p&gt;To make that work, when a page requests a credential whose &lt;code&gt;rpId&lt;/code&gt; differs from its own origin, the client first fetches &lt;code&gt;https://&amp;lt;rpId&amp;gt;/.well-known/webauthn&lt;/code&gt;, a JSON file listing which origins may use that &lt;code&gt;rpId&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;That validation fetch doesn&amp;rsquo;t come from the browser&amp;rsquo;s network stack. WebKit hands WebAuthn ceremonies to the operating system&amp;rsquo;s credential service, which issues the HTTPS request itself, directly from the device and unaware of any proxy the host app configured. A page can set &lt;code&gt;rpId&lt;/code&gt; to a host of its choosing, and the fetch fires even without user interaction: with &lt;code&gt;mediation: &amp;quot;conditional&amp;quot;&lt;/code&gt; and no UI ever appears.&lt;/p&gt;
&lt;p&gt;The same reasoning applies to iCloud Private Relay. Because the fetch is issued by the operating system&amp;rsquo;s credential service rather than by Safari, it never enters Private Relay&amp;rsquo;s proxied path. The destination server sees the device&amp;rsquo;s real IP address either way.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Apple announced the feature for iOS 18.0 / Safari 18.0 (September 2024) in &lt;a href=&#34;https://webkit.org/blog/15865/webkit-features-in-safari-18.0/&#34;&gt;WebKit Features in Safari 18.0&lt;/a&gt;. WebKit&amp;rsquo;s half of the plumbing landed earlier that year (&lt;a href=&#34;https://bugs.webkit.org/show_bug.cgi?id=268426&#34;&gt;bug 268426&lt;/a&gt;, &lt;a href=&#34;https://commits.webkit.org/274592@main&#34;&gt;274592@main&lt;/a&gt;) and even shipped, inert, in iOS 17.4; the system component that performs the fetch only gained support in 18.0.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;3-webtransport&#34;&gt;3. WebTransport&lt;/h2&gt;
&lt;p&gt;WebTransport is a low-latency alternative to WebSocket. It runs over HTTP/3 and QUIC, offers multiple independent streams plus unreliable datagram delivery, and can fall back to HTTP/2 where QUIC is unavailable.&lt;/p&gt;
&lt;p&gt;Calling &lt;code&gt;new WebTransport(url)&lt;/code&gt; opens a QUIC connection straight from the device. WebKit builds the connection with its own network parameters and never offers it the session&amp;rsquo;s proxy, so the server sees the device&amp;rsquo;s real IP address instead of the proxy&amp;rsquo;s.&lt;/p&gt;
&lt;p&gt;Private Relay doesn&amp;rsquo;t help here either. WebKit builds the connection outside the web traffic that Private Relay proxies, so a WebTransport server learns the device&amp;rsquo;s real IP address even with Private Relay enabled.&lt;/p&gt;
&lt;p&gt;There is one exception: Onion Browser&amp;rsquo;s &amp;ldquo;Silver&amp;rdquo; security level configures WebKit with Lockdown Mode, which disables WebTransport entirely, so Onion Browser users at the Silver level are not affected by this particular leak.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;First traces of the API appeared in 2023 (&lt;a href=&#34;https://bugs.webkit.org/show_bug.cgi?id=260810&#34;&gt;bug 260810&lt;/a&gt;, &lt;a href=&#34;https://commits.webkit.org/267408@main&#34;&gt;267408@main&lt;/a&gt;) but sat disabled until December 2025, when it was switched on for platforms with sufficient Network.framework support (&lt;a href=&#34;https://bugs.webkit.org/show_bug.cgi?id=303453&#34;&gt;bug 303453&lt;/a&gt;, &lt;a href=&#34;https://commits.webkit.org/303860@main&#34;&gt;303860@main&lt;/a&gt;). It shipped publicly in iOS 26.4 (March 2026); see &lt;a href=&#34;https://webkit.org/blog/17862/webkit-features-for-safari-26-4/&#34;&gt;WebKit Features for Safari 26.4&lt;/a&gt; and the &lt;a href=&#34;https://developer.apple.com/documentation/safari-release-notes/safari-26_4-release-notes&#34;&gt;Safari 26.4 Release Notes&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;mitigations-introduced-in-psylo-131&#34;&gt;Mitigations Introduced in Psylo 1.3.1&lt;/h2&gt;
&lt;p&gt;We&amp;rsquo;ve addressed all three leaks in Psylo 1.3.1:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Psylo blocks &lt;code&gt;dns-prefetch&lt;/code&gt; hints, so a page can no longer make your device resolve attacker-controlled hostnames.&lt;/li&gt;
&lt;li&gt;WebTransport is disabled by default.&lt;/li&gt;
&lt;li&gt;WebAuthn is disabled by default.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Passkeys and WebTransport have legitimate uses, so both can be re-enabled at any time through per-silo toggles. This keeps Psylo leak-free out of the box, while users who need one of these features on a given site can opt in explicitly, with a clear understanding of the trade-off.&lt;/p&gt;
&lt;aside class=&#34;psylo-callout&#34;&gt;
  &lt;a class=&#34;psylo-callout-icon&#34; href=&#34;https://apps.apple.com/app/psylo-private-browser-proxy/id6741358035&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; aria-hidden=&#34;true&#34; tabindex=&#34;-1&#34;&gt;
    &lt;img src=&#34;https://mysk.blog/assets/img/common/psylo-iOS-Default-1024x1024@1x.webp&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;
  &lt;/a&gt;
  &lt;div class=&#34;psylo-callout-body&#34;&gt;
    &lt;p class=&#34;psylo-callout-headline&#34;&gt;Found this research useful?&lt;/p&gt;
    &lt;p class=&#34;psylo-callout-text&#34;&gt;Help fund more of it by trying &lt;strong&gt;Psylo&lt;/strong&gt;, our privacy-first browser for iOS and iPadOS — with a built-in proxy network, per-tab isolated web sessions, and anti-fingerprinting.&lt;/p&gt;
    &lt;p class=&#34;psylo-callout-secondary&#34;&gt;
      &lt;a href=&#34;https://mysk.blog/2025/06/17/introducing-psylo/&#34;&gt;Read why we built it &amp;rarr;&lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
  &lt;a class=&#34;psylo-callout-cta&#34; href=&#34;https://apps.apple.com/app/psylo-private-browser-proxy/id6741358035&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Download Psylo &amp;rarr;&lt;/a&gt;
&lt;/aside&gt;

</content>
    </item>
    
    <item>
      <title>Psylo 1.0 System Architecture [Updated]</title>
      <link>https://mysk.blog/2025/06/30/psylo-1.0-system-architecture/</link>
      <pubDate>Mon, 30 Jun 2025 09:17:00 +0500</pubDate>
      <guid>https://mysk.blog/2025/06/30/psylo-1.0-system-architecture/</guid>
      <description>&lt;p&gt;Since Psylo isn&amp;rsquo;t currently open source, transparency is crucial to earn our users&amp;rsquo; trust. We&amp;rsquo;re always ready to answer your questions and provide more details via &lt;a href=&#34;https://x.com/psylo_app&#34;&gt;X&lt;/a&gt;, &lt;a href=&#34;https://mastodon.social/@mysk&#34;&gt;Mastodon&lt;/a&gt;, and &lt;a href=&#34;https://bsky.app/profile/mysk.bsky.social&#34;&gt;Bluesky&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;

  &lt;figure class=&#34;left&#34; &gt;
    &lt;img src=&#34;https://mysk.blog/assets/img/posts/psylo-1.0-system-architecture/psylo-1.0.5-diagram.webp&#34;   /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Psylo 1.0.5 Architecture Diagram&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;p&gt;Psylo is a privacy-focused web browser for iOS and iPadOS. Each browser tab, known as a silo, provides isolated storage, cookies, and even a unique IP address through integration with the Mysk Private Proxy Network. When browsing, traffic from each silo is securely tunneled through one of over 40 proxy servers within this network, which further routes traffic through Proton VPN exit nodes via WireGuard.&lt;/p&gt;</description>
      <content>&lt;p&gt;Since Psylo isn&amp;rsquo;t currently open source, transparency is crucial to earn our users&amp;rsquo; trust. We&amp;rsquo;re always ready to answer your questions and provide more details via &lt;a href=&#34;https://x.com/psylo_app&#34;&gt;X&lt;/a&gt;, &lt;a href=&#34;https://mastodon.social/@mysk&#34;&gt;Mastodon&lt;/a&gt;, and &lt;a href=&#34;https://bsky.app/profile/mysk.bsky.social&#34;&gt;Bluesky&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;

  &lt;figure class=&#34;left&#34; &gt;
    &lt;img src=&#34;https://mysk.blog/assets/img/posts/psylo-1.0-system-architecture/psylo-1.0.5-diagram.webp&#34;   /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Psylo 1.0.5 Architecture Diagram&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;p&gt;Psylo is a privacy-focused web browser for iOS and iPadOS. Each browser tab, known as a silo, provides isolated storage, cookies, and even a unique IP address through integration with the Mysk Private Proxy Network. When browsing, traffic from each silo is securely tunneled through one of over 40 proxy servers within this network, which further routes traffic through Proton VPN exit nodes via WireGuard.&lt;/p&gt;
&lt;h2 id=&#34;subscribing-through-the-app-store-&#34;&gt;Subscribing through the App Store &lt;strong&gt;[Updated: 2025-09-04]&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Psylo is offered as a subscription using Apple&amp;rsquo;s In-App Subscription system. A key goal for Psylo is maintaining complete user anonymity — we never want to know the identities of our users. Thus, users aren&amp;rsquo;t required to create accounts or provide any personally identifiable information (PII), such as names, emails, or phone numbers. Instead, Psylo leverages Apple&amp;rsquo;s subscription infrastructure, which does not share any PII with developers, keeping user identities anonymous to us.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s how subscribing works:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Subscription Purchase:&lt;/strong&gt; Users can subscribe to Psylo through Apple’s in-app purchase system. Alternatively, they may choose to try Psylo without subscribing, in which case Psylo relies on the App Store’s app transaction record rather than a subscription record. &lt;del&gt;The app generates a random subscription ID, sent as an &amp;ldquo;App Account Token&amp;rdquo; alongside the transaction. &lt;em&gt;(Note: If you already see a concern here, we address it later in this post.)&lt;/em&gt;&lt;/del&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Signed App Store Transaction Objects:&lt;/strong&gt; Apple issues both a signed subscription transaction and app transaction objects containing no PII, meaning we can&amp;rsquo;t trace subscription IDs back to individual users.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Transaction Validation:&lt;/strong&gt; The Psylo app forwards both transaction objects to Psylo Server, our Swift-based backend responsible for subscription validation, authorization, bandwidth tracking, and other critical aspects of the system (more details in future posts).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Issuing Access Tokens:&lt;/strong&gt; After validating and storing the transaction, Psylo Server returns a signed access token to the Psylo app.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Proxy Connection:&lt;/strong&gt; Using this access token, the Psylo app establishes secure HTTPS tunnels from each silo to the Mysk Private Proxy Network.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;mysk-private-proxy-network&#34;&gt;Mysk Private Proxy Network&lt;/h2&gt;
&lt;p&gt;Central to Psylo&amp;rsquo;s design is the Mysk Private Proxy Network, currently comprising over 40 servers. Each silo can be configured to independently connect to any of the servers distributed globally in the following countries:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Canada&lt;/li&gt;
&lt;li&gt;Germany&lt;/li&gt;
&lt;li&gt;United States&lt;/li&gt;
&lt;li&gt;United Kingdom&lt;/li&gt;
&lt;li&gt;Japan&lt;/li&gt;
&lt;li&gt;Australia&lt;/li&gt;
&lt;li&gt;Brazil&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;cloud-providers&#34;&gt;Cloud Providers&lt;/h3&gt;
&lt;p&gt;Our infrastructure is built on servers and virtual machines from &lt;a href=&#34;https://www.digitalocean.com/&#34;&gt;DigitalOcean&lt;/a&gt;, &lt;a href=&#34;https://www.hetzner.com/&#34;&gt;Hetzner&lt;/a&gt;, and &lt;a href=&#34;https://www.vultr.com/&#34;&gt;Vultr&lt;/a&gt;. Each instance runs software which we fully control, and we&amp;rsquo;ve avoided managed services such as managed databases.&lt;/p&gt;
&lt;h3 id=&#34;proxy-servers&#34;&gt;Proxy Servers&lt;/h3&gt;
&lt;p&gt;Each node hosts an HTTPS proxy server routing HTTPS traffic between silos and destination websites via a &lt;a href=&#34;https://protonvpn.com/&#34;&gt;Proton VPN&lt;/a&gt; exit node. Proxy servers &lt;strong&gt;cannot&lt;/strong&gt; inspect the contents of HTTPS traffic, although they do see destination hostnames. Our strict no-log policy ensures no host or IP data is logged or stored. Network requests remain in memory, never cached or persisted.&lt;/p&gt;
&lt;h3 id=&#34;dns-filtering-&#34;&gt;DNS Filtering &lt;strong&gt;[Updated: 2025-09-04]&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;DNS requests pass through the Mysk Private Proxy Network and are resolved using multiple providers, including &lt;a href=&#34;https://www.cloudflare.com/learning/dns/what-is-1.1.1.1/&#34;&gt;Cloudflare&lt;/a&gt;, &lt;a href=&#34;https://controld.com/&#34;&gt;Control D&lt;/a&gt;, &lt;a href=&#34;https://www.quad9.net/&#34;&gt;Quad9&lt;/a&gt;, &lt;a href=&#34;https://dns0.eu/&#34;&gt;dns0.eu&lt;/a&gt;, and &lt;a href=&#34;https://www.opendns.com/&#34;&gt;OpenDNS&lt;/a&gt;. All DNS requests originate from our proxy servers, so none of these providers ever see DNS queries coming directly from your device.&lt;/p&gt;
&lt;p&gt;This design provides two primary benefits:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;DNS requests are invisible to ISPs or local network monitors. (iOS apps cannot configure custom DNS settings.)&lt;/li&gt;
&lt;li&gt;Known tracking domains are filtered out, preventing websites using tracking scripts from receiving network requests from Psylo users.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;proton-vpn-exit-nodes&#34;&gt;Proton VPN Exit Nodes&lt;/h3&gt;
&lt;p&gt;We&amp;rsquo;re excited to reveal that we&amp;rsquo;re currently working with &lt;a href=&#34;https://protonvpn.com/&#34;&gt;Proton VPN&lt;/a&gt; to provide VPN connections for each proxy server. Websites accessed via Psylo only see Proton VPN IP addresses, and Psylo users enjoy many of the benefits provided by Proton VPN.&lt;/p&gt;
&lt;p&gt;A key benefit of using Proton VPN as our network&amp;rsquo;s exit nodes is &amp;ldquo;clean&amp;rdquo; IP addresses. Since our proxy servers are hosted by cloud providers, many popular websites—such as Reddit and YouTube—typically block or restrict traffic originating from datacenter IPs. By routing traffic through Proton VPN exit nodes, we&amp;rsquo;ve successfully restored reliable access to these websites. We plan to continue our collaboration with Proton VPN as we scale our service.&lt;/p&gt;
&lt;h3 id=&#34;no-logs-bandwidth-reporting&#34;&gt;No-Logs, Bandwidth Reporting&lt;/h3&gt;
&lt;p&gt;The Mysk Private Proxy Network strictly adheres to a no-log policy. We do not log any personally identifiable information, IP addresses, browsing history, or DNS requests. Bandwidth usage is monitored solely for quality assurance and abuse prevention. To further enhance privacy, all reported bandwidth is rounded down to the nearest 50 MB increment, minimizing the granularity of information contained in usage reports.&lt;/p&gt;
&lt;h2 id=&#34;trade-offs-and-future-improvements&#34;&gt;Trade-offs and Future Improvements&lt;/h2&gt;
&lt;p&gt;For Psylo 1.0, we&amp;rsquo;ve had to take many technical decisions to balance usability, privacy, and technical feasibility. Below we want to address &lt;del&gt;2&lt;/del&gt; 1 main trade-off&lt;del&gt;s&lt;/del&gt; we&amp;rsquo;ve identified in this initial release:&lt;/p&gt;
&lt;h3 id=&#34;sharing-subscription-id-with-apple-&#34;&gt;Sharing Subscription ID with Apple &lt;strong&gt;[Updated: 2025-09-04]&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;del&gt;A notable trade-off involves the randomized subscription ID and sharing it with Apple. Although not ideal, we believed this was an acceptable trade-off for the following reasons:&lt;/del&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;del&gt;Users can easily share Psylo subscriptions across multiple devices linked to one Apple account or restore subscriptions seamlessly after app reinstalls. Psylo automatically restores subscriptions without additional authentication.&lt;/del&gt;&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Even in scenarios involving data breaches or court orders compelling disclosure, information would remain limited to approximate bandwidth usage (rounded to the nearest 50 MB).&lt;/del&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;del&gt;In the future, we aim to eliminate sharing subscription IDs with Apple entirely by introducing a &amp;ldquo;subscription restore token&amp;rdquo; system, where users securely store tokens in their preferred password managers. This approach would place more burden on users, but would eliminate the need to share the randomized subscription ID with anyone, including Apple.&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;Starting with Psylo 1.0.5, we no longer share the randomized subscription ID with Apple when users subscribe. We’ve significantly redesigned how Psylo Server manages subscriptions, enabling us to offer free trials without requiring users to commit to Apple’s In-App Purchase system. This change also paves the way for introducing alternative payment options in the future, including cryptocurrency.&lt;/p&gt;
&lt;h3 id=&#34;bandwidth-caps&#34;&gt;Bandwidth Caps&lt;/h3&gt;
&lt;p&gt;As highlighted in our &lt;a href=&#34;https://mysk.blog/2025/06/17/introducing-psylo/&#34;&gt;announcement post&lt;/a&gt;, Psylo sets a conservative &lt;del&gt;50&lt;/del&gt; 100 GB/month bandwidth cap per user to safeguard network integrity from potential abuse. However, we intend to increase or eliminate these limits entirely as we get a better understanding of how our system performs in production. Our long-term goal is to remove bandwidth caps and eliminate bandwidth tracking completely.&lt;/p&gt;
&lt;h2 id=&#34;questions-comments&#34;&gt;Questions? Comments?&lt;/h2&gt;
&lt;p&gt;We hope this provided insight into Psylo and the Mysk Private Proxy Network. If you&amp;rsquo;d like to learn more or have more questions, reach out to us via our social media:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://x.com/mysk_co&#34;&gt;mysk_co on X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://x.com/psylo_app&#34;&gt;psylo_app on X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://mastodon.social/@mysk&#34;&gt;mysk on Mastodon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://bsky.app/profile/mysk.bsky.social&#34;&gt;mysk on Bluesky&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;download-psylo-today&#34;&gt;Download Psylo Today!&lt;/h2&gt;
&lt;p&gt;Psylo is available for iOS and iPadOS through monthly or annual subscriptions, with a free 7-day trial offering full access to all features. &lt;del&gt;Use the discount code &lt;strong&gt;PSYLOPARTY&lt;/strong&gt; for 30% off your annual subscription.&lt;/del&gt;&lt;/p&gt;
&lt;a href=&#34;https://apps.apple.com/us/app/psylo-private-browser-proxy/id6741358035&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;appStoreButton&#34;&gt;
  &lt;img src=&#34;https://mysk.blog/assets/img/common/Download_on_the_App_Store_Badge_US-UK_RGB_blk_092917.svg&#34; alt=&#34;Download on the App Store&#34;&gt;
&lt;/a&gt;
</content>
    </item>
    
    <item>
      <title>Introducing Psylo — A New Kind of Private Web Browser</title>
      <link>https://mysk.blog/2025/06/17/introducing-psylo/</link>
      <pubDate>Tue, 17 Jun 2025 09:17:00 +0500</pubDate>
      <guid>https://mysk.blog/2025/06/17/introducing-psylo/</guid>
      <description>&lt;figure class=&#34;floatRight&#34; &gt;
    &lt;img src=&#34;https://mysk.blog/assets/img/posts/introducing-psylo/psylo-poster.webp&#34;   /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Psylo — A New Kind of Private Browser&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;a href=&#34;https://apps.apple.com/us/app/psylo-private-browser-proxy/id6741358035&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;appStoreButton&#34;&gt;
  &lt;img src=&#34;https://mysk.blog/assets/img/common/Download_on_the_App_Store_Badge_US-UK_RGB_blk_092917.svg&#34; alt=&#34;Download on the App Store&#34;&gt;
&lt;/a&gt;
&lt;h2 id=&#34;why-a-web-browser&#34;&gt;Why a Web Browser?&lt;/h2&gt;
&lt;p&gt;Funny enough, we didn&amp;rsquo;t initially set out to build a whole web browser.&lt;/p&gt;
&lt;p&gt;As &lt;em&gt;occasional&lt;/em&gt; privacy researchers, we and many others have noted how native apps utilize extensive tracking SDKs. These SDKs collect all kinds of data to &amp;ldquo;fingerprint&amp;rdquo; users, aiming to track them across different apps and even across devices, primarily for targeted advertising. This is not limited to the usual suspects, like free mobile games and social media apps, but also business apps like Microsoft Outlook, which &lt;a href=&#34;https://reports.exodus-privacy.eu.org/en/reports/com.microsoft.office.outlook/latest/&#34;&gt;include various advertising and tracking SDKs&lt;/a&gt;.&lt;/p&gt;</description>
      <content>
  &lt;figure class=&#34;floatRight&#34; &gt;
    &lt;img src=&#34;https://mysk.blog/assets/img/posts/introducing-psylo/psylo-poster.webp&#34;   /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Psylo — A New Kind of Private Browser&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;a href=&#34;https://apps.apple.com/us/app/psylo-private-browser-proxy/id6741358035&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;appStoreButton&#34;&gt;
  &lt;img src=&#34;https://mysk.blog/assets/img/common/Download_on_the_App_Store_Badge_US-UK_RGB_blk_092917.svg&#34; alt=&#34;Download on the App Store&#34;&gt;
&lt;/a&gt;
&lt;h2 id=&#34;why-a-web-browser&#34;&gt;Why a Web Browser?&lt;/h2&gt;
&lt;p&gt;Funny enough, we didn&amp;rsquo;t initially set out to build a whole web browser.&lt;/p&gt;
&lt;p&gt;As &lt;em&gt;occasional&lt;/em&gt; privacy researchers, we and many others have noted how native apps utilize extensive tracking SDKs. These SDKs collect all kinds of data to &amp;ldquo;fingerprint&amp;rdquo; users, aiming to track them across different apps and even across devices, primarily for targeted advertising. This is not limited to the usual suspects, like free mobile games and social media apps, but also business apps like Microsoft Outlook, which &lt;a href=&#34;https://reports.exodus-privacy.eu.org/en/reports/com.microsoft.office.outlook/latest/&#34;&gt;include various advertising and tracking SDKs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To their credit, Apple has consistently improved privacy measures, notably introducing &lt;a href=&#34;https://support.apple.com/en-ca/102420&#34;&gt;App Tracking Transparency&lt;/a&gt; in iOS 14, &lt;a href=&#34;https://developer.apple.com/app-store/app-privacy-details/&#34;&gt;App Store Privacy Nutrition Labels&lt;/a&gt;, and &lt;a href=&#34;https://developer.apple.com/documentation/bundleresources/privacy-manifest-files&#34;&gt;Privacy Manifests&lt;/a&gt;. Their latest efforts even restrict app developers from certain APIs that can potentially be misused for tracking without disclosure. However, despite Apple&amp;rsquo;s best efforts, companies continue to discover new methods to circumvent these protections, as &lt;a href=&#34;https://mysk.blog/2024/05/03/apple-required-reason-api/&#34;&gt;we previously discussed here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;One common practice to avoid the invasive tracking of native apps is to use web-based versions offered by apps such as X, Instagram, LinkedIn, and others. Web apps inherently have fewer permissions and significantly reduced fingerprinting capabilities compared to their native app counterparts. iOS and iPadOS also conveniently support adding Progressive Web Apps (PWAs) directly to the Home Screen, making them as easy to open as regular native apps.&lt;/p&gt;
&lt;p&gt;However, as we will discuss, web browsers themselves aren&amp;rsquo;t immune to more advanced fingerprinting techniques, even when used alongside VPNs. This is where we saw an opportunity for something new.&lt;/p&gt;
&lt;h2 id=&#34;web-silos-or-isolated-web-sessions&#34;&gt;Web Silos, or &lt;em&gt;Isolated Web Sessions&lt;/em&gt;&lt;/h2&gt;
&lt;p&gt;Last October, we started building an app simply focused on creating fully isolated web sessions, tailored specifically for PWAs. Each isolated session (what we call a silo) gets its own dedicated storage, cookies, and cache, fully separate from other silos. On top of that, we built our own proxy network, initially with just 5 servers.&lt;/p&gt;

  &lt;figure class=&#34;floatRight&#34; &gt;
    &lt;img src=&#34;https://mysk.blog/assets/img/posts/introducing-psylo/psylo-early.webp&#34;   /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;An early version of Psylo&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;p&gt;This early app proved quite promising. For instance, you could have a silo for your personal X account through a proxy in Germany, another silo for Instagram via a US proxy, and a separate silo for another account through Canada. These silos are fully isolated, each with separate data storage and even distinct IP addresses, significantly reducing cross-site and cross-session tracking.&lt;/p&gt;
&lt;p&gt;That said, we already knew our work was far from over, and addressing fingerprinting required more than simply masking IP addresses.&lt;/p&gt;
&lt;h2 id=&#34;fingerprinting-languages-timezones-canvas-and-lots-more&#34;&gt;Fingerprinting: Languages, Timezones, Canvas, and Lots More&lt;/h2&gt;
&lt;h3 id=&#34;but-first-what-is-fingerprinting&#34;&gt;But first, what is fingerprinting?&lt;/h3&gt;
&lt;p&gt;Fingerprinting is a technique that attempts to track a user across different apps and websites, without the need have a unique user ID that could be shared across those apps. It works by gathering subtle signals and characteristics about the user&amp;rsquo;s device, such as phone model, system language, timezone, IP address, and even graphics rendering quirks (known as canvas fingerprinting). More advanced techniques even consider factors like average scroll speed and mouse movement patterns.&lt;/p&gt;
&lt;p&gt;As a simple example, consider this basic set of characteristics collected by &lt;em&gt;Website A&lt;/em&gt; from an unknown user:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Phone Model:&lt;/strong&gt; iPhone 14 Pro Max&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Operating System Version:&lt;/strong&gt; iOS 18.4.1&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Locale:&lt;/strong&gt; English (Canada)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Timezone:&lt;/strong&gt; Europe/Madrid&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IP Address:&lt;/strong&gt; 79.127.215.215&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IP Address Country:&lt;/strong&gt; Paris, France (through a VPN)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Browser Window Size:&lt;/strong&gt; 405x865&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here we have a user who uses an iPhone 14 Pro Max, running iOS 18.4.1, from Canada, currently in Spain, their IP address is in Paris, and their browser window has a size of 405x865 pixels. That exact combination of characteristics would constitute a fingerprint, and &lt;em&gt;Website A&lt;/em&gt; can share it with &lt;em&gt;Website B&lt;/em&gt;. Later, when a user who happens to have those same fingerprint characteristics (i.e. iPhone 14 Pro Max, from Canada, in Spain, etc.) visits &lt;em&gt;Website B&lt;/em&gt;, it can make a good guess that it&amp;rsquo;s the same user who visited &lt;em&gt;Website A&lt;/em&gt; earlier. &lt;/p&gt;
&lt;p&gt;Now let&amp;rsquo;s say that same user switched to a different VPN server in Denmark. With all other factors remaining unchanged, it would still be a fairly good guess that it&amp;rsquo;s the same user. The likelihood of another user sharing those exact same combination of characteristics (i.e. same phone model, OS, language, timezone, browser window size, etc) is low.&lt;/p&gt;
&lt;p&gt;As this is a simple fingerprinting example with only 7 factors, the resulting fingerprint is &amp;ldquo;fuzzy&amp;rdquo; and guesses about the user&amp;rsquo;s identity may not be reliable. Actual fingerprinting techniques include dozens of factors, with each added factor making the fingerprint &amp;ldquo;sharper,&amp;rdquo; thus more likely to reliably identify a user.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The goal of any anti-fingerprinting system is to make the user&amp;rsquo;s fingerprint as &lt;em&gt;fuzzy&lt;/em&gt; as possible, making it more difficult to accurately track them.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;now-for-a-real-example&#34;&gt;Now for a real example&lt;/h3&gt;
&lt;p&gt;For a real example of fingerprinting, let&amp;rsquo;s look at &lt;a href=&#34;https://fingerprint.com&#34;&gt;Fingerprint&lt;/a&gt;, which offers fingerprinting as a service to other websites and apps, with the stated goal to &amp;ldquo;Identify Every Visitor&amp;rdquo; to &amp;ldquo;Stop fraud, detect bots, or delight customers.&amp;rdquo;&lt;/p&gt;

  &lt;figure class=&#34;left&#34; &gt;
    &lt;img src=&#34;https://mysk.blog/assets/img/posts/introducing-psylo/fingerprint-safari.webp&#34;   /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Fingerprint successfully generated the same visitor ID for 2 distinct Safari 18.4 profiles&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;p&gt;We tested out their service by simply visiting their homepage, which displays our unique fingerprint, using Safari 18.4 for Mac. For this test, we created 2 new browsing profiles ensuring they don&amp;rsquo;t share any cookies or data and visited &lt;a href=&#34;https://fingerprint.com&#34;&gt;https://fingerprint.com&lt;/a&gt; from 2 separate IPs via VPN. Despite our attempt to cover our tracks, Fingerprint successfully generated the same &lt;strong&gt;visitor ID&lt;/strong&gt; for both windows.&lt;/p&gt;
&lt;h3 id=&#34;beyond-a-vpn&#34;&gt;Beyond a VPN&lt;/h3&gt;

  &lt;figure class=&#34;floatRight&#34; &gt;
    &lt;img src=&#34;https://mysk.blog/assets/img/posts/introducing-psylo/browser-vpn-location-leak.webp&#34;   /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Despite using a VPN through Denmark, a website can still infer your country and where you might be traveling based on timezone&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;p&gt;VPNs alone can&amp;rsquo;t quite counteract fingerprinting, since all they can do is mask your IP and potentially block known tracking scripts and domains. To see this for yourself, we made this &lt;a href=&#34;https://psylo.app/location&#34;&gt;proof-of-concept web page&lt;/a&gt; that relies on simple JavaScript calls to infer your country, potentially revealing if you&amp;rsquo;re traveling to another country via your system&amp;rsquo;s timezone settings, even if connected via VPN.&lt;/p&gt;
&lt;p&gt;This is one place where Psylo really shines. Not only does every silo get a unique IP address through our proxy network, &lt;strong&gt;but it also matches the locale and timezone of its associated proxy server&lt;/strong&gt;. For example, if a silo connects through a German proxy, it automatically adjusts the browser&amp;rsquo;s language and timezone accordingly, making those fingerprint factors similar to actual users from Germany, thus making your fingerprint fuzzier.&lt;/p&gt;
&lt;p&gt;Psylo also includes more common anti-fingerprinting measures, such as canvas randomization, typically only found in desktop versions of privacy-focused browsers such as Brave, but not on iOS. This is due to Apple limiting apps to use the system-provided WKWebView. We were able to achieve this through a client-side JavaScript solution, which powers many of our anti-fingerprinting measures.&lt;/p&gt;

  &lt;figure class=&#34;left&#34; &gt;
    &lt;img src=&#34;https://mysk.blog/assets/img/posts/introducing-psylo/psylo-fingerprint.webp&#34;   /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Pyslo can successfully evade the advanced fingerprinting techniques used by Fingerprint. (Test performed on the same iPhone using Psylo 1.0.0 in June 2025)&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;h2 id=&#34;early-beta-and-realizing-were-building-a-browser&#34;&gt;Early Beta, and Realizing We&amp;rsquo;re Building a Browser&lt;/h2&gt;
&lt;p&gt;We seeded the first beta of Psylo in February. That version of Psylo was far more limited compared to the version we&amp;rsquo;re releasing today: Only 5 generic proxies (which didn&amp;rsquo;t specify a country), a rudimentary browser user interface (it wasn&amp;rsquo;t supposed to be a browser, after all), and most importantly it was missing the &lt;a href=&#34;https://developer.apple.com/documentation/xcode/preparing-your-app-to-be-the-default-browser&#34;&gt;Default Browser Entitlement&lt;/a&gt; that Apple selectively grants to developers of browser apps. Despite its name, this entitlement not only grants browser apps the ability to become the user&amp;rsquo;s default browser of choice. It also provides all-important browser features, such as password manager integration, passkeys, Service Workers, and even better performance.&lt;/p&gt;
&lt;p&gt;Even then, the initial reaction we got to Psylo was encouraging, but we struggled to convey what we thought Psylo should be: &lt;em&gt;It wasn&amp;rsquo;t a browser, it was intended for using PWAs through our private proxy network&lt;/em&gt;. As silly and obvious as it sounds now, we were actually building a browser but didn&amp;rsquo;t quite want to admit it yet&amp;hellip;&lt;/p&gt;
&lt;p&gt;So now that we&amp;rsquo;ve committed to building a browser, the first step was to apply to Apple for Default Browser Entitlement. Not knowing what to expect, we filled &lt;a href=&#34;https://developer.apple.com/contact/request/default-browser-entitlement/&#34;&gt;this form&lt;/a&gt; and sent it off to Apple. Luckily, 3 weeks later we got this email from Apple granting us the Default Browser Entitlement.&lt;/p&gt;

  &lt;figure class=&#34;left&#34; &gt;
    &lt;img src=&#34;https://mysk.blog/assets/img/posts/introducing-psylo/browser-entitlement.webp&#34;   /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;We&#39;re a browser vendor now!&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;h2 id=&#34;mysk-private-proxy-network&#34;&gt;Mysk Private Proxy Network&lt;/h2&gt;
&lt;p&gt;We&amp;rsquo;ve gotten this far into the post without discussing a major component of Psylo: our scalable global network of no-log proxy servers, which we call the &lt;strong&gt;Mysk Private Proxy Network&lt;/strong&gt;. Currently consisting of 40+ proxy servers worldwide, it&amp;rsquo;s designed to scale as we grow our service. Psylo seamlessly integrates with Mysk Private Proxy Network, allowing per-silo proxy connections.&lt;/p&gt;
&lt;p&gt;From the outset, we established the following primary design requirements for our proxy network:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Our Software:&lt;/strong&gt; The system must operate exclusively on software that we either developed ourselves or maintain complete control over. This requirement is essential not only to meet the other criteria listed below but also to ensure we&amp;rsquo;re fully aware of any limitations within our system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;No Logs:&lt;/strong&gt; The system must never log or otherwise store any personally identifiable information or browsing data, including but not limited to IP addresses, DNS requests, and any other data that could potentially identify a user.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;No User Accounts:&lt;/strong&gt; The system must be accessible without requiring users to create an account—in fact, the system must have no notion of user accounts whatsoever. The only information the system should recognize is whether a connection to the proxy network is associated with an active subscription. Subscription tracking must rely exclusively on randomized identifiers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Bandwidth Tracking and Abuse Prevention:&lt;/strong&gt; The system must track bandwidth usage for each subscription to prevent abuse and maintain quality of service for all subscribers. It must also have the capability to block subscriptions deemed abusive from accessing the network.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;We believe we&amp;rsquo;ve successfully implemented all of the above requirements in the initial rollout of the Mysk Private Proxy Network, with the most challenging being requirements &lt;strong&gt;(3)&lt;/strong&gt; and &lt;strong&gt;(4)&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;We absolutely did not want to force users to create and manage accounts with us (unlike some &lt;a href=&#34;https://bgr.com/tech/i-want-to-try-the-trendy-arc-browser-but-not-if-they-force-me-to-register-an-account/&#34;&gt;other browsers&lt;/a&gt;, which may no longer exist), nor did we even want user accounts as an option. Our primary concern is simply verifying whether an anonymous user accessing the proxy network holds an active subscription.&lt;/p&gt;
&lt;p&gt;Since Psylo is an iOS and iPadOS app, the default method for offering subscriptions is through &lt;a href=&#34;https://developer.apple.com/app-store/subscriptions/&#34;&gt;In-App Subscriptions&lt;/a&gt;. Again, to Apple&amp;rsquo;s credit, when users make a purchase through the App Store’s In-App Subscription system, developers never receive any personally identifiable information associated with those purchases. This fits nicely with requirement &lt;strong&gt;(3)&lt;/strong&gt;, allowing Psylo users to subscribe without creating an account or revealing their identity to us. It also opens the door for potentially offering alternative payment methods in the future.&lt;/p&gt;
&lt;p&gt;Regarding requirement &lt;strong&gt;(4)&lt;/strong&gt;, it was essential for us to ensure the proxy network could be maintained and scaled effectively as our user base grows. To achieve this, we built our own monitoring system. However, our primary concern remained preventing abuse of the proxy network. For this initial rollout, we decided to err on the side of caution and set bandwidth limits at &lt;del&gt;50 GB&lt;/del&gt; &lt;strong&gt;100 GB&lt;/strong&gt; per month per user. In the coming months as we gain a better understanding of how the system performs in production, we&amp;rsquo;ll happily consider increasing these bandwidth limits for all our users.&lt;/p&gt;
&lt;h2 id=&#34;details-details-details&#34;&gt;Details, Details, Details&lt;/h2&gt;
&lt;p&gt;There are so many further technical details about Psylo and the Mysk Private Proxy Network that we&amp;rsquo;d love to explore further: such as how we handle proxy authentication, strange and unexpected quirks of WKWebView, challenges with Cloudflare, SwiftUI shenanigans, issues with different cloud providers, the weird and possibly shady world of proxy providers, securing our Swift-based application server, remote app configuration, localization, and much more. We’ve gained a tremendous amount of knowledge during the nine months we spent developing Psylo and plan to share more insights over the coming months.&lt;/p&gt;
&lt;h2 id=&#34;whats-next&#34;&gt;What&amp;rsquo;s Next?&lt;/h2&gt;
&lt;p&gt;Releasing version 1.0.0 of a new product is always nerve-racking, especially for an app like Psylo, with so many moving parts. So many thoughts cross our minds: How will it be received? Did we miss something &lt;em&gt;so glaringly obvious&lt;/em&gt; in our system design? What if the system crashes and doesn&amp;rsquo;t hold up under load? &lt;/p&gt;
&lt;p&gt;We are also very aware of how many features Psylo 1.0.0 still lacks and how much better it can become. However, we&amp;rsquo;ve reached a point where we believe this initial release is compelling enough to share with the world.&lt;/p&gt;
&lt;p&gt;The most frequent request during our beta period was an Android version. While it&amp;rsquo;s too early to commit, an Android version will surely be on the table if the iOS version proves successful.&lt;/p&gt;
&lt;p&gt;We really look forward to your hearing your thoughts and feedback. Psylo is available today for iOS and iPadOS through monthly or annual subscriptions, with a free 7-day trial offering full access to all features. &lt;del&gt;Use the discount code &lt;strong&gt;PSYLOPARTY&lt;/strong&gt; for 30% off your annual subscription.&lt;/del&gt;&lt;/p&gt;
&lt;a href=&#34;https://apps.apple.com/us/app/psylo-private-browser-proxy/id6741358035&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;appStoreButton&#34;&gt;
  &lt;img src=&#34;https://mysk.blog/assets/img/common/Download_on_the_App_Store_Badge_US-UK_RGB_blk_092917.svg&#34; alt=&#34;Download on the App Store&#34;&gt;
&lt;/a&gt;
&lt;h1 id=&#34;contact--support&#34;&gt;Contact &amp;amp; Support&lt;/h1&gt;
&lt;p&gt;For any comments, feedback, or support requests, you can reach us via our social media accounts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://x.com/mysk_co&#34;&gt;mysk_co on X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://x.com/psylo_app&#34;&gt;psylo_app on X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://mastodon.social/@mysk&#34;&gt;mysk on Mastodon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://bsky.app/profile/mysk.bsky.social&#34;&gt;mysk on Bluesky&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;acknowledgements&#34;&gt;Acknowledgements&lt;/h1&gt;
&lt;p&gt;First, we would like to extend our heartfelt thanks to all of our followers on X, Mastodon, and Bluesky. Special thanks goes out to our beta testers, whose valuable feedback significantly helped shape Psylo. If you participated in our beta testing and would like a special discount, please contact us through any of our social media channels.&lt;/p&gt;
&lt;p&gt;During development, we found &lt;a href=&#34;https://browserleaks.com/&#34;&gt;BrowserLeaks&lt;/a&gt; immensely useful for testing our anti-fingerprinting measures.&lt;/p&gt;
</content>
    </item>
    
  </channel>
</rss>
