@cedulon/audit 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +60 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +409 -49
- package/dist/index.js.map +1 -1
- package/package.json +48 -47
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { type SignedCheckpoint } from "@cedulon/checkpoint";
|
|
1
|
+
import { type InclusionReceipt, type SignedCheckpoint } from "@cedulon/checkpoint";
|
|
2
2
|
import { type SignedReceipt } from "@cedulon/receipts";
|
|
3
3
|
import { type RailSettlement, type SignedRailExtract } from "@cedulon/x402-adapter";
|
|
4
|
-
export
|
|
4
|
+
export declare const FINDING_CODES: readonly ["settlement-without-receipt", "receipt-without-settlement", "receipt-chain-break", "checkpoint-total-mismatch", "checkpoint-head-mismatch", "duplicate-ref", "settlement-mismatch", "equivocation", "window-coverage", "settled-without-ref", "unauthenticated-extract", "unauthenticated-issuer", "unauthenticated-witness", "unauthenticated-countersigner", "countersign-missing", "witness-entry-unattributable", "issuer-key-mismatch", "countersign-key-mismatch", "extract-key-mismatch", "extract-scope-mismatch", "extract-settlement-mismatch", "trust-key-unreadable", "unstated-audit-window", "malformed-amount", "countersign-bad", "checkpoint-not-anchored", "checkpoint-withheld", "checkpoint-totals-redacted"];
|
|
5
|
+
export type FindingCode = (typeof FINDING_CODES)[number];
|
|
6
|
+
/** Diagnostic envelope version. Not a wire format until a later draft says so. */
|
|
7
|
+
export declare const FINDING_OBJECT_VERSION = 1;
|
|
5
8
|
/**
|
|
6
9
|
* Trust root the verifier supplies out of band. Without it a rail extract only
|
|
7
10
|
* proves internal consistency: any key can sign any body, including its own.
|
|
@@ -13,6 +16,22 @@ export type RailTrustPin = {
|
|
|
13
16
|
windowStartMs?: number;
|
|
14
17
|
windowEndMs?: number;
|
|
15
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* The issuer key the verifier holds out of band. The rail pin says who reported
|
|
21
|
+
* the settlements; this says who was entitled to issue receipts and checkpoints
|
|
22
|
+
* for them. Without it an attacker mints a key, signs a receipt for a settlement
|
|
23
|
+
* they were never authorised to make, and the row stops looking uncovered.
|
|
24
|
+
*/
|
|
25
|
+
export type IssuerTrustPin = {
|
|
26
|
+
/**
|
|
27
|
+
* One key, or every key the verifier accepts. A single pin turns an honest key
|
|
28
|
+
* rotation into a wall of findings, and the way out an operator reaches for is
|
|
29
|
+
* to stop pinning at all - so the set is stated rather than assumed to be one.
|
|
30
|
+
*/
|
|
31
|
+
publicKeyPem: string | readonly string[];
|
|
32
|
+
};
|
|
33
|
+
/** Payee keys the verifier holds, keyed by the payee named in the receipt. */
|
|
34
|
+
export type PayeeTrustPins = Readonly<Record<string, string>>;
|
|
16
35
|
export type Finding = {
|
|
17
36
|
code: FindingCode;
|
|
18
37
|
detail: string;
|
|
@@ -29,6 +48,25 @@ export type AuditReport = {
|
|
|
29
48
|
export declare function inCheckpointWindow(timestampMs: number, cp: SignedCheckpoint): boolean;
|
|
30
49
|
export declare function receiptsInWindow(receipts: SignedReceipt[], cp: SignedCheckpoint): SignedReceipt[];
|
|
31
50
|
export declare function findReceiptChainBreak(receipts: SignedReceipt[]): Finding | null;
|
|
51
|
+
/**
|
|
52
|
+
* Defects the submitted receipts have on their own terms: a settled receipt that
|
|
53
|
+
* names no rail ref, and two receipts claiming the same one. Neither is a claim
|
|
54
|
+
* about who signed them, so neither depends on a trust root - and an unreadable
|
|
55
|
+
* pin used to take both down with it, quietly simplifying the picture.
|
|
56
|
+
*/
|
|
57
|
+
export declare function findReceiptSelfConsistency(receipts: SignedReceipt[]): Finding[];
|
|
58
|
+
/**
|
|
59
|
+
* Defects keyed by the offending receipt's own nonce. These accuse nobody else,
|
|
60
|
+
* so they are reported for every receipt submitted - a receipt the verifier
|
|
61
|
+
* rejected can still be malformed, and saying so costs the honest side nothing.
|
|
62
|
+
*/
|
|
63
|
+
export declare function findReceiptDefects(receipts: SignedReceipt[]): Finding[];
|
|
64
|
+
/**
|
|
65
|
+
* A clash between two receipts, keyed by the rail ref they share. That ref may
|
|
66
|
+
* be one the honest issuer legitimately used, so this question is asked only of
|
|
67
|
+
* the receipts the verifier accepts.
|
|
68
|
+
*/
|
|
69
|
+
export declare function findReceiptRefClashes(receipts: SignedReceipt[]): Finding[];
|
|
32
70
|
export declare function findSettlementMatches(receipts: SignedReceipt[], settlements: RailSettlement[]): Finding[];
|
|
33
71
|
/** @deprecated use findSettlementMatches */
|
|
34
72
|
export declare function findSettlementsWithoutReceipt(receipts: SignedReceipt[], settlements: RailSettlement[]): Finding[];
|
|
@@ -37,12 +75,30 @@ export declare function findReceiptsWithoutSettlement(receipts: SignedReceipt[],
|
|
|
37
75
|
export declare function findWindowCoverage(receipts: SignedReceipt[], checkpoints: SignedCheckpoint[]): Finding[];
|
|
38
76
|
export declare function findCheckpointTotalMismatches(receipts: SignedReceipt[], checkpoints: SignedCheckpoint[]): Finding[];
|
|
39
77
|
export declare function findEquivocationFinding(checkpoints: SignedCheckpoint[]): Finding | null;
|
|
40
|
-
export
|
|
78
|
+
export type AuditInput = {
|
|
41
79
|
receipts: SignedReceipt[];
|
|
42
80
|
checkpoints: SignedCheckpoint[];
|
|
43
81
|
settlements?: RailSettlement[];
|
|
44
82
|
extract?: SignedRailExtract;
|
|
45
83
|
trust?: RailTrustPin;
|
|
46
|
-
|
|
84
|
+
issuerTrust?: IssuerTrustPin;
|
|
85
|
+
/** The transparency log's key, held out of band. Same argument as the two above. */
|
|
86
|
+
witnessTrust?: IssuerTrustPin;
|
|
87
|
+
/** Payee keys the verifier holds, keyed by payee. Same argument again. */
|
|
88
|
+
payeeTrust?: PayeeTrustPins;
|
|
89
|
+
/** Checkpoint inclusion receipts. Absent ⇒ today's behaviour. Present ⇒ T11 witness is configured. */
|
|
90
|
+
inclusionReceipts?: InclusionReceipt[];
|
|
91
|
+
};
|
|
92
|
+
export declare function audit(input: AuditInput): AuditReport;
|
|
93
|
+
export type FindingObject = {
|
|
94
|
+
findingObjectVersion: typeof FINDING_OBJECT_VERSION;
|
|
95
|
+
ok: boolean;
|
|
96
|
+
guarantee: AuditReport["guarantee"];
|
|
97
|
+
summary: string;
|
|
98
|
+
receipts: number;
|
|
99
|
+
findings: Finding[];
|
|
100
|
+
warnings: Finding[];
|
|
101
|
+
};
|
|
102
|
+
export declare function toFindingObject(report: AuditReport, receiptCount?: number): FindingObject;
|
|
47
103
|
export declare function formatAudit(report: AuditReport, receiptCount?: number): string;
|
|
48
104
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,60 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { findCheckpointChainBreak, findEquivocation, totalsFromReceipts, verifyCheckpoint, } from "@cedulon/checkpoint";
|
|
1
|
+
import { sameSpkiKey, toSpkiDer } from "@cedulon/cose";
|
|
2
|
+
import { findCheckpointChainBreak, findEquivocation, statementHashOfCheckpoint, totalsFromReceipts, verifyCheckpoint, verifyInclusionReceipt, } from "@cedulon/checkpoint";
|
|
3
3
|
import { receiptHash, verifyCounterSignature, verifyReceipt } from "@cedulon/receipts";
|
|
4
4
|
import { verifyRailExtract, } from "@cedulon/x402-adapter";
|
|
5
|
+
export const FINDING_CODES = [
|
|
6
|
+
"settlement-without-receipt",
|
|
7
|
+
"receipt-without-settlement",
|
|
8
|
+
"receipt-chain-break",
|
|
9
|
+
"checkpoint-total-mismatch",
|
|
10
|
+
"checkpoint-head-mismatch",
|
|
11
|
+
"duplicate-ref",
|
|
12
|
+
"settlement-mismatch",
|
|
13
|
+
"equivocation",
|
|
14
|
+
"window-coverage",
|
|
15
|
+
"settled-without-ref",
|
|
16
|
+
"unauthenticated-extract",
|
|
17
|
+
"unauthenticated-issuer",
|
|
18
|
+
"unauthenticated-witness",
|
|
19
|
+
"unauthenticated-countersigner",
|
|
20
|
+
"countersign-missing",
|
|
21
|
+
"witness-entry-unattributable",
|
|
22
|
+
"issuer-key-mismatch",
|
|
23
|
+
"countersign-key-mismatch",
|
|
24
|
+
"extract-key-mismatch",
|
|
25
|
+
"extract-scope-mismatch",
|
|
26
|
+
"extract-settlement-mismatch",
|
|
27
|
+
"trust-key-unreadable",
|
|
28
|
+
"unstated-audit-window",
|
|
29
|
+
"malformed-amount",
|
|
30
|
+
"countersign-bad",
|
|
31
|
+
"checkpoint-not-anchored",
|
|
32
|
+
"checkpoint-withheld",
|
|
33
|
+
"checkpoint-totals-redacted",
|
|
34
|
+
];
|
|
35
|
+
/** Diagnostic envelope version. Not a wire format until a later draft says so. */
|
|
36
|
+
export const FINDING_OBJECT_VERSION = 1;
|
|
37
|
+
/**
|
|
38
|
+
* Reads a pin as SPKI DER, keeping the keys it could read and counting the ones
|
|
39
|
+
* it could not. One mistyped key in a rotation set must not throw away the
|
|
40
|
+
* others, and a set nothing could be read from must withhold trust rather than
|
|
41
|
+
* fall back to accepting everything.
|
|
42
|
+
*/
|
|
43
|
+
function pinnedKeys(pin) {
|
|
44
|
+
const pems = typeof pin === "string" ? [pin] : pin;
|
|
45
|
+
const usable = [];
|
|
46
|
+
let unreadable = 0;
|
|
47
|
+
for (const pem of pems) {
|
|
48
|
+
const der = toSpkiDer(pem);
|
|
49
|
+
if (der === null) {
|
|
50
|
+
unreadable += 1;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
usable.push(der);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return { usable, unreadable };
|
|
57
|
+
}
|
|
5
58
|
function receiptRef(r) {
|
|
6
59
|
return r.claims.x402PaymentRef;
|
|
7
60
|
}
|
|
@@ -52,10 +105,23 @@ function pushDuplicateRefs(items, findings) {
|
|
|
52
105
|
}
|
|
53
106
|
return dupes;
|
|
54
107
|
}
|
|
55
|
-
|
|
108
|
+
/**
|
|
109
|
+
* Defects the submitted receipts have on their own terms: a settled receipt that
|
|
110
|
+
* names no rail ref, and two receipts claiming the same one. Neither is a claim
|
|
111
|
+
* about who signed them, so neither depends on a trust root - and an unreadable
|
|
112
|
+
* pin used to take both down with it, quietly simplifying the picture.
|
|
113
|
+
*/
|
|
114
|
+
export function findReceiptSelfConsistency(receipts) {
|
|
115
|
+
return [...findReceiptDefects(receipts), ...findReceiptRefClashes(receipts)];
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Defects keyed by the offending receipt's own nonce. These accuse nobody else,
|
|
119
|
+
* so they are reported for every receipt submitted - a receipt the verifier
|
|
120
|
+
* rejected can still be malformed, and saying so costs the honest side nothing.
|
|
121
|
+
*/
|
|
122
|
+
export function findReceiptDefects(receipts) {
|
|
56
123
|
const findings = [];
|
|
57
|
-
const
|
|
58
|
-
for (const r of settled) {
|
|
124
|
+
for (const r of receipts.filter(isSettled)) {
|
|
59
125
|
if (receiptRef(r) === null) {
|
|
60
126
|
findings.push({
|
|
61
127
|
code: "settled-without-ref",
|
|
@@ -64,6 +130,25 @@ export function findSettlementMatches(receipts, settlements) {
|
|
|
64
130
|
});
|
|
65
131
|
}
|
|
66
132
|
}
|
|
133
|
+
return findings;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* A clash between two receipts, keyed by the rail ref they share. That ref may
|
|
137
|
+
* be one the honest issuer legitimately used, so this question is asked only of
|
|
138
|
+
* the receipts the verifier accepts.
|
|
139
|
+
*/
|
|
140
|
+
export function findReceiptRefClashes(receipts) {
|
|
141
|
+
const findings = [];
|
|
142
|
+
const withRef = receipts
|
|
143
|
+
.filter(isSettled)
|
|
144
|
+
.map((r) => ({ ref: receiptRef(r), id: r.claims.nonce, side: "receipt" }))
|
|
145
|
+
.filter((x) => x.ref !== null);
|
|
146
|
+
pushDuplicateRefs(withRef, findings);
|
|
147
|
+
return findings;
|
|
148
|
+
}
|
|
149
|
+
export function findSettlementMatches(receipts, settlements) {
|
|
150
|
+
const findings = [];
|
|
151
|
+
const settled = receipts.filter(isSettled);
|
|
67
152
|
const receiptItems = settled
|
|
68
153
|
.map((r) => ({ ref: receiptRef(r), id: r.claims.nonce, side: "receipt", receipt: r }))
|
|
69
154
|
.filter((x) => x.ref !== null);
|
|
@@ -73,7 +158,9 @@ export function findSettlementMatches(receipts, settlements) {
|
|
|
73
158
|
side: "settlement",
|
|
74
159
|
settlement: s,
|
|
75
160
|
}));
|
|
76
|
-
|
|
161
|
+
// Reported by findReceiptRefClashes over the accepted set; here the set is
|
|
162
|
+
// only needed to know which refs the aggregate walk covers.
|
|
163
|
+
const dupeReceipt = pushDuplicateRefs(receiptItems, []);
|
|
77
164
|
const dupeSettlement = pushDuplicateRefs(settlementItems, findings);
|
|
78
165
|
const skip = new Set([...dupeReceipt, ...dupeSettlement]);
|
|
79
166
|
// A ref that repeats is skipped by the ref-keyed match below, so compare the
|
|
@@ -239,7 +326,7 @@ export function findCheckpointTotalMismatches(receipts, checkpoints) {
|
|
|
239
326
|
}
|
|
240
327
|
const inWindow = receiptsInWindow(receipts, cp);
|
|
241
328
|
const expected = totalsFromReceipts(inWindow);
|
|
242
|
-
if (JSON.stringify(expected) !== JSON.stringify(cp.claims.totals)) {
|
|
329
|
+
if (cp.claims.totals !== null && JSON.stringify(expected) !== JSON.stringify(cp.claims.totals)) {
|
|
243
330
|
findings.push({
|
|
244
331
|
code: "checkpoint-total-mismatch",
|
|
245
332
|
id: `epoch-${cp.claims.epoch}`,
|
|
@@ -283,34 +370,147 @@ export function findEquivocationFinding(checkpoints) {
|
|
|
283
370
|
detail: `epoch ${hit.epoch} has ${hit.hashes.length} distinct checkpoint hashes`,
|
|
284
371
|
};
|
|
285
372
|
}
|
|
373
|
+
/** A log may publish under more than one key, the same way an issuer may. */
|
|
374
|
+
function inclusionFromPinnedLog(rec, witnessKeyPem) {
|
|
375
|
+
if (witnessKeyPem === undefined) {
|
|
376
|
+
return verifyInclusionReceipt(rec);
|
|
377
|
+
}
|
|
378
|
+
const pems = typeof witnessKeyPem === "string" ? [witnessKeyPem] : witnessKeyPem;
|
|
379
|
+
return pems.some((pem) => verifyInclusionReceipt(rec, pem));
|
|
380
|
+
}
|
|
286
381
|
/**
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
*
|
|
382
|
+
* `attestsIssuer` is the second question: the witness pin says which log spoke,
|
|
383
|
+
* and this says whether the statement that log holds was signed by the issuer
|
|
384
|
+
* under audit. Without it a pinned log can carry a body anyone minted into the
|
|
385
|
+
* epoch pool.
|
|
290
386
|
*/
|
|
291
|
-
function
|
|
292
|
-
const
|
|
293
|
-
const
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
387
|
+
function verifiedWitnessCheckpoints(receipts, witnessKeyPem, attestsIssuer) {
|
|
388
|
+
const out = [];
|
|
389
|
+
for (const rec of receipts) {
|
|
390
|
+
if (!inclusionFromPinnedLog(rec, witnessKeyPem) || !rec.checkpoint) {
|
|
391
|
+
continue;
|
|
392
|
+
}
|
|
393
|
+
if (attestsIssuer && !attestsIssuer(rec.checkpoint.publicKeyPem)) {
|
|
394
|
+
continue;
|
|
395
|
+
}
|
|
396
|
+
if (statementHashOfCheckpoint(rec.checkpoint) !== rec.statementHash) {
|
|
397
|
+
continue;
|
|
398
|
+
}
|
|
399
|
+
if (!verifyCheckpoint(rec.checkpoint)) {
|
|
400
|
+
continue;
|
|
401
|
+
}
|
|
402
|
+
out.push(rec.checkpoint);
|
|
403
|
+
}
|
|
404
|
+
return out;
|
|
405
|
+
}
|
|
406
|
+
function findTransparencyWitness(checkpoints, inclusionReceipts, witnessKeyPem, attestsIssuer) {
|
|
407
|
+
const findings = [];
|
|
408
|
+
const warnings = [];
|
|
409
|
+
// Two different questions, so two different sets.
|
|
410
|
+
//
|
|
411
|
+
// Anchoring only needs the hash: an entry that binds this checkpoint proves it
|
|
412
|
+
// was logged, whoever else can read the body.
|
|
413
|
+
const anchoring = inclusionReceipts.filter((r) => inclusionFromPinnedLog(r, witnessKeyPem));
|
|
414
|
+
const witnessHashes = new Set(anchoring.map((r) => r.statementHash));
|
|
415
|
+
// Accusing an issuer of withholding an epoch needs to know whose epoch it is.
|
|
416
|
+
// A log holds statements from everyone who uses it, and an entry with no body
|
|
417
|
+
// names nobody - stripping the body off a genuine entry is free, and it used
|
|
418
|
+
// to be enough to report an honest issuer for hiding something never theirs.
|
|
419
|
+
const accusing = anchoring.filter((r) => r.checkpoint && (!attestsIssuer || attestsIssuer(r.checkpoint.publicKeyPem)));
|
|
420
|
+
const presentedHashes = new Set(checkpoints.map(statementHashOfCheckpoint));
|
|
421
|
+
for (const cp of checkpoints) {
|
|
422
|
+
const hash = statementHashOfCheckpoint(cp);
|
|
423
|
+
if (!witnessHashes.has(hash)) {
|
|
424
|
+
warnings.push({
|
|
425
|
+
code: "checkpoint-not-anchored",
|
|
426
|
+
id: `epoch-${cp.claims.epoch}`,
|
|
427
|
+
detail: `checkpoint epoch ${cp.claims.epoch} has no inclusion receipt in the configured witness`,
|
|
428
|
+
severity: "warn",
|
|
307
429
|
});
|
|
308
430
|
}
|
|
309
|
-
|
|
310
|
-
|
|
431
|
+
}
|
|
432
|
+
// Cannot name who logged these, so they are not accusations - but a real
|
|
433
|
+
// withholding goes silent if stripping the body is enough to bury it. Counted
|
|
434
|
+
// rather than listed: entries with no body are free to produce, and one
|
|
435
|
+
// warning each would let an attacker bury the findings under volume.
|
|
436
|
+
const unattributable = anchoring.filter((rec) => !rec.checkpoint && !presentedHashes.has(rec.statementHash));
|
|
437
|
+
if (unattributable.length > 0) {
|
|
438
|
+
warnings.push({
|
|
439
|
+
code: "witness-entry-unattributable",
|
|
440
|
+
id: "witness",
|
|
441
|
+
detail: `the witness holds ${unattributable.length} statement(s) this chain does not present and which carry no body to say whose they are; first is ${unattributable[0].statementHash}`,
|
|
442
|
+
severity: "warn",
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
for (const rec of accusing) {
|
|
446
|
+
if (!presentedHashes.has(rec.statementHash)) {
|
|
447
|
+
findings.push({
|
|
448
|
+
code: "checkpoint-withheld",
|
|
449
|
+
id: rec.statementHash,
|
|
450
|
+
detail: `inclusion receipt index ${rec.index} binds statement ${rec.statementHash}, which is not in the presented checkpoint chain`,
|
|
451
|
+
});
|
|
311
452
|
}
|
|
312
453
|
}
|
|
313
|
-
return
|
|
454
|
+
return { findings, warnings };
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* A countersignature travels beside the issuer signature without being covered
|
|
458
|
+
* by it, so anyone holding an honest receipt can append one of their own and it
|
|
459
|
+
* reads as the payee having approved the payment. Checking it against the key it
|
|
460
|
+
* carries answers a question that answers itself; the payee key has to come from
|
|
461
|
+
* the verifier. Findings go into `findings`; the return value is the warnings.
|
|
462
|
+
*/
|
|
463
|
+
function findCountersignFindings(input, findings) {
|
|
464
|
+
const warnings = [];
|
|
465
|
+
const countersigned = input.receipts.filter((r) => r.counterCoseHex);
|
|
466
|
+
for (const r of countersigned) {
|
|
467
|
+
const pinned = input.payeeTrust?.[r.claims.payee];
|
|
468
|
+
if (!verifyCounterSignature(r)) {
|
|
469
|
+
findings.push({
|
|
470
|
+
code: "countersign-bad",
|
|
471
|
+
id: r.claims.nonce,
|
|
472
|
+
detail: `payee countersignature on nonce=${r.claims.nonce} failed verify`,
|
|
473
|
+
});
|
|
474
|
+
continue;
|
|
475
|
+
}
|
|
476
|
+
if (pinned === undefined) {
|
|
477
|
+
continue;
|
|
478
|
+
}
|
|
479
|
+
const carried = r.payeePublicKeyPem;
|
|
480
|
+
if (carried === undefined || !sameSpkiKey(carried, pinned)) {
|
|
481
|
+
findings.push({
|
|
482
|
+
code: "countersign-key-mismatch",
|
|
483
|
+
id: r.claims.nonce,
|
|
484
|
+
detail: `the countersignature on nonce=${r.claims.nonce} is by a key other than the one pinned for payee ${r.claims.payee}, so it is not that payee approving the payment`,
|
|
485
|
+
});
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
// Naming a payee key is the verifier saying it expects that payee's word on
|
|
489
|
+
// these payments. Dropping the countersignature would otherwise drop the
|
|
490
|
+
// question with it, so deleting the evidence - or a failed forgery - would
|
|
491
|
+
// read as nothing to answer.
|
|
492
|
+
for (const r of input.receipts) {
|
|
493
|
+
if (isSettled(r) &&
|
|
494
|
+
!r.counterCoseHex &&
|
|
495
|
+
input.payeeTrust?.[r.claims.payee] !== undefined) {
|
|
496
|
+
warnings.push({
|
|
497
|
+
code: "countersign-missing",
|
|
498
|
+
id: r.claims.nonce,
|
|
499
|
+
detail: `a payee key is pinned for ${r.claims.payee} but receipt nonce=${r.claims.nonce} carries no countersignature from them`,
|
|
500
|
+
severity: "warn",
|
|
501
|
+
});
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
const unpinned = countersigned.filter((r) => input.payeeTrust?.[r.claims.payee] === undefined);
|
|
505
|
+
if (unpinned.length > 0) {
|
|
506
|
+
warnings.push({
|
|
507
|
+
code: "unauthenticated-countersigner",
|
|
508
|
+
id: "countersigner",
|
|
509
|
+
detail: `${unpinned.length} receipt(s) carry a countersignature checked only against the key travelling with them; without a verifier-supplied payee key that is not evidence the payee approved anything`,
|
|
510
|
+
severity: "warn",
|
|
511
|
+
});
|
|
512
|
+
}
|
|
513
|
+
return warnings;
|
|
314
514
|
}
|
|
315
515
|
function settlementKey(s) {
|
|
316
516
|
return [s.ref, s.amount, s.currency, s.timestampMs].join("\u0000");
|
|
@@ -446,35 +646,182 @@ export function audit(input) {
|
|
|
446
646
|
severity: "warn",
|
|
447
647
|
});
|
|
448
648
|
}
|
|
649
|
+
// The rail pin answers who reported the settlements. It says nothing about who
|
|
650
|
+
// was entitled to issue receipts for them, and a receipt verified against the
|
|
651
|
+
// key it carries only proves it is internally consistent. So the receipts that
|
|
652
|
+
// count as coverage are the ones answering to a second root, stated out of band.
|
|
653
|
+
let attested = input.receipts;
|
|
654
|
+
// Null while no issuer key was stated: there is no attested/unattested split
|
|
655
|
+
// to make, and every check falls back to the whole submitted list.
|
|
656
|
+
let attestsIssuer = null;
|
|
657
|
+
// True only when a pin was supplied and at least one key in it could be read.
|
|
658
|
+
let issuerPinUsable = false;
|
|
659
|
+
if (!input.issuerTrust) {
|
|
660
|
+
// Only worth saying when the audit actually leans on an issued object. An
|
|
661
|
+
// audit with no receipts and no checkpoints rests on the extract alone, and
|
|
662
|
+
// warning about a root it never used would cheapen the warning.
|
|
663
|
+
if (input.receipts.length > 0 || input.checkpoints.length > 0) {
|
|
664
|
+
warnings.push({
|
|
665
|
+
code: "unauthenticated-issuer",
|
|
666
|
+
id: "issuer",
|
|
667
|
+
detail: "no verifier-supplied issuer key; receipt and checkpoint signatures prove internal consistency, not that the named issuer produced them. Without one there is no way to tell a receipt from this issuer apart from any other, so every receipt submitted is weighed as one set and the completeness guarantee is conditional",
|
|
668
|
+
severity: "warn",
|
|
669
|
+
});
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
else {
|
|
673
|
+
const { usable: issuerDers, unreadable } = pinnedKeys(input.issuerTrust.publicKeyPem);
|
|
674
|
+
if (unreadable > 0 || issuerDers.length === 0) {
|
|
675
|
+
// The verifier's own configuration is broken. Calling this a mismatch would
|
|
676
|
+
// blame the receipts for a key we could not read.
|
|
677
|
+
findings.push({
|
|
678
|
+
code: "trust-key-unreadable",
|
|
679
|
+
id: "issuer",
|
|
680
|
+
detail: issuerDers.length === 0
|
|
681
|
+
? "no pinned issuer key could be read as a public key, so nothing is attested; supply PEM or base64 SPKI"
|
|
682
|
+
: `${unreadable} of the pinned issuer keys could not be read as a public key; the rest are still in use`,
|
|
683
|
+
});
|
|
684
|
+
}
|
|
685
|
+
{
|
|
686
|
+
const attests = (pem) => {
|
|
687
|
+
if (issuerDers.length === 0) {
|
|
688
|
+
// Withholding trust, not handing it out: a pin nobody could read is
|
|
689
|
+
// the one case where falling back to "accept everything" turns a
|
|
690
|
+
// broken setting into a bypass.
|
|
691
|
+
return false;
|
|
692
|
+
}
|
|
693
|
+
const der = toSpkiDer(pem);
|
|
694
|
+
return der !== null && issuerDers.some((pinned) => pinned.equals(der));
|
|
695
|
+
};
|
|
696
|
+
attestsIssuer = attests;
|
|
697
|
+
issuerPinUsable = issuerDers.length > 0;
|
|
698
|
+
// Naming a mismatch when the pin itself could not be read would blame the
|
|
699
|
+
// receipts for the verifier's own broken setting - and every receipt at
|
|
700
|
+
// once. `trust-key-unreadable` above already says what went wrong; nothing
|
|
701
|
+
// is attested, so the settlements come back uncovered on their own.
|
|
702
|
+
const namesMismatches = issuerDers.length > 0;
|
|
703
|
+
// Reported and then set aside: a receipt from another key is evidence about
|
|
704
|
+
// that key, not coverage of the settlement it names. Leaving it in the
|
|
705
|
+
// reconciliation is exactly how a forged receipt silences a naked row.
|
|
706
|
+
// Receipts are free to mint, so a report that lists one finding per rejected
|
|
707
|
+
// receipt can be buried under volume by anyone. Named individually while
|
|
708
|
+
// there are few enough to act on, counted once past that.
|
|
709
|
+
const rejected = namesMismatches
|
|
710
|
+
? input.receipts.filter((r) => !attests(r.publicKeyPem))
|
|
711
|
+
: [];
|
|
712
|
+
const NAMED_LIMIT = 10;
|
|
713
|
+
if (rejected.length > NAMED_LIMIT) {
|
|
714
|
+
findings.push({
|
|
715
|
+
code: "issuer-key-mismatch",
|
|
716
|
+
id: "receipts",
|
|
717
|
+
detail: `${rejected.length} receipts are signed by a key other than the pinned issuer key, so none of them is coverage for any settlement; first is nonce=${rejected[0].claims.nonce}`,
|
|
718
|
+
});
|
|
719
|
+
}
|
|
720
|
+
else {
|
|
721
|
+
for (const r of rejected) {
|
|
722
|
+
findings.push({
|
|
723
|
+
code: "issuer-key-mismatch",
|
|
724
|
+
id: r.claims.nonce,
|
|
725
|
+
detail: `receipt nonce=${r.claims.nonce} is signed by a key other than the pinned issuer key, so it is not coverage for ${r.claims.x402PaymentRef ?? "any settlement"}`,
|
|
726
|
+
});
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
for (const cp of namesMismatches ? input.checkpoints : []) {
|
|
730
|
+
if (!attests(cp.publicKeyPem)) {
|
|
731
|
+
findings.push({
|
|
732
|
+
code: "issuer-key-mismatch",
|
|
733
|
+
id: `epoch-${cp.claims.epoch}`,
|
|
734
|
+
detail: `checkpoint epoch ${cp.claims.epoch} is signed by a key other than the pinned issuer key`,
|
|
735
|
+
});
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
attested = input.receipts.filter((r) => attests(r.publicKeyPem));
|
|
739
|
+
}
|
|
740
|
+
}
|
|
449
741
|
// An extract reports on the period it declares. Matching receipts from
|
|
450
742
|
// outside that period against it would call an honest later spend a
|
|
451
743
|
// completeness failure, so they are out of scope for this extract; auditing
|
|
452
744
|
// a longer period means obtaining extracts that cover it.
|
|
453
745
|
const inScope = input.extract
|
|
454
|
-
?
|
|
746
|
+
? attested.filter((r) => r.claims.timestampMs >= input.extract.body.windowStartMs &&
|
|
455
747
|
r.claims.timestampMs < input.extract.body.windowEndMs)
|
|
456
|
-
:
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
748
|
+
: attested;
|
|
749
|
+
// Self-consistency is a question about the receipts this verifier accepts. Run
|
|
750
|
+
// it over everything submitted and an attacker mints a receipt claiming a rail
|
|
751
|
+
// ref the honest issuer already used, and the duplicate lands on the honest
|
|
752
|
+
// set. Where there is no accepted set - no issuer key, or one nothing could be
|
|
753
|
+
// read from - the submitted set is the only thing there is to be consistent
|
|
754
|
+
// about, and its clashes are worth saying out loud.
|
|
755
|
+
// Two questions with two different subjects. What a receipt says about itself
|
|
756
|
+
// is asked of everything submitted; what two receipts say about each other is
|
|
757
|
+
// asked of the set this verifier accepts, or of everything when there is no
|
|
758
|
+
// accepted set to speak of.
|
|
759
|
+
findings.push(...findReceiptDefects(input.receipts));
|
|
760
|
+
// With an issuer key a clash is between receipts the verifier accepts, so it
|
|
761
|
+
// is a failure. Without one nothing distinguishes a submitted receipt from any
|
|
762
|
+
// other, so the same clash cannot be pinned on anyone - said out loud, but not
|
|
763
|
+
// as a verdict against a set the verifier cannot vouch for.
|
|
764
|
+
for (const clash of findReceiptRefClashes(issuerPinUsable ? attested : input.receipts)) {
|
|
765
|
+
if (issuerPinUsable) {
|
|
766
|
+
findings.push(clash);
|
|
461
767
|
}
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
code: "countersign-bad",
|
|
465
|
-
id: r.claims.nonce,
|
|
466
|
-
detail: `payee countersignature on nonce=${r.claims.nonce} failed verify`,
|
|
467
|
-
});
|
|
768
|
+
else {
|
|
769
|
+
warnings.push({ ...clash, severity: "warn" });
|
|
468
770
|
}
|
|
469
771
|
}
|
|
470
|
-
|
|
772
|
+
findings.push(...findSettlementMatches(inScope, reconciled));
|
|
773
|
+
// Every check below reasons about what the issuer published. Walking the whole
|
|
774
|
+
// submitted list instead means one receipt from a key the verifier already
|
|
775
|
+
// rejected writes "the checkpoint lied" and "the chain is broken" against an
|
|
776
|
+
// honest issuer - noise that argues for switching the pin off.
|
|
777
|
+
const attestedCheckpoints = attestsIssuer
|
|
778
|
+
? input.checkpoints.filter((cp) => attestsIssuer(cp.publicKeyPem))
|
|
779
|
+
: input.checkpoints;
|
|
780
|
+
warnings.push(...findCountersignFindings({ receipts: issuerPinUsable ? attested : input.receipts, payeeTrust: input.payeeTrust }, findings));
|
|
781
|
+
const chain = findReceiptChainBreak(attested);
|
|
471
782
|
if (chain)
|
|
472
783
|
findings.push(chain);
|
|
473
|
-
findings.push(...findCheckpointTotalMismatches(
|
|
474
|
-
findings.push(...findWindowCoverage(
|
|
475
|
-
|
|
784
|
+
findings.push(...findCheckpointTotalMismatches(attested, attestedCheckpoints));
|
|
785
|
+
findings.push(...findWindowCoverage(attested, attestedCheckpoints));
|
|
786
|
+
// A witness only adds evidence once the verifier has named the log. Until then
|
|
787
|
+
// its inclusion receipts are a log anyone could have invented, and letting them
|
|
788
|
+
// reach the epoch pool lets an attacker report the honest issuer for publishing
|
|
789
|
+
// two checkpoints of one epoch. The warning says why they were left out.
|
|
790
|
+
const witnessConfigured = Boolean(input.inclusionReceipts && input.witnessTrust);
|
|
791
|
+
const witnessCheckpoints = witnessConfigured
|
|
792
|
+
? verifiedWitnessCheckpoints(input.inclusionReceipts, input.witnessTrust.publicKeyPem, attestsIssuer)
|
|
793
|
+
: [];
|
|
794
|
+
const equiv = findEquivocationFinding([...attestedCheckpoints, ...witnessCheckpoints]);
|
|
476
795
|
if (equiv)
|
|
477
796
|
findings.push(equiv);
|
|
797
|
+
if (input.inclusionReceipts) {
|
|
798
|
+
if (witnessConfigured) {
|
|
799
|
+
const witness = findTransparencyWitness(attestedCheckpoints, input.inclusionReceipts, input.witnessTrust.publicKeyPem, attestsIssuer);
|
|
800
|
+
findings.push(...witness.findings);
|
|
801
|
+
warnings.push(...witness.warnings);
|
|
802
|
+
}
|
|
803
|
+
else {
|
|
804
|
+
warnings.push({
|
|
805
|
+
code: "unauthenticated-witness",
|
|
806
|
+
id: "witness",
|
|
807
|
+
detail: "no verifier-supplied witness key; an inclusion receipt is checked against the key it carries, so it says a log exists rather than that the named log anchored anything, and it was left out of the comparison",
|
|
808
|
+
severity: "warn",
|
|
809
|
+
});
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
// A signed redaction is honest but unverifiable: say so, and drop the claim to
|
|
813
|
+
// conditional. Only a checkpoint that verifies gets to make this claim — an
|
|
814
|
+
// unverifiable one has already been reported above.
|
|
815
|
+
for (const cp of attestedCheckpoints) {
|
|
816
|
+
if (cp.claims.totals === null && verifyCheckpoint(cp)) {
|
|
817
|
+
warnings.push({
|
|
818
|
+
code: "checkpoint-totals-redacted",
|
|
819
|
+
id: `epoch-${cp.claims.epoch}`,
|
|
820
|
+
detail: `checkpoint epoch ${cp.claims.epoch} was signed with its totals withheld; totals comparison skipped`,
|
|
821
|
+
severity: "warn",
|
|
822
|
+
});
|
|
823
|
+
}
|
|
824
|
+
}
|
|
478
825
|
const hard = findings.filter((f) => f.severity !== "warn");
|
|
479
826
|
const missing = hard.filter((f) => f.code === "settlement-without-receipt");
|
|
480
827
|
const summary = hard.length === 0
|
|
@@ -482,21 +829,34 @@ export function audit(input) {
|
|
|
482
829
|
: missing.length > 0
|
|
483
830
|
? `audit: ${missing.length} settlement without receipt → FAIL`
|
|
484
831
|
: `audit: ${hard.length} finding(s) → FAIL`;
|
|
485
|
-
// A finding that says the
|
|
832
|
+
// A finding that says the evidence itself cannot be trusted also removes the
|
|
486
833
|
// unconditional claim; otherwise a report could name a key mismatch and still
|
|
487
834
|
// describe its own guarantee as unconditional.
|
|
488
|
-
const
|
|
835
|
+
const doubtedEvidence = hard.some((f) => f.code === "extract-key-mismatch" ||
|
|
489
836
|
f.code === "trust-key-unreadable" ||
|
|
490
837
|
f.code === "extract-scope-mismatch" ||
|
|
491
|
-
f.code === "extract-settlement-mismatch"
|
|
838
|
+
f.code === "extract-settlement-mismatch" ||
|
|
839
|
+
f.code === "issuer-key-mismatch" ||
|
|
840
|
+
f.code === "countersign-key-mismatch");
|
|
492
841
|
return {
|
|
493
842
|
ok: hard.length === 0,
|
|
494
843
|
findings: hard,
|
|
495
844
|
warnings,
|
|
496
|
-
guarantee: warnings.length === 0 && !
|
|
845
|
+
guarantee: warnings.length === 0 && !doubtedEvidence ? "unconditional" : "conditional",
|
|
497
846
|
summary,
|
|
498
847
|
};
|
|
499
848
|
}
|
|
849
|
+
export function toFindingObject(report, receiptCount = 0) {
|
|
850
|
+
return {
|
|
851
|
+
findingObjectVersion: FINDING_OBJECT_VERSION,
|
|
852
|
+
ok: report.ok,
|
|
853
|
+
guarantee: report.guarantee,
|
|
854
|
+
summary: report.summary,
|
|
855
|
+
receipts: receiptCount,
|
|
856
|
+
findings: report.findings,
|
|
857
|
+
warnings: report.warnings,
|
|
858
|
+
};
|
|
859
|
+
}
|
|
500
860
|
export function formatAudit(report, receiptCount = 0) {
|
|
501
861
|
const lines = report.ok
|
|
502
862
|
? [`audit: balanced`, `receipts=${receiptCount}`, "findings=0"]
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,47 +1,48 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@cedulon/audit",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Reconcile a rail extract against the Cedulon receipt chain.",
|
|
5
|
-
"license": "Apache-2.0",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"engines": {
|
|
8
|
-
"node": ">=20"
|
|
9
|
-
},
|
|
10
|
-
"repository": {
|
|
11
|
-
"type": "git",
|
|
12
|
-
"url": "git+https://github.com/dogrucanemek-alt/cedulon.git",
|
|
13
|
-
"directory": "packages/audit"
|
|
14
|
-
},
|
|
15
|
-
"homepage": "https://github.com/dogrucanemek-alt/cedulon/tree/master/packages/audit",
|
|
16
|
-
"bugs": {
|
|
17
|
-
"url": "https://github.com/dogrucanemek-alt/cedulon/issues"
|
|
18
|
-
},
|
|
19
|
-
"keywords": [
|
|
20
|
-
"cedulon",
|
|
21
|
-
"audit"
|
|
22
|
-
],
|
|
23
|
-
"scripts": {
|
|
24
|
-
"build": "tsc -p tsconfig.build.json"
|
|
25
|
-
},
|
|
26
|
-
"main": "./dist/index.js",
|
|
27
|
-
"types": "./dist/index.d.ts",
|
|
28
|
-
"exports": {
|
|
29
|
-
".": {
|
|
30
|
-
"types": "./dist/index.d.ts",
|
|
31
|
-
"import": "./dist/index.js"
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
"files": [
|
|
35
|
-
"dist",
|
|
36
|
-
"README.md",
|
|
37
|
-
"LICENSE"
|
|
38
|
-
],
|
|
39
|
-
"publishConfig": {
|
|
40
|
-
"access": "public"
|
|
41
|
-
},
|
|
42
|
-
"dependencies": {
|
|
43
|
-
"@cedulon/checkpoint": "^0.
|
|
44
|
-
"@cedulon/
|
|
45
|
-
"@cedulon/
|
|
46
|
-
|
|
47
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@cedulon/audit",
|
|
3
|
+
"version": "0.3.1",
|
|
4
|
+
"description": "Reconcile a rail extract against the Cedulon receipt chain.",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=20"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/dogrucanemek-alt/cedulon.git",
|
|
13
|
+
"directory": "packages/audit"
|
|
14
|
+
},
|
|
15
|
+
"homepage": "https://github.com/dogrucanemek-alt/cedulon/tree/master/packages/audit",
|
|
16
|
+
"bugs": {
|
|
17
|
+
"url": "https://github.com/dogrucanemek-alt/cedulon/issues"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"cedulon",
|
|
21
|
+
"audit"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsc -p tsconfig.build.json"
|
|
25
|
+
},
|
|
26
|
+
"main": "./dist/index.js",
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"exports": {
|
|
29
|
+
".": {
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
31
|
+
"import": "./dist/index.js"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"dist",
|
|
36
|
+
"README.md",
|
|
37
|
+
"LICENSE"
|
|
38
|
+
],
|
|
39
|
+
"publishConfig": {
|
|
40
|
+
"access": "public"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@cedulon/checkpoint": "^0.3.0",
|
|
44
|
+
"@cedulon/cose": "^0.3.0",
|
|
45
|
+
"@cedulon/receipts": "^0.3.0",
|
|
46
|
+
"@cedulon/x402-adapter": "^0.3.0"
|
|
47
|
+
}
|
|
48
|
+
}
|