• Latest
  • Trending
  • All
Official Google diagram of a client connection in three numbered steps: a DNS lookup with a query and an address, a TLS ClientHello and ServerHello, then a content exchange with a website. A callout on the DNS step reads 25% of global web traffic is now protected by encrypted DNS, and a callout beside an Android phone on the ClientHello step reads Android 17 supports ECH GREASE by default.

Android 17 hides the SNI, not your DNS or destination

3 September 2026
Answer card for Claude Opus 5.5: 4 dollars in and 20 dollars out per million tokens, down from 5 and 25, with cache reads at 20 cents.

Claude Opus 5.5 drops to $4 and $20, and breaks four Opus 5 habits

23 September 2026
The official xAI announcement card for Grok 4.7, white type on a dark grey and navy gradient.

Grok 4.7 keeps $2 and $6, and its gains over 4.6 are xhigh versus high

22 September 2026
Answer card stating that Qwen-Image-2.1, released on 20 September 2026, ships open weights with a 7 billion parameter diffusion transformer, a Qwen3-VL 8B text encoder and an RGBA VAE totalling about 33 gigabytes in BF16, under the Qwen Research License that limits use to research or evaluation and requires a separate commercial licence, unlike the Apache 2.0 licence of Qwen-Image 1.0.

Qwen-Image-2.1 brings the weights back, but not the Apache licence

21 September 2026
Answer card stating that Ternary Bonsai 2 27B, released by PrismML on 17 September 2026 under Apache 2.0, packs Qwen3.8 27B into 5.95 gigabytes at 1.72 bits per weight, keeps 98.2 percent of the 14-benchmark average, about 75 percent on SWE-bench Verified and Terminal-Bench 2.1, and needs PrismML's llama.cpp fork to run.

Does Bonsai 2 27B really keep 98% of Qwen3.8 in 5.95 GB?

20 September 2026
Answer card stating that Jev 1.13 from TypeSafe AI is a decision model in early access since 15 September 2026 that returns typed probabilities instead of text, priced at 42 dollars per billion input tokens with output tokens free, answering in 70 to 500 milliseconds, with a 64K token request budget, text input only, and a documented list of things it does badly, including counting and dates.

Jev 1.13 bills $42 a billion tokens, and it can’t count

19 September 2026
Answer card stating that Qwen3.8-Omni-Flash launched on 17 September 2026 as an API only model on Alibaba Cloud Model Studio, taking text, images, audio and video in a 1M token context and returning text only, priced at 0.15 dollars per million input tokens for every modality and 0.47 dollars per million output tokens in the international regions, with no open weights published and the Qwen-Live Harness GitHub repository returning 404.

Qwen3.8-Omni-Flash bills audio at $0.15 and ships no weights

18 September 2026
Answer card stating that on 15 September 2026 AWS said it is unable to restore access to resources and data hosted exclusively in the Middle East Bahrain region me-south-1 and in the mec1-az2 zone of the UAE region, because the damage spanned multiple Availability Zones and exceeded what multi-AZ services are designed to withstand.

AWS can’t restore me-south-1, six months after the drone strikes

17 September 2026
Answer card stating that Google released Gemini 3.8 Live and Gemini 3.8 Live Extended Thinking on 15 September 2026 at 3 dollars per million audio input tokens and 12 dollars out, that the thinking model requires asynchronous tools, and that Artificial Analysis scores it 82.6 on its Speech to Speech Quality Index.

Gemini 3.8 Live Extended Thinking rejects any tool that blocks

16 September 2026
Answer card summarising the Atria Dawn Preview release: 744B GLM-5.2 base, MIT licence, 1.5 TB BF16 and 756 GB FP8 checkpoints, 256K context, top on five of sixteen benchmark rows and trailing on SWE-bench Pro.

Atria Dawn Preview is 744B under MIT, and the BF16 weighs 1.5 TB

15 September 2026
Answer card stating that OpenAI released the Agents API in public beta on 10 September 2026 with no separate fee, billed through model tokens, tool calls and hosted sandbox time, with a choice of OpenAI hosted, self hosted or partner sandboxes, US only data residency and no Zero Data Retention support.

OpenAI’s Agents API has no fee, no ZDR and a one hour sandbox clock

14 September 2026
Answer card: Sakana Fugu Max at $2 and $6 per million tokens, Fugu Ultra v2 unchanged at $5 and $30, and Sakana saying Ultra v2 scores without Fable 5 or GPT-6 Astra in its pool.

Fugu Max costs $2 and $6 while Fugu Ultra v2 runs without Fable 5

13 September 2026
Answer card stating that DeepSeek released DeepSeek-V4.1-Flash on 10 September 2026 as a 552 billion parameter mixture of experts model with a new causal encoder decoder architecture that activates 8 billion parameters on input and 16 billion on output, with native vision, a one million token context and MIT licensed weights, that the API model name is now deepseek-flash at 0.15 dollars per million input tokens and 0.60 dollars per million output tokens off peak, and that DeepSeek announced V4 Pro would be routed to V4.1-Flash from 14 September and reversed that on 11 September.

DeepSeek V4.1-Flash arrived, and the V4 Pro retirement lasted a day

12 September 2026
  • About
  • Contact
  • Privacy
  • Legal
Wednesday, September 23, 2026
  • Login
Packet Nebula
  • Home
  • Articles
    • Security
    • Network
    • Dev
    • Sysadmin
    • SEO
    • Email & DNS
  • Tools
    • Network tools: free, fast, no signup
    • Security tools: free, fast, no signup
    • Developer tools: free, fast, no signup
    • Sysadmin tools: free, fast, no signup
    • SEO tools: free, fast, no signup
    • Email & DNS tools: free, fast, no signup
  • Download
  • About
No Result
View All Result
Packet Nebula
No Result
View All Result
Home Network

Android 17 hides the SNI, not your DNS or destination

by stephane
3 September 2026
in Network
0
Official Google diagram of a client connection in three numbered steps: a DNS lookup with a query and an address, a TLS ClientHello and ServerHello, then a content exchange with a website. A callout on the DNS step reads 25% of global web traffic is now protected by encrypted DNS, and a callout beside an Android phone on the ClientHello step reads Android 17 supports ECH GREASE by default.
497
SHARES
1.4k
VIEWS
Share on FacebookShare on Twitter

Somebody on the network team pulls a capture off the guest wifi, filters for TLS, and half the hostnames are gone. The Android half. That is Android 17 doing what Google announced on 27 August: Encrypted Client Hello is on by default, so the SNI field that used to spell out the destination in clear text is encrypted now. What most of the coverage skipped is how narrow that is. We went through the developer docs, and the short version is that your DNS query still carries the same hostname unless the device uses private DNS, the destination IP never moved, and ECH only fires when four separate things line up. Miss one and Android still sends an ECH extension. It is just full of random bytes.

The short answer

Android 17 enables Encrypted Client Hello by default for apps that target API 37. It encrypts the SNI in the TLS handshake, so a box on the path stops reading the hostname there. It does not touch your DNS query or your destination IP. And it only encrypts anything when the app, its HTTP library, DNS and the far end server all cooperate. Otherwise Android sends decoy bytes that look identical on the wire.

API 37the target level that switches ECH on
5.5.0the OkHttp release Google points developers at
740internet providers Jigsaw tested GREASE across
Answer card stating that on 27 August 2026 Google announced that Android 17 enables Encrypted Client Hello by default for apps targeting application programming interface level 37, that Encrypted Client Hello encrypts the Server Name Indication in the transport layer security handshake so network observers stop reading the hostname, that the domain name still appears in the plain text domain name system query unless the device uses private domain name system, that the destination internet protocol address and the traffic volume are unchanged, and that Google tells developers to upgrade to OkHttp version 5.5.0 and enable Encrypted Client Hello.
One card. The feature is real and the scope is smaller than the headlines.

What the 27 August post actually says

Official Google diagram of a client connection in three numbered steps: a DNS lookup with a query and an address, a TLS ClientHello and ServerHello, then a content exchange with a website. A callout on the DNS step reads 25% of global web traffic is now protected by encrypted DNS, and a callout beside an Android phone on the ClientHello step reads Android 17 supports ECH GREASE by default.

Image: Google

The mechanism first, because it is the part people get backwards. HTTPS has always encrypted the page. The ClientHello that opens the connection has always named the site in clear, because the server needs to know which certificate to hand back. ECH wraps that inner ClientHello in encryption only the destination can open and sends an outer one carrying the provider’s public name instead. Google calls Android 17 the first major mobile OS with broad ECH support and says it works in tandem with private DNS, which is a more honest framing than most of what got written about it.

Read Google’s own diagram above for the giveaway. The 25 percent figure sits on the DNS step, not the TLS step. Encrypted DNS covers a quarter of global web traffic by their count, which means for the other three quarters the hostname is already out loud, one round trip before the handshake ECH just protected.

Three more changes landed in the same post, on the same handsets. Certificate Transparency is now on by default, so a certificate has to be logged in a public registry. Local Network Protection is enforced, meaning an app has to hold permission before it scans for or connects to devices on your LAN. And participating carriers can switch 2G off for their subscribers with nothing required from the user. That LAN one probably deserves its own article, because it quietly changes what a mobile app can discover on a corporate wifi.

Checklist separating what Encrypted Client Hello on Android 17 removes from what a network operator can still observe, listing on the removed side the Server Name Indication in the ClientHello and the fact that Certificate Transparency is also on by default in Android 17, and on the still visible side the plain text domain name system query when private domain name system is not configured, the destination internet protocol address and the traffic volume, the public name of the content delivery network that the outer ClientHello now carries, and the hostname based filtering and transport layer security inspection rules that stop matching.
Two things go away. Four do not.

What it costs you, if you run the network

If you filter, log or bill on SNI, those rules stop matching for Android 17 traffic that clears every gate below. That is the whole operational story, and it is enough.

Two consequences worth planning for. Hostname policy needs a second source of truth, and the obvious one is DNS: run the resolver, enforce there, and Android’s own private DNS setting works with you rather than against you. If your policy instead lives in a TLS inspection box keyed on the SNI it reads off the wire, that box now sees a provider’s public name on some connections and a real hostname on others, with no way to tell which is which from the extension alone. Second thing, and the one that will actually bite: go check what your rules do when the hostname is missing rather than wrong. Most fail open. Ours did.

Honestly, both readings of this are correct at the same time. It is a genuine privacy win for someone on a hostile network, and a real headache for someone running an honest one. Google picked a side, and I think they picked the right one, though the people who have to rewrite a filtering policy this quarter are allowed to be annoyed about it.

Four gates, then encryption

Diagram of the four conditions that must all hold before Encrypted Client Hello actually encrypts the Server Name Indication on Android 17, namely that the application targets application programming interface level 37, that its networking library supports Encrypted Client Hello such as OkHttp 5.5.0 or WebView or HttpEngine, that the domain name system returns an HTTPS resource record carrying an EchConfigList, and that the destination server supports the protocol, with the outcome being real Encrypted Client Hello when all four hold and Encrypted Client Hello GREASE with a randomised extension and a clear text hostname when any one is missing, and noting that the two cases look alike on the wire.
Default on, in the docs, means default on for apps that target API 37 and use a library that speaks it.

The developer documentation is blunter than the blog post. ECH is used for TLS connections in apps targeting API level 37 or higher, and it is active only if the networking library has integrated ECH support and the remote server supports the protocol. So an app compiled against API 35 on a brand new Pixel keeps doing exactly what it did last month.

The config itself comes out of DNS. The client queries an HTTPS resource record for the hostname, pulls an EchConfigList out of it, and feeds that to the handshake. No record, no ECH. That dependency is why the private DNS pairing matters twice over: without it, the lookup that fetches the ECH config is itself in clear, naming the site you are about to hide.

When any gate fails, Android sends ECH GREASE, an ECH extension with randomised contents. It is there so middleboxes tolerate the extension instead of dropping it, and so real ECH does not stand out by existing.

If you ship the app rather than the network, the opt-out is per domain, in the Network Security Configuration:

<network-security-config>
 <base-config>
 <domainEncryption mode="enabled"/>
 </base-config>
 <domain-config>
 <domain includeSubdomains="true">disable-ech.example.com</domain>
 <domainEncryption mode="disabled"/>
 </domain-config>
</network-security-config>

Two values, enabled and disabled, set globally in base-config or overridden per domain. Google’s docs are clear that the element only does anything when your networking library has adopted ECH, which is the OkHttp 5.5.0 line again. There is also an EchConfigMismatchException for the case where a server has rotated its config: the retry list arrives in the exception, and you have to verify the public hostname before trusting it.

To see what a given server negotiates today, our SSL checker reports the protocol version and the certificate chain. And ECH is a TLS 1.3 extension, so if the version story underneath it is fuzzy, we wrote up TLS 1.2 versus TLS 1.3 a while back.

Sources

Google, Android 17 introduces 4 new network security features, 27 August 2026 (the announcement and the diagram above). Android Developers, Adopting Encrypted Client Hello and Behavior changes: apps targeting Android 17 or higher (API 37 default, the DNS HTTPS record, GREASE, the exception handling). Android Developers, Network security configuration (the domainEncryption element and the example above). Engadget, Google deploys support for Encrypted Client Hello on Android 17, 27 August 2026. Help Net Security, Android 17 adds new protections against sneaky Wi-Fi tracking and web snooping, 28 August 2026 (the Jigsaw testing figures).

Frequently asked questions

Does Encrypted Client Hello hide my browsing from my ISP?

Partly, and only if several things hold at once. ECH encrypts the Server Name Indication inside the TLS handshake, so the hostname stops appearing there. It does nothing about the DNS query that came first, which still names the destination in clear unless the device is set up for private DNS, and it does nothing about the destination IP address or the amount of data you move. Google frames ECH as working in tandem with private DNS for exactly that reason.

Is ECH on for every app on an Android 17 phone?

No. It is enabled by default for apps that target Android 17, API level 37, and only when the networking library the app uses has integrated ECH support. Google names HttpEngine, WebView and OkHttp, and tells developers to upgrade to OkHttp 5.5.0. An app still targeting an older API level, or one that opens its own sockets with a hand-rolled HTTP stack, behaves the way it did before.

What is ECH GREASE and why does it matter to me?

When ECH cannot be negotiated, Android sends an ECH extension filled with randomised contents instead of leaving it out. The point is that middleboxes get used to seeing the extension, and that using real ECH does not become a distinguishing signal on its own. The practical consequence for anyone reading a capture: the presence of an ECH extension tells you nothing about whether the hostname was actually hidden. Google says Jigsaw tested GREASE against the top 10,000 domains, then across 202 countries and 740 internet providers, and reports interference staying near zero.

How do I turn ECH off for one domain in my Android app?

Android 17 adds a domainEncryption element to the Network Security Configuration file. It takes a mode attribute with the values enabled or disabled, and you can put it in base-config to set the global behaviour or in a domain-config block to override one domain. The element only has an effect if the app's networking library supports ECH in the first place.

What else shipped in the same Android 17 announcement?

Three other network changes. Certificate Transparency is enabled by default, so certificates have to be logged in a public registry. Local Network Protection is enforced, so an app has to hold permission before it scans for or connects to devices on the local network. And participating mobile operators can now switch 2G off for their subscribers with no action needed from the user.

Tags: androiddnsechnetworknewsprivacytls
Share199Tweet124
stephane

stephane

  • Trending
  • Comments
  • Latest
Answer card: Proton Lumo 2.0 is private by policy, not by locality. Saved history is locked so even Proton cannot read it, but the prompt is decrypted on a Proton EU server to answer it, then forgotten.

Proton Lumo 2.0 review: how private is it, really?

3 September 2026
The Agentic Coding section of the official Hy4 preview benchmark appendix published by Tencent, a table comparing Hy3 and Hy4 preview against DeepSeek V4 Pro 0813, Qwen 3.8 Max, GLM 5.3, Kimi K3, GPT 5.6 Sol and Claude Opus 5 across SWE-bench Multilingual, SWE-bench Pro, DeepSWE, three SWE Atlas tasks, SWE-Marathon, Terminal-Bench 2.1, NL2Repo-Bench, CyberGym, ProgramBench, PostTrainBench and Harbor-Index.

Tencent’s 770B Hy4 tops one benchmark row in 46

3 September 2026
Answer card: Qwen 3.7 Max is API-only and cannot run locally yet; the open Qwen models (Qwen 3.6 27B, qwen3:8b to 32b) run offline via Ollama.

Qwen 3.7 local: what you can actually run offline

22 June 2026
Answer card: JWTs are not encrypted, anyone can read them; the signature proves who issued the token, not who may read it.

Are JWTs encrypted? No, and the difference will bite you

0
Answer card: a random 8 character password falls in under 2 hours offline, while 16 random characters hold for 1.4 trillion years at the same speed.

How long does it take to crack a password in 2026?

0
Answer card: three DNS records decide if your mail lands or bounces; SPF lists allowed senders, DKIM signs messages, DMARC sets the failure policy.

SPF, DKIM and DMARC explained: the records your email needs

0
Answer card for Claude Opus 5.5: 4 dollars in and 20 dollars out per million tokens, down from 5 and 25, with cache reads at 20 cents.

Claude Opus 5.5 drops to $4 and $20, and breaks four Opus 5 habits

23 September 2026
The official xAI announcement card for Grok 4.7, white type on a dark grey and navy gradient.

Grok 4.7 keeps $2 and $6, and its gains over 4.6 are xhigh versus high

22 September 2026
Answer card stating that Qwen-Image-2.1, released on 20 September 2026, ships open weights with a 7 billion parameter diffusion transformer, a Qwen3-VL 8B text encoder and an RGBA VAE totalling about 33 gigabytes in BF16, under the Qwen Research License that limits use to research or evaluation and requires a separate commercial licence, unlike the Apache 2.0 licence of Qwen-Image 1.0.

Qwen-Image-2.1 brings the weights back, but not the Apache licence

21 September 2026
  • About
  • Contact
  • Privacy
  • Legal

Copyright © 2026 Stephane Cardon.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • Home
  • Articles
    • Security
    • Network
    • Dev
    • Sysadmin
    • SEO
    • Email & DNS
  • Tools
    • Network tools: free, fast, no signup
    • Security tools: free, fast, no signup
    • Developer tools: free, fast, no signup
    • Sysadmin tools: free, fast, no signup
    • SEO tools: free, fast, no signup
    • Email & DNS tools: free, fast, no signup
  • Download
  • About

Copyright © 2026 Stephane Cardon.