Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Replace the "Encryption" settings with a new settings tab #26468

Open
2 of 9 tasks
richvdh opened this issue Oct 30, 2023 · 10 comments
Open
2 of 9 tasks

Replace the "Encryption" settings with a new settings tab #26468

richvdh opened this issue Oct 30, 2023 · 10 comments

Comments

@richvdh
Copy link
Member

richvdh commented Oct 30, 2023

Currently, the "Security & Privacy" settings tab has a very confusing set of options relating to encryption. As a result of this, the UX was revisited to ensure a straightforward UX when it comes to enabling key storage and setting up recovery, as well as make sure that EW and EX are consistent. The plan is as follows:

  1. A new top-level menu item Encryption:
    1. The primary purpose of this is enabling/disabling the Key storage and setting up Recovery.
    2. Since the new designs use the term Recovery Key, the term Security Key needs to be replaced with Recovery Key throughout the UI.
    3. The secondary purpose is the Advanced section which contains other encryption-related settings or actions which are already supported on EW and which we want to keep long-term but which are only used rarely or used by power-users:
      1. Show session details - power users.
      2. Export/import keys manually - power users.
      3. Reset cryptographic identity (this should reset everything - e.g. cross-signing keys and key storage) - in case of compromise of user keys.
      4. Not sending messages to unverified devices/users - power users or very paranoid users.
  2. As a result of the previous point, the existing Security & Privacy menu item should no longer contain the functionality that was moved to the Encryption menu item:
    1. Remove Encryption > Secure Backup section.
    2. Remove Encryption > Cross-signing section.
    3. Remove Encryption > Cryptography section.
    4. There is also a new design for the Security & Privacy menu item due to the above but not only - it contributes to the UX of this section in other ways.

There are also 2 adjacent pieces which greatly support having a better and more consistent UX to make the crypto "invisible" and support the rollout of the exclusion of insecure devices:

  1. Updating the identity reset flow, so it no longer embeds the setup of the recovery.
  2. As a consequence of the above - show a toast & a red dot next to the Encryption menu item when recovery is not set up.

The work is delivered in the following iterations (in the order of priority).

Tasks

Preview Give feedback
  1. T-Enhancement
  2. T-Enhancement
  3. T-Enhancement
  4. A-E2EE A-E2EE-Cross-Signing T-Feature
Original report

Key Backup section in User Settings is very confusing

The current UI of EW for enabling key storage and setting up recovery, is very confusing. A list of example problems:

  • It implies that this is only needed "in case you lose access to your sessions". This is incorrect; it is needed so that you can get access to the messages on any new device.
  • It is unclear what the "Your keys will be secured with a unique Security Key" means. What is this "security key"? Perhaps its talking about the 4S "recovery key" (cf UX: is it a Security Key or a Recovery Key element-meta#2394)?
  • The buttons make no sense at all:
  • The UI does not make clear whether the backup is signed with a trusted key. On the contrary, it says: "This session is not backing up your keys, but you do have an existing backup you can restore from and add to going forward." Which is incorrect.
  • In the "Advanced" section:
    • What are the possible values for each of the first four entries? What do they mean?
    • Why is information about "Secret Storage" listed here? 4S is useful for things other than key backup so it's an odd place to hide info about it.
@richvdh richvdh added the A-Element-R Issues affecting the port of Element's crypto layer to Rust label Oct 30, 2023
@richvdh richvdh removed A-Element-R Issues affecting the port of Element's crypto layer to Rust Z-Labs labels Nov 8, 2023
@richvdh richvdh changed the title Replace the secure backup settings buttons Improve UI/UX of the Key Backup section in User Settings Nov 8, 2023
@richvdh richvdh changed the title Improve UI/UX of the Key Backup section in User Settings Key Backup section in User Settings is very confusing Jun 26, 2024
@daniellekirkwood
Copy link
Contributor

I'm going to be asking the web team for sizing estimate of this one next week :)

@daniellekirkwood
Copy link
Contributor

We think this is mostly UI changes and are already wrapped in to our definition of done for our Settings epic work... @dbkr would you mind taking a closer look and confirming that? then maybe also add a effort label?

@daniellekirkwood
Copy link
Contributor

For internal element folks only this link should show you the new version of this screen. @richvdh / @pmaier1 / @giomfo would you confirm that the items in this issue would be addressed if we implemented the designs linked here?

@mxandreas
Copy link

The designs are now there and the EW team is also working on them, do we need to keep this ticket still open?

@richvdh
Copy link
Member Author

richvdh commented Oct 17, 2024

The designs are now there and the EW team is also working on them, do we need to keep this ticket still open?

Yes please, AIUI this is the issue tracking that work.

@richvdh richvdh changed the title Key Backup section in User Settings is very confusing Replace the "Encryption" settings with a new settings tab Dec 12, 2024
@richvdh
Copy link
Member Author

richvdh commented Dec 12, 2024

Have edited the description a bit to make it clear what's in scope here

@richvdh
Copy link
Member Author

richvdh commented Dec 13, 2024

We debated at length whether the Change Recovery Key (figma) button should reset key backup.

On the one hand: the "I forgot my recovery key" flow does reset key backup (even if you already have a working backup), and it would be good to be consistent with that. It might also help avoid certain failure modes like #27806 where we create a new 4S which is missing some of the secrets.

On the other hand:

In conclusion: we will not reset key backup in this situation if we already have a working key backup decryption key.

@mxandreas
Copy link

In conclusion: we will not reset key backup in this situation if we already have a working key backup decryption key.

Meaning that if you have verified device, but you have forgotten your recovery key, then you can generate a new one without losing access to your historic messages?

If so, I was just yesterday writing guidelines for how to make sure you have recovery key (for the purpose of rolling out invisible crypto) and came across this scenario as something very helpful for the user.

@richvdh
Copy link
Member Author

richvdh commented Dec 13, 2024

In conclusion: we will not reset key backup in this situation if we already have a working key backup decryption key.

Meaning that if you have verified device, but you have forgotten your recovery key, then you can generate a new one without losing access to your historic messages?

Yes.

@mxandreas
Copy link

mxandreas commented Jan 8, 2025

For the record, we had a sync yesterday with @andybalaam @florianduros @dbkr and @americanrefugee and confirmed that we want to include in this work some adjacent parts, since it will greatly improve the UX and consistency with EX:

  • Update the identity reset flow so that it no longer embeds the setup of the recovery, for the sake of consistency with EX as well as this being the desired eventual design. It also helps to get rid of the old UX.
  • As a consequence of the former, implement the toast that reminds user to set up recovery, as well as show the red dot next to the Encryption menu item when recovery is not set up.

We also agreed to revisit this, in case the related effort seems to be much higher than anticipated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants