skip to content

Your proxy logs TLS SNI for a CDN hostname sanctioned apps also use — what can that metadata still distinguish?

level: seniorimportance: nice to knowfreq 36%

answer

  1. the name is true and undiscriminating
  2. separate what is recorded from what separates
  3. proxy adds the client and the user
  4. TLS 1.3 hides the certificate; ECH the name
  5. attribution moves to the process

basics

~20 s

A shared CDN hostname is the same string for sanctioned and hostile traffic, so the name discriminates nothing. What the proxy record still gives you is the client side: which host, which user, and how rare that name is for that population.

solid answer

~50 s

Separate what the record contains from what it distinguishes. A passive observer sees the SNI in the ClientHello; on TLS 1.2 it also sees the server certificate subject and SANs, while on TLS 1.3 the certificate is encrypted and the SNI is essentially all the name it gets. An explicit forward proxy adds what a tap cannot: the client address, the authenticated user, the requested hostname, bytes and duration. When a channel is fronted on a shared CDN name, the name in your record is truthful and useless, because the inner request that selects the real service is inside the encrypted body. What remains discriminating is the client side — the identity and rarity of the population contacting that name — the TLS client fingerprint against the browser that supposedly made the request, the destination address and network, and endpoint telemetry naming the process that opened the socket.

go deeper

for a junior

Know that SNI is the hostname sent in the clear at the start of a TLS session, that the rest of the session is encrypted, and that a hostname shared by many tenants cannot tell those tenants apart.

for a middle

Explain what each position sees: a passive tap gets the SNI, plus the certificate on TLS 1.2 but not TLS 1.3, while an explicit proxy adds client address, authenticated user, bytes and duration without decrypting anything.

for a senior

Show where the discriminating signal moves when the name saturates: client identity and population rarity, the TLS client fingerprint against the expected stack, the destination network, and endpoint telemetry naming the process that opened the socket.

for a principal

Own the trajectory. Decide what TLS interception is worth against pinning breakage, privacy constraints and the risk of the interception point itself, and how detection coverage is rebalanced onto endpoint signals as names disappear from the wire.

## What is actually on the wire When a client opens a TLS session, the ClientHello is sent before any encryption is established. It carries the Server Name Indication extension — the hostname the client wants — plus cipher suites, extensions, supported groups and ALPN. That is why SNI is the workhorse of network-side visibility: it is a *name*, and names are what detections and blocklists are written against. What else a passive sensor sees depends on the version. On TLS 1.2 the server's Certificate message is sent in the clear, so the subject and subject-alternative names are readable. On TLS 1.3 the certificate is encrypted, and a tap is left with the SNI alone. Encrypted ClientHello (ECH) goes one step further and encrypts the SNI itself, at which point the network record holds a destination address and nothing nameable. An explicit forward proxy is a different observation position from a tap, and this distinction is worth stating in an interview. Even without decryption it logs the CONNECT target hostname and port, the client address, the authenticated user if proxy authentication is on, the byte counts and the duration. The *client* side of a proxy record is far richer than anything a passive sensor produces. ## Why the shared hostname defeats the name A content delivery network serves thousands of tenants from the same hostnames and the same address ranges. Fronting exploits exactly this: the outer connection is opened to a hostname that everyone uses, and the inner HTTP request — inside the encrypted body — names the tenant that actually answers. Your record is entirely accurate and entirely undiscriminating; blocking the name would break sanctioned services, and allowing it lets everything through. This is the general lesson of the leaf applied to one surface: **a metadata field is only as useful as its ability to separate two populations.** The SNI separates `some-cdn.example` from `evil.example` perfectly, and separates two tenants of `some-cdn.example` not at all. ## What still discriminates - **Client identity and population rarity.** The proxy names the host and the user. A CDN hostname contacted by four thousand workstations is background; the same hostname contacted by one build server that has no reason to run a browser is a fact about the *client*, not the destination. - **The TLS client fingerprint.** Hashes of selected ClientHello fields, such as JA3 or JA4, characterise the client's TLS stack. A connection to a browser-shaped hostname made by a stack that is not the managed browser is a discrepancy worth pulling. It is a weak signal on its own — fingerprints collide, libraries are shared, and a determined implant can mimic one — so treat it as a lead rather than a verdict. - **The destination address and network.** Even when the name is shared, the resolved address, the network it belongs to, and whether the client resolved a name before connecting are recorded facts. A connection to an address the client never looked up is anomalous regardless of what the SNI said. - **The endpoint.** Network-connection telemetry on the host names the process that opened the socket, which is the one field that cuts through the shared hostname entirely. When the network surface saturates, attribution moves to the endpoint. ## The decision the answer is really about The tempting response is "intercept the TLS". TLS interception at the proxy does restore full visibility, and it is a genuine option in some estates, but it is a policy and risk decision rather than a reading of the record — certificate pinning breaks, privacy and legal constraints bite, and the interception point becomes a high-value target. What an interviewer wants to hear first is that you know why the field failed to discriminate and where the discriminating signal moved to, not a reflex to decrypt everything. ## Planning for the name to disappear ECH deployment makes this trajectory permanent rather than exceptional. Detections written against hostnames will quietly lose coverage, and the loss will look exactly like a quiet estate, because a rule that has nothing to match produces no output. The defensive answer is to rebalance: keep name-based network signals where names still exist, and build the durable detections on process-to-destination relationships from endpoint telemetry, which sit below the encryption entirely.

  • Does the server certificate help when the SNI is a shared CDN name?
    Sometimes, and less over time. On TLS 1.2 the certificate is sent in the clear, so a sensor can read the subject and SANs — which on a CDN usually list the same shared names anyway. On TLS 1.3 the certificate is encrypted, so a passive tap sees only the SNI. A TLS-intercepting proxy sees everything, but that is a policy decision rather than a free reading.
  • Encrypted ClientHello removes the SNI from your records. What replaces it?
    The client side and the endpoint. You still hold the client address and proxy user, the destination address and network, and the TLS client fingerprint; on the host, network-connection telemetry names the process and the DNS query it made, which is where the intended hostname now lives. Expect name-based network detections to decay silently and rebuild the durable ones around process-to-destination pairs.
  • How reliable is a JA3-style TLS fingerprint mismatch as evidence?
    As a lead, not a verdict. The fingerprint characterises the client's TLS stack, so a non-browser stack reaching a browser-shaped hostname is worth pulling. But fingerprints collide across applications that share a library, they change with every client update, and an implant can deliberately mimic a common one. Corroborate with the process that owned the socket before you conclude anything.

It is a delivery van marked with a courier's logo. The livery is genuine and tells you nothing about the parcel or the sender.

saying these in an interview costs you the question

  • Believes SNI proves which service was actually contacted
  • Assumes TLS 1.3 leaves the server certificate readable on the wire
  • Treats any CDN hostname as inherently benign
  • Says decryption is the only possible answer
  • Reads a TLS client fingerprint match as an identification

context