Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Key backup not signed by MSK, leading to UTDs on new devices #2595

Closed
Tracked by #245
richvdh opened this issue Oct 23, 2024 · 4 comments · Fixed by matrix-org/matrix-js-sdk#4677
Closed
Tracked by #245
Labels

Comments

@richvdh
Copy link
Member

richvdh commented Oct 23, 2024

New devices attempt to load keys for historical messages from key backup; however, in order that they can trust key backup, they check for a signature on that backup from the user's master cross-signing key.

Occasionally we see cases in which a user has a key backup, but it has not been signed. This could happen for a number of reasons; for example:

  • Backup was reset from within a device which has not been verified, and therefore does not have a copy of the private master cross-signing key. Implementations should not allow you to do this, but it's possible that some client implementations have bugs that allow it.
    • TODO: open specific issues against clients if we have evidence of this happening
  • Element web has a special button which could be more accurately labelled "Please break everything about my encryption": "Reset Backup" creates 4S without cross-signing keys element-web#27806
@uhoreg
Copy link
Member

uhoreg commented Nov 19, 2024

element-hq/element-web#28402 fixes one cause of this, where the "Reset all" button in Web resulted in unsigned backups.

@uhoreg
Copy link
Member

uhoreg commented Dec 6, 2024

If we encounter a backup that isn't signed by the MSK, we should fix it (probably by creating a new backup that's properly signed), rather than continuing on as if everything is fine.

@richvdh
Copy link
Member Author

richvdh commented Feb 11, 2025

I think this is probably fixed by matrix-org/matrix-js-sdk#4677: as long as we have the decryption key, we don't actually require the backup to be signed.

@richvdh
Copy link
Member Author

richvdh commented Feb 11, 2025

(The reason for signing it is so that new devices can start uploading keys to the backup without having the decryption key.)

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants