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

Ouverte
#190 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
25/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
Active
Stack technique
dart, flutter
Domaine
mobile-dev, security

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
Dart
Étoiles
9
Forks
5
Merge moyen
49 min
PR mergées (30 j)
34

Préparer son environnement

  • Fournit un Dockerfile ou un fichier Docker Compose
  • Aucun modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de CommandLineCoding/Elephant

Toutes les issues de CommandLineCoding/Elephant

Issues similaires

Plus d'issues Dart

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.