Replace old GroupID with new Dervied GroupID #357

Merged
erinn merged 6 commits from groupwiring into master 2021-05-18 19:37:18 +00:00
Owner

As we move towards a group model that allows for different management
constitutions we need to deprecate our old group security model that relied
on "owners" and transitive signing/verification checks.

This new model derives GroupID from the GroupKey and the GroupServer
binding it both. This allows participants to know if a message was
intended for the same group they are apart of (as GroupID is included
in every encrypted/signed message to Groups) while allowing more dynamic
management protocols to be built on top of the (now agnostic) group protocols.

This PR also adds more validation logic to invites and provides the ValidateInvite
function to allow the UI to validate invites separately from processing them.

As we move towards a group model that allows for different management constitutions we need to deprecate our old group security model that relied on "owners" and transitive signing/verification checks. This new model derives GroupID from the GroupKey and the GroupServer binding it both. This allows participants to know if a message was intended for the same group they are apart of (as GroupID is included in every encrypted/signed message to Groups) while allowing more dynamic management protocols to be built on top of the (now agnostic) group protocols. This PR also adds more validation logic to invites and provides the ValidateInvite function to allow the UI to validate invites separately from processing them.
erinn was assigned by sarah 2021-05-14 18:31:23 +00:00
Member
Drone Build Status: success https://build.openprivacy.ca/cwtch.im/cwtch/129
Member
Drone Build Status: success https://build.openprivacy.ca/cwtch.im/cwtch/131
Member
Drone Build Status: failure https://build.openprivacy.ca/cwtch.im/cwtch/133
erinn approved these changes 2021-05-18 19:21:17 +00:00
model/group.go Outdated
@ -224,0 +236,4 @@
func ValidateInvite(invite string) (*groups.GroupInvite, error) {
// We prefix invites for groups with torv3
if strings.HasPrefix(invite, GroupInvitePrefix) {
data, err := base64.StdEncoding.DecodeString(invite[5:])
Owner

invite[len(GroupInvitePrefix):]

invite[len(GroupInvitePrefix):]
model/group.go Outdated
@ -224,0 +243,4 @@
func ValidateInvite(invite string) (*groups.GroupInvite, error) {
// We prefix invites for groups with torv3
if strings.HasPrefix(invite, GroupInvitePrefix) {
data, err := base64.StdEncoding.DecodeString(invite[5:])
Owner

invite[len(GroupInvitePrefix):]

invite[len(GroupInvitePrefix):]
Member
Drone Build Status: success https://build.openprivacy.ca/cwtch.im/cwtch/135
erinn merged commit 0957aefdff into master 2021-05-18 19:37:18 +00:00
Member
Drone Build Status: success https://build.openprivacy.ca/cwtch.im/cwtch/137
Sign in to join this conversation.
No description provided.