jimichi
messages that don't say
who talks to whom.
confidential messaging with metadata protection, and the measurements that show what that protection is worth.
content is the easy part.
encryption hides what you say. it does not hide when you speak, how much, or to whom. jimichi is built around that second question, and measures how much an observer who sees only timings and volumes can still learn.
three hops
every message crosses a chain of three relays under nested encryption. the client draws the chain at random from the nodes it lists; each hop strips one layer and learns only its neighbours. two clients talk through a mailbox on the last node of their chains, under an end-to-end layer: the mailbox holds only records of a constant size that it cannot read.
one size
every cell is the same size, whether it carries a real message, cover traffic or a circuit setup. a message has to fit one cell: a longer one is refused.
memory only
session keys are ephemeral. the buffers that hold them sit in locked memory and are zeroed after use, and a relay writes nothing to disk itself. copies the crypto libraries keep on the heap are not locked.
measured
the repository ships the attack too: a traffic correlation observer that scores how much timing and volume still give away.
we built the attack ourselves.
sound onquiet by design.
keys load only after you unlock and are wiped when you lock. contacts are checked by comparing safety numbers.
locked
keys load into memory only after you unlock, and are wiped when you lock.
safety number
compare these numbers in person or on a call. if they match, nobody is in between.
cover traffic alone does not help.
a passive observer correlates every entry flow with every exit flow. chance is auc 0.5.
- 1.000
- attack auc with cover traffic on top, even at x2.99 the bandwidth between relays. every flow is linked.
- 0.951
- attack auc with a constant rate at the client only, 70 ms. the client's phase still crosses the chain.
- 0.562
- attack auc when relays send on their own clocks, 66.5 ms period, 10 ms window. these runs cannot show that it is at chance. the price is a 187 ms median round trip.
read the code. check the numbers.
everything is open: the system, the attack against it, and the harness that produced every figure on this site.