Skip to content

Propagate verification status via Autocrypt-Gossip attribute #7080

@link2xt

Description

@link2xt

Main advantage of protected chats compared to non-protected chats was that they never became unencrypted. With core v2 and key contacts normal group chats are also always encrypted, so this advantage is reduced. Protected groups also don't allow adding non-verified contacts, but in practice this resulted in users trying to get a green checkmark in any way possible to be able to add the contact to the group, e.g. by sending an invite link to unprotected chat.

We can make the UIs not create the groups with protection and deprecate the API for protected group creation.

However, we want to keep green checkmarks for contacts and to keep verification gossiping to continue working without the Chat-Verified header. So before we stop creating protected chats, we need an alternative way to gossip verification.

The following steps can be done without coordinating the releases and user upgrades:

  1. Add a new attribute to Autocrypt-Gossip headers to be able to say in any chat that the key is verified for the sender. Receivers can mark the contacts as "introduced by" when they receive such Autocrypt-Gossip header signed by a verified key.
  2. Remove the checks for the sender in verified groups. Do not replace messages with square brackets saying that "the message was sent with non-verified encryption" etc. even in protected groups. However, we cannot yet allow to add non-verified members to protected groups as existing clients treat this as a verification.
  3. Stop creating new protected groups.

Once enough clients upgrade we can also think about converting protected group chats to normal group chats and getting rid of protected status internally.

This plan may change and may need more discussion. To keep the scope of the issue limited, this issue is only about adding a new Autocrypt-Gossip attribute and using it to propagate verification status in any group chats, not only protected ones.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions