Jump to content

Domain fronting

From Wikipedia, the free encyclopedia
After TLS encryption is established, the HTTP header reroutes to another domain hosted on the same CDN.

Domain frontingis a technique forInternet censorship circumventionthat uses differentdomain namesin different communication layers of anHTTPS connectionto discreetly connect to a different target domain than that which is discernable to third parties monitoring the requests and connections.

Due to quirks insecurity certificates,the redirect systems of thecontent delivery networks(CDNs) used as 'domain fronts', and the protection provided by HTTPS, censors are typically unable to differentiate circumvention ( "domain-fronted" ) traffic from overt non-fronted traffic for any given domain name. As such they are forced to either allow all traffic to the domain front—including circumvention traffic—or block the domain front entirely, which may result in expensive collateral damage and has been likened to "blocking the rest of the Internet".[note 1]

Domain fronting is achieved by a mismatch of theHTTPHost header and theTLS SNI extension.The standard that defines the SNI extension discourages such a mismatch but does not forbid it.[2]Many large cloud service providers, including Amazon, Microsoft, and Google, actively prohibit domain fronting, which has limited it as a censorship bypass technique. Pressure from censors in Russia and China is thought to have contributed to these prohibitions,[3][4][5]but domain fronting can also be used maliciously.

A newer variant of domain fronting, domain hiding, passes an encrypted request for one resource (say, a website), concealed behind an unencrypted (plaintext) request for another resource whose DNS records are stored in the same cloud. It has much the same effect.[3]Refraction networkingis an application of the broader principle.

Technical details

[edit]

Basis

[edit]

The basis for domain fronting is using different domain names at different layers of communication with the servers (that supports multiple target domains; i.e.Subject Alternative Names) of a largehosting provideror acontent delivery network(CDN). CDNs are used due to idiosyncrasies in how they route traffic and requests, which is what allows fronting to work.[6][7]

Obfuscating requests

[edit]

In anHTTPSrequest, the destination domain name appears in three relevant places: theDNS query,the TLSServer Name Indication(SNI) extension, and the HTTPS Host header. Ordinarily the same domain name is listed in all three places.[8]: 1 

In a domain-fronted HTTPS request, one domain appears on the “outside” of an HTTPS request in plain text—in the DNS request and SNI extension—which will be what the client wants to pretend they are targeting in the connection establishment and is the one that is visible to censors, while a covert domain appears on the “inside” —in the HTTPS Host header, invisible to the censor under HTTPS encryption—which would be the actual target of the connection.[6][8]: 2 

# wget sends a DNS query and connects to google but the HTTP Host header requests
# the youtube webpage, which it is able to fetch and display. Here youtube
# is essentially domain-fronted by google; that is, by blocking youtube
# but allowing google, a censor may be trivially bypassed using a domain-fronted request
wget-q-O-https:// google /--header'Host: youtube '|grep-o'<title>.*</title>'
<title>YouTube</title>

Due to encryption of the HTTPS hosts header by the HTTPS protocol, circumvention traffic is indistinguishable from 'legitimate' (non-fronted) traffic. Implementations of domain fronting supplement HTTPS with using large content delivery networks (such as various large CDNs) as their front domains,[8]which are relied on by large parts of the web for functionality.[9]To block the circumvention traffic, a censor will have to outright block the front domain.[8]Blocking popular content delivery networks is economically, politically, and diplomatically infeasible for most censors.[9][6]

When Telegram was blocked in April 2018 following a court ruling in Russia through ISP-blocking of the CDNs Telegram used as a front to evade blocks on its own IP addresses, 15.8 million IP addresses associated with Google and Amazon's CDN were blocked collaterally. This resulted in a large scalenetwork outagesfor major banks, retail chains, and numerous websites; the manner of blocking was criticised for incompetence.[10]

Leveraging request forwarding

[edit]

Domain fronting works with CDNs as—when served with two different domains in one request—they are (or historically speaking—they were; see§Disabling) configured to automatically fulfill a request to view/access the domain specified in the Hosts header even after finding the SNI extension to have a different domain. This behaviour was and is not universal across hosting providers; there are services that validate if the same domain is used in the different layers of an HTTP request. A variation of the usual domain fronting technique, known asdomainlessfronting may work in this case, which leaves the SNI field blank.[11]

If the request to access the Hosts header domain succeeds, to the censor or third parties monitoring connections, it appears that the CDN has internally forwarded the request to an uninteresting page within its network; this is the final connection they typically monitor. In circumvention scenarios, the domain in the Hosts header will be aproxy.The Hosts header domain, being a proxy, would be blocked by the censor if accessed directly; fronting hides its address from the censor and allows parties to evade blocks and access it. No traffic ever reaches the front domain specified in the DNS request and SNI extension; the CDN's frontend server is the only third-party in this interaction that can decrypt the Hosts header and know the true destination of the covert request. It is possible to emulate this same behaviour with host services that don't automatically forward requests, through a "reflector" web application.[8]: 2 

As a general rule, web services only forward requests to their own customers' domains, not arbitrary ones. It is necessary then for the blocked domains, that use domain fronting, to also be hosted by the same large provider as the innocuous sites they will be using as a front in their HTTPS requests (for DNS and STI).[8]: 2 

Domain hiding

[edit]

Common secure internet connections (usingTLS) have an unencrypted initial message, where the requesting client contacts the server. Server and client thennegotiate an encrypted connection,and the actual content sent between them is encrypted. This conceals the content of the communication, but not themetadata:who is connecting to whom and when and how much they are communicating.[12][13]A variant of domain fronting, domain hiding, passes an encrypted request for one resource (say, a website), concealed behind an unencrypted (plaintext) request for another resource. If both resources have theirDNS recordshosted in the same cloud, internet servers reading the plaintext address will forward the request to the correct recipient, the cloud. The cloud server will then negotiate an encrypted connection, ignore the unencrypted address, and deliver the message to the (different) address sent over the encrypted channel. A third party spying on the connection can only read the plaintext, and is thus misled as to what resource the requester is connecting to.[3]

Usage

[edit]

Internet censorship circumvention

[edit]

Lantern

[edit]

Lantern (software)was affected.[14]

Signal

[edit]

Signal,a secure messaging service, deployed domain fronting in builds of their apps from 2016 to 2018 to bypass blocks of direct connections to their servers from Egypt, Oman, Qatar and the United Arab Emirates.[15][9]

Tor Browser

[edit]

TheTor anonymity networkuses an implementation of domain fronting called 'meek' in its official web browser to bypass blocks to the Tor network.[7][9][6]

Telegram

[edit]

TelegramusedAmazon Web Servicesas a domain front to resist attempts to block the service in Russia.[16]

Telex

[edit]

Telexwas affected.[14]

Tor

[edit]

Torwas affected, including pluggable transports obsf4, ScrambleSuite, meek, and meek_lite.[14]

GreatFire

[edit]

GreatFire,a non-profit that assists users in circumventing theGreat Firewall,used domain fronting at one point.[9]

Cyberattacks

[edit]

Domain fronting has been used by private, and state-sponsored individuals and groups to cover their tracks and discreetly launchcyberattacksand disseminatemalware.[9][6]

Cozy Bear

[edit]

The Russianhacker groupCozy Bear,classed asAPT29,has been observed to have used domain fronting to discreetly gain unauthorised access to systems by pretending to be legitimate traffic from CDNs. Their technique used the meek plugin—developed by the Tor Project for its anonymity network—to avoid detection.[17][18][19]

Disabling

[edit]

The endurance of domain fronting as a method for censorship circumvention has been attributed to the expensive collateral damage of blocking. To block domain fronting, one must block all traffic to and from the fronts (CDNs and large providers), which by design are often relied on by countless other web services.[9]TheSignal Foundationdrew the analogy that to block one domain fronted site you "have to block the rest of the Internet as well."[20]

Russia faced such a problem when they attempted to blockTelegram(a messaging app using domain fronting), by blocking allGoogleandAmazonservers. This blocked many unrelated web services (such as banking websites and mobile apps) that used content from the Google and Amazon clouds.[21][22] It did not succeed in blocking Telegram.[23]The ban and blocks began on April 13, 2018.[24]

On April 14, 2018, Google silently blocked domain fronting in their cloud, and on April 27, Amazon announced they were blocking it.[25]Cloudflare,another major cloud, also blocked it.[4][5]Akamaiwas also affected.[26][25]Initially Microsoft (whose cloud is needed for Microsoft cloud services and live updates, among other things) did not follow,[25]but in March 2021, Microsoft announced an intention of banning domain fronting in theMicrosoft Azurecloud.[27]

Cloudflare had disabled domain fronting in 2015.[28]

In April 2018, Google and Amazon both disabled domain fronting from their content delivery services by removing the idiosyncrasies in redirect schemes that allowed fronting to happen.[29]Google broke domain fronting by removing the ability to use 'google ' as a front domain by changing how their CDN was structured.[30]When requested to comment they said domain fronting had "never been a supported feature" and that the changes made were long-planned upgrades.[31][30][32]Amazon claimed fronting was "already handled as a breach of AWS Terms of Service" and implemented a set of changes that prohibited the obfuscation that allowed sites to masquerade as and use CloudFront domains of other websites as fronts.[33][20][34]

Reactions

[edit]

Various publications speculated that the effort by both Google and Amazon was in part due to pressure from theRussian governmentand its communications authorityRoskomnadzorblocking millions of Google and Amazon domains, in April 2018 as well, due toTelegramusing them as fronts.[35][30][36][37][4][5]

Digital rights advocates have commented that the move undermines people's ability to access and transmit information freely and securely in repressive states.[38]

According to Signal's founder,Moxie Marlinspike,Google management came to question whether they wanted to act as a front for sites and services entire nation states wanted to block as domain fronting gained popular attention with apps like Signal implementing it. He called using fronting in a circumvention tool "now largely non-viable" in the countries it was needed.[20]It is, however, still used by some services, such as Tor and Lantern.

See also

[edit]

Notes

[edit]
  1. ^Quotes byMoxie Marlinspike,creator of Signal.[1]

References

[edit]
  1. ^Marlinspike, Moxie(1 May 2018)."A letter from Amazon".Signal.
  2. ^Eastlake 3Rd, Donald E. (January 2011)."IETF RFC 6066 section 3".{{cite web}}:CS1 maint: numeric names: authors list (link)
  3. ^abcCimpanu, Catalin (August 8, 2020)."DEF CON: New tool brings back 'domain fronting' as 'domain hiding'".ZDNET.
  4. ^abc"Why You Don't Need Google's Domain Fronting".PsiphonProject. April 24, 2018.
  5. ^abcDou, Eva; Barr, Alistair."U.S. Cloud Providers Face Backlash From China's Censors".The Wall Street Journal.
  6. ^abcde"Privacy 2019: Tor, Meek & The Rise And Fall Of Domain Fronting".SentinelOne.2019-04-15.Retrieved2020-06-30.
  7. ^ab"doc/meek – Tor Bug Tracker & Wiki".trac.torproject.org.Retrieved2017-01-04.
  8. ^abcdefFifield, David; Lan, Chang; Hynes, Rod; Wegmann, Percy; Paxson, Vern (15 February 2015)."Blocking-resistant communication through domain fronting"(PDF).Proceedings on Privacy Enhancing Technologies.2015(2): 46–64.doi:10.1515/popets-2015-0009.ISSN2299-0984.S2CID5626265.Retrieved2017-01-03– via De Gruyter.
  9. ^abcdefg"The Death of Domain Fronting | What Lies Ahead?".Finjan Blog.2018-06-11. Archived fromthe originalon 2020-07-03.Retrieved2020-06-30.
  10. ^Savov, Vlad (2018-04-17)."Russia's Telegram ban is a big, convoluted mess".The Verge.Retrieved2020-08-10.
  11. ^"Proxy: Domain Fronting, Sub-technique T1090.004 - Enterprise | MITRE ATT&CK®".attack.mitre.org.Retrieved2020-09-28.
  12. ^Ghedini, Alessandro (24 September 2018)."Encrypt it or lose it: how encrypted SNI works".The Cloudflare Blog.RetrievedSeptember 24,2018.
  13. ^Patton, Christopher (8 December 2020)."Good-bye ESNI, hello ECH!".The Cloudflare Blog.
  14. ^abcWhite, Nathan (18 April 2018)."Google ends" domain fronting, "a crucial way for tools to evade censors".Access Now.
  15. ^"Open Whisper Systems >> Blog >> Doodles, stickers, and censorship circumvention for Signal Android".whispersystems.org.Retrieved2017-01-04.
  16. ^Brandom, Russell (2018-04-30)."Amazon Web Services starts blocking domain-fronting, following Google's lead".The Verge.Retrieved2020-08-08.
  17. ^"APT29 Domain Fronting With TOR".FireEye.Retrieved2020-09-28.
  18. ^"Domain Fronting, Phishing Attacks, and What CISOs Need to Know".Cofense.2018-12-13.Retrieved2020-09-28.
  19. ^Brandom, Russell (18 April 2018)."A Google update just created a big problem for anti-censorship tools".The Verge.
  20. ^abcMarlinspike, Moxie (2018-05-01)."A letter from Amazon".Signal.Archivedfrom the original on 2018-05-01.Retrieved2020-09-16.
  21. ^Cimpanu, Catalin."Russia Bans 1.8 Million Amazon and Google IPs in Attempt to Block Telegram".BleepingComputer.
  22. ^Cimpanu, Catalin (June 18, 2020)."Russia unbans Telegram".ZDNET.
  23. ^Burgess, Matt (28 April 2018)."This is why Russia's attempts to block Telegram have failed".Wired UK.
  24. ^MacFarquhar, Neil (13 April 2018)."Russian Court Bans Telegram App After 18-Minute Hearing".The New York Times.Archivedfrom the original on 13 April 2018.Retrieved13 April2018.
  25. ^abcMates, Matan (15 April 2019)."Tor, Meek & The Rise And Fall Of Domain Fronting".SentinelOne.
  26. ^"Implementing Malware Command and Control Using Major CDNs and High-Traffic Domains".cyberark.
  27. ^Jones, Emma (26 March 2021)."Securing our approach to domain fronting within Azure".Microsoft Security Blog.
  28. ^"#14256 (Clarify whether Cloudflare's Universal SSL thing works with meek) – Tor Bug Tracker & Wiki".Tor Bug Tracker.Retrieved12 May2020.
  29. ^"Domain fronting: pros and cons | NordVPN".nordvpn.2019-07-12.Retrieved2020-09-16.
  30. ^abcGallagher, Sean (2018-05-02)."Amazon blocks domain fronting, threatens to shut down Signal's account".Ars Technica.Retrieved2020-09-16.
  31. ^Brandom, Russell."A Google update just created a big problem for anti-censorship tools".The Verge.Retrieved2018-04-19.
  32. ^"Google ends" domain fronting, "a crucial way for tools to evade censors - Access Now".18 April 2018.
  33. ^"Enhanced Domain Protections for Amazon CloudFront Requests".2018-04-27.
  34. ^"Amazon Web Services starts blocking domain-fronting, following Google's lead".2018-04-30.
  35. ^"Amazon and Google bow to Russian censors in Telegram battle".Fast Company.2018-05-04.Retrieved2018-05-09.
  36. ^Bershidsky, Leonid (May 3, 2018)."Russian Censor Gets Help From Amazon and Google".Bloomberg.
  37. ^"Info".Tass.ru.Retrieved2018-11-14.
  38. ^Dahir, Abdi Latif (3 May 2018)."Google and Amazon's move to block domain fronting will hurt activists under repressive regimes".Quartz Africa.Retrieved2020-09-16.
[edit]