Encryption key type
Key negociation
State changes
Deterministic key ratchet
protocols in which users can start encrypting messages to the group immediately after creating the group or receiving a group creation message, without having to wait for round-trips with other users. Such protocols necessarily use prekeys.
is there a singlekey shared by all group members, a shared key between each pair of users, etc. ?
adding users, removing users, and key refreshing. Changing keys is necessary when adding or removing users because removed users should no longer be able to decrypt messages, and added users should not be able to decrypt messages from before they were added. Key refreshing is the mechanism used to achieve post-compromise security.
forward secrecy at low cost: deterministically derive new encryption keys for each message, using a chain of key derivation function applications. After sending or receiving a message, a user can delete the corresponding key, which is only used once.
State change malicious
user tolerance
users cannot forge message identities even temporarily. A protocol can lack this property but still authenticate authors if users validate a message’s author through a transcript consistency check after receiving the message.
Malicious user tolerance
same as above, but for the initial key negociation
Unforgeable
Message unlinkability
preserving
the protocol doesn't produce cryptographic proof that two messages were sent by the same user. A protocol partially fulfils thisproperty if some but not all messages may be cryptographically linked.
Authenticated authors
the protocol allows users to verify message authors
Malicious user tolerant
Partition tolerant
Signature-free
Malicious users cannot cause any two honest users to.believe that their message sets are consistent when they are not.
Malicious delivery service
tolerant
A malicious delivery service cannot cause any two honest users to believe that their message sets are consistent when they are not.A protocol partially fulfils this property if the delivery service consists of multiple servers and transcript consistency holds so long as at least one server is honest.
Asynchronous
The protocol doesn't mandate signatures for every message, so that other forms of author authentication may be used
Intent preservation
At rest, all system must converge to the same value, with the editions of each user.
Resistant to network partitions
Consistent causal broadcast
With CRDT, this is sufficient for users to see a causaly consistent view of their collaborative work
On se repose sur une catégorisation existante des usages observés pour l'écriture collaborative¹ :
¹Lowry, Paul Benjamin; Curtis, Aaron; Lowry, Michelle René, « "Building a Taxonomy and Nomenclature of Collaborative Writing to Improve Interdisciplinary Research and Practice" », The Journal of Business Communication (1973). N˚41, 2004
Partition tolerant
Asynchronous
Rights separation
Collaborators can work on subsets of the document
Subsets of the document can be assigned to different authors in read and/or write mode
Anonymous edits
Unauthenticated users can collaborate on subsets of the document
Roles
Assignments can be grouped into roles assignable by virtue of scoped/proxied administration rights
3 utilisateurs autour d'un document.
Ayant acté une hiérarchie (un administrateur A1), 2 utilisateurs jouissent de droits différents l'un de l'autre : U1/U2.
Variantes en édition :
Variantes en consultation :
S2.1 : U1 capable d'éditer le document, U2 de commenter.
S2.2 : U1 capable d'éditer une partie du document, U2 d'éditer une autre partie.
S2.3 : U1 capable d'éditer le document, U2 de commenter sans que U1 ne puisse voir les commentaires.
S2.4 : U1 capable d'éditer une partie du document, U2 d'éditer une autre partie, sans que chacun de puisse voir la partie de l'autre.
3 utilisateurs autour d'un document. 1 utilisateur externe.
Ayant acté une hiérarchie (un administrateur A1), 2 utilisateurs jouissent de droits différents l'un de l'autre : U1/U2. 1 utilisateur sans droits : E1.
Variantes en édition :
Variantes en consultation :
U1 capable d'éditer le document, délègue ce droit à U2 puis se déconnecte.
U2 de commenter sans que U1 ne puisse voir, délègue ce droit à U1 puis se déconnecte.
On ajoute dès lors aux scénarios qui suivent des variantes hors-ligne.
2 utilisateurs autour d'un document. 1 utilisateur externe.
Ayant acté une hiérarchie (un administrateur A1), 1 utilisateur jouit de droits non-administratifs : U1. 1 utilisateur peut être ajouté : E1.
A1 ajoute E1 au groupe en présence de U1.
A1 ajoute E1 au groupe sans la présence de U1.
A1 ajoute E1 au groupe sans la présence de E1.
A1 ajoute E1 au groupe sans la présence de U1 ni E1.
A1 ajoute E1 au groupe sans la présence de U1, puis se déconnecte.
A1 ajoute E1 au groupe sans la présence de E1, puis se déconnecte.
A1 ajoute E1 au groupe sans la présence de U1 ni E1, puis se déconnecte.
Les derniers protocoles d'établissement de clés de groupes permettent le broadcast contrairement à Signal :
figure modifiée de Group Messaging for Secure Asynchronous Collaboration, Matthew A. Weidner
WhatsApp, Signal, etc.
ART, TreeKEM, etc.
figure modifiée de Adapting secure group messaging for encrypted CRDTs, Martin Kleppman, 2019
Les applications web modernes traitent toute entrée utilisateur comme soupçonnable
En pair-à-pair, faire confiance à toute entrée, même d'un membre du groupe, revient à une régression de la confiance
Hash chaining
Garantie de la cohérence causale en vue d'usage de CRDT, via e.g. Causal TreeKEM¹
¹Group Messaging for Secure Asynchronous Collaboration, Matthew A. Weidner
figure modifiée de Adapting secure group messaging for encrypted CRDTs, Martin Kleppman, 2019
Solution: confiance du dernier hash par signature de groupe/anonymisation¹
¹Snapdoc: Authenticated snapshots with history privacy in peer-to-peer collaborative settings, PETS 2019
L'ajout d'un nouveau collaborateur requiert l'historique complet pour vérifier la chaîne
confidentialité via le chiffrement de groupe
≠
droits différenciés via des signatures de groupes
Groupe de confidentialité
Groupe de signature : admins
chargé des opérations d'autorisation : ajout/suppression de membres, publication de modifications du document
¹via Identity-Based Proxy Re-Encryption, e.g. Identity-based conditional proxy re-encryption with fine grain policy, Chunpeng et al., 2017
délégation d'une ou plusieurs opérations d'édition¹
chargé des opérations d'autorisation : ajout/suppression de membres, publication de modifications du document
Groupe de confidentialité
Groupe de signature : admins
délégation de l'édition d'un champ déclaré comme protégé par les administrateurs : "titre"
Groupe de confidentialité
Groupe de signature : admins
L'utilisateur bleu transmet ses modifications avec le tag "titre", vérifié cryptographiquement par son délégataire¹
La modification est acceptée par un membre du groupe administrateur, qui le signe et le renvoit comme autoritatif au sein du groupe de confidentialité
¹un membre du groupe admin en ligne, pas forcément celui ayant délégué, grace au concept d'id-based proxy signature
An ID-based proxy signature schemes without bilinear pairings, He Debiao, 2011
Variante : Object Capabilities, représentant les capacités comme des objects d'un language de programmation. Disambiguation.
ressources : github.com/dckc/awesome-ocap (various object capabilities info), racket-lang.org/goblins/captp.html (lists implementations)
Se reposant sur les capacités : les smart contracts ou certains systèmes de fichier distribués.
A capability is single thing that both designates a resource and authorizes some kind of access to it.
Patterns : modulation (révocation, délégation), atténuation (opérations autorisées, zone d'effet), abstraction (POLA)
Exemples d'utilisations modernes : E (langage) and CapTP its Capability Transport Protocol, OCAPub/Spritely/Gobelins, Cap’n Proto, JWT.
Questions soulevées :
ressources : github.com/dckc/awesome-ocap (various object capabilities info), racket-lang.org/goblins/captp.html (lists implementations)