element-meta icon indicating copy to clipboard operation
element-meta copied to clipboard

[Story] ER-212: Show room encryption state in the composer

Open mxandreas opened this issue 10 months ago • 5 comments

Description

The main goal of this is to mitigate the potential attacks on "downgrading" room encryption via cloning/spoofing of rooms as captured on https://github.com/matrix-org/internal-config/issues/1606.

As we overall optimizing for E2EE encryption, we would like to avoid explicit decorations when the room is encrypted (as this is the nominal state). However, this means that the decorations in case the room is not encrypted need to be stronger. Which, should it be too strong, it may annoy use cases and users when E2EE is intentionally not used (this is still currently the case).

Designs are available here, and can be summarized as follows:

  • Encrypted room:
    • No decoration in the composer, placeholder text Message... (no change compared to current state)
    • Green padlock in room info (no change compared to current state)
  • Unencrypted room:
    • Blue broken padlock in the composer, placeholder text Unencrypted message...
    • Blue broken padlock in room info (used to be gray padlock)

As a cascading effect to stay consistent colour-wise, in the room info the world icon that indicates that the room is public (anyone can join) has been also changed to blue.

Acceptance criteria

  • Composer shows if a room is unencrypted
  • Room info decorations (for unencrypted & public join rule) are updated

Out of scope

  • Nothing

Open questions

Sign-off

Android

  • [ ] Design sign-off on completion
  • [ ] QA sign-off on completion
  • [ ] Product sign-off on completion

iOS

  • [ ] Design sign-off on completion
  • [ ] QA sign-off on completion
  • [ ] Product sign-off on completion

mxandreas avatar Feb 20 '25 12:02 mxandreas

@stefanceriu @jmartinesp This is a bit close to the encryption decoration work you are doing. Can you update the composer hint and its icon?

manuroe avatar Feb 26 '25 12:02 manuroe

Note a product owner, but I think we should not bother users about encryption/technical terms ("invisible crypto", etc.) so maybe stick to Message... for the hint and showing the padlock for e2e rooms is enough? Or using another term like "Secure message..." ? It will match what is used on the PlayStore: Element X - Secure Chat & Call.

bmarty avatar Feb 27 '25 11:02 bmarty

maybe stick to Message... for the hint and showing the padlock for e2e rooms is enough? Or using another term like "Secure message..." ? It will match what is used on the PlayStore: Element X - Secure Chat & Call.

Encryption is not a "technical term" in our context, we already use it in other places of the UI (e.g. Encryption menu, Encrypted pill in room info), and even in marketing materials since E2EE is one of our key differentiators. Therefore "Encrypted message" should be very clear and unambiguous.

mxandreas avatar Feb 27 '25 11:02 mxandreas

I agree with @bmarty here. The browser vendors removed the https lock for a lot of valid reasons. Showing the lock while composing a message is waste of space and does not add any value.

I would suggest to stick to the text "Unencrypted message" or "encrypted message", if it's really necessary.

Or at least let the lock disappear while typing.

beposec avatar Feb 28 '25 09:02 beposec

While browsers' HTTPS lock is a good analogy, it is not fully a fair comparison because Element/Matrix still has valid use cases for non-E2EE rooms (for real end-users in the wild); and also, it took browsers years before they actually removed the lock. Finding a good balance by making clear when the room is unencrypted but not scaring off users when that's intentional, is more complicated, therefore.

However, as Element is more inclined towards E2EE, we have decided to change the balance point by eliminating decoration (green padlock) in encrypted rooms and making the decoration in unencrypted rooms more prominent to compensate that.

mxandreas avatar Mar 04 '25 12:03 mxandreas

This heavily beats purpose of intentional public rooms with annoying padlock just to promote some degree of feature. It warns user that something is off and could be fixed but it wont be because it is intentional

My suggestion is if you want to promote it, keep it simple and just add composer placeholder message for encrypted message and unencrypted message Dont shove padlocks as its mostly clutter. Room info has both.

There were discussions in ele-x-android room about added extended and annoying bar with padlock to public room. Ele-x-ios did it in placeholder so they are not same and one is more awful than the other.

Destinyg133 avatar Apr 09 '25 09:04 Destinyg133

@mxandreas can we close this now that it is fixed in EXA, EXI and web?

richvdh avatar Aug 28 '25 14:08 richvdh

Yes, we can!

mxandreas avatar Aug 28 '25 17:08 mxandreas