Skip to content

Conversation

uhoreg
Copy link
Member

@uhoreg uhoreg commented Feb 1, 2025

Rendered

Conflict of interest statement: I am a Matrix Spec Core Team member, and and employee of Element on the Cryptography team. This proposal was written as part of my work on the Element Cryptography team, based on feedback on MSC4153.

@uhoreg uhoreg changed the title MSCxxxx: "Do not encrypt for device" flag MSC4261: "Do not encrypt for device" flag Feb 1, 2025
@uhoreg uhoreg added e2e proposal A matrix spec change proposal client-server Client-Server API kind:feature MSC for not-core and not-maintenance stuff needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. labels Feb 1, 2025

## Proposal

A new optional `do_not_encrypt` property is added to the `DeviceKeys` structure
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestions for better names welcome

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implementation requirements:

  • Client asking to not be encrypted to
  • Client not encrypting to that other client

Some devices (such as bots and application service puppets) may not need to
receive encrypted messages. For example, an application service may have
multiple puppeted users in a room, but only needs to receive room keys once to
decrypt a message; sending the room keys to all of the application service's
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#4350 defines a method for appservices to avoid creating multiple sessions in the first place

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#4350 looks like a more complete solution for bridges. This MSC might still be useful for bots that only need to send messages, but not read messages. But without the bridge use-case, it might not be worth it. So I plan on closing this MSC once 4350 gets far enough along.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yes, this could still be useful for normal bots, especially if combined with a command system like MSC4332 to give bots the ability to say "only encrypt commands for me". Telegram bots have a similar "privacy mode" flag where they either receive all messages or only registered commands

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

Labels

client-server Client-Server API e2e kind:feature MSC for not-core and not-maintenance stuff needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. proposal A matrix spec change proposal

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants