Skip to content

Key cache entries so that two servers and two users cannot read each other #41

Description

@iderex

One device can hold sessions for two servers, and one server can be used by two
people on the same device. A cache keyed only by item identifier hands the second
person the first person's library, and it does so silently, which is the worst
version of that failure.

What this produces

Every key namespaced by the server it came from and by the identity that fetched
it, so that the same identifier under a different session is a different entry.

Signing out removing the entries for that identity rather than leaving them for
whoever signs in next. Signing out itself is built in #114, which
expresses the removal in the keying this issue defines.

A key derivation that does not put a person's name or a server address into a
filename, since a cache directory is readable by anything else on the device that
can read files.

Done when

A test signs in as one identity, caches, signs out, signs in as a second, and
proves nothing from the first is readable. A test proves two servers holding the
same item identifier do not collide. A test proves no key material written to
storage contains a readable name or address. Blocked on #40, #6 and #101.

Metadata

Metadata

Assignees

Labels

architectureShape of the core: boundaries, interfaces, contractsblocked-on-issueWaits on another open issue on this boardsecurity

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions