-
-
Notifications
You must be signed in to change notification settings - Fork 135
Description
I'll just leave this here. There are some notes I quickly jotted into my phone. Let me know if there is interest in this, and I'll type something up that more closely resembles actual prose.
-
Replace user/pass with public key identity.
-
Every user is their key fingerprint.
-
Key is optionally and by default kept on the server, passphrased.
-
Client keeps a local copy of the key, if possible, allowing for account recovery in case server loses the key blob.
-
Server never sees the passphrase - private key is downloaded from the server by the client, decrypted with the passphrase, and used to sign in. (*Need some mechanism that prevents downloading all key blobs from HS, possibly use an alternative s2k algorithm on the passphrase to unlock download.)
-
Also clears the way for true account migration. (Link in spec leading nowhere #712)
-
On joining a room, send a BIND_HS message to bind the decentralized ID to the homeserver and local identity.
-
On migrating an account, the same BIND_HS can be sent to change the homeserver.
-
A given decentralized ID can only exist on one HS at a time (per room).
-
The e2e keys could be signed with the account key, providing a single identity for all a user's devices, including future devices.