Skip to content

2c: cert revocation lag exceeds cert lifetime without session rekey (#9) #41

Description

@vxfemboy

Context

Whole-branch review of milestone 2c. The spec states "revocation = cert expiry (bounded lag = cert lifetime)"; the review found this is optimistic without session rekey.

Problem

A runtime cert-admitted peer stays in the peer table and its Established Noise session persists for the daemon's lifetime (no rekey / session-expiry — #9 deferred). A fresh HandshakeInit from an already-tabled peer is admitted by static-key match WITHOUT re-checking the cert. So revocation-by-non-renewal only fully takes effect on process restart of the peers holding the session — a revoked member keeps its live sessions until then.

Fix direction

Tie to the session-rekey milestone (#9): on rekey (~120s), re-verify the peer's current cert (require a fresh valid cert in the rekey handshake), so a revoked/expired member's session drops within a rekey interval rather than at process restart. Optionally add a periodic cert-liveness check on Established mesh peers.

Scope

Depends on #9 (rekey). Documented residual for 2c ("a compromised member is a full peer until its cert expires AND its sessions rekey/restart").

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions