Revocation¶
Revocation removes trust from an issued certificate before natural expiry.
sequenceDiagram
participant O as Operator
participant NA as Network Authority
participant DB as SQLite
participant N as Revoked Node
participant P as Peer
O->>NA: POST /admin/revoke with operator signature
NA->>DB: Mark certificate revoked
NA->>DB: Store signed CRL sequence N+1
N->>NA: heartbeat or renew
NA-->>N: 403 certificate revoked
N->>P: new peer handshake
P->>P: Check CRL
P-->>N: Reject handshake
Revoke a Certificate¶
Use the operator-authenticated /admin/revoke endpoint:
{
"cert_id": "<certificate-id>",
"reason": "key_compromise"
}
The Network Authority:
Loads the issued certificate from SQLite.
Marks the certificate revoked.
Creates a new CRL with an incremented sequence.
Signs the CRL with the NA key.
Stores the active CRL.
Reasons¶
Reason |
Effect |
|---|---|
|
Revokes the certificate and blocks future joins with the same node public key. |
|
Revokes the certificate but allows future re-enrollment. |
|
Revokes the certificate because it has been replaced. |
|
Revokes the certificate without a more specific reason. |
Enforcement¶
The Network Authority rejects revoked certificates during heartbeat and renewal. The peer runtime rejects revoked certificates during handshake validation.
Operator Checklist¶
Confirm the target
cert_id.Choose the narrowest accurate revocation reason.
Verify
/crlreturns the updated sequence.Verify the revoked node cannot heartbeat or renew.
Verify peers reject new handshakes from the revoked certificate.