Chapter 11 · 2016–now

The machines log in

Most logins aren't people anymore. When services authenticate to each other millions of times a second, the password's last descendants don't involve a human at all — and identity becomes the whole perimeter.

The afternoons in this chapter
  • Joe Beda (United States) — Asking why machines were still authenticating with copied secrets when they could carry verifiable identities like everyone else.

Count the logins happening on the internet right now and almost none of them are people. A web app connecting to its database, a payment service calling a fraud checker, ten thousand containers in a datacenter talking to ten thousand others — this is the overwhelming majority of authentication, and there’s not a human anywhere near it. So how do machines prove themselves to each other? For an embarrassingly long time, the answer was: the worst possible way.

They used passwords. Not called that — “API keys,” “connection strings,” “service account credentials” — but the same thing exactly: a long secret, typed once into a config file, copied to every server that needed it, and then living there forever. Chapter 1’s room divider, running the entire cloud. These secrets got committed to code repositories by accident, shared across dozens of services, and almost never rotated because rotating them meant touching every place they’d been copied. The single most common way real systems get breached, breach report after breach report, is a leaked machine credential — chapter 2’s stolen file, reincarnated as a hardcoded key in someone’s source.

The fix, and it’s the room divider’s final evolution, is to give the machines what chapter 8 gave the people: real, verifiable, automatic identity. SPIFFE and SPIRE, from around 2017, are the clearest version. Instead of copying a shared secret to a service, you give the service a cryptographic identity — issued automatically when it starts, proven by short-lived certificates, rotated constantly, never typed by anyone, never sitting in a file to be stolen. Two services authenticate to each other by proving who they are, cryptographically, the same way chapter 8’s passkey proves a person — no password in the loop at all. Watch two workloads establish trust below, with no shared secret anywhere in the exchange.

This is the thesis reaching its logical end. The whole site has argued that the secret was never the control — the management was. Workload identity is what it looks like when you take that seriously enough to remove the secret almost entirely: identities issued fresh, lived briefly, rotated automatically, verified per request, held by software that can’t be phished because it can’t be fooled. It is chapter 1’s problem — “keep one party’s access from becoming another’s” — solved sixty-five years later with none of chapter 1’s materials.

And yet. Follow it all the way down, one last time, because this site owes you an honest ending rather than a triumphant one. The SPIRE server that issues all those machine identities is itself trusted by something — a hardware root, a cloud provider’s key service, a bootstrap secret in an envelope somewhere. The passkeys of chapter 8 rest on a device PIN. The zero-trust checks of chapter 10 bottom out in credentials. The privileged vault of chapter 5 has a break-glass account for the day it all fails. Every one of these systems is genuinely, enormously better than the printed file Allan Scherr walked away with in 1962 — and every one of them, if you keep asking “and what protects that,” eventually reaches a human, a secret, and a choice about how well to govern it.

That’s the map’s convergence point and the site’s last line. Identity is the perimeter now — proving who, governing what, for people and machines alike, verified every time. The wall dissolved into governance, which is exactly the progress this whole story was reaching for. But the password never left. It was hashed, salted, rotated, wrapped, tokenized, federated, made unphishable, and finally handed to the machines — and through all of it, it only ever moved one layer down, to the device PIN and the recovery flow and the bootstrap secret and the break-glass envelope. To where you stop looking.

A closing note, in the author’s own voice. I’ve spent a career on this exact layer — the boring, load-bearing question of who can reach what, and how well it’s governed. Every breach I’ve ever cleaned up was somebody’s room divider that nobody kept looking at. These builders are my people, and the lesson they spent sixty-five years teaching is short: it was never the secret. It was always the wrapping. Keep looking at the wrapping.

The machines log in

Watch two workloads establish trust with no shared secret anywhere in the exchange.

  1. 1Machines authenticate constantly
    A web app to its database, a service to a service — millions a second, no human anywhere near it.
  2. 2They used passwords too
    ‘API keys,’ ‘connection strings’ — a long secret typed into a config file and copied everywhere. The room divider, running the cloud.
  3. 3And those secrets leak
    Committed to code repos by accident, shared across services, never rotated. The #1 breach cause, report after report.
  4. 4SPIFFE gives machines identity
    Issued automatically at startup, proven by short-lived certificates, rotated constantly, never typed, never in a file.
  5. 5Services prove who they are
    Two workloads authenticate cryptographically — the same trick chapter 8 gave people. No shared secret in the loop.
  6. 6…and it still bottoms out
    The issuing server trusts a hardware root or a bootstrap secret in an envelope. Better than 1962 by miles — and still a secret at the bottom.