<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Obscura Blog</title><description>The latest news and updates from Obscura.</description><link>https://obscura.com/</link><item><title>Obscura&apos;s First Independent Audit by Cure53</title><link>https://obscura.com/blog/obscuras-first-audit/</link><guid isPermaLink="true">https://obscura.com/blog/obscuras-first-audit/</guid><description>We have completed the first independent audit of our macOS app, network extension and protocol conducted by Cure53</description><pubDate>Tue, 16 Dec 2025 00:00:00 GMT</pubDate><category>Announcements</category></item><item><title>Trust, 2-Party Relays, and QUIC</title><link>https://obscura.com/blog/bootstrapping-trust/</link><guid isPermaLink="true">https://obscura.com/blog/bootstrapping-trust/</guid><description>Deep-dive into how 2-party relay architecture and QUIC protocols create a new generation of VPNs that don&apos;t require trust for privacy.</description><pubDate>Tue, 11 Feb 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h4 id=&quot;tldr&quot;&gt;TL;DR&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;2-Party Relays largely resolve the trust and privacy problem inherent in existing consumer VPNs&lt;/li&gt;
&lt;li&gt;QUIC-based VPN protocols blend in with HTTP/3 traffic, bypassing network filters while avoiding the TCP-over-TCP slowdown&lt;/li&gt;
&lt;li&gt;We built a new VPN named Obscura based on these two insights, partnering with Mullvad as our exit hop&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;consumer-vpns-and-trust&quot;&gt;Consumer VPNs and Trust&lt;/h2&gt;
&lt;p&gt;The consumer VPN industry has been under growing scrutiny lately – even from &lt;a href=&quot;https://www.cisa.gov/sites/default/files/2024-12/guidance-mobile-communications-best-practices.pdf&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;government agencies&lt;/a&gt; – and for good reason. VPN companies have flooded YouTube with exaggerated claims and scare tactics while also using &lt;a href=&quot;https://linustechtips.com/topic/1462171-nordvpn-pricing-is-falsely-advertised-buyer-beware/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;predatory pricing mechanics&lt;/a&gt;. Behind the scenes, these companies are often &lt;a href=&quot;https://windscribe.com/vpnmap&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;many-headed hydras&lt;/a&gt; with questionable ownership, employing &lt;a href=&quot;https://www.reddit.com/r/VPNReviewHub/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;astro-turfing tactics&lt;/a&gt; to be top-ranked on “top X VPN of 2025” lists.&lt;/p&gt;
&lt;p&gt;Fundamentally, the biggest flaw of existing VPN companies is that they act as your primary man-in-the-middle – seeing both your personal info (connecting IP, email, billing address, etc.) &lt;em&gt;and&lt;/em&gt; your browsing history (thanks to &lt;a href=&quot;https://en.wikipedia.org/wiki/Server_Name_Indication&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;TLS’s SNI extension&lt;/a&gt;).&lt;/p&gt;

				&lt;div class=&quot;mermaid&quot;&gt;
					&lt;p&gt;Loading graph...&lt;/p&gt;
					&lt;pre class=&quot;mermaid-src&quot;&gt;flowchart LR
    user[&quot;User&quot;]
    vpn[&quot;Traditional VPN&quot;]
    internet[&quot;Internet&quot;]
    user --&gt;|knows who you are| vpn --&gt;|...and sees your traffic| internet&lt;/pre&gt;
				&lt;/div&gt;
			
&lt;p&gt;As a result, users must rely on their provider’s pinky-promise that none of their data is logged. Yet even a provider that keeps true to its promise can suffer a security breach and be compromised. This is partly why many privacy-conscious folks will tell you &lt;a href=&quot;https://gist.github.com/joepie91/5a9909939e6ce7d09e29&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;not to use a VPN at all&lt;/a&gt; (&lt;a href=&quot;https://news.ycombinator.com/item?id=21326484&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;HN discussion&lt;/a&gt;).&lt;/p&gt;
&lt;h2 id=&quot;the-2-party-relay-solution&quot;&gt;The 2-Party Relay Solution&lt;/h2&gt;
&lt;p&gt;What if we can do away with this reliance on trust?&lt;/p&gt;
&lt;p&gt;In 2022, Apple’s iCloud Relay team proposed a neat solution (albeit currently limited to just Safari): &lt;strong&gt;using a 2-party relay architecture&lt;/strong&gt;&lt;sup&gt;&lt;a href=&quot;#user-content-fn-1&quot; id=&quot;user-content-fnref-1&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;

				&lt;div class=&quot;mermaid&quot;&gt;
					&lt;p&gt;Loading graph...&lt;/p&gt;
					&lt;pre class=&quot;mermaid-src&quot;&gt;flowchart LR
    user[&quot;User&quot;]
    firsthop[&quot;1st hop&quot;]
    exithop[&quot;2nd (exit) Hop&quot;]
    internet[&quot;Internet&quot;]
    user --&gt;|knows who you are&amp;#x3C;br&gt;but never your traffic| firsthop --&gt; exithop --&gt;|sees your traffic&amp;#x3C;br/&gt;but never who you are| internet&lt;/pre&gt;
				&lt;/div&gt;
			
&lt;p&gt;With 2 independent relay hops in sequence, and by end-to-end encrypting your traffic to the 2nd (exit) hop, this design ensures that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The 1st hop only sees your connecting IP, but can’t decrypt your traffic. It forwards the still-encrypted traffic to the 2nd hop, effectively NAT-ing your connection and masking your IP address from the 2nd hop.&lt;/li&gt;
&lt;li&gt;The 2nd (exit) hop connects you to the internet, but never sees your personal info or IP address since it only knows that the connection is coming from the 1st hop.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This splits “who you are” from “what you do”, meaning neither party can tie your identity to your browsing.&lt;/p&gt;
&lt;p&gt;This simple yet effective design caught on among those in-the-know. At the &lt;a href=&quot;https://en.wikipedia.org/wiki/Internet_Engineering_Task_Force&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;IETF&lt;/a&gt;, the &lt;a href=&quot;https://datatracker.ietf.org/wg/masque/about/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;MASQUE working group&lt;/a&gt;&lt;sup&gt;&lt;a href=&quot;#user-content-fn-2&quot; id=&quot;user-content-fnref-2&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; was formed to standardize a version of this design atop HTTP/3&lt;sup&gt;&lt;a href=&quot;#user-content-fn-3&quot; id=&quot;user-content-fnref-3&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;3&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;h2 id=&quot;collateral-freedom-via-obfuscation&quot;&gt;Collateral Freedom via Obfuscation&lt;/h2&gt;
&lt;p&gt;Though VPN companies often tout their “military-grade encryption”&lt;sup&gt;&lt;a href=&quot;#user-content-fn-4&quot; id=&quot;user-content-fnref-4&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;4&lt;/a&gt;&lt;/sup&gt;, even the strongest encryption won’t help you if your VPN protocol is easily identified and blocked. At worst, this paints a giant target on your back.&lt;/p&gt;
&lt;p&gt;I personally experienced this while living in Shanghai, where the Great Firewall not only blocked sites like Wikipedia, Google, and YouTube, but also actively detected and shut down many VPN protocols. These DPI techniques eventually found their way into common networking appliances, which is why – even outside China – you’ll often find your VPN blocked in airports, hotels, or office networks.&lt;/p&gt;
&lt;p&gt;Newer, more reliable tools and protocols like &lt;a href=&quot;https://github.com/v2ray/v2ray-core&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;v2ray&lt;/a&gt;, &lt;a href=&quot;https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/meek&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;meek&lt;/a&gt;, &lt;a href=&quot;https://github.com/shadowsocks/shadowsocks-rust&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Shadowsocks&lt;/a&gt;, and &lt;a href=&quot;https://github.com/apernet/hysteria&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;hysteria2&lt;/a&gt; had a common theme: &lt;a href=&quot;https://en.wikipedia.org/wiki/Collateral_freedom&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Collateral Freedom&lt;/a&gt; via obfuscation.&lt;/p&gt;
&lt;p&gt;The core insight here is that internet censors (and overzealous network admins) generally still want “permitted” traffic to pass through. So if, on the wire, your protocol can blend in with regular internet traffic (either by mimicking HTTP or via &lt;a href=&quot;https://en.wikipedia.org/wiki/Domain_fronting&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Domain Fronting&lt;/a&gt;), you’re far less likely to be flagged and blocked.&lt;/p&gt;
&lt;h2 id=&quot;obfuscation-without-tcp-over-tcp-meltdown&quot;&gt;Obfuscation without TCP-over-TCP meltdown&lt;/h2&gt;
&lt;p&gt;“Stealth protocols” that obfuscate your traffic over TCP work better, but they suffer from the notorious TCP-over-TCP meltdown problem – leading to significant performance degradation.&lt;/p&gt;
&lt;p&gt;Before QUIC (used by HTTP/3), “blending in” often meant tunneling your IP packets over TCP (used by HTTP/1 and HTTP/2). But as explained in &lt;a href=&quot;https://web.archive.org/web/20220826224137/http://sites.inka.de/~bigred/devel/tcp-tcp.html&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;“Why TCP Over TCP Is A Bad Idea”&lt;/a&gt; (&lt;a href=&quot;https://news.ycombinator.com/item?id=25080693&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;HN discussion&lt;/a&gt;), layering TCP connections leads to conflicts in TCP’s retransmission mechanism, resulting in reduced goodput and stuttery performance&lt;sup&gt;&lt;a href=&quot;#user-content-fn-5&quot; id=&quot;user-content-fnref-5&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;5&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;What TCP expects is that it be run over IP – an &lt;em&gt;unreliable&lt;/em&gt; network.&lt;/p&gt;
&lt;p&gt;This is where QUIC comes in: QUIC is UDP-based, with congestion control moved up the stack. This allows TCP connections to be tunneled via QUIC’s &lt;em&gt;unreliable&lt;/em&gt; transmission&lt;sup&gt;&lt;a href=&quot;#user-content-fn-6&quot; id=&quot;user-content-fnref-6&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;6&lt;/a&gt;&lt;/sup&gt;, avoiding retransmission conflicts altogether.&lt;/p&gt;
&lt;p&gt;This was the unspoken insight behind MASQUE’s choice of transport – by using QUIC, tunneling protocols not only blend in with QUIC and HTTP/3 traffic, but also avoid TCP-over-TCP meltdown.&lt;/p&gt;
&lt;h2 id=&quot;obscura&quot;&gt;Obscura&lt;/h2&gt;
&lt;p&gt;These 2 recent advances – the 2-party relay architecture and QUIC’s unreliable transport – are the perfect ingredients for a new generation of VPN services. VPN services that don’t rely on trust for privacy, and that are hard to detect/block without sacrificing performance.&lt;/p&gt;
&lt;p&gt;That is exactly what we’ve done with Obscura.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;With our 2-party setup, Obscura operates the 1st hop, and we’re proud to partner with Mullvad&lt;sup&gt;&lt;a href=&quot;#user-content-fn-7&quot; id=&quot;user-content-fnref-7&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;7&lt;/a&gt;&lt;/sup&gt; who operates the 2nd (exit) hop.
As the WireGuard packets are end-to-end encrypted to Mullvad’s servers&lt;sup&gt;&lt;a href=&quot;#user-content-fn-8&quot; id=&quot;user-content-fnref-8&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;8&lt;/a&gt;&lt;/sup&gt;, we never see any parts of your packet in plaintext (not even SNI). In fact, you can check your connected server’s public key in the Obscura App against those listed on &lt;a href=&quot;https://mullvad.net/servers&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Mullvad’s server page&lt;/a&gt;!&lt;/li&gt;
&lt;li&gt;For obfuscation, we use &lt;a href=&quot;https://github.com/quinn-rs/quinn&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;quinn-rs&lt;/a&gt;’s implementation of &lt;a href=&quot;https://datatracker.ietf.org/doc/rfc9221/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;RFC 9221&lt;/a&gt; to tunnel WireGuard packets over QUIC.
With QUIC’s unreliable transport, we’ve made Obscura much harder to block without sacrificing performance.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As you may have gathered, we take your trust very seriously&lt;sup&gt;&lt;a href=&quot;#user-content-fn-9&quot; id=&quot;user-content-fnref-9&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;9&lt;/a&gt;&lt;/sup&gt;. So of course our app’s entire source code is &lt;a href=&quot;https://github.com/Sovereign-Engineering/obscuravpn-client&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;on GitHub&lt;/a&gt; for you to verify for yourself, and we plan to soon provide reproducible builds of our app&lt;sup&gt;&lt;a href=&quot;#user-content-fn-10&quot; id=&quot;user-content-fnref-10&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;10&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;h2 id=&quot;an-open-and-private-internet&quot;&gt;An open and private internet&lt;/h2&gt;
&lt;p&gt;The internet – our digital commons – deserves to be open and private.&lt;/p&gt;
&lt;p&gt;While authoritarian politicians aim to erode our freedoms online, we have the duty as technologists to wield our skills and defend our rights in the digital space. As Eric Hughes wrote in &lt;a href=&quot;https://www.activism.net/cypherpunk/manifesto.html&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;A Cypherpunk’s Manifesto&lt;/a&gt;: “We must defend our own privacy if we expect to have any.”&lt;/p&gt;
&lt;p&gt;Obscura is our humble contribution to the cause. We hope you’ll &lt;a href=&quot;https://obscura.net/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;check it out&lt;/a&gt;, and we’ll see you on the free and open internet. 🏄&lt;/p&gt;
&lt;section data-footnotes=&quot;&quot; class=&quot;footnotes&quot;&gt;&lt;h2 class=&quot;sr-only&quot; id=&quot;footnote-label&quot;&gt;Footnotes&lt;/h2&gt;
&lt;ol&gt;
&lt;li id=&quot;user-content-fn-1&quot;&gt;
&lt;p&gt;Essentially Tor’s &lt;a href=&quot;https://2019.www.torproject.org/docs/tor-manual.html.en#HiddenServiceSingleHopMode&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;HiddenServiceSingleHopMode&lt;/code&gt;&lt;/a&gt; option &lt;a href=&quot;#user-content-fnref-1&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 1&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;user-content-fn-2&quot;&gt;
&lt;p&gt;A praise-worthy name! &lt;a href=&quot;#user-content-fnref-2&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 2&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;user-content-fn-3&quot;&gt;
&lt;p&gt;I was actually fortunate enough to attend the MASQUE working group in-person, where I met fellow nerds who shared tales of their &lt;a href=&quot;https://quiche.googlesource.com/quiche/+/cb6b51054274cb2c939264faf34a1776e0a5bab7&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;battles with middleboxes&lt;/a&gt; and patiently listened to my ramblings about my own attempt at implementing &lt;a href=&quot;https://datatracker.ietf.org/doc/rfc9298/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;RFC 9298&lt;/a&gt;. &lt;a href=&quot;#user-content-fnref-3&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 3&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;user-content-fn-4&quot;&gt;
&lt;p&gt;Personally, I’d find “djb-grade encryption” a more compelling pitch &lt;a href=&quot;#user-content-fnref-4&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 4&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;user-content-fn-5&quot;&gt;
&lt;p&gt;I previously wrote about this &lt;a href=&quot;https://blog.carldong.me/2023/05/03/why-do-vpns.html&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt; &lt;a href=&quot;#user-content-fnref-5&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 5&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;user-content-fn-6&quot;&gt;
&lt;p&gt;Standardized as &lt;a href=&quot;https://datatracker.ietf.org/doc/rfc9221/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;RFC 9221&lt;/a&gt; &lt;a href=&quot;#user-content-fnref-6&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 6&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;user-content-fn-7&quot;&gt;
&lt;p&gt;who we consider one of the most trustworthy VPN providers &lt;a href=&quot;#user-content-fnref-7&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 7&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;user-content-fn-8&quot;&gt;
&lt;p&gt;Your locally-generated WireGuard pubkey is registered with Mullvad’s servers, and WireGuard’s regular &lt;code&gt;Noise_IK&lt;/code&gt; handshake happens between you and the Mullvad exit server. &lt;a href=&quot;#user-content-fnref-8&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 8&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;user-content-fn-9&quot;&gt;
&lt;p&gt;and we actively work to eliminate the need for trust wherever we can &lt;a href=&quot;#user-content-fnref-9&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 9&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;user-content-fn-10&quot;&gt;
&lt;p&gt;I previously led the effort to revamp Bitcoin Core’s reproducible builds system to be &lt;a href=&quot;https://bootstrappable.org/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;bootstrappable&lt;/a&gt;, work that is &lt;a href=&quot;https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/32523&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;referenced by the Tor project&lt;/a&gt;. &lt;a href=&quot;#user-content-fnref-10&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 10&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;</content:encoded><category>Tech</category></item></channel></rss>