skip to content

The Shrinking Readable Share

The share of traffic an inspection point can read is a measurement with a date on it, and it only falls. Interviewers ask because the confident coverage percentage is what they are hunting.

on this pageshow

explore

questions

4

An unmanaged client uses encrypted client hello through your border — what survives as evidence of its destination, and what does that fallback cost you?

level: juniorimportance: must knowfreq 60%

answer

  1. the envelope survives, the contents do not
  2. one cleartext field carried the name
  3. encrypted client hello moves it inside
  4. outer name is the front, not the site
  5. TLS 1.3 encrypts the certificate too

basics

~20 s

You keep the destination address and port, packet sizes, direction and timing, plus an outer name identifying a shared front rather than the real site. The true server name is gone, and TLS 1.3 encrypts the certificate too.

solid answer

~50 s

Without decryption you hold the five-tuple, byte and packet counts, direction and timing, and — normally — the cleartext `server_name` in the ClientHello. Encrypted client hello removes exactly that: the real server name and the negotiated `alpn` move into an encrypted inner ClientHello, and the outer `server_name` names a public front shared by thousands of tenants. The common wrong answer is "we will read the certificate subject instead": in TLS 1.3 the server's Certificate message is sent after the handshake keys are established, so it is encrypted and there is no subject or SAN to fall back on. That leaves address-level evidence, and a shared or anycast address names a provider, not a site. The price is that every fallback is weaker: you either accept destination-level guessing, add the client to an exemption, or move the vantage point to somewhere the plaintext still exists.

code

text · 15 lines
text
TLS 1.3 ClientHello, no ECH
  server_name         api.partner.example     # cleartext: the real destination
  alpn                h2
  supported_versions  TLS 1.3

Same client offering encrypted client hello
  server_name         front.provider.example  # OUTER name: shared by many tenants
  encrypted_client_hello  <opaque>            # inner server_name + alpn, encrypted
  ...

After ServerHello (TLS 1.3)
  EncryptedExtensions <encrypted>
  Certificate         <encrypted>             # no subject/SAN fallback (unlike TLS 1.2)

Still recorded either way: dst address, port, byte/packet counts, direction, timing

go deeper

for a junior

Be ready to list what a non-decrypting device still records — addresses, ports, byte counts, direction, timing — and to say plainly that the server name is what encrypted client hello takes away.

for a middle

Explain where the name lived in the handshake and why it was cleartext at all, and be able to state that TLS 1.3 encrypts the server certificate so there is no subject to fall back on.

for a senior

Show how you would write a defensible conclusion from address-and-volume evidence alone, and name the cost of each way of getting the name back: exemption, forced failure, or a different vantage point.

for a principal

Own the trajectory rather than the incident: the readable share falls because client vendors ship defaults you do not control, so any position built on reading the name has a planned end date.

## What an on-path device actually holds When your border forwards a TLS session it cannot decrypt, it still records a lot: source and destination address, source and destination port, the transport, when the session started and ended, how many bytes and packets went each way, and the shape of that traffic over time. None of that is payload. A flow record proves **bytes moved between two addresses at a time**; it never proves what those bytes were. On top of that, the TLS handshake itself has historically leaked one very useful field in cleartext: the `server_name` extension (SNI) in the ClientHello. The client sends it before any keys exist, because the server needs it to pick which certificate to present. For roughly a decade that field has been the backbone of name-based policy on devices that do not decrypt — allow, deny or categorise by the name the client asked for. ## What encrypted client hello removes Encrypted client hello (ECH) closes that leak. The client builds two ClientHellos: an *outer* one, sent in cleartext, whose `server_name` is a public name belonging to the provider that fronts many sites; and an *inner* one, encrypted to a public key the client obtained ahead of time, carrying the real `server_name`, the real `alpn` and the rest of the sensitive parameters. An observer sees the outer name and nothing else. If the client also resolves names over an encrypted channel, you do not see the lookup that preceded the connection either — the name disappears from both places at once. So the loss is not "some of the name": it is the name. ## The fallback that does not exist The most common wrong answer from an experienced engineer is: *fine, read the certificate the server returns and take the subject or the SAN list.* That works on TLS 1.2, where the server's Certificate message is in the clear. It does not work on TLS 1.3. In TLS 1.3 the server sends ServerHello, both sides derive handshake keys immediately, and everything after that — EncryptedExtensions, Certificate, CertificateVerify — is encrypted. There is no certificate subject on the wire to fall back on, with or without ECH. Any design that assumes a cleartext certificate is designing for a version of TLS that is being retired underneath it. ``` TLS 1.3 ClientHello, no ECH — readable at the border server_name api.partner.example # the real destination alpn h2 Same client offering encrypted client hello server_name front.provider.example # outer: a shared public name encrypted_client_hello <opaque> # real server_name and alpn are inside After ServerHello, TLS 1.3 encrypts the rest of the handshake Certificate <encrypted> # no subject or SAN to read ``` ## Why the address is a weak substitute Once the name is gone, the address is what you have, and modern hosting has deliberately blunted it. A single anycast address can front tens of thousands of sites across many customers; the same address may serve a payroll provider and a malware operator's rented tenant in the same hour. "Connections went to 203.0.113.10" is true and nearly useless as a verdict. Volume and timing still say something — a long-lived low-rate session with regular beacon-like spacing looks different from a bulk download — but that is inference over shape, not identification, and it produces candidates rather than conclusions. ## What it costs you, which is the part interviews probe Every answer here has a bill attached. - **Accept it.** Your readable share falls, and it falls for reasons you do not control: client vendors ship ECH, applications adopt it silently, and the traffic you can name shrinks month over month. - **Exempt the client.** You add another permanently unread path, and exemption lists only grow. - **Force the client to negotiate through you.** Some clients refuse: they pin what they expect, or they simply fail. A hard failure is a broken business application and an outage somebody has to own. - **Change vantage.** Inspect where the plaintext still exists — on the endpoint, or at the service you control. That sees more, and it only covers devices you manage; contractors, appliances and unmanaged hardware are outside it by construction. ## The claim discipline State conclusions in the direction the evidence supports. From an opaque TLS flow you may assert that a host on your network established an encrypted session to an address, when, for how long, and how much data moved in each direction. You may not assert which site it was, which application, or what was transferred. Candidates who blur that line write incident notes that do not survive being questioned.

  • Why can't you fall back to the server certificate's subject when the name is hidden?
    On TLS 1.2 you could — the Certificate message was cleartext. On TLS 1.3 the handshake keys are derived right after ServerHello, so EncryptedExtensions, Certificate and CertificateVerify are all encrypted. There is no subject or SAN on the wire to read, independently of encrypted client hello. Designs built on cleartext certificates are quietly expiring as TLS 1.2 is retired.
  • The destination resolves to an anycast address fronting thousands of sites — what has your evidence become?
    Provider-level, not site-level. You can say a host opened an encrypted session to that provider's edge, with byte counts and timing, and nothing more. Treat it as a candidate for follow-up rather than an identification, and be explicit about that in any write-up — a claim that the host visited a specific site cannot be supported from the address alone.
  • Would blocking clients that offer encrypted client hello restore your visibility?
    It restores it only for clients that fall back cleanly, and it converts the rest into failures. You are trading an unreadable session for a broken application, and somebody has to accept that outage and the exception requests that follow. It also decays: as adoption becomes the default, the population you would be breaking grows every quarter.

It is the difference between reading an envelope and reading a letter — and encrypted client hello replaces the addressee with the name of the mail-forwarding company.

saying these in an interview costs you the question

  • Claims the server certificate subject is always readable on the wire
  • Treats the destination IP address as naming the site visited
  • Thinks encrypted client hello only matters for privacy tools
  • Says an opaque flow proves what data was transferred
  • Assumes the outer server name identifies the real destination

context

open as a page

Your TLS decryption exemption list has grown to two hundred destinations — what has that cost, and how would an intruder use it?

level: middleimportance: should knowfreq 52%

basics

~20 s

Each entry is a permanent unread path, and the list only grows because removal means proving nothing breaks. An intruder just picks a destination already covered: the bypass verdict uses the name the client claims.

open as a page

A business application moved to QUIC on UDP/443, and so did a channel you did not authorise — what are your options and what does each cost?

level: seniorimportance: should knowfreq 44%

basics

~20 s

Three options, each with a bill: deny UDP/443 and force fallback, which breaks clients that cannot; allow it unread, making that path the preferred one; or inspect QUIC, paying capacity and state broken by connection migration.

open as a page

You report that eighty-five percent of egress is inspected — what denominator makes that honest, and what can an adversary keep out of it?

level: seniorimportance: nice to knowfreq 33%

basics

~20 s

The denominator must cover every egress path and come from a source independent of the inspection device, or you divide what the device saw by what the device saw. Paths crossing no control are uncounted, not unread.

open as a page