@cello-protocol/daemon 0.0.181 → 0.0.183
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/agent-id-migration.d.ts +9 -0
- package/dist/agent-id-migration.d.ts.map +1 -1
- package/dist/agent-id-migration.js +73 -1
- package/dist/agent-id-migration.js.map +1 -1
- package/dist/agent-selection.d.ts +73 -0
- package/dist/agent-selection.d.ts.map +1 -0
- package/dist/agent-selection.js +80 -0
- package/dist/agent-selection.js.map +1 -0
- package/dist/agent-settings-keys.d.ts.map +1 -1
- package/dist/agent-settings-keys.js +18 -0
- package/dist/agent-settings-keys.js.map +1 -1
- package/dist/assignment-verify.d.ts +62 -0
- package/dist/assignment-verify.d.ts.map +1 -0
- package/dist/assignment-verify.js +185 -0
- package/dist/assignment-verify.js.map +1 -0
- package/dist/backup-restore.d.ts +102 -0
- package/dist/backup-restore.d.ts.map +1 -0
- package/dist/backup-restore.js +340 -0
- package/dist/backup-restore.js.map +1 -0
- package/dist/bin/cello-daemon.js +91 -49
- package/dist/bin/cello-daemon.js.map +1 -1
- package/dist/close-commitment.d.ts +67 -0
- package/dist/close-commitment.d.ts.map +1 -0
- package/dist/close-commitment.js +78 -0
- package/dist/close-commitment.js.map +1 -0
- package/dist/close-session-handler.d.ts +20 -0
- package/dist/close-session-handler.d.ts.map +1 -1
- package/dist/close-session-handler.js +351 -58
- package/dist/close-session-handler.js.map +1 -1
- package/dist/consortium-bootstrap.d.ts +2 -0
- package/dist/consortium-bootstrap.d.ts.map +1 -1
- package/dist/consortium-bootstrap.js +182 -9
- package/dist/consortium-bootstrap.js.map +1 -1
- package/dist/content-encryption-status.d.ts +97 -0
- package/dist/content-encryption-status.d.ts.map +1 -0
- package/dist/content-encryption-status.js +122 -0
- package/dist/content-encryption-status.js.map +1 -0
- package/dist/content-park-client.d.ts +10 -0
- package/dist/content-park-client.d.ts.map +1 -1
- package/dist/content-park-client.js +84 -3
- package/dist/content-park-client.js.map +1 -1
- package/dist/content-park.d.ts.map +1 -1
- package/dist/content-park.js +323 -21
- package/dist/content-park.js.map +1 -1
- package/dist/daemon.d.ts +13 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +1168 -141
- package/dist/daemon.js.map +1 -1
- package/dist/delivery-session-suspects.d.ts.map +1 -1
- package/dist/delivery-session-suspects.js +5 -0
- package/dist/delivery-session-suspects.js.map +1 -1
- package/dist/directory-auth-posture.d.ts +87 -0
- package/dist/directory-auth-posture.d.ts.map +1 -0
- package/dist/directory-auth-posture.js +134 -0
- package/dist/directory-auth-posture.js.map +1 -0
- package/dist/directory-bootstrap.d.ts +66 -3
- package/dist/directory-bootstrap.d.ts.map +1 -1
- package/dist/directory-bootstrap.js +133 -7
- package/dist/directory-bootstrap.js.map +1 -1
- package/dist/document-delivery-transport.d.ts +22 -2
- package/dist/document-delivery-transport.d.ts.map +1 -1
- package/dist/document-delivery-transport.js +11 -3
- package/dist/document-delivery-transport.js.map +1 -1
- package/dist/document-handlers.d.ts.map +1 -1
- package/dist/document-handlers.js +119 -0
- package/dist/document-handlers.js.map +1 -1
- package/dist/document-layer.d.ts +0 -2
- package/dist/document-layer.d.ts.map +1 -1
- package/dist/document-layer.js.map +1 -1
- package/dist/inbound-sessions.d.ts +31 -1
- package/dist/inbound-sessions.d.ts.map +1 -1
- package/dist/inbound-sessions.js +276 -16
- package/dist/inbound-sessions.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/initiate-session-handler.d.ts.map +1 -1
- package/dist/initiate-session-handler.js +34 -3
- package/dist/initiate-session-handler.js.map +1 -1
- package/dist/ipc-server.d.ts +5 -1
- package/dist/ipc-server.d.ts.map +1 -1
- package/dist/ipc-server.js +19 -3
- package/dist/ipc-server.js.map +1 -1
- package/dist/manifest-deps.d.ts +0 -11
- package/dist/manifest-deps.d.ts.map +1 -1
- package/dist/manifest-deps.js +28 -2
- package/dist/manifest-deps.js.map +1 -1
- package/dist/manifest-validity.d.ts +153 -0
- package/dist/manifest-validity.d.ts.map +1 -0
- package/dist/manifest-validity.js +268 -0
- package/dist/manifest-validity.js.map +1 -0
- package/dist/notification-handlers.d.ts.map +1 -1
- package/dist/notification-handlers.js +15 -0
- package/dist/notification-handlers.js.map +1 -1
- package/dist/outbound-sessions.d.ts +31 -0
- package/dist/outbound-sessions.d.ts.map +1 -1
- package/dist/outbound-sessions.js +217 -17
- package/dist/outbound-sessions.js.map +1 -1
- package/dist/park-envelope.d.ts +95 -1
- package/dist/park-envelope.d.ts.map +1 -1
- package/dist/park-envelope.js +195 -4
- package/dist/park-envelope.js.map +1 -1
- package/dist/refusal-reasons.d.ts +72 -0
- package/dist/refusal-reasons.d.ts.map +1 -0
- package/dist/refusal-reasons.js +69 -0
- package/dist/refusal-reasons.js.map +1 -0
- package/dist/register-handler.d.ts.map +1 -1
- package/dist/register-handler.js +76 -0
- package/dist/register-handler.js.map +1 -1
- package/dist/registration-manager.d.ts.map +1 -1
- package/dist/registration-manager.js +20 -1
- package/dist/registration-manager.js.map +1 -1
- package/dist/relay-only.d.ts +133 -0
- package/dist/relay-only.d.ts.map +1 -0
- package/dist/relay-only.js +183 -0
- package/dist/relay-only.js.map +1 -0
- package/dist/restart-seal-resolver.d.ts.map +1 -1
- package/dist/restart-seal-resolver.js +6 -0
- package/dist/restart-seal-resolver.js.map +1 -1
- package/dist/retry-queue.d.ts +49 -2
- package/dist/retry-queue.d.ts.map +1 -1
- package/dist/retry-queue.js +55 -10
- package/dist/retry-queue.js.map +1 -1
- package/dist/roster-freshness.d.ts +169 -0
- package/dist/roster-freshness.d.ts.map +1 -0
- package/dist/roster-freshness.js +249 -0
- package/dist/roster-freshness.js.map +1 -0
- package/dist/seal-certificate-pull.d.ts +17 -1
- package/dist/seal-certificate-pull.d.ts.map +1 -1
- package/dist/seal-certificate-pull.js +37 -3
- package/dist/seal-certificate-pull.js.map +1 -1
- package/dist/seal-coordinator.d.ts +17 -1
- package/dist/seal-coordinator.d.ts.map +1 -1
- package/dist/seal-coordinator.js +71 -0
- package/dist/seal-coordinator.js.map +1 -1
- package/dist/seal-failure-store.d.ts +104 -0
- package/dist/seal-failure-store.d.ts.map +1 -0
- package/dist/seal-failure-store.js +126 -0
- package/dist/seal-failure-store.js.map +1 -0
- package/dist/seal-flows.d.ts.map +1 -1
- package/dist/seal-flows.js +35 -6
- package/dist/seal-flows.js.map +1 -1
- package/dist/seal-upgrade.d.ts +20 -5
- package/dist/seal-upgrade.d.ts.map +1 -1
- package/dist/seal-upgrade.js +28 -5
- package/dist/seal-upgrade.js.map +1 -1
- package/dist/session-assignment-parser.d.ts +41 -5
- package/dist/session-assignment-parser.d.ts.map +1 -1
- package/dist/session-assignment-parser.js +77 -14
- package/dist/session-assignment-parser.js.map +1 -1
- package/dist/session-ceremony.d.ts +35 -0
- package/dist/session-ceremony.d.ts.map +1 -1
- package/dist/session-ceremony.js +97 -0
- package/dist/session-ceremony.js.map +1 -1
- package/dist/session-connection-gater.d.ts +46 -7
- package/dist/session-connection-gater.d.ts.map +1 -1
- package/dist/session-connection-gater.js +163 -12
- package/dist/session-connection-gater.js.map +1 -1
- package/dist/session-content-handlers.d.ts +12 -0
- package/dist/session-content-handlers.d.ts.map +1 -1
- package/dist/session-content-handlers.js +149 -8
- package/dist/session-content-handlers.js.map +1 -1
- package/dist/session-node-manager.d.ts +653 -40
- package/dist/session-node-manager.d.ts.map +1 -1
- package/dist/session-node-manager.js +5938 -374
- package/dist/session-node-manager.js.map +1 -1
- package/dist/session-read-handlers.d.ts +27 -0
- package/dist/session-read-handlers.d.ts.map +1 -1
- package/dist/session-read-handlers.js +127 -6
- package/dist/session-read-handlers.js.map +1 -1
- package/dist/session-relay-client.d.ts +177 -2
- package/dist/session-relay-client.d.ts.map +1 -1
- package/dist/session-relay-client.js +564 -16
- package/dist/session-relay-client.js.map +1 -1
- package/dist/session-salt-agreement.d.ts +338 -0
- package/dist/session-salt-agreement.d.ts.map +1 -0
- package/dist/session-salt-agreement.js +478 -0
- package/dist/session-salt-agreement.js.map +1 -0
- package/dist/signal-submission.d.ts.map +1 -1
- package/dist/signal-submission.js +10 -1
- package/dist/signal-submission.js.map +1 -1
- package/dist/signaling-connect.d.ts +18 -1
- package/dist/signaling-connect.d.ts.map +1 -1
- package/dist/signaling-connect.js +206 -6
- package/dist/signaling-connect.js.map +1 -1
- package/dist/types.d.ts +75 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +10 -0
- package/dist/vocabulary.js.map +1 -1
- package/dist/wire-content-hash.d.ts +68 -0
- package/dist/wire-content-hash.d.ts.map +1 -1
- package/dist/wire-content-hash.js +83 -0
- package/dist/wire-content-hash.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-layer.js","sourceRoot":"","sources":["../src/document-layer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document-layer.js","sourceRoot":"","sources":["../src/document-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import type { IpcHandler } from "./ipc-server.js";
|
|
|
4
4
|
import type { SessionNodeManager } from "./session-node-manager.js";
|
|
5
5
|
import type { AgentInfo, Logger } from "./types.js";
|
|
6
6
|
import type { ConnState } from "./contact-handlers.js";
|
|
7
|
+
import { type RefusalReason, type AnyRefusalReason } from "./refusal-reasons.js";
|
|
7
8
|
import type { RelayConnectParams } from "./session-node-manager.js";
|
|
8
9
|
import type { RelayAssignmentCarry } from "./session-relay-client.js";
|
|
9
10
|
/** How long an un-accepted inbound session request stays claimable. */
|
|
@@ -45,6 +46,25 @@ export interface InboundSessionEvent {
|
|
|
45
46
|
* projected as current.
|
|
46
47
|
*/
|
|
47
48
|
presentedSignalHashes?: string[];
|
|
49
|
+
/**
|
|
50
|
+
* HOW the session assignment was verified — and this is the one field on this event that changes
|
|
51
|
+
* what a careful agent should DO.
|
|
52
|
+
*
|
|
53
|
+
* `pinned` — the signature verified under the key THIS daemon recorded for this counterparty in
|
|
54
|
+
* an earlier session. No directory can produce that alone; a substitution is caught.
|
|
55
|
+
*
|
|
56
|
+
* `first_contact` — nothing was recorded for them yet, so the signature could only be checked
|
|
57
|
+
* against the assignment's own contents. That catches TAMPERING, and it cannot authenticate the
|
|
58
|
+
* directory at all: a hostile one that wins the race to your first contact with someone mints a
|
|
59
|
+
* keypair, signs a consistent assignment, and **that key becomes your permanent anchor for that
|
|
60
|
+
* person**. Every later session is then measured against it, and the seal path reads the same
|
|
61
|
+
* value as its trust anchor.
|
|
62
|
+
*
|
|
63
|
+
* Review F6: the distinction existed in a source comment and one log line, so `cello_inbox` and
|
|
64
|
+
* `cello_await_session` handed the agent a first-contact session that looked identical to a
|
|
65
|
+
* verified one. A detection whose only consumer is a log line is not a control.
|
|
66
|
+
*/
|
|
67
|
+
verification?: "pinned" | "first_contact";
|
|
48
68
|
}
|
|
49
69
|
export interface InboundSessionWaiter {
|
|
50
70
|
connectionId: string;
|
|
@@ -231,7 +251,17 @@ export declare function createInboundSessions(deps: InboundSessionDeps): {
|
|
|
231
251
|
wirePerAgentSessionInbound: (mgr: SignalingManager) => void;
|
|
232
252
|
handleTrustSignalPickup: (frame: Record<string, unknown>, keyProvider: import("@cello-protocol/crypto").KeyProvider, mgr: SignalingManager, agentName: string) => Promise<void>;
|
|
233
253
|
enqueueInboundSession: (agentName: string, event: InboundSessionEvent) => void;
|
|
234
|
-
recordRefusal: (agentName: string, sessionIdHex: string, counterpartyPubkeyHex: string, reason:
|
|
254
|
+
recordRefusal: (agentName: string, sessionIdHex: string, counterpartyPubkeyHex: string, reason: AnyRefusalReason) => void;
|
|
255
|
+
refuseInboundSession: (args: {
|
|
256
|
+
agentName: string;
|
|
257
|
+
sessionIdHex: string;
|
|
258
|
+
counterpartyPubkeyHex: string;
|
|
259
|
+
reason: RefusalReason;
|
|
260
|
+
offeredDialer: string | null;
|
|
261
|
+
/** What the counterparty is told, if their tier earns a reason. */
|
|
262
|
+
counterpartyGuidance: string;
|
|
263
|
+
correlationId: string;
|
|
264
|
+
}) => void;
|
|
235
265
|
reapExpiredInboundSessions: (agentName: string) => void;
|
|
236
266
|
inboundSessionQueues: Map<string, InboundSessionEvent[]>;
|
|
237
267
|
inboundSessionWaiters: Map<string, InboundSessionWaiter[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound-sessions.d.ts","sourceRoot":"","sources":["../src/inbound-sessions.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAiB,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"inbound-sessions.d.ts","sourceRoot":"","sources":["../src/inbound-sessions.ts"],"names":[],"mappings":"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"}
|
package/dist/inbound-sessions.js
CHANGED
|
@@ -16,6 +16,9 @@ import { randomUUID } from "node:crypto";
|
|
|
16
16
|
import { frameValueToHex } from "./frame-values.js";
|
|
17
17
|
import { computeGenesisPrevRoot, decodeTrustSignalEnvelope, hashTrustSignalEnvelope, verifyTrustSignalHash, decodeCbor } from "@cello-protocol/protocol-types";
|
|
18
18
|
import { TrustSignalStore } from "./trust-signal-store.js";
|
|
19
|
+
import { verifyInboundAssignment } from "./assignment-verify.js";
|
|
20
|
+
import { REFUSAL_REASONS } from "./refusal-reasons.js";
|
|
21
|
+
import { parseSessionAssignment } from "./session-assignment-parser.js";
|
|
19
22
|
import { extractOfferedMoniker } from "./session-assignment-parser.js";
|
|
20
23
|
import { TIER } from "./contacts-tier-migration.js";
|
|
21
24
|
/**
|
|
@@ -317,6 +320,66 @@ export function createInboundSessions(deps) {
|
|
|
317
320
|
// M12-P18: same lasting-log shape and the same cap as expiredSessionRequests.
|
|
318
321
|
const refusedSessionRequests = new Map();
|
|
319
322
|
const REFUSED_SESSION_REQUESTS_CAP = 20;
|
|
323
|
+
/**
|
|
324
|
+
* The FULL refusal, for the two security refusals on the assignment path.
|
|
325
|
+
*
|
|
326
|
+
* ─── Why one function and not three calls at each site ────────────────────────────────────────
|
|
327
|
+
*
|
|
328
|
+
* Review found that both new refusals did only the in-memory half. The cap refusal above does
|
|
329
|
+
* four things and its comments say why each one is load-bearing; the security refusals — the more
|
|
330
|
+
* serious event by any reading — did one of the four. That asymmetry is not something anyone
|
|
331
|
+
* decided; it is what happens when the steps are open-coded at each site and a new site copies
|
|
332
|
+
* the shortest one.
|
|
333
|
+
*
|
|
334
|
+
* The four:
|
|
335
|
+
*
|
|
336
|
+
* 1. **In-memory record** — what `cello_inbox` reads, so the operator sees it this session.
|
|
337
|
+
* 2. **Durable record** — the initiator held a valid assignment and will have PARKED CONTENT for
|
|
338
|
+
* this session. Without a refused-session row the drain re-pulls it forever: the
|
|
339
|
+
* 78-times-per-message `counterparty_unknown` loop M12-P18 closed. The in-memory map is also
|
|
340
|
+
* capped at 20 and dies with the process, so without this the operator-visible trace of the
|
|
341
|
+
* most serious thing this path can detect was more perishable than a routine cap refusal.
|
|
342
|
+
* 3. **Re-close the gate** — it was narrowed to the offered peer, and refusing without
|
|
343
|
+
* re-closing leaves the door open to exactly the peer just declared unauthorised.
|
|
344
|
+
* 4. **Tell the counterparty, if they are KNOWN+** — see the tier reasoning below.
|
|
345
|
+
*/
|
|
346
|
+
function refuseInboundSession(args) {
|
|
347
|
+
recordRefusal(args.agentName, args.sessionIdHex, args.counterpartyPubkeyHex, args.reason);
|
|
348
|
+
sessionNodeManager.recordRefusedSession(args.agentName, args.sessionIdHex, args.reason);
|
|
349
|
+
sessionNodeManager.revokeOfferedDialer(args.agentName, args.sessionIdHex, args.offeredDialer);
|
|
350
|
+
/**
|
|
351
|
+
* TELL THE COUNTERPARTY — same rule the cap refusal uses, and the oracle argument that
|
|
352
|
+
* justifies silence for strangers does not reach here at all.
|
|
353
|
+
*
|
|
354
|
+
* Without this: they initiate, the directory hands them a valid assignment, they dial, the gate
|
|
355
|
+
* is shut, and all they see is a transport-shaped failure naming nothing that is wrong. They
|
|
356
|
+
* report "CELLO is broken" while this side holds a precise and correct security finding.
|
|
357
|
+
*
|
|
358
|
+
* An identity-change refusal is BY DEFINITION a repeat counterparty, so they are KNOWN+ almost
|
|
359
|
+
* by construction — and a repeat counterparty already knows they have a prior relationship with
|
|
360
|
+
* this agent, which is the only thing the message reveals. UNKNOWN and BLOCKED still get
|
|
361
|
+
* silence, so a stranger learns nothing and a blocked party cannot tell blocking from a refusal.
|
|
362
|
+
*/
|
|
363
|
+
const senderTier = sessionNodeManager.getTier(args.agentName, args.counterpartyPubkeyHex);
|
|
364
|
+
if (senderTier >= TIER.KNOWN && senderTier <= TIER.VIP) {
|
|
365
|
+
void deps.sendOver(args.agentName, {
|
|
366
|
+
type: "session_refused",
|
|
367
|
+
sessionId: args.sessionIdHex,
|
|
368
|
+
initiatorPubkey: args.counterpartyPubkeyHex,
|
|
369
|
+
reason: args.reason,
|
|
370
|
+
guidance: args.counterpartyGuidance,
|
|
371
|
+
}).then((sent) => {
|
|
372
|
+
logger.info("session.inbound.refusal.notified", {
|
|
373
|
+
agentName: args.agentName, sessionId: args.sessionIdHex, reason: args.reason,
|
|
374
|
+
delivered: sent.ok, tier: senderTier, correlationId: args.correlationId,
|
|
375
|
+
});
|
|
376
|
+
}).catch(() => { });
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* `reason` is a CLOSED union, not `string` — see `AnyRefusalReason`. A review proved that a
|
|
381
|
+
* free-form code slipped past every test in the milestone's own guard file.
|
|
382
|
+
*/
|
|
320
383
|
function recordRefusal(agentName, sessionIdHex, counterpartyPubkeyHex, reason) {
|
|
321
384
|
const list = refusedSessionRequests.get(agentName) ?? [];
|
|
322
385
|
list.push({ sessionIdHex, counterpartyPubkeyHex, reason, refusedAt: Date.now() });
|
|
@@ -443,7 +506,7 @@ export function createInboundSessions(deps) {
|
|
|
443
506
|
}
|
|
444
507
|
return sessionNodeManager.getStandingReceiverReady(agentName);
|
|
445
508
|
}
|
|
446
|
-
async function acceptInboundAssignment(parsed, agentName, correlationId) {
|
|
509
|
+
async function acceptInboundAssignment(parsed, agentName, correlationId, verification) {
|
|
447
510
|
// M12-P16: refuse BEFORE anything else — in particular before ensureStandingReceiverForAgent,
|
|
448
511
|
// whose first line would resurrect the receiver this agent was just relieved of.
|
|
449
512
|
if (deps.isExplicitlyOffline(agentName)) {
|
|
@@ -751,6 +814,7 @@ export function createInboundSessions(deps) {
|
|
|
751
814
|
genesisPrevRootHex,
|
|
752
815
|
offeredMoniker: parsed.offeredMoniker,
|
|
753
816
|
presentedSignalHashes: presentedHashes,
|
|
817
|
+
verification,
|
|
754
818
|
});
|
|
755
819
|
dispatchSessionStateChangedWithTelegram(agentName, parsed.sessionIdHex, "created", parsed.participantAPubkeyHex);
|
|
756
820
|
// DOD-M12B-DELIVERY-QUIET-1: this push is a SIBLING of the dispatch above, not a statement
|
|
@@ -796,8 +860,9 @@ export function createInboundSessions(deps) {
|
|
|
796
860
|
});
|
|
797
861
|
return;
|
|
798
862
|
}
|
|
799
|
-
// L1: refuse M1 single-key assignments outright (downgrade guard). Distinct from the
|
|
800
|
-
//
|
|
863
|
+
// L1: refuse M1 single-key assignments outright (downgrade guard). Distinct from the FROST
|
|
864
|
+
// signature verification below, and deliberately BEFORE it: this refuses the algorithm, that
|
|
865
|
+
// checks the signature.
|
|
801
866
|
if (parsed.signatureType === "single") {
|
|
802
867
|
logger.warn("session.inbound.assignment.refused", {
|
|
803
868
|
sessionId: parsed.sessionIdHex,
|
|
@@ -830,6 +895,62 @@ export function createInboundSessions(deps) {
|
|
|
830
895
|
});
|
|
831
896
|
return;
|
|
832
897
|
}
|
|
898
|
+
/**
|
|
899
|
+
* DOD-M15-OFFER-SIGNED-1 — THE SIGNED ASSIGNMENT MUST NAME THE PEER THE OFFER DID.
|
|
900
|
+
*
|
|
901
|
+
* Decision 2 rules that the listening socket is "gated on the assignment". The gate is actually
|
|
902
|
+
* narrowed from `session_offer`, which carries NO signature, because that is the only frame that
|
|
903
|
+
* arrives before the initiator can know where to dial. Timing forced the offer; it does not
|
|
904
|
+
* excuse trusting it — on its own it hands whichever directory sent that frame unilateral
|
|
905
|
+
* authority over who may dial this agent's receiver.
|
|
906
|
+
*
|
|
907
|
+
* ⚠️ WHAT THIS DOES **NOT** BUY, stated first because the first draft of this comment claimed it
|
|
908
|
+
* did. It is a CONSISTENCY check between two frames, not an authentication of either. The
|
|
909
|
+
* assignment's signature is verified further down (`verifyInboundAssignment`), but that happens
|
|
910
|
+
* AFTER this, and on first contact it can only prove internal consistency — so a single
|
|
911
|
+
* compromised directory still controls both frames here and simply names the same peer id in
|
|
912
|
+
* each.
|
|
913
|
+
*
|
|
914
|
+
* WHAT IT DOES BUY, which is real but smaller: the two frames must agree, so an attacker who can
|
|
915
|
+
* influence ONE of them and not the other is caught — a stale or replayed offer, a second
|
|
916
|
+
* directory node injecting an offer for a session it is not brokering, and a directory whose
|
|
917
|
+
* own two frames disagree because it is broken rather than hostile. It is a consistency check
|
|
918
|
+
* between two channels, not an authentication of either.
|
|
919
|
+
*
|
|
920
|
+
* It also makes the eventual fix strictly additive: once the responder verifies the assignment,
|
|
921
|
+
* this comparison becomes the counterbalance it was described as, with no further change here.
|
|
922
|
+
*
|
|
923
|
+
* BLOCKS, because it is a security failure and not an anomaly: there is no reading of a
|
|
924
|
+
* mismatch that is safe to continue from.
|
|
925
|
+
*/
|
|
926
|
+
const offered = sessionNodeManager.getOfferedDialer(localAgent.name, parsed.sessionIdHex);
|
|
927
|
+
if (offered !== null && offered !== parsed.initiatorPeerId) {
|
|
928
|
+
logger.error("session.inbound.assignment.dialer_mismatch", {
|
|
929
|
+
sessionId: parsed.sessionIdHex,
|
|
930
|
+
agentName: localAgent.name,
|
|
931
|
+
offeredPeerId: offered,
|
|
932
|
+
assignedPeerId: parsed.initiatorPeerId,
|
|
933
|
+
correlationId,
|
|
934
|
+
impact: "the session_offer named one dialer and the assignment names another, so something told this agent to open its receiver to a peer the session's own assignment does not name; the session was refused and the receiver was not handed over",
|
|
935
|
+
guidance: "retry — the offer and the assignment for this session disagreed about who would dial, which a replayed or stale offer also produces, so a single occurrence is not evidence of a hostile directory. If it repeats on the same node, that node is not producing assignments that match its own offers",
|
|
936
|
+
});
|
|
937
|
+
// INVARIANT 2: loud in the log AND on a surface the agent can read. A refusal the operator
|
|
938
|
+
// never sees is indistinguishable from the session simply never arriving — and this one is a
|
|
939
|
+
// security refusal, which is the worst kind to be silent about.
|
|
940
|
+
refuseInboundSession({
|
|
941
|
+
agentName: localAgent.name,
|
|
942
|
+
sessionIdHex: parsed.sessionIdHex,
|
|
943
|
+
counterpartyPubkeyHex: parsed.participantAPubkeyHex,
|
|
944
|
+
reason: REFUSAL_REASONS.OFFER_ASSIGNMENT_DIALER_MISMATCH,
|
|
945
|
+
offeredDialer: offered,
|
|
946
|
+
counterpartyGuidance: "They refused this session: the invitation they received and the assignment you dialled on " +
|
|
947
|
+
"named different peers, so they could not tell which one was you. Nothing is wrong on your " +
|
|
948
|
+
"side — start a new session, which will get a fresh assignment. If it keeps happening, the " +
|
|
949
|
+
"directory node brokering between you is not producing assignments that match its own offers.",
|
|
950
|
+
correlationId,
|
|
951
|
+
});
|
|
952
|
+
return;
|
|
953
|
+
}
|
|
833
954
|
// DOD-INBOUND-GUARD-1 (D3): the receive-side mirror of the initiator's F13 guard (~3189).
|
|
834
955
|
// An empty counterparty endpoint means the offer-accept never happened (this agent's standing
|
|
835
956
|
// receiver was not up when the directory's session_offer arrived) and the directory signed the
|
|
@@ -856,28 +977,150 @@ export function createInboundSessions(deps) {
|
|
|
856
977
|
});
|
|
857
978
|
return;
|
|
858
979
|
}
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
980
|
+
/**
|
|
981
|
+
* DOD-M15-RESPONDER-VERIFY-1 — THE RESPONDER NOW VERIFIES, and this is what unblocks
|
|
982
|
+
* `DOD-M15-OFFER-SIGNED-1`.
|
|
983
|
+
*
|
|
984
|
+
* Everything below acts on this assignment: the dialer the receiver opens to, and the
|
|
985
|
+
* `signer_pubkey` persisted as the seal trust anchor. Until now none of it was checked — the
|
|
986
|
+
* responder logged "unverified" and proceeded, so a tampered or fabricated assignment reached
|
|
987
|
+
* the seal path unchallenged and got PINNED, poisoning every later session with that
|
|
988
|
+
* counterparty.
|
|
989
|
+
*
|
|
990
|
+
* The pin is what makes a real check possible. For a repeat counterparty the signature must
|
|
991
|
+
* verify under the key THIS daemon recorded during an earlier session — a value no directory can
|
|
992
|
+
* retroactively change, so it is not the circular "verify the frame against a key the frame
|
|
993
|
+
* names". On first contact there is nothing independent to verify against, so the check falls
|
|
994
|
+
* back to internal consistency, which is weaker and is logged as such rather than reported as
|
|
995
|
+
* the same thing.
|
|
996
|
+
*
|
|
997
|
+
* BLOCKS on failure: this is a security check on the document that decides who may dial this
|
|
998
|
+
* agent, and the DoD's ordering rule is explicit that gating on an unverified document relocates
|
|
999
|
+
* trust rather than closing it.
|
|
1000
|
+
*/
|
|
1001
|
+
const pinnedSigner = sessionNodeManager.getPinnedCounterpartyPrimary(localAgent.name, parsed.participantAPubkeyHex);
|
|
1002
|
+
// Re-parse the RAW assignment object: `parsed` is a flattened projection for the accept path
|
|
1003
|
+
// and does not carry the fields the TBS is rebuilt from. A shape that cannot be parsed here
|
|
1004
|
+
// cannot be verified, and is refused rather than waved through.
|
|
1005
|
+
const rawAssignment = parseSessionAssignment((frame["assignment"] ?? {}),
|
|
1006
|
+
/**
|
|
1007
|
+
* A dead field arrived PRESENT-BUT-MALFORMED. It is tolerated — nothing reads it and no
|
|
1008
|
+
* signature covers it, so refusing over it would let any directory deny a session for free —
|
|
1009
|
+
* but this parse is the ONLY place the fact can be observed, so it is not discarded silently
|
|
1010
|
+
* (review F3).
|
|
1011
|
+
*
|
|
1012
|
+
* WARN rather than error, and not a refusal: nothing degrades for this session. It means a
|
|
1013
|
+
* directory is emitting junk in a field it signs nothing over, which is worth knowing before
|
|
1014
|
+
* the bilateral half removes the field and the evidence disappears with it.
|
|
1015
|
+
*/
|
|
1016
|
+
(field) => {
|
|
1017
|
+
logger.warn("session.inbound.assignment.dead_field_malformed", {
|
|
1018
|
+
sessionId: parsed.sessionIdHex,
|
|
1019
|
+
agentName: localAgent.name,
|
|
1020
|
+
field,
|
|
1021
|
+
impact: "the session was ACCEPTED — this field is read by nothing and covered by no signature, " +
|
|
1022
|
+
"so refusing over it would hand any directory a free way to deny a session",
|
|
1023
|
+
guidance: "no action for this conversation. If it repeats, the directory node brokering it is " +
|
|
1024
|
+
"emitting malformed values in a field it does not sign.",
|
|
1025
|
+
correlationId,
|
|
1026
|
+
});
|
|
1027
|
+
});
|
|
1028
|
+
const verdict = rawAssignment === null
|
|
1029
|
+
? { ok: false, reason: "inbound_assignment_unparseable", detail: "the assignment object failed shape validation" }
|
|
1030
|
+
: verifyInboundAssignment(rawAssignment, pinnedSigner);
|
|
1031
|
+
if (!verdict.ok) {
|
|
1032
|
+
const isIdentityChange = verdict.reason === "inbound_assignment_signer_not_pinned" ||
|
|
1033
|
+
(pinnedSigner !== null && verdict.reason === "inbound_assignment_signature_invalid");
|
|
1034
|
+
logger.error(isIdentityChange ? "session.inbound.counterparty_primary_changed" : "session.inbound.assignment.invalid", {
|
|
1035
|
+
sessionId: parsed.sessionIdHex,
|
|
1036
|
+
agentName: localAgent.name,
|
|
1037
|
+
reason: verdict.reason,
|
|
1038
|
+
detail: verdict.detail,
|
|
1039
|
+
verifiedAgainst: pinnedSigner !== null ? "pinned_key" : "frame_key",
|
|
1040
|
+
correlationId,
|
|
1041
|
+
impact: isIdentityChange
|
|
1042
|
+
? "the assignment for a counterparty this agent has completed sessions with did not verify under the key it recorded for them; the session was refused and no receiver was handed over, because accepting it would mean talking to whoever holds the new key under the old name"
|
|
1043
|
+
: "the session assignment did not verify, so this agent refused it rather than opening its receiver to a peer named by a document it could not check; nothing was accepted and no receiver was handed over",
|
|
1044
|
+
guidance: isIdentityChange
|
|
1045
|
+
? "this is not transient. Either that counterparty genuinely re-registered — confirm OUT OF BAND (on a channel that is not this one), then run cello_contact_remove for them, which clears the pinned identity so the next session re-pins — or a directory is producing assignments for them that they did not authorise. From here the two look identical and only they can tell you which."
|
|
1046
|
+
: "the assignment is tampered or malformed — its signature does not match its own contents. Retry to reach a different directory node; if it repeats, that node is not producing valid assignments",
|
|
1047
|
+
});
|
|
1048
|
+
refuseInboundSession({
|
|
1049
|
+
agentName: localAgent.name,
|
|
1050
|
+
sessionIdHex: parsed.sessionIdHex,
|
|
1051
|
+
counterpartyPubkeyHex: parsed.participantAPubkeyHex,
|
|
1052
|
+
reason: isIdentityChange
|
|
1053
|
+
? REFUSAL_REASONS.COUNTERPARTY_PRIMARY_KEY_CHANGED
|
|
1054
|
+
: REFUSAL_REASONS.INBOUND_ASSIGNMENT_INVALID,
|
|
1055
|
+
offeredDialer: offered,
|
|
1056
|
+
counterpartyGuidance: isIdentityChange
|
|
1057
|
+
? "They refused this session: the signing key on your assignment is not the one they " +
|
|
1058
|
+
"recorded for you in an earlier session. If you re-registered or moved to a new device, " +
|
|
1059
|
+
"that is expected — tell them out of band, on a channel that is not this one, and ask " +
|
|
1060
|
+
"them to run cello_contact_remove for you so the next session re-pins. If you did not " +
|
|
1061
|
+
"re-register, something is issuing assignments in your name and neither of you should " +
|
|
1062
|
+
"proceed until you know what."
|
|
1063
|
+
: "They refused this session: the assignment you dialled on did not verify against its own " +
|
|
1064
|
+
"contents, so it was altered somewhere between the directory signing it and them reading " +
|
|
1065
|
+
"it. Start a new session to get a fresh one. If it repeats, the directory node you are " +
|
|
1066
|
+
"reaching is not producing valid assignments — nothing is wrong with your agent.",
|
|
1067
|
+
correlationId,
|
|
1068
|
+
});
|
|
1069
|
+
return;
|
|
1070
|
+
}
|
|
1071
|
+
/**
|
|
1072
|
+
* ONE event, and `internal` is loud.
|
|
1073
|
+
*
|
|
1074
|
+
* There used to be a second call here firing `session.inbound.assignment.unverified` with a
|
|
1075
|
+
* note saying verification was deferred — on the same successful path, nine lines after the
|
|
1076
|
+
* event saying it happened. Every healthy session emitted both. The next person debugging an
|
|
1077
|
+
* inbound session would have read the "unverified" line, concluded the responder still trusts
|
|
1078
|
+
* the directory blind, and either redone this work or dismissed a real signal.
|
|
1079
|
+
*
|
|
1080
|
+
* `internal` is INFO, not debug, because it is not a routine state: it is the one moment this
|
|
1081
|
+
* daemon chooses a permanent trust anchor for a counterparty and has nothing to check it
|
|
1082
|
+
* against. Pinned stays at debug — that one is the boring, good case.
|
|
1083
|
+
*/
|
|
1084
|
+
const firstContact = verdict.mode === "internal";
|
|
1085
|
+
// Carried to the AGENT, not just the log — review F6. `internal` is the wire word for the mode;
|
|
1086
|
+
// `first_contact` is what it means to the person reading it.
|
|
1087
|
+
const verification = firstContact ? "first_contact" : "pinned";
|
|
1088
|
+
(firstContact ? logger.info : logger.debug)("session.inbound.assignment.verified", {
|
|
870
1089
|
sessionId: parsed.sessionIdHex,
|
|
871
1090
|
agentName: localAgent.name,
|
|
872
|
-
|
|
1091
|
+
mode: verdict.mode,
|
|
1092
|
+
...(firstContact
|
|
1093
|
+
? {
|
|
1094
|
+
impact: "FIRST CONTACT. The signature is internally consistent, which proves the frame was not " +
|
|
1095
|
+
"altered after signing — it does NOT prove which directory signed it, because there is " +
|
|
1096
|
+
"no earlier key recorded for this counterparty to check against. The key in this frame " +
|
|
1097
|
+
"is being pinned now and every later session with them is measured against it.",
|
|
1098
|
+
guidance: "If this counterparty matters, confirm their pubkey out of band before relying on the " +
|
|
1099
|
+
"seal. Once pinned, a substitution IS caught.",
|
|
1100
|
+
}
|
|
1101
|
+
: {}),
|
|
873
1102
|
correlationId,
|
|
874
1103
|
});
|
|
1104
|
+
/**
|
|
1105
|
+
* NO SEPARATE PIN CHECK HERE — it moved INTO the verification above, and leaving both would have
|
|
1106
|
+
* been worse than either.
|
|
1107
|
+
*
|
|
1108
|
+
* There was a second block at this point comparing `signer_pubkey` against the pinned key. Once
|
|
1109
|
+
* `verifyInboundAssignment` took the pin as its expected signer, that comparison became dead
|
|
1110
|
+
* code: the verifier reaches the same conclusion first, and reaches it *better* — it does not
|
|
1111
|
+
* merely check that the named key matches, it checks that the SIGNATURE verifies under the
|
|
1112
|
+
* pinned key. A directory that names the right key without holding it passes a comparison and
|
|
1113
|
+
* fails a verification.
|
|
1114
|
+
*
|
|
1115
|
+
* Two checks for one property is how they drift: the survivor gets fixed and the dead one keeps
|
|
1116
|
+
* asserting the old rule to anyone reading.
|
|
1117
|
+
*/
|
|
875
1118
|
inboundInFlight.add(offerKey(localAgent.name, parsed.sessionIdHex));
|
|
876
1119
|
// Serialize: the next accept does not begin until this one (and any standing-receiver
|
|
877
1120
|
// rebuild it triggers) settles. A throw inside one accept must not break the chain.
|
|
878
1121
|
const agentName = localAgent.name;
|
|
879
1122
|
inboundAcceptChain = inboundAcceptChain
|
|
880
|
-
.then(() => acceptInboundAssignment(parsed, agentName, correlationId))
|
|
1123
|
+
.then(() => acceptInboundAssignment(parsed, agentName, correlationId, verification))
|
|
881
1124
|
.catch((err) => {
|
|
882
1125
|
inboundInFlight.delete(offerKey(localAgent.name, parsed.sessionIdHex));
|
|
883
1126
|
logger.error("session.inbound.accept.error", {
|
|
@@ -1050,6 +1293,19 @@ export function createInboundSessions(deps) {
|
|
|
1050
1293
|
counterparty_pubkey: e.counterpartyPubkeyHex,
|
|
1051
1294
|
genesis_prev_root: e.genesisPrevRootHex,
|
|
1052
1295
|
offered_moniker: e.offeredMoniker ?? null,
|
|
1296
|
+
// Only present when this daemon actually established the session (the test seam at
|
|
1297
|
+
// daemon.ts:3707 enqueues without one). Absent means "not recorded", never "pinned".
|
|
1298
|
+
...(e.verification === undefined ? {} : { verification: e.verification }),
|
|
1299
|
+
...(e.verification === "first_contact"
|
|
1300
|
+
? {
|
|
1301
|
+
verification_note: "FIRST CONTACT. This counterparty's signing identity is being recorded now, and " +
|
|
1302
|
+
"there was nothing to check it against — the assignment proves only that it was " +
|
|
1303
|
+
"not altered after signing. From the next session on, a substituted identity IS " +
|
|
1304
|
+
"caught.",
|
|
1305
|
+
guidance: "If this conversation matters, confirm their public key with them out of band — a " +
|
|
1306
|
+
"channel that is not this one — before relying on the seal.",
|
|
1307
|
+
}
|
|
1308
|
+
: {}),
|
|
1053
1309
|
...(trustSignalProjection ?? {}),
|
|
1054
1310
|
};
|
|
1055
1311
|
};
|
|
@@ -1090,6 +1346,10 @@ export function createInboundSessions(deps) {
|
|
|
1090
1346
|
handleTrustSignalPickup,
|
|
1091
1347
|
enqueueInboundSession,
|
|
1092
1348
|
recordRefusal,
|
|
1349
|
+
// Exposed alongside recordRefusal because it is the SHARED refusal path — the one that reaches
|
|
1350
|
+
// all three audiences. DOD-M15-GUARD-HEARD-1 enumerates over it, so a reason added later is
|
|
1351
|
+
// covered without anyone remembering to write a test for its call site.
|
|
1352
|
+
refuseInboundSession,
|
|
1093
1353
|
reapExpiredInboundSessions,
|
|
1094
1354
|
inboundSessionQueues,
|
|
1095
1355
|
inboundSessionWaiters,
|