brave / brave/go-sync

Reject any non-encrypted data sent by a client

Open
#375 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
367
Forks
83
Avg merge
3d 8h
Merged PRs (30d)
4

Description

While we encrypt everything client-side in Brave, Chromium supports non-encrypted Sync as well. We should therefore add a server-side check to detect any client bugs that end up sending unencrypted data to the backend.

This could simply involve checking this field: https://github.com/brave/go-sync/blob/e2356a7a31a88d7f6707ae0dbfd18a001e970ed4/schema/protobuf/sync_pb/entity_specifics.proto#L76

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the referenced entity_specifics.proto field and trace where the server accepts client entity data. Determine how that field indicates encryption, then add server-side rejection for non-encrypted data and verify that encrypted client data remains accepted. Done means unencrypted client payloads are rejected consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
security
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.