[EPIC]: End-to-end encrypted group messages

Offen
#190 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
25/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
dart, flutter
Bereich
mobile-dev, security

Rechercherichtung

Read the design sub-issue first and comment there before writing code. The starting point named here is mobile/lib/services/sqlite_signal_store.dart, which implements SenderKeyStore and defines the signal_sender_keys table; review it alongside the existing 1:1 Signal session flow. Done means the server relays encrypted group payloads and sender-key distribution, while the app encrypts and decrypts with GroupCipher and rotates keys when membership changes.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

area: e2ee difficulty: hard enhancement

Goal

Group messages are currently sent as plaintext envelopes (protected in transit by TLS, but readable by the server). Encrypt them end to end with Signal sender keys, so the server only relays ciphertext.

Starting point

  • The app's Signal store already implements SenderKeyStore (mobile/lib/services/sqlite_signal_store.dart), with a signal_sender_keys table.
  • 1:1 Signal sessions already exist, and are the usual way to deliver sender keys to each member.

Steps (sub-issues)

  1. Design note: the distribution and rotation rules.
  2. Server: route sender-key distribution messages and encrypted group payloads.
  3. App: encrypt and decrypt with GroupCipher, distribute keys, rotate on membership changes.

Please read the design sub-issue first and comment there before writing code.

Vorherrschende Sprache
Dart
Sterne
9
Forks
5
Ø Merge
49 Min.
Gemergte PRs (30 T.)
34

Entwicklungsumgebung

  • Enthält ein Dockerfile oder eine Docker-Compose-Datei
  • Keine Pull-Request-Vorlage
  • Kein Beitragsleitfaden

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus CommandLineCoding/Elephant

Alle Issues in CommandLineCoding/Elephant

Ähnliche Issues

Weitere Issues zu Dart

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.