1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
|
# FOG Threat Model
Status: Draft 0.1
Date: 2026-08-08
## 1. Purpose
This document defines the security and privacy model for the FOG autonomous
mix network and its native asynchronous services. It identifies protected
assets, trust boundaries, adversary capabilities, assumptions, required
properties, non-goals, residual risks, and the evidence required before FOG
makes public security claims.
FOG is not implemented yet. Every property in this document is therefore a
design requirement or a validation target, not a statement about deployed
software.
The key words MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, and MAY describe
normative requirements in the sense of BCP 14 when they appear in uppercase.
## 2. Scope
This threat model covers:
- the offline `fog-compose` environment;
- transfer through QR or `FOG-SX` simplex media;
- the online `fog-client-relay`;
- entry gateways and three stratified mix layers;
- directory authorities and signed epoch consensus;
- KEMSphinx packet processing and replay handling;
- Noise-protected adjacent-node links;
- couriers, native services, and capability-addressed storage replicas;
- asynchronous one-way drops, mailboxes, private messaging, and later group
messaging;
- software distribution, configuration, updates, backups, logs, and
operational metrics.
The FOG core does not include SOCKS, VPN, general Internet proxying, clearnet
exit nodes, web browsing, real-time audio or video, tokenomics, or arbitrary
user-selected routes. SMTP, NNTP, and foreign Sphinx networks may be reached
only through separately reviewed edge bridges whose weaker guarantees are
outside the core anonymity claim.
## 3. System Boundary
The intended high-level path is:
```text
offline Composer
-> QR or FOG-SX simplex transfer
online blind relay
-> temporary entry selected from authenticated consensus
entry gateway
-> mix layer 1 -> mix layer 2 -> mix layer 3
courier / native service
-> capability-addressed storage replicas
recipient blind relay
-> recipient offline Composer
```
The entry is not one of the three mix hops. The Composer constructs the
internal KEMSphinx route from authenticated consensus. The blind relay may
select an entry only from the Composer-approved consensus and temporary entry
set. The recipient Composer is the only component intended to recover message
plaintext.
FOG uses three separate cryptographic layers:
1. message-level end-to-end protection between Composers;
2. KEMSphinx protection for routing and per-hop transformation;
3. fixed Noise profiles for authenticated adjacent-node transport.
No layer may be treated as a substitute for another.
## 4. Protected Assets
### 4.1 User and message assets
- message plaintext, attachments permitted by the future format, and drafts;
- long-term identity keys, contact state, ratchet state, recovery material,
and backup keys;
- contact vouchers, reply material, mailbox capabilities, and storage
capabilities;
- the fact that a user is sending, receiving, polling, replying, or remaining
idle;
- sender identity, recipient identity, sender-recipient relationships,
conversation membership, and social graph;
- message length, fragment count, timing, frequency, retry behavior, and
conversation lifetime.
### 4.2 Network and operator assets
- authority identity keys, consensus signing keys, and voting state;
- node identity, Noise, KEMSphinx, replay, storage, and update keys;
- descriptors, operator-family declarations, topology assignments, epoch
state, revocations, and key-overlap state;
- unreleased topology changes and security-sensitive configuration;
- replay caches, delay queues, cover-traffic schedules, storage shards, and
tombstone state;
- release signing keys, build provenance, update metadata, and rollback state.
### 4.3 Availability and integrity assets
- consistent authenticated consensus;
- correct routing and packet transformation;
- bounded and non-amplifying protocol behavior;
- eventual delivery within the limits of an asynchronous best-effort system;
- integrity and freshness of Composer imports and software updates;
- the ability to revoke compromised identities, nodes, authorities, and
releases.
## 5. Security Objectives
### 5.1 Cryptographic objectives
FOG MUST be designed so that:
- only the intended recipient Composer can decrypt message content;
- recipients can authenticate the claimed sender or contact context according
to the selected messaging protocol;
- alteration, truncation, reordering, substitution, and unauthorized replay of
protected message state are detected;
- a node learns only the routing information needed for its immediate role;
- packet transformation prevents bitwise input-output linkage at an honest
mix;
- storage replicas cannot decrypt message content or derive stable contact
identities from capabilities;
- compromise of one key purpose does not directly expose keys for another
purpose;
- forward secrecy and post-compromise recovery are provided only if the final
reviewed messaging construction supports them and its state transitions are
implemented correctly.
FOG MUST NOT claim forward secrecy, post-compromise security, deniability, or
post-quantum security merely because individual primitives have those labels.
Those properties apply only after the complete protocol and lifecycle have
been analyzed.
### 5.2 Metadata privacy objectives
FOG targets the following conditional properties:
- sender anonymity against third parties;
- recipient anonymity against third parties;
- sender-recipient relationship unlinkability;
- route unlinkability across at least one honest mix transformation;
- resistance to short-term timing and volume correlation;
- reduced long-term intersection leakage;
- sender and recipient unobservability when traffic normalization, decoy
traffic, padded retrieval, and sufficient anonymity-set activity are all
present;
- unlinkability of successive mailbox locations and storage operations;
- indistinguishability, within defined traffic classes, of real messages,
retries, empty reads, acknowledgments, and cover operations.
These are probabilistic properties, not absolute concealment. Their strength
depends on measured traffic volume, latency distributions, cover ratio,
topology, operator independence, user behavior, and adversary position. FOG
MUST publish the conditions and measured bounds attached to every metadata
privacy claim.
### 5.3 Availability objectives
FOG provides best-effort asynchronous delivery. It SHOULD tolerate isolated
node loss, replica loss, delayed packets, duplicate packets, temporary
partitions, and ordinary churn. It does not promise delivery against a global
active adversary, sustained distributed denial of service, a failed authority
quorum, or deliberate destruction of enough storage replicas.
Privacy MUST fail closed where continuing would silently weaken a claimed
property. Availability failover MUST NOT introduce direct delivery, smaller
packet classes, bypassed layers, unauthenticated directories, fixed emergency
routes, or disabled cover traffic without placing the deployment outside the
affected privacy claim.
## 6. Actors and Trust Boundaries
| Role | May legitimately learn | Must not learn or control alone |
| --- | --- | --- |
| Composer | Local plaintext, identity and contact state, selected consensus, constructed route | Other users' plaintext or secrets; unauthenticated network state |
| FOG-SX receiver | Transfer size class, transfer timing, opaque bundle | Plaintext, contacts, private keys, final recipient |
| Blind relay | Client-side network context, opaque packets, chosen temporary entry | Plaintext, internal route, final service or recipient |
| Entry | Previous peer, next mix, packet timing, random short-lived return rendezvous and reply ID | Message plaintext, complete route, recipient identity, durable user account |
| Mix | Previous hop, next hop, local delay, replay tag | Complete route, endpoint identities, message plaintext |
| Authority | Node descriptors, operator declarations, votes, epoch state | User messages, mailbox capabilities, unilateral valid consensus |
| Courier | Requested native operation, replica set or shard information required by protocol | User plaintext, stable user identity, contact graph |
| Native service | Minimum service-specific opaque state | Network origin, unrelated conversations, Composer secrets |
| Storage replica | Opaque record, capability-derived location, retention state, access timing | Plaintext, stable mailbox identity, sender-recipient relationship |
| Observer | Delayed coarse health aggregates | Payloads, packet identifiers, detailed routes, capabilities, fine-grained timing |
| Edge bridge | Data required by the external protocol | Authority to extend core guarantees to the external network |
No online role is universally trusted. Each role MUST be independently
deployable and separately keyed. Co-location is a deployment fact, not a
reason to collapse protocol boundaries or share secrets.
## 7. Adversary Capabilities
FOG analyzes capabilities independently rather than assuming a single linear
attacker tier. Real adversaries may combine any subset.
### 7.1 Passive observation
The adversary may:
- observe one link, multiple links, the network perimeter, or nearly all
Internet links;
- record packet sizes, directions, timing, connection duration, retransmits,
outages, routing changes, and user online periods;
- retain encrypted traffic for future cryptanalysis;
- observe hosting providers, AS paths, DNS, time synchronization, software
downloads, bridge traffic, and public authority activity;
- compare observations across hours, epochs, months, and user behavior cycles.
The global passive observer is a target adversary for metadata-resistance
research and simulation. FOG MUST NOT claim resistance to that observer until
the complete deployed traffic process, including clients, storage access, and
cover traffic, has quantitative evidence.
### 7.2 Active network interference
The adversary may drop, delay, reorder, duplicate, replay, corrupt, tag,
inject, selectively forward, partition, throttle, or burst packets. It may
manipulate clocks and availability to trigger retries or route changes. It may
create distinguishable failure patterns and observe the resulting behavior.
The adversary may run malicious clients at scale and may attempt n-1,
confirmation, blending, flooding, resource-exhaustion, and amplification
attacks.
### 7.3 Infrastructure compromise and collusion
The adversary may compromise or operate:
- one or more entries, mixes, couriers, services, replicas, observers, or
authorities;
- multiple roles on the same route;
- multiple nominal operators that secretly form one operator family;
- hosting providers, hypervisors, management networks, build systems, package
registries, or time sources;
- an authority threshold sufficient to sign malicious consensus;
- enough storage replicas to destroy or correlate a mailbox;
- an edge bridge and the corresponding external service.
Compromise includes software exploitation, malicious updates, physical
access, legal compulsion, bribery, operator mistakes, secret copying, and
rollback to vulnerable state.
### 7.4 Endpoint and contact compromise
The adversary may compromise the online blind relay, the host running a
networkless microVM, a physically offline Composer, a transfer device, a
backup, or a recipient contact. It may use browser, firmware, peripheral,
DMA, side-channel, evil-maid, removable-media, or supply-chain attacks.
A malicious or compromised contact may send malformed messages, exhaust reply
material, correlate replies, reveal conversation state, lie about identity,
or intentionally publish plaintext and relationship metadata.
### 7.5 Cryptanalytic capability
The adversary may exploit weak parameters, nonce reuse, RNG failure, side
channels, parser differentials, protocol composition errors, implementation
bugs, downgrade paths, key reuse, and future cryptanalytic advances. A future
adversary may have practical quantum capability.
FOG assumes reviewed primitives remain secure only within their documented
parameters. Algorithm names alone are not security evidence.
## 8. Core Assumptions
All security claims depend on the following assumptions:
1. The sender and recipient Composers are not compromised while handling the
protected plaintext or key state relevant to the claim.
2. Users obtain authentic Composer software, trust anchors, and updates.
3. Cryptographic random number generators provide sufficient entropy.
4. Selected primitives and libraries are correctly implemented and remain
secure for their configured parameters.
5. At least one mix on a route is honest and its secret state is not exposed
during the period relevant to per-hop route unlinkability.
6. The authority signing threshold is not compromised, and enough honest
authorities remain available to produce consensus.
7. Composer and relay reject stale, rolled-back, malformed, or
insufficiently signed consensus.
8. Declared operator families and infrastructure diversity reflect reality
closely enough for path constraints to matter.
9. Traffic classes, packet geometry, delay distributions, retry behavior, and
cover traffic are followed by all honest implementations.
10. The anonymity set has enough concurrent real and decoy activity for the
measured privacy target. A nearly idle network cannot hide activity by
declaration.
11. Users follow the operational profile attached to a claim. A networkless
Composer does not help if its secrets are copied to an online system.
12. External bridges, recipients, and publication systems may disclose the
content and metadata that their protocols inherently require.
Violating an assumption MUST narrow or invalidate the corresponding claim. It
MUST NOT be hidden behind a generic statement that FOG is anonymous.
## 9. Threat Catalogue and Required Responses
### TM-NET-01: Timing and volume correlation
An observer compares ingress and egress timing, size, direction, and burst
shape.
Required responses:
- fixed packet geometry within consensus-defined traffic classes;
- randomized independently sampled per-hop delays;
- normalized client transmission and retrieval schedules;
- decoy traffic and loops that use the same processing path as real traffic;
- padded storage operations and acknowledgments;
- no application-specific route, packet, or retry fingerprint;
- simulation and trace-based evaluation against realistic observers.
Residual risk: timing defenses reduce correlation advantage but cannot make
repetitive behavior, low traffic, or indefinite observation harmless.
### TM-NET-02: Long-term intersection and statistical disclosure
An observer records which users are active around repeated sends or receives
and intersects candidate sets over time.
Required responses:
- cover activity independent of message activity;
- retrieval schedules that continue across empty and non-empty states;
- delayed and padded acknowledgments;
- rotating unlinkable capabilities and reply material;
- immutable storage-epoch manifests with disjoint intermediate and final
replicas under an explicit non-collusion assumption;
- client guidance that does not encourage deterministic schedules;
- long-horizon simulation and publication of residual disclosure risk.
Residual risk: intersection leakage exists in all practical systems when user
behavior and availability are sufficiently distinctive. Repeated polling of
one empty capability-derived box remains linkable at its final replicas.
### TM-NET-03: n-1 and active confirmation
An active adversary suppresses honest traffic, injects its own packets, or
forces distinctive bursts so that a target packet becomes isolated.
Required responses:
- decoy-loop health signals and anomaly detection;
- conservative behavior during unexplained traffic collapse;
- no immediate deterministic retry after loss;
- rate and admission controls that limit hostile traffic without creating
stable user fingerprints;
- fault-injection tests that measure isolation and confirmation advantage;
- documented shutdown or degraded-mode policy when required anonymity
conditions disappear.
Residual risk: a sufficiently strong active adversary can deny service and
may isolate traffic. FOG does not promise availability or anonymity under
arbitrary global active control.
### TM-NET-04: Replay and duplicate confirmation
An adversary replays packets or reply material and observes repeated effects.
Required responses:
- consensus-bound replay tags and bounded replay windows;
- replay state that survives ordinary process restarts for the required
maximum packet lifetime;
- single-use reply material with atomic consumption;
- message-level deduplication that does not emit distinguishable responses;
- duplicate storage writes and reads handled idempotently;
- fail-closed behavior if required replay state is corrupt or unavailable.
### TM-NET-05: Tagging and malleability
An adversary modifies a packet and observes whether a later component reacts
differently.
Required responses:
- a reviewed KEMSphinx profile with authenticated routing data and the
documented payload-integrity construction;
- constant-behavior rejection without detailed remote error oracles;
- no service action before complete packet and message validation;
- conformance and mutation tests covering every authenticated field;
- explicit analysis of SURB-specific tagging and confirmation risks.
### TM-NET-06: Packet, route, and implementation fingerprinting
An adversary distinguishes application, client version, route choice, or
fallback state.
Required responses:
- one authenticated profile and geometry per authorized traffic class and
epoch;
- identical core processing for all native source applications;
- no packet autodetection, silent downgrade, or per-packet suite negotiation;
- complete authenticated consensus view for route construction;
- bounded version overlap and a clear minimum accepted epoch;
- rollout tests that prevent minority clients from becoming a fingerprint.
### TM-PKI-01: Sybil nodes and false operator diversity
An adversary obtains many node positions or hides common control behind
nominally different operators.
Required responses:
- permissioned admission for the initial network;
- signed operator-family declarations and conflict rules;
- independent verification of provider, ASN, jurisdiction, ownership, and
administration where practical;
- route rejection when one declared family appears twice;
- transparent admission, suspension, and revocation records;
- no claim that permissionless Sybil resistance has been solved.
Residual risk: social and corporate control can be concealed. Governance and
operator investigation remain part of the security boundary.
### TM-PKI-02: Stale, rolled-back, frozen, split, or equivocated consensus
An adversary gives different network views to clients or prevents updates.
Required responses:
- threshold signatures over canonical consensus bytes;
- monotonically increasing epochs and explicit validity intervals;
- current and next keys with bounded overlap;
- persisted highest-accepted epoch and rollback protection;
- independent retrieval paths or gossip for equivocation evidence;
- fail-closed behavior when quorum, time validity, or profile authorization
cannot be established;
- an offline-safe recovery procedure for long-disconnected Composers.
Residual risk: a compromised signing threshold can authorize malicious
topology. A fully isolated client may not learn that another valid-looking
view exists without an external consistency mechanism.
### TM-PKI-03: Authority outage or capture
One or more authorities withhold votes, disappear, leak keys, or act under
compulsion.
Required responses:
- threshold operation with documented safety and liveness limits;
- offline root and recovery material separated from online epoch keys;
- rehearsed revocation and authority-replacement ceremonies;
- deterministic consensus failure behavior;
- no automatic trust-on-first-use replacement authority.
### TM-ROLE-01: Malicious entry or blind relay
A blind relay observes the local user context. An entry observes the relay
connection and first mix hop. On a reply, the entry also observes one random
short-lived rendezvous capability and reply ID while performing the terminal
KEMSphinx unwrap. Either role may delay, drop, batch, or fingerprint traffic.
Required responses:
- the Composer exports only opaque authenticated bundles;
- the blind relay cannot alter Composer-approved consensus or the internal
route;
- entry choice is constrained to a small authenticated temporary set;
- traffic normalization begins before application-dependent variation reaches
the entry;
- entry rotation is by session or epoch, not every message by default;
- entry return KEMSphinx keys are separate from forward capsule and mix keys;
- return rendezvous capabilities and reply IDs are random, bounded,
single-use, and do not create a durable entry account;
- clients detect sustained failure without switching to a privacy-bypassing
direct path.
Residual risk: a compromised blind relay can associate the local endpoint with
FOG use and can deny service. Collusion with downstream observation increases
correlation power.
### TM-ROLE-02: Malicious mix or route collusion
A mix observes adjacent hops and local timing. Multiple malicious mixes share
their observations or secrets.
Required responses:
- independent operators and family-constrained route construction;
- per-epoch mix keys with overlap only where required;
- KEMSphinx transformation and replay detection at every mix;
- no detailed per-packet logs;
- cover traffic processed identically to real traffic;
- compromise simulations for every layer and route position.
Residual risk: if all privacy-relevant hops on a route collude, route
unlinkability is not guaranteed. Later key disclosure may affect recorded
packets depending on the final KEMSphinx construction and key-erasure policy.
### TM-ROLE-03: Malicious courier, service, or storage replica
These roles correlate operations, return malformed data, selectively fail,
exhaust capabilities, or destroy records.
Required responses:
- message-level ciphertext remains opaque through all three roles;
- rotating capabilities and pseudorandom record locations;
- courier and replica knowledge separated by protocol design;
- at least four independently operated replicas for the intended profile;
- authenticated encrypted replica envelopes;
- final-replica receipts that distinguish courier acceptance from evidence of
durable local commit;
- uniform treatment of empty reads, hits, misses, retries, and acknowledgments;
- quorum or erasure behavior that survives defined replica loss;
- bounded retention, tombstones, quotas, and non-amplifying requests;
- client verification of every retrieved object before state transition.
Residual risk: enough colluding replicas can correlate or destroy access. A
malicious service may learn application-level information that the final
service contract explicitly exposes.
### TM-ENDPOINT-01: Composer compromise
Malware, physical access, a hostile host, firmware, peripheral, or malicious
update captures plaintext or keys.
Required responses:
- a MicroVM profile with no virtual network interface and a minimal device
boundary;
- a Portable profile with signed immutable media, disabled network and radio
drivers, and no automatic internal-disk mounting;
- authenticated encryption for identities, contacts, drafts, and backups;
- purpose-separated keys and minimal plaintext lifetime;
- no secrets in logs, crash dumps, swap, thumbnails, previews, or generic
desktop indexing;
- signed updates with rollback protection and a documented offline ceremony;
- explicit warning that endpoint compromise defeats local confidentiality and
authenticity.
Residual risk: software cannot preserve a secret while an attacker controls
the component using it. A networkless VM on a compromised host is weaker than
a physically isolated Composer.
### TM-ENDPOINT-02: Malicious transfer input and bidirectional leakage
A crafted QR, FOG-SX stream, removable device, or optical peripheral exploits
the parser or creates an unintended return channel.
Required responses:
- one minimal bounded binary format per transfer direction;
- no generic archives, filesystems, documents, HTML, scripts, or executable
content;
- fixed maximum sizes, allocation limits, canonical encodings, and complete
validation before interpretation;
- fuzzing and property tests for frame, FEC, and bundle parsers;
- transfer checksum treated only as error detection, never authenticity;
- inner bundle authentication before any semantic or Composer state change;
- no automatic acknowledgment or reverse data path in the high-assurance
FOG-SX profile;
- physical inspection that transmit-only and receive-only devices cannot
silently reverse direction.
Residual risk: optical, acoustic, electromagnetic, thermal, and human-mediated
channels may still leak information outside the protocol model.
### TM-ENDPOINT-03: Backup, recovery, and multi-device leakage
Backups or device synchronization copy identity and conversation state into a
weaker environment.
Required responses:
- backups encrypted and authenticated independently from the live store;
- backup keys or recovery secrets stored separately from backup ciphertext;
- explicit key and format version in every encrypted store;
- tested restore, rotation, revocation, and lost-device procedures;
- no server-side recovery secret capable of silently impersonating a user;
- multi-device behavior treated as a separate protocol state machine, not file
copying.
### TM-APP-01: Malicious contact and conversation insider
A valid contact sends malformed or adversarial messages, correlates replies,
publishes shared state, or exploits group membership changes.
Required responses:
- strict authenticated message parsing before rendering;
- no active content or automatic external resource loading;
- per-contact rate, size, and state-transition bounds;
- single-use reply material and safe exhaustion behavior;
- transcript and membership rules defined by the messaging specification;
- explicit warning that a storage writer may read and tombstone its own
dedicated directional stream when the selected capability construction
grants that authority;
- compromised-contact analysis for direct and group messaging;
- no promise that encryption prevents a recipient from revealing plaintext.
### TM-OPS-01: Logging and metrics leakage
Operators, attackers, or support workflows recover metadata from logs,
traces, crash reports, metrics, or dashboards.
Required responses:
- logs MUST NOT contain payloads, contacts, capabilities, message or packet
identifiers, full routes, per-packet delay, or fine-grained event timing;
- production debug logging MUST be disabled;
- metrics MUST be coarse, delayed, aggregated, thresholded, and reviewed for
differencing attacks;
- node health identifiers MUST not become message-flow identifiers;
- crash dumps and support bundles MUST be disabled or privacy-scrubbed by
default;
- retention MUST be minimal and explicitly documented.
Residual risk: even aggregate metrics can leak during low-volume periods.
Metrics may need suppression rather than publication.
### TM-SUPPLY-01: Build, dependency, and update compromise
An attacker inserts malicious code, changes protocol parameters, substitutes a
binary, compromises a dependency, or rolls a node back.
Required responses:
- pinned reviewed dependencies and recorded provenance;
- reproducible or independently verifiable release builds where practical;
- multiple-person release review for security-critical changes;
- signed canonical release metadata with version and rollback constraints;
- separate release, authority, node, and user identity keys;
- secure boot or measured boot where the deployment profile supports it;
- emergency revocation that does not create an unauthenticated update path.
### TM-CRYPTO-01: Key compromise and lifecycle failure
A key is copied, reused, retained too long, generated weakly, or not revoked.
Required responses:
- a key inventory defining owner, purpose, scope, storage, lifetime, overlap,
backup, revocation, and destruction;
- distinct keys for authority identity, epoch signing, release signing, Noise,
KEMSphinx, message identity, ratchet state, storage, capability derivation,
and backup encryption;
- cryptographic randomness from reviewed operating-system facilities;
- authenticated encrypted storage for long-lived private material;
- support for old verification keys only for explicit bounded migration;
- immediate stop of new use after compromise, followed by revocation and
replacement;
- best-effort zeroization without claiming that managed runtimes erase every
copy.
### TM-CRYPTO-02: Store now, decrypt later and protocol downgrade
An adversary records traffic for future classical or quantum cryptanalysis or
forces an older suite.
Required responses:
- suite and geometry authorization bound to signed epoch consensus;
- protocol identifiers authenticated in every relevant transcript;
- no silent fallback or operator-selectable downgrade;
- hybrid post-quantum constructions considered only after full packet,
performance, side-channel, and implementation review;
- bounded suite overlap and a published retirement procedure;
- claims separated into classical confidentiality, forward secrecy, and
post-quantum confidentiality.
Residual risk: no deployed post-quantum construction can eliminate future
cryptanalytic uncertainty or endpoint compromise.
### TM-AVAIL-01: Flooding, storage exhaustion, and distributed denial of service
An adversary creates clients, packets, reads, writes, fragments, or authority
traffic at scale.
Required responses:
- strict size, rate, queue, memory, CPU, and concurrency bounds at every
boundary;
- admission or capability controls that avoid stable cross-service identity;
- non-amplifying error handling and bounded cryptographic work before
authentication where possible;
- storage quotas, expiry, tombstones, garbage collection, and overload policy;
- graceful shedding that preserves packet-class indistinguishability where
possible;
- simulation and load testing with malicious distributions;
- no availability claim against sustained global distributed attack.
## 10. Trust Effects of Role Compromise
The expected effect of isolated compromise is summarized below. Collusion can
combine observations and exceed these bounds.
| Compromised role | Immediate exposure | Property that should remain |
| --- | --- | --- |
| Composer | That endpoint's plaintext, keys, contacts, and future local actions | Other users and unrelated conversations |
| Blind relay | Local endpoint context and FOG-use timing | Message plaintext and internal route secrecy |
| Entry | Relay address, first-hop traffic, next mix, and short-lived return metadata | Plaintext and final recipient |
| One mix | Adjacent hops, local timing and local secret state | End-to-end content; route unlinkability if another relevant mix is honest |
| One authority | Descriptors, votes and ability to withhold | Consensus authenticity without threshold compromise |
| Courier | Service request pattern and required replica routing | Message plaintext and direct client network identity |
| One replica | Local opaque records and access timing | Plaintext and complete mailbox stream |
| Native service | Explicit service-level fields | Network source and unrelated application state |
| Observer | Approved coarse aggregates | Per-message and per-user activity |
| Edge bridge | External-side protocol metadata | No extension of core anonymity through that bridge |
The architecture specification MUST refine this table into exact information
flows and process privileges before implementation.
## 11. Composer Security Profiles
### 11.1 MicroVM profile
The MicroVM MUST have no virtual network interface. Its host integration MUST
be limited to explicit display, human input, and the smallest feasible
transfer device. Clipboard sharing, host filesystem mounts, drag-and-drop,
guest agents, shared memory, audio input, camera input, and USB passthrough
MUST be disabled unless a later profile specifies and analyzes them.
The MicroVM profile assumes the host can deny service and observe coarse user
activity. It MUST NOT claim protection from a host that can inspect guest
memory or replace the hypervisor.
### 11.2 Portable profile
The Portable profile MUST boot from signed immutable media, disable network
and radio support, avoid automatically mounting internal disks, and keep
mutable state in an authenticated encrypted store. Boot integrity and update
verification MUST occur without requiring an unauthenticated online channel.
The high-assurance profile MUST NOT connect its Composer media to an online
computer. A removable device shuttled between online and offline systems is a
separate lower-assurance profile.
Both profiles distinguish authenticated local state from freshness. A local
hash or MAC chain cannot detect replacement of the complete vault, journal,
and keys by an older coherent copy. A complete rollback-detection claim
requires a monotonic anchor outside the stated rollback domain. A host-
controlled virtual TPM is not independent of a hostile MicroVM host.
### 11.3 Import and export boundary
Consensus, contact vouchers, messages, updates, recovery packages, and FOG-SX
bundles are untrusted until cryptographically verified. Human-readable labels,
filenames, MIME types, QR presentation, or transport checksums do not confer
authenticity.
## 12. Key Management Requirements
Every protocol specification MUST provide a key-lifecycle table containing:
- key name and cryptographic purpose;
- generating component and entropy source;
- authorized readers and operations;
- storage and hardware assumptions;
- epoch, session, message, or long-term lifetime;
- current and next-key overlap;
- compromise impact;
- revocation and recovery procedure;
- backup policy;
- destruction and residual-copy limitations.
Private keys MUST NOT appear in source repositories, examples, test fixtures,
logs, command lines, crash reports, container images, or consensus documents.
Tests MUST use generated ephemeral fixtures.
Authority, release, and offline recovery keys SHOULD have distinct offline
storage and ceremonies. Online services MUST receive only the minimum
short-lived material required for their role.
## 13. Protocol Parsing and Failure Behavior
Every parser MUST:
- operate on a versioned format with an exact maximum size;
- reject non-canonical, truncated, overlong, duplicate, unknown-critical, and
trailing data where the format does not explicitly permit it;
- bound allocations, nesting, fragment count, decompression, FEC work, and
cryptographic work;
- authenticate before acting on semantic content whenever the protocol allows;
- avoid detailed remote errors that create parsing or validity oracles;
- produce deterministic local error classes suitable for testing without
logging sensitive input;
- be covered by conformance vectors, mutation tests, fuzzing, and differential
tests where an independent implementation exists.
Core nodes MUST NOT parse generic archives, office documents, HTML, scripts,
or executable formats.
## 14. Privacy-Preserving Operations
Operational tooling is within the threat model. Deployments MUST define:
- which metrics exist, their aggregation window, release delay, and minimum
population threshold;
- which logs exist, their fields, retention, access control, and deletion;
- how operators diagnose packet loss without packet-level identifiers;
- how key ceremonies, node admission, revocation, and emergency changes are
audited;
- how configuration drift and unsafe debug modes are detected;
- how time synchronization failure is detected without creating a single
trusted time source;
- how backup restore and disaster recovery avoid cloning live identities or
replay state.
Public dashboards MUST suppress data when aggregation would reveal the
activity of a small number of users or nodes.
## 15. Claims FOG Does Not Make
FOG does not claim:
- protection after sender or recipient Composer compromise;
- guaranteed delivery or resistance to arbitrary denial of service;
- absolute anonymity or zero metadata leakage;
- protection when all relevant route positions collude;
- that a three-node PoC has a meaningful production anonymity set;
- that encryption prevents recipients from revealing plaintext;
- permanent storage, guaranteed offline retrieval beyond the active retention
window, or deletion from every recipient, backup, journal, and adversarial
copy after a tombstone;
- deniability unless the selected messaging protocol explicitly provides and
validates it;
- post-quantum security based only on the presence of a post-quantum primitive;
- privacy across SMTP, NNTP, web, or foreign-network bridges equal to the FOG
core;
- protection from all physical, electromagnetic, acoustic, supply-chain,
coercion, or future cryptanalytic attacks;
- that permissioned admission completely prevents concealed Sybil control;
- that offline operation automatically makes a compromised device safe.
## 16. Validation and Claim Gates
### 16.1 Before the local PoC
Required evidence:
- normative architecture and trust-boundary specification;
- PKI, wire, packet, profile, messaging, storage, Composer, and FOG-SX
specifications;
- exact packet and message geometry;
- protocol state machines and key-lifecycle tables;
- conformance vectors and parser limits;
- simulator scenarios and measurable privacy metrics.
`FOG-SIMULATION.md` supplies the first deterministic scenario and proxy-metric
baseline. This gate remains incomplete because formal end-to-end observer
metrics, replies, retries, storage polling, loop health, queues, congestion,
user behavior, churn, confidence intervals, and PoC trace calibration remain
open.
`FOG-LOCAL-POC.md` supplies the first machine-readable local deployment and
fault-matrix definition. Its strict validator fixes the functional-only claim,
role separation, pairwise reachability, private state and secret scopes,
container containment, and required failure cases. The runnable fixture and
protocol-functional evidence remain open.
### 16.2 Before an operator alpha
Required evidence:
- unit, integration, conformance, fuzz, race, and fault-injection testing;
- replay, tagging, n-1, flooding, clock, stale-consensus, split-authority,
node-loss, and storage-loss tests;
- simulation using observed or conservatively modeled traffic distributions;
- at least six mix nodes with two per layer and documented operator-family,
provider, ASN, and location diversity;
- at least three authorities with a 2-of-3 quorum;
- at least four storage replicas;
- reproducible deployment and rollback procedures;
- public documentation that alpha anonymity is experimental.
### 16.3 Before production security claims
Required evidence:
- independent cryptographic and implementation review;
- resolved high-severity findings and published residual risks;
- realistic traffic volume and mandatory cover traffic;
- operational exercises for compromise, revocation, partition, restore, and
authority replacement;
- independently verified release provenance;
- quantitative claim statements tied to exact software, profile, topology,
traffic assumptions, and review version.
Every public claim MUST identify its scope, assumptions, adversary capability,
software version, network profile, evidence, and known counterexamples.
## 17. Open Security Decisions
The following remain unresolved and block stronger claims:
- activation of a byte-exact reviewed message profile after the structural
`FOG-MESSAGING` contract and its non-active PQXDH, Triple Ratchet, and
ML-KEM Braid candidate pass implementation and integration review;
- activation of the non-active SHA3-256 and ML-DSA-65 plus Ed25519 PKI
candidates after exact encoding, vectors, separability, implementation, and
side-channel review;
- the exact entry and mutual hybrid post-quantum Noise constructions and
reviewed library; X-Wing is only the leading KEM to evaluate;
- activation of the calculated HPQC split-PRF KEMSphinx candidate after exact
dependency, primitive, side-channel, complete-packet benchmark, vector,
simulation, and independent review;
- activation of a byte-exact reviewed storage profile after the structural
`FOG-STORAGE` contract and its non-active narrow BACAP/Pigeonhole candidate
pass receipt, geometry, implementation, DoS, and integration review;
- activation of exact Composer vault, platform, bundle, recovery, update, and
independent monotonic-anchor profiles after the structural
`FOG-COMPOSER` contract passes fault and implementation review;
- activation of one exact numeric FOG-SX joint profile after its fixed frame,
object, padding, parser, no-ACK, and physical-direction contract passes FEC,
implementation, license and IPR, resource, vector, hardware, and independent
review;
- cover, loop, delay, retry, retrieval, and acknowledgment distributions;
- identity compromise, revocation, contact recovery, and multi-device state
beyond the identity-only non-resumable recovery baseline;
- safe anonymous admission and rate control for clients;
- measurable degraded-mode thresholds and shutdown behavior.
No implementation convenience may silently resolve these questions.
## 18. Residual Risk Statement
Even a correctly implemented FOG network will retain risk from endpoint
compromise, malicious contacts, long-term statistical disclosure, low traffic,
operator collusion, concealed common control, active denial of service,
physical and supply-chain compromise, bridge metadata, coercion, and future
cryptanalysis. Cover traffic and delay exchange bandwidth and latency for
reduced observer advantage; they do not create certainty.
FOG's security documentation MUST remain a living record of observed attacks,
failed assumptions, simulation results, operational incidents, and changed
claims.
## 19. Primary References
- FOG messaging protocol: `FOG-MESSAGING.md`
- FOG storage protocol: `FOG-STORAGE.md`
- FOG Composer protocol: `FOG-COMPOSER.md`
- FOG simplex transfer protocol: `FOG-SX.md`
- FOG observability protocol: `FOG-OBSERVABILITY.md`
- FOG cryptographic suite evaluation: `FOG-CRYPTO-SUITES.md`
- FOG traffic and topology simulation: `FOG-SIMULATION.md`
- FOG local Podman PoC: `FOG-LOCAL-POC.md`
- Danezis and Goldberg, *Sphinx: A Compact and Provably Secure Mix Format*:
<https://eprint.iacr.org/2008/475>
- Piotrowska et al., *The Loopix Anonymity System*:
<https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/piotrowska>
- Infeld et al., *Echomix: a Strong Anonymity System with Messaging*:
<https://arxiv.org/abs/2501.02933>
- Katzenpost mixnet threat model:
<https://katzenpost.network/docs/threat_model/>
- Katzenpost protocol specifications:
<https://katzenpost.network/docs/specs/>
- Noise Protocol Framework:
<https://noiseprotocol.org/noise.html>
References inform FOG's attack coverage and terminology. They do not make FOG
secure by inheritance. FOG requires its own profiles, proofs or analyses,
tests, simulations, deployments, and reviews.
|