You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Today the pairing room id is PBKDF2(code, fixed salt) (app/smartbrain_3000/pairing_code.py, mirrored in web/src/lib/remote/paircode.ts). A malicious signaling node sees the room id and can search the code space offline; v0.9.35 raised the code to 8 characters (31^8 ≈ 2^39.6, ≈2^58 SHA-256 with 300k rounds) — a cost, not an impossibility. The session protocol after pairing is unaffected (pinned Ed25519 key + DTLS channel binding).
A PAKE (SPAKE2/OPAQUE) over the code, with a room id that is not a function of the code alone.
Done means: a broker that records every message of a pairing cannot recover the pairing payload without an online guess bounded by the 8-guess cap; documented in docs/08 "Two honest limits" with the limit removed.
Today the pairing room id is
PBKDF2(code, fixed salt)(app/smartbrain_3000/pairing_code.py, mirrored in web/src/lib/remote/paircode.ts). A malicious signaling node sees the room id and can search the code space offline; v0.9.35 raised the code to 8 characters (31^8 ≈ 2^39.6, ≈2^58 SHA-256 with 300k rounds) — a cost, not an impossibility. The session protocol after pairing is unaffected (pinned Ed25519 key + DTLS channel binding).Two designs to weigh:
Done means: a broker that records every message of a pairing cannot recover the pairing payload without an online guess bounded by the 8-guess cap; documented in docs/08 "Two honest limits" with the limit removed.