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

Implement encryption for channel permissions #10998

Closed
Tracked by #10598
jrainville opened this issue Jun 8, 2023 · 0 comments
Closed
Tracked by #10598

Implement encryption for channel permissions #10998

jrainville opened this issue Jun 8, 2023 · 0 comments
Assignees
Labels
Milestone

Comments

@jrainville
Copy link
Member

jrainville commented Jun 8, 2023

Description

Part of Epic #10598

This is a status-go issue, but it's simpler for us to track if it's here.

With this task, we need to add encryption for each channel token permission.

The only exception is the "everyone is able to read permission", aka "read-only" channels, because there is no token attached. What that means if if the switch on "who holds" is turned off, then the permission applies to everyone. Then a "View only" permission on a channel means that everyone has a right to read it, but not write, except admins and owners. Then it that particular case, it would not be encrypted, because everyone can still read (it might still be encrypted because of community encryption)

Acceptance Criteria

  • When a token permission is added to a channel, then that channel becomes independently encrypted. Only people that fulfill that permission will have access to the key to un-encrypt the channel.
@jrainville jrainville added this to the 0.14 milestone Jun 8, 2023
@iurimatias iurimatias modified the milestones: 0.14, 0.15 Jun 13, 2023
@iurimatias iurimatias added the C1 label Jun 19, 2023
@jrainville jrainville moved this to Next Iteration in Status Desktop/Mobile Board Jun 19, 2023
@osmaczko osmaczko moved this from Next Iteration to Iteration Backlog in Status Desktop/Mobile Board Jun 21, 2023
@osmaczko osmaczko moved this from Iteration Backlog to In Progress in Status Desktop/Mobile Board Jun 23, 2023
osmaczko added a commit to status-im/status-go that referenced this issue Jul 17, 2023
Added utility that evaluates necessary encryption key actions based on
community changes.

part of: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 17, 2023
Added utility that evaluates necessary encryption key actions based on
community changes.

part of: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 17, 2023
Added utility that evaluates necessary encryption key actions based on
community changes.

part of: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 17, 2023
Added utility that evaluates necessary encryption key actions based on
community changes.

part of: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 19, 2023
This component decouples key distribution from the Messenger, enhancing
code maintainability, extensibility and testability.
It also alleviates the need to impact all methods potentially affecting
encryption keys.
Moreover, it allows key distribution inspection for integration tests.

part of: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 19, 2023
This component decouples key distribution from the Messenger, enhancing
code maintainability, extensibility and testability.
It also alleviates the need to impact all methods potentially affecting
encryption keys.
Moreover, it allows key distribution inspection for integration tests.

part of: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 20, 2023
Added utility that evaluates necessary encryption key actions based on
community changes.

part of: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 20, 2023
Added utility that evaluates necessary encryption key actions based on
community changes.

part of: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 20, 2023
This component decouples key distribution from the Messenger, enhancing
code maintainability, extensibility and testability.
It also alleviates the need to impact all methods potentially affecting
encryption keys.
Moreover, it allows key distribution inspection for integration tests.

part of: status-im/status-desktop#10998
@jrainville jrainville added C2 and removed C1 labels Jul 20, 2023
osmaczko added a commit to status-im/status-go that referenced this issue Jul 20, 2023
This component decouples key distribution from the Messenger, enhancing
code maintainability, extensibility and testability.
It also alleviates the need to impact all methods potentially affecting
encryption keys.
Moreover, it allows key distribution inspection for integration tests.

part of: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 21, 2023
osmaczko added a commit to status-im/status-go that referenced this issue Jul 21, 2023
This component decouples key distribution from the Messenger, enhancing
code maintainability, extensibility and testability.
It also alleviates the need to impact all methods potentially affecting
encryption keys.
Moreover, it allows key distribution inspection for integration tests.

part of: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 21, 2023
osmaczko added a commit to status-im/status-go that referenced this issue Jul 21, 2023
osmaczko added a commit to status-im/status-go that referenced this issue Jul 21, 2023
- distribute ratchet keys at both community and channel levels
- use explicit `HashRatchetGroupID` in ecryption layer, instead of
  inheriting `groupID` from `CommunityID`
- populate `HashRatchetGroupID` with `CommunityID+ChannelID` for
  channels, and `CommunityID` for whole community
- hydrate channels with members; channel members are now subset of
  community members
- include channel permissions in periodic permissions check

closes: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 21, 2023
- distribute ratchet keys at both community and channel levels
- use explicit `HashRatchetGroupID` in ecryption layer, instead of
  inheriting `groupID` from `CommunityID`
- populate `HashRatchetGroupID` with `CommunityID+ChannelID` for
  channels, and `CommunityID` for whole community
- hydrate channels with members; channel members are now subset of
  community members
- include channel permissions in periodic permissions check

closes: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 21, 2023
- distribute ratchet keys at both community and channel levels
- use explicit `HashRatchetGroupID` in ecryption layer, instead of
  inheriting `groupID` from `CommunityID`
- populate `HashRatchetGroupID` with `CommunityID+ChannelID` for
  channels, and `CommunityID` for whole community
- hydrate channels with members; channel members are now subset of
  community members
- include channel permissions in periodic permissions check

closes: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 21, 2023
- distribute ratchet keys at both community and channel levels
- use explicit `HashRatchetGroupID` in ecryption layer, instead of
  inheriting `groupID` from `CommunityID`
- populate `HashRatchetGroupID` with `CommunityID+ChannelID` for
  channels, and `CommunityID` for whole community
- hydrate channels with members; channel members are now subset of
  community members
- include channel permissions in periodic permissions check

closes: status-im/status-desktop#10998
@osmaczko osmaczko moved this from In Progress to Code review in Status Desktop/Mobile Board Jul 21, 2023
osmaczko added a commit to status-im/status-go that referenced this issue Jul 24, 2023
- distribute ratchet keys at both community and channel levels
- use explicit `HashRatchetGroupID` in ecryption layer, instead of
  inheriting `groupID` from `CommunityID`
- populate `HashRatchetGroupID` with `CommunityID+ChannelID` for
  channels, and `CommunityID` for whole community
- hydrate channels with members; channel members are now subset of
  community members
- include channel permissions in periodic permissions check

closes: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 24, 2023
- distribute ratchet keys at both community and channel levels
- use explicit `HashRatchetGroupID` in ecryption layer, instead of
  inheriting `groupID` from `CommunityID`
- populate `HashRatchetGroupID` with `CommunityID+ChannelID` for
  channels, and `CommunityID` for whole community
- hydrate channels with members; channel members are now subset of
  community members
- include channel permissions in periodic permissions check

closes: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 24, 2023
This component decouples key distribution from the Messenger, enhancing
code maintainability, extensibility and testability.
It also alleviates the need to impact all methods potentially affecting
encryption keys.
Moreover, it allows key distribution inspection for integration tests.

part of: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 24, 2023
- distribute ratchet keys at both community and channel levels
- use explicit `HashRatchetGroupID` in ecryption layer, instead of
  inheriting `groupID` from `CommunityID`
- populate `HashRatchetGroupID` with `CommunityID+ChannelID` for
  channels, and `CommunityID` for whole community
- hydrate channels with members; channel members are now subset of
  community members
- include channel permissions in periodic permissions check

closes: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 24, 2023
This component decouples key distribution from the Messenger, enhancing
code maintainability, extensibility and testability.
It also alleviates the need to impact all methods potentially affecting
encryption keys.
Moreover, it allows key distribution inspection for integration tests.

part of: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 24, 2023
- distribute ratchet keys at both community and channel levels
- use explicit `HashRatchetGroupID` in ecryption layer, instead of
  inheriting `groupID` from `CommunityID`
- populate `HashRatchetGroupID` with `CommunityID+ChannelID` for
  channels, and `CommunityID` for whole community
- hydrate channels with members; channel members are now subset of
  community members
- include channel permissions in periodic permissions check

closes: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 26, 2023
- distribute ratchet keys at both community and channel levels
- use explicit `HashRatchetGroupID` in ecryption layer, instead of
  inheriting `groupID` from `CommunityID`
- populate `HashRatchetGroupID` with `CommunityID+ChannelID` for
  channels, and `CommunityID` for whole community
- hydrate channels with members; channel members are now subset of
  community members
- include channel permissions in periodic permissions check

closes: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 27, 2023
This component decouples key distribution from the Messenger, enhancing
code maintainability, extensibility and testability.
It also alleviates the need to impact all methods potentially affecting
encryption keys.
Moreover, it allows key distribution inspection for integration tests.

part of: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 27, 2023
- distribute ratchet keys at both community and channel levels
- use explicit `HashRatchetGroupID` in ecryption layer, instead of
  inheriting `groupID` from `CommunityID`
- populate `HashRatchetGroupID` with `CommunityID+ChannelID` for
  channels, and `CommunityID` for whole community
- hydrate channels with members; channel members are now subset of
  community members
- include channel permissions in periodic permissions check

closes: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 27, 2023
This component decouples key distribution from the Messenger, enhancing
code maintainability, extensibility and testability.
It also alleviates the need to impact all methods potentially affecting
encryption keys.
Moreover, it allows key distribution inspection for integration tests.

part of: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 27, 2023
- distribute ratchet keys at both community and channel levels
- use explicit `HashRatchetGroupID` in ecryption layer, instead of
  inheriting `groupID` from `CommunityID`
- populate `HashRatchetGroupID` with `CommunityID+ChannelID` for
  channels, and `CommunityID` for whole community
- hydrate channels with members; channel members are now subset of
  community members
- include channel permissions in periodic permissions check

closes: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 27, 2023
This component decouples key distribution from the Messenger, enhancing
code maintainability, extensibility and testability.
It also alleviates the need to impact all methods potentially affecting
encryption keys.
Moreover, it allows key distribution inspection for integration tests.

part of: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 27, 2023
- distribute ratchet keys at both community and channel levels
- use explicit `HashRatchetGroupID` in ecryption layer, instead of
  inheriting `groupID` from `CommunityID`
- populate `HashRatchetGroupID` with `CommunityID+ChannelID` for
  channels, and `CommunityID` for whole community
- hydrate channels with members; channel members are now subset of
  community members
- include channel permissions in periodic permissions check

closes: status-im/status-desktop#10998
osmaczko added a commit to status-im/status-go that referenced this issue Jul 27, 2023
This component decouples key distribution from the Messenger, enhancing
code maintainability, extensibility and testability.
It also alleviates the need to impact all methods potentially affecting
encryption keys.
Moreover, it allows key distribution inspection for integration tests.

part of: status-im/status-desktop#10998
@github-project-automation github-project-automation bot moved this from Code review to Done in Status Desktop/Mobile Board Jul 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Archived in project
Development

No branches or pull requests

3 participants