All MicroEvals
You're working on a project building an end-to-end encrypted...
Create MicroEval

You're working on a project building an end-to-end encrypted...

A comparison of architectual and systems design of an application as it pertains to managing complicated transactions involving encryption, attestation, and non-repudiation.

Prompt

You're working on a project building an end-to-end encrypted messaging platform. One problem you are currently working on is key validation, user attestation and non-repudiation, and how the process should function/flow. Assess the options below and answer the questions from an architectural and systems design perspective. The main choice is who establishes that an encryption key really belongs to the person you intend to contact. A — Users verify recipients. Before sharing with Jamie, you confirm Jamie’s account and key fingerprint through an already trusted contact method—for example, in person. The app remembers that verification while it remains valid. You don’t repeat it for every message, but changed keys or expired verification can require another check. This needs less infrastructure, but can delay group setup or new-key delivery. B — Independent services verify recipients. An independently governed service confirms Jamie’s account-to-key relationship. Witnesses help check the directory’s history, and the app checks the evidence automatically. This supports easier first contact, but requires real independent operators, recovery procedures and reliable services. Those arrangements are currently unspecified. The five decisions: 1. What experience should users have? Is “Verify this recipient before continuing” acceptable? One unverified required recipient could delay delivery of a new group key. This is the main product decision behind A versus B. 2. What counts as valid verification? For A, define an acceptable independent contact method. For B, identify the independent enrollment and witness operators. We then specify exactly which account, server and key were verified. You don’t need to choose cryptographic formats yourself. 3. When must verification be renewed, and how does recovery work? Decide how long older evidence remains usable during outages. Also distinguish recovering the same trusted key from replacing it: a replacement needs trusted authorization or fresh verification. A server-approved password reset alone cannot establish ownership of the new key. 4. Which work items cover everything? This is engineering organization. We must assign safe storage of verification records and every affected channel/direct message flow. Some required flows currently lack clear ownership. 5. How do we release it safely? The server supplies evidence; the desktop must actually check it everywhere keys are shared. Older clients that ignore those checks cannot be counted as protected. We need an upgrade policy and complete flow coverage before declaring the epic finished.

No responses available for this prompt yet