Skip to content

Security

What the programs refuse, how a revocation travels from the provider to every server, and how to tell a genuine binary from anything else.

go-authn is asked to prove people, so its refusals are the design rather than the exceptions. This section gathers the ones that cross program boundaries; each program’s own pages say what it refuses on its own.

The refusals that matter most

what is refusedwhy
authnda search by anyone but a declared readera bind proves who somebody is; it is not permission to list everybody
authnda Kerberos ticket for a person whose source holds no passworda KDC needs a key derived from the password; an NT hash or a password check cannot produce one (why)
authnda kerberos block beside an mfa blocka kinit carries the password and nothing else, so the realm would issue tickets on one factor to people the mfa block says need two
authn-bridgean assertion nobody signed, an identifier from outside the institution’s own scopeevery member of a federation is trusted, so each must be held to its own people: otherwise any one institution could name anybody
authn-revokda list that is unsigned, expired, or older than the one it holdsa mirror in between may delay a list, never forge it or roll it back
authn-revokdtrusting a list that has lapsedit writes one that revokes the CA itself, so sshd refuses rather than trusting a stale list
sshcert-authorizea certificate whose domain grant does not name this hosta certificate from a federation CA is not, by itself, permission for every host that trusts that CA

A revocation, end to end

  1. authn-bridge signs and dates a KRL (for SSH certificates) and a CRL (for X.509 client certificates), and publishes them.
  2. authn-revokd fetches each list, verifies its signature and dates, refuses one older than the list it holds (across a restart too), and only then writes it where the server reads it.
  3. sshd (RevokedKeys), go-fileshare and anything else read a file that has already been verified.

A CAEP session-revoked event, through the provider’s Shared Signals transmitter, voids what no list can name: everything issued to a person before a given moment. go-fileshare’s documentation describes the receiving side: revocation lists, shared signals.

Releases

Every binary is built by the release workflow from a tagged commit and can be checked three ways: verifying a download.

Created on by tannevaled

Modified on by tannevaled