Files
proxmox/docs/dbis-rail/runbooks/EMERGENCY_REVOKE_AND_KEY_COMPROMISE.md
defiQUG 4de9676da7
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
chore: update implementation status in DBIS_RAIL_ADDONS_CODE_COMPLETION_TASK_LIST.md
- Added a detailed implementation status table outlining the completion status of various phases.
- Marked the submodule reference for smom-dbis-138 as dirty to reflect changes.

Made-with: Cursor
2026-03-02 13:56:53 -08:00

1.8 KiB
Raw Blame History

DBIS Rail — Emergency Revoke and Key Compromise Runbook

Scope: Signer revocation and key compromise response (Ledger Attestation v1.5 §4.3, Rulebook §6).

1. Emergency revoke (signer)

  1. SIGNER_ADMIN calls DBIS_SignerRegistry.revokeSignerAtBlock(signer) (or removeSigner(signer)).
  2. Effective immediately at the next block: any MintAuth or SwapAuth that includes this signer and is submitted at or after that block will revert.
  3. Do not submit any in-flight Mint Authorizations that rely on the revoked signer after the revocation block.
  4. Re-evaluate in-flight authorizations; if already signed but not yet submitted, do not submit; issue new MintAuth with replacement signer set if needed.
  5. Document the revocation (block number, signer address, reason) for audit.

2. Key compromise drill

  1. Revoke signer immediately per Section 1.
  2. Re-evaluate in-flight authorizations — do not submit any that depend on the compromised key.
  3. Incident reporting per DBIS security policy (internal and, if required, regulatory).
  4. Key rotation — provision new signer key; add new signer via addSigner(newAddress, category); revoke or retire the old key record.
  5. Runbook reference: Rulebook §6.4; Ledger Attestation add-on §4.3.

3. Router / mint controller pause

  • ROUTER_ADMIN calls DBIS_SettlementRouter.pause() to stop all new MintAuth submissions.
  • ROUTER_ADMIN calls DBIS_GRU_MintController.pause() to stop mint execution (if router is still processing).
  • To resume: unpause() on both.

4. Participant suspension

  • PARTICIPANT_ADMIN calls DBIS_ParticipantRegistry.setParticipantStatus(participantId, SUSPENDED).
  • No new settlements to that participants operational wallets until status is ACTIVE again.