iCloud Private Relay

Logo of Apple iCloud

Apple has come up with a privacy preserving web traffic relay for its Safari users. When we browse the web, we request DNS queries and our IP address gets sent to the DNS provider as well as the websites we visit. Apple has come up with a solution, which it states is "designed to protect your privacy by ensuring that when you browse the web in Safari". This article aims to explain how this works. iCloud Private Relay has three jobs to play:

  1. Routing DNS queries via an oblivious DNS
  2. Upgrades HTTP requests to HTTPS requests
  3. Hides user's IP address to the websites

Apple claims "no single party—not even Apple—can see both who you are and what sites you're visiting." This means not even the Internet Service Provider (ISP) can snoop on the user. In this article, we'll discuss how this works.


1. Oblivious DNS over HTTPS (ODoH)

Apple has partnered with Cloudflare and Fastly to set up oblivious DNS, which we'll understand from the below diagram 👇


A picture explaining how an oblivious DNS works

The user establishes an HTTPS connection with a proxy, which forwards the message from the user to the target. The user acts as the same in the case of DNS and DoH, and holds the encryption key (to encrypt queries to the target) as well as the decryption key (to decrypt the DNS's response). Cloudflare tells encryption and proxying has the following guarantees:

  1. The target sees only the query and the proxy’s IP address.
  2. The proxy has no visibility into the DNS messages, with no ability to identify, read, or modify either the query being sent by the user or the answer being returned by the target.
  3. Only the intended target can read the content of the query and produce a response.

These three guarantees improve user privacy while maintaining the security and integrity of DNS queries. However, each of these guarantees relies on one fundamental property — that the proxy and the target servers do not collude. So long as there is no collusion, an attacker succeeds only if both the proxy and target are compromised.

Cloudflare tells it also adds end-to-end encryption between the user and the target, over TLS/HTTPS, to not make it anyhow possible for the ISP to know what sites is the user visiting or what is his/her IP address. The "target" here refers to the website as well as the DNS provider.

Long story short, this means Cloudflare (1.1.1.1) as well as the website will not receive the user's IP address, having a great positive impact on user's privacy.


Note: The proxy here is the Egress proxy, which we'll discuss in the third section.


2. Upgrades HTTP requests to HTTPS


A picture demonstrating HTTP to HTTPS upgrade

This upgrade is obvious, with HTTP the ISP can know exactly what the user is doing. Making this upgrade shifts a non-encrypted traffic to an encrypted traffic, helping in maintaining the "web of trust".


3. Hiding IP address to websites

In order to hide the user's IP address, Apple sets up two proxies:

  1. Ingress Proxy
  2. Egress Proxy

(a) Ingress Proxy

The Ingress proxy does the following things:

  1. Accepts connection from the internet
  2. Protects IP address from other servers
  3. Encrypts all internet traffic

(b) Egress Proxy

The Egress proxy does the following things:

  1. Accepts connection from the internet
  2. Prevents Ingress proxy from seeing which websites are contacted

After understanding these two proxies, let's dive into understanding how these works in order to protect user privacy with the below diagram 👇


A picture explaining how iCloud Private Relay works

The user connects to the Ingress proxy, which gets the IP address to know the area in which the user lives, via HTTPS. Then, the user requests to the Egress proxy via HTTPS, which knows the area where the user lives, and not the IP address with the requested website, and prevents the Ingress proxy from getting information about the requested website. With knowing the area in which the user lives, the Egress proxy assigns a random IP address from the area to the traffic, not using user's real IP address, and requests to the website, taking the information, moving back forth.


In order to make sure only one party doesn't have control over both the proxies, it may happen later in the future that the ingress proxy is operated by Apple and the egress proxy from Cloudflare or Fastly.

Conclusion

The whole iCloud Private Relay looks a good privacy step from Apple protecting user privacy to a great extent. From this the user can get assured:


  1. The DNS provider doesn't know him/her.
  2. Insecure HTTP requests will be automatically upgraded to HTTPS.
  3. The Ingress proxy doesn't know which site the user is visiting.
  4. The Egress proxy doesn't know the IP address of the user.
  5. The website knows the IP address of the Egress proxy, and not the user's real IP address.

Currently iCloud Private Relay is in its Beta stage (in iOS 15, iPadOS 15, and macOS Monterey) and not available in all countries and regions. It requires an iCloud+ subscription.


Sources

  1. iCloud Private Relay vs VPN vs Tor - Sun Knudsen | YouTube
  2. About iCloud Private Relay - Apple Support
  3. Apple’s privacy pillars in focus - Apple Developer
  4. Improving DNS Privacy with Oblivious DoH in 1.1.1.1 - The Cloudflare Blog
  5. Why Fastly and Cloudflare Shares Jumped Today (and Akamai Ticked Higher) - The Motley Fool



MIT License

Privacy Policy