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

Invisible Crypto | configure key sharing strategy based on labs feature flag #28038

Closed
BillCarsonFr opened this issue Sep 12, 2024 · 3 comments · Fixed by matrix-org/matrix-js-sdk#4425
Assignees
Labels
A-Config O-Uncommon Most users are unlikely to come across this or unexpected workflow T-Feature Request to add a new feature which does not exist right now T-Task Tasks for the team like planning Team: Crypto

Comments

@BillCarsonFr
Copy link
Member

Part of Invisible Crypto.

For element-web, we want a setting in config.json to enable the new key distribution mode.

This setting should be OFF, by default.

This setting controls how end-to-end encryption (E2E) keys are shared.
Enabling it will prevent the inclusion of devices that have not been explicitly verified by their owners.

See IdentityBasedStrategy
Can be configured via the EncryptionSettings structure, see here https://github.com/matrix-org/matrix-js-sdk/blob/60cedf2fdbe22951389e55c7e766785137a19d8c/src/rust-crypto/RoomEncryptor.ts#L237

@BillCarsonFr BillCarsonFr added T-Feature Request to add a new feature which does not exist right now T-Task Tasks for the team like planning Team: Crypto and removed T-Feature Request to add a new feature which does not exist right now labels Sep 12, 2024
@BillCarsonFr BillCarsonFr self-assigned this Sep 12, 2024
@dosubot dosubot bot added A-Config O-Uncommon Most users are unlikely to come across this or unexpected workflow T-Feature Request to add a new feature which does not exist right now labels Sep 12, 2024
@uhoreg
Copy link
Member

uhoreg commented Sep 16, 2024

I just saw that you made this issue. I've already done some of this as part of https://github.com/element-hq/crypto-internal/issues/362 matrix-org/matrix-js-sdk#4407 is the js-sdk part, which defines a crypto mode. Then in the React SDK, I have added a new setting:

    "feature_invisible_crypto": {
        isFeature: true,
        labsGroup: LabGroup.Encryption,
        controller: new InvisibleCryptoController(),
        displayName: _td("labs|invisible_crypto"),
        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
        supportedLevelsAreOrdered: true,
        default: false,
    },

(where InvisibleCryptoController sets the crypto mode in the JS SDK). I'm not sure if we just need a flag for turning on invisible crypto, or if we need to select between legacy, transition mode, or invisible crypto.

@richvdh
Copy link
Member

richvdh commented Sep 17, 2024

Suspect we need at least a couple of different settings here, since some deployments want to be quite aggressive with the rollout (they are happy to assume that all devices are signed), whilst others want to experiment with the new features whilst still remaining compatible with the ecosystem.

@richvdh
Copy link
Member

richvdh commented Sep 23, 2024

Suspect we need at least a couple of different settings here, since some deployments want to be quite aggressive with the rollout (they are happy to assume that all devices are signed), whilst others want to experiment with the new features whilst still remaining compatible with the ecosystem.

For the record: this seems incorrect, at least at the EW level. We think that the things that were proposed for "transition mode" can be introduced without the need for a separate switch.

element-hq/matrix-react-sdk#50 element-hq/matrix-react-sdk#92 is doing the work to add this to the react sdk.

@richvdh richvdh changed the title Invisible Crypto | Add a config flag to enable IdentityBased sharing strategy Invisible Crypto | configure key sharing strategy based on labs feature flag Sep 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Config O-Uncommon Most users are unlikely to come across this or unexpected workflow T-Feature Request to add a new feature which does not exist right now T-Task Tasks for the team like planning Team: Crypto
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants