Skip to content

Specify an in-repository security model for secret types #32

Closed

Description

@arena-ai-coding-agent

Follow-up to #29 and docs/secret-types.adoc. The direction stays inside epistemic-types; do not spin up a new repository or add a Secret API before the semantics are specified.

First deliverable: the model and threat boundary

Agree and record:

  • a concrete use case, attacker capabilities, and observable outputs;
  • the label-order convention (including whether public is bottom and higher labels are more restrictive), clearances, and permitted flows;
  • whether declassification is in scope and, if so, the authority/policy required;
  • the security property to prove and the semantics of observations (for example, a specific noninterference statement);
  • whether Access.Preorder can be safely reused or a separate SecurityLattice interface is needed.

Acceptance criteria

  • Update docs/secret-types.adoc with the chosen definitions and non-claims.
  • Do not describe BeliefModality's missing reflect or EchoBridge.Grade as a confidentiality or leakage guarantee.
  • Keep any Agda module, rejecting fixtures, semantic theorem, and runtime integration as separately reviewed follow-on work after this specification is agreed.

The current note's staged route is the plan; this issue tracks its first actionable step.

Activity

  1. added
    designDesign of an interface, protocol, grammar, or type theory
    scope:repoConfined to this repository
    securitySecurity posture, secrets, scanning, advisories, supply chain
    on Sep 30, 2026
  2. hyperpolymath commented on Sep 30, 2026

    @hyperpolymath
    Owner

    RULING D154 (2026-09-30T14:15Z) · scope: repo · basis: owner (direct answer, selector)

    Reuse an existing lattice (two-point then general), prove noninterference, declassification only at explicit audited points

    surface: hyperpolymath/standards#787 (comment)

    The open question in this issue is answered by the ruling above; future agents should act on it rather than re-ask.

  3. added
    decisionA ruling is required before work can proceed
    feeds:valence-shellFeeds valence-shell's proofs/engineering (D127): judge progress by what it contributes there
    and removed
    decisionA ruling is required before work can proceed
    on Sep 30, 2026
  4. hyperpolymath commented on Oct 5, 2026

    @hyperpolymath
    Owner

    Closing — delivered here; the model's acceptance now lives in hyperpolymath/secret-types

    This issue asked for the first semantic boundary here, not for an Agda module.
    That is delivered, and what remains is tracked where it belongs.

    Delivered against the acceptance criteria

    • Definitions and non-claims are recorded in docs/secret-types.adoc: two
      labels Public ⊑ Secret (public is bottom; higher is more restrictive),
      dependency join, clearances as ℓ ⊑ c witnesses, a low-clearance observer,
      prohibited Secret → Public flows (implicit flow included), the
      termination-insensitive noninterference target, and an explicit non-claims
      list. The note also states why Access.Preorder is not the security
      interface and why a distinct security-label definition is required.
    • No confidentiality or leakage guarantee is attached to this repository's
      interfaces
      : BeliefModality's missing reflect and EchoBridge.Grade are
      explicit non-claims, and --safe --without-K is not presented as a security
      certification.
    • Nothing was implemented here: no Secret type, IFC calculus,
      declassification rule, theorem, rejection fixtures, or runtime integration —
      all of it stays separately reviewed follow-on work.
    • D154 (2026-09-30) answered the open question: reuse an existing lattice
      (two-point first, then general), prove noninterference, declassify only at
      explicit audited points. The 2026-10-04 owner confirmation places the
      specification and all formal work in hyperpolymath/secret-types (ADR
      0004-standalone-repo-and-scope.adoc, PR feat(read-consistency): version-monotone re-sync liveness as AccessibleModality instance #4 d1122d8; adopted text = this
      repository's PR docs(security): specify secret-type model boundary (#32) #33 revision, blob
      583017cfd5fab189ca17128d01c7eddb494d8476).

    Not claimed by this close: the standalone specification is not described as
    accepted. Its item-by-item acceptance is its own "Review checklist before
    implementation" (secret-types docs/secret-types.adoc), with the mint and
    hand-off tracked in secret-types#2. No transfer of this issue occurred or is
    required
    , and none should be attempted: this history and the boundary note
    stay in epistemic-types.

    What remains here is only a guard — keep the pointer accurate and keep
    Secret/IFC claims out of this repository. Successor issue: #N.

    For future readers: model changes, lattice choices, the noninterference theorem,
    declassification policy, and any Secret module belong in
    hyperpolymath/secret-types. Do not re-open this issue to re-litigate the
    model. #29 remains closed. Evidence record: the 2026-10-05 transition review
    in this repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    designDesign of an interface, protocol, grammar, or type theoryfeeds:valence-shellFeeds valence-shell's proofs/engineering (D127): judge progress by what it contributes therepriority:p1High - schedule nextscope:repoConfined to this repositorysecuritySecurity posture, secrets, scanning, advisories, supply chain

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions