IntersectMBO/cardano-base

KES Agent

Opened this issue · 0 comments

What

Implement a KES agent that handles key persistence securely. This task is the first part of the full Secure KES forgetting effort (preceded by the KES secure forgetting). This task will an agent external to the node that will handle the KES key persistence securely without storing them in SPO's disks.

Why

We use KES to provide security against long range attacks. This is a requirement by the formal analysis and proofs we have for the consensus algorithm. The current node does not safely delete KES keys, and therefore is exposed to this long range attack where an adversary is capable of stealing a bunch of KES keys from the block producers and producing a different adversarial chain. This second part of the task ensure the KES keys are never stored in disk in SPOs machines.

Functional requirements

  • Define final version of KES agent
  • Implement KES agent

External dependencies

  • Node (to create communication with agent)
  • Network [?] (same as above)
  • Product (define final version)
  • CLI

Risks

New design and requirements are not accepted by the SPOs, or by product people

Acceptance Criteria

We have a design accepted by product, a final audit accepted by Charles Morgan and a new testing infrastructure to validate the workings of the agents. No regression

Definition of Done

The SPOs use the agents to handle their key persistence.

Working Assumptions

  • Hard fork not required