You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Black-box attack harness for the authgate-kernel TCB. Probes the kernel from the outside using crafted inputs; never reads source code or internal state.
4
+
5
+
## What this is
6
+
7
+
A systematic battery of adversarial tests covering 7 orthogonal attack classes. Each test constructs a structurally invalid or malformed action, calls the Python oracle (which mirrors Rust TCB behavior), and asserts the result is Deny. A "violation" means the kernel returned Permit for an invalid input.
Every node in a delegation chain must satisfy this binding (AT-5.1). It is enforced in `dag::validate_chain` by computing `SHA-256(current.issuer_pubkey)` and comparing it to `parent.subject_id`.
47
+
48
+
## Decision layers
49
+
50
+
```
51
+
engine::verify()
52
+
[L1] action.verify_binding() ← AT-1: any IR tamper caught here
-**AT-N.M_***: named test for a specific attack tree node
78
+
79
+
`call_gate.rs` adds 22 tests that verify the same logic through the public API, plus a consistency test confirming gate output matches `engine::verify` directly.
80
+
81
+
## Hard rules (never break these)
82
+
83
+
- No `unsafe` anywhere in this module (`#![forbid(unsafe_code)]` in every file)
84
+
- No IO, no network, no global state, no panics
85
+
-`engine::verify` stays `pub(crate)` — never `pub`
86
+
- Total TCB LOC ≤ 600 (enforced by `TCB_CONSTRAINTS.md`)
0 commit comments