3 ms·
Matrix has an identity key that is shared between devices (hence why you can link up the sub-devices). The reason for having per-device keys used for e2ee that
by cyphar 9y ago
Matrix has an identity key that is shared between devices (hence why you can link up the sub-devices). The reason for having per-device keys used for e2ee that you can verify is so that you don't automatically trust new devices if a users' account is compromised. Each new login creates new e2e keys that only persist with the session. In terms of UX this system is currently pretty ugly, but the actual concept makes sense. If you want to just trust that the other users' account hasn't been compromised (which is what having a system designed around a single per-user key would effectively mean) then you can just blindly accept all keys, because each device key is first registered with the identity service and signed (requiring access to the account's identity key).
To be clear, there are several hiccups with e2e at the moment, but they are being worked on (from what I can tell).
- bb88 9y ago> In terms of UX this system is currently pretty ugly, but the actual concept makes sense. This seems like a trivial gain for lousy UX, since it's possible the account and the device is compromised.
- cyphar 9y agoThey are working on the UX side of things. I disagree that it's a trivial gain. Signal works in the same way, except that they only really support having a single device (that's where the safety number changing warning comes from). Having per-device keys also means that the server cannot decrypt your messages (because the identity key is not used for communication, it's just used to register new keys that clients will encrypt their messages to). Having a global decryption key stored on the server would be a less secure design.