{"cases":79,"held":true,"kind":"break-it-redteam","results":[{"group":"forge","held":true,"name":"signed with a key that is not pinned","outcome":"signature, then recognised","tried":"a perfect packet for sender 1, counter 7, signed by an attacker key — sent twice"},{"group":"forge","held":true,"name":"a sender with no pinned key","outcome":"sender","tried":"sender 9"},{"group":"forge","held":true,"name":"the legitimate key, but signed without the domain prefix (cross-protocol)","outcome":"signature","tried":"S1 signs header‖payload with no domain"},{"group":"forge","held":true,"name":"algorithm / version confusion","outcome":"magic","tried":"version byte 2, signed by the legitimate key"},{"group":"signature","held":true,"name":"nonce reuse","outcome":"identical signatures (deterministic)","tried":"sign the same message twice — Ed25519 has no per-signature nonce to reuse"},{"group":"forge","held":true,"name":"every single-bit flip of a valid packet","outcome":"0 admitted","tried":"752 mutants through the gate"},{"group":"signature","held":true,"name":"malleated signature (s + L)","outcome":"signature","tried":"the same message with a non-canonical s"},{"group":"signature","held":true,"name":"all-zero signature","outcome":"signature","tried":"a valid header and payload, signature zeroed"},{"group":"signature","held":true,"name":"truncated signature","outcome":"size","tried":"last byte of the signature removed"},{"group":"signature","held":true,"name":"length extension","outcome":"schema","tried":"bytes appended to the payload, length field raised to match, old signature kept"},{"group":"signature","held":true,"name":"bytes smuggled after the payload","outcome":"size","tried":"two bytes inside the signature region, length field unchanged"},{"group":"replay","held":true,"name":"a spent packet, sent again","outcome":"counter","tried":"the first legitimate packet"},{"group":"replay","held":true,"name":"…and again","outcome":"recognised","tried":"the same spent packet a second time"},{"group":"replay","held":true,"name":"the replay race: one fresh packet sent 50 times at once","outcome":"1 accepted","tried":"50 concurrent POSTs"},{"group":"replay","held":true,"name":"out of order: counter +2 before +1","outcome":"counter","tried":"a legitimate packet that skips ahead"},{"group":"replay","held":true,"name":"…then the gap filled","outcome":"ACCEPTED then ACCEPTED","tried":"+1 then +2 again"},{"group":"replay","held":true,"name":"counter zero","outcome":"counter","tried":"counter 0, signed by the legitimate key"},{"group":"replay","held":true,"name":"counter rollover","outcome":"counter","tried":"counter 2^64−1, legitimately signed, out of sequence"},{"group":"replay","held":true,"name":"counter wrap-around","outcome":"counter","tried":"after counter 2^64−1, try counter 0"},{"group":"schema","held":true,"name":"key __proto__","outcome":"schema","tried":"signed by the LEGITIMATE key"},{"group":"schema","held":true,"name":"key with an upper-case letter","outcome":"schema","tried":"signed by the LEGITIMATE key"},{"group":"schema","held":true,"name":"key of 33 bytes","outcome":"schema","tried":"signed by the LEGITIMATE key"},{"group":"schema","held":true,"name":"empty key","outcome":"schema","tried":"signed by the LEGITIMATE key"},{"group":"schema","held":true,"name":"value with a control byte","outcome":"schema","tried":"signed by the LEGITIMATE key"},{"group":"schema","held":true,"name":"value with a NUL","outcome":"schema","tried":"signed by the LEGITIMATE key"},{"group":"schema","held":true,"name":"value length that lies","outcome":"schema","tried":"signed by the LEGITIMATE key"},{"group":"schema","held":true,"name":"an unknown op","outcome":"schema","tried":"signed by the LEGITIMATE key"},{"group":"schema","held":true,"name":"a delta over the limit","outcome":"schema","tried":"signed by the LEGITIMATE key"},{"group":"schema","held":true,"name":"trailing bytes after a DEL","outcome":"schema","tried":"signed by the LEGITIMATE key"},{"group":"schema","held":true,"name":"a non-ASCII key byte","outcome":"schema","tried":"signed by the LEGITIMATE key"},{"group":"ingest","held":true,"name":"a record for account 0","outcome":"schema","tried":"signed by the LEGITIMATE feed key"},{"group":"ingest","held":true,"name":"a record for an account past the limit","outcome":"schema","tried":"signed by the LEGITIMATE feed key"},{"group":"ingest","held":true,"name":"a record whose account has its top bit set (negative, if read signed)","outcome":"schema","tried":"signed by the LEGITIMATE feed key"},{"group":"ingest","held":true,"name":"a record for a month after December 2099","outcome":"schema","tried":"signed by the LEGITIMATE feed key"},{"group":"ingest","held":true,"name":"a record for an amount past the limit","outcome":"schema","tried":"signed by the LEGITIMATE feed key"},{"group":"ingest","held":true,"name":"a record for 0xffffffff (−1, if read signed)","outcome":"schema","tried":"signed by the LEGITIMATE feed key"},{"group":"ingest","held":true,"name":"a record one byte short","outcome":"schema","tried":"signed by the LEGITIMATE feed key"},{"group":"ingest","held":true,"name":"a record with a byte left over","outcome":"schema","tried":"signed by the LEGITIMATE feed key"},{"group":"ingest","held":true,"name":"SQL injected where a record goes","outcome":"schema","tried":"signed by the LEGITIMATE feed key"},{"group":"ingest","held":true,"name":"a script injected where a record goes","outcome":"schema","tried":"signed by the LEGITIMATE feed key"},{"group":"schema","held":true,"name":"a length field that lies","outcome":"size","tried":"payload 5 bytes, header says 4"},{"group":"parser","held":true,"name":"the packet as hex text","outcome":"magic","tried":"a real packet, hex-encoded"},{"group":"parser","held":true,"name":"a chunked body","outcome":"HTTP/1.1 400 Bad Request","tried":"Transfer-Encoding: chunked"},{"group":"parser","held":true,"name":"no Content-Length","outcome":"HTTP/1.1 400 Bad Request","tried":"an empty POST"},{"group":"parser","held":true,"name":"a Content-Length over the limit","outcome":"HTTP/1.1 400 Bad Request","tried":"100000"},{"group":"parser","held":true,"name":"a body longer than its Content-Length","outcome":"not accepted","tried":"90 declared, 200 sent"},{"group":"parser","held":true,"name":"a slow body (send 4 of 120 bytes, then stall)","outcome":"closed without admitting","tried":"a slowloris on the body"},{"group":"dos","held":true,"name":"a flood of 1,000 requests","outcome":"rate-limited (429s), nothing admitted","tried":"pipelined down one socket from one address"},{"group":"dos","held":true,"name":"…and the gate is not locked afterwards","outcome":"ACCEPTED","tried":"a fresh legitimate packet once the bucket refills"},{"group":"dos","held":true,"name":"garbage on the socket","outcome":"node still up","tried":"a request line that is not HTTP"},{"group":"immune","held":true,"name":"attack node 0 once — do nodes 1 and 2 already know it?","outcome":"node 1: recognised, node 2: recognised","tried":"a new forgery sent ONLY to node 0"},{"group":"immune","held":true,"name":"a peer shares a packet that is VALID here (an attempt at autoimmunity)","outcome":"adopted 0","tried":"node 0 signs, node 1 re-runs"},{"group":"immune","held":true,"name":"…so the valid packet still goes through","outcome":"ACCEPTED","tried":"send it to node 1"},{"group":"immune","held":true,"name":"a share from a node that is not pinned","outcome":"adopted 0 — not from a pinned peer","tried":"the attacker key signs a share"},{"group":"immune","held":true,"name":"a pinned peer's share, antigens swapped in transit","outcome":"adopted 0 — the share signature does not verify","tried":"node 0 signs one list, the attacker swaps it"},{"group":"sentinel","held":true,"name":"a valid key draining the store","outcome":"behavior at packet 51","tried":"60 × ADD −1,000,000 with a genuine key"},{"group":"sentinel","held":true,"name":"…and that key stays blocked","outcome":"behavior","tried":"a harmless packet from the same key, at the right counter"},{"group":"rebound","held":true,"name":"a source past BLOCK is asked to pay before any signature work","outcome":"HTTP 402 — owes 12 bits, no verify run","tried":"forge until the node charges instead of verifying"},{"group":"rebound","held":true,"name":"paying the price buys a look — the gate still refuses the forgery","outcome":"signature","tried":"the same forgery, with a valid token"},{"group":"rebound","held":true,"name":"a token bought for one packet does not pay for another","outcome":"HTTP 402 — still owes","tried":"token for forgery g, used on a different forgery"},{"group":"rebound","held":true,"name":"the law holds: no amplification, attacker ≥ defender","outcome":"obeyed — attacker 99420 hashes, defender 1","tried":"measure one 16-bit interaction against obeys()"},{"group":"rebound","held":true,"name":"the ratchet: attacking never gets cheaper as refusals climb","outcome":"0 → 12 → 18 bits, monotone","tried":"difficultyFor monotone over 0..ISOLATE+10, and strictly up across rungs"},{"group":"rebound","held":true,"name":"the elastic law: stretch stores, the limit releases it back at the source","outcome":"free (×1) under BLOCK → ×4096 at BLOCK → ×262144 at ISOLATE, monotone","tried":"released() over 0..ISOLATE+10 — free under BLOCK, rising past it, never unwinding"},{"group":"state","held":true,"name":"one byte of the ledger changed","outcome":"refused to start","tried":"a character of entry 2 edited"},{"group":"state","held":true,"name":"an entry deleted","outcome":"refused to start","tried":"entry 3 removed"},{"group":"state","held":true,"name":"an entry duplicated","outcome":"refused to start","tried":"entry 1 repeated"},{"group":"state","held":true,"name":"two entries swapped","outcome":"refused to start","tried":"entries 2 and 3 reordered"},{"group":"state","held":true,"name":"a torn final write (a crash mid-append)","outcome":"started","tried":"half a line appended — never acknowledged"},{"group":"state","held":true,"name":"…and the torn half is gone, the rest intact","outcome":"trimmed to the last whole entry","tried":"read the file back"},{"group":"state","held":true,"name":"a well-chained ledger holding a forged packet","outcome":"refused to start","tried":"chain hashes recomputed honestly around a forgery"},{"group":"state","held":true,"name":"a second writer on a live ledger","outcome":"refused to start","tried":"start another node on the same file"},{"group":"state","held":true,"name":"restart the node — is the drained key still blocked?","outcome":"behavior","tried":"the same harmless packet (price paid), after a restart"},{"group":"state","held":true,"name":"restart the node — does it still know the attacks?","outcome":"recognised","tried":"the first forgery, after a restart"},{"group":"state","held":true,"name":"restart the node — is the price still owed?","outcome":"HTTP 402 — the ladder was rebuilt from the journal","tried":"a fresh forgery from the ground-down source, after a restart"},{"group":"state","held":true,"name":"the attack journal edited","outcome":"journal moved aside, ledger untouched (61 entries)","tried":"one record's \"novel\" flag flipped"},{"group":"ingest","held":true,"name":"a genuine feed of 50 records","outcome":"50 of 50 posted, balances sum to 1200775","tried":"signed records for 10 accounts over 6 months"},{"group":"ingest","held":true,"name":"the feed key stolen, posting credit without end","outcome":"behavior at record 5 (cap 10000000 a window)","tried":"20 × a 2,000,000 record with the genuine key"},{"group":"ingest","held":true,"name":"did any record reach the app it should not have?","outcome":"clean — 54 messages checked, state = ledger replay: true","tried":"the ingest node’s referee, after the feed and the theft"},{"group":"referee","held":true,"name":"did anything reach the app it should not have?","outcome":"clean — 61 messages checked, state = ledger replay: true","tried":"every admitted message checked against the gate, the ledger and an independent grammar; the whole state re-folded from the ledger"}],"rule":"reach the app with anything malicious and you win — the referee decides","v":1}
