"Firelink can let you in without ever knowing your secret. The thing that checks the PIN and the thing that grants the session are not the same thing."
One Owner for the Secret
A remote client — LAN or tailnet — can't use the loopback bypass, so it authenticates with the family PIN. But here's the ownership split: cwkPippa verifies the PIN; Firelink never stores it. Firelink forwards the entered PIN to cwkPippa's verifier, gets back a yes or no, and on 'yes' mints its own revocable, expiring session with a stable session id. The secret lives in exactly one place — one owner per fact, applied to the most sensitive fact of all. Firelink is a session-minter, not a secret-keeper.
Why Delegation Beats Duplication
The tempting shortcut is for Firelink to keep its own copy of the PIN hash 'for speed.' That copy is a second place the secret can leak, a second thing to rotate, a second thing to get subtly wrong. By delegating verification to the one component that owns the secret, Firelink shrinks its own blast radius: a full compromise of Firelink's database exposes revocable session tokens, not the family PIN. And the attempts themselves are rate-limited and audited — without ever recording the PIN, because you can't leak from a log what you never wrote to it.
Sessions Carry Their Own Careful Rules
The minted session isn't casual, either. HTTP and HTTPS listeners use distinct cookie names, and each listener accepts only its matching scheme's cookie — a cookie minted for one scheme can't be replayed on the other. Reverse-proxy and Tailscale identity headers are trusted only from explicitly configured local proxy addresses, never from every direct client (the same narrow-never-widen instinct from the loopback rule). The session is revocable and expiring, so access can be cut at any time and never lingers indefinitely. Convenience comes from the session being fast to re-establish, not from it being sloppy.