Quali protocolli esistono per la chat di gruppo crittografata end-to-end?

22

Sto cercando i protocolli esistenti per una chat di gruppo con due cose:

  1. End to end encrypted. Solo quello che ti aspetteresti: i messaggi sono decifrabili solo dai membri della chat e viene rilevata la manomissione dei messaggi.

  2. Non dovrebbe crittografare ogni messaggio per ogni membro individualmente. Il protocollo del segnale fa questo, trasformando le chat di gruppo in molte chat individuali, che non è una soluzione adatta e scalabile al problema Con potenzialmente centinaia di membri in un gruppo, anche la crittografia di una chiave di crittografia per ogni membro rappresenta un notevole svantaggio.

Ogni nuovo membro può ricevere la chiave pubblica di tutti al momento dell'iscrizione e qualsiasi chiave di gruppo deve essere ruotata quando un membro lascia. Questo è abbastanza scalabile e potrebbe non esserci un modo per aggirarlo senza compromettere la sicurezza, quindi è consentito e non conta come "crittografare ogni messaggio per tutti".

Ho cercato i protocolli esistenti, ma ho trovato zero risultati che soddisfano questi requisiti. Ho pensato di leggere qualcosa di qualche anno fa in cui il gruppo ha ricavato una chiave comune e ha usato quello o qualcosa del genere, ma non riesco a trovare nulla di simile.

posta Luc 11.06.2016 - 22:30
fonte

2 risposte

28

Vorrei provare a riassumere quale sia il panorama dei protocolli di messaggistica crittografati end-to-end per la chat di gruppo:

  • Protocolli come PGP esistono da un po 'di tempo e offrono "messaggi di gruppo" semplicemente crittografando il contenuto con una chiave simmetrica generata in modo casuale e quindi crittografando tale chiave asimmetricamente con le chiavi pubbliche di ognuno dei destinatari. Questi protocolli inviano il contenuto crittografato solo una volta ma crittografa la chiave di crittografia per ciascuno dei membri del gruppo. Si noti che, analogamente a PGP, questo approccio non fornisce alcuna perfetta segretezza, negabilità o integrità della conversazione (e quindi nessuna coerenza del trascritto).

  • OTR è stato introdotto per risolvere alcune delle carenze di PGP, migliorando il perfetto segreto in avanti, l'integrità della conversazione e la negabilità. Anche Ian Goldberg, l'autore di OTR, ha scritto un articolo su una variante multipartitica del protocollo, denominata mpOTR . mpOTR è stato progettato tenendo presente il trasporto XMPP e intrinsecamente sincrono nella sua progettazione, il che significa che ogni membro del gruppo dovrebbe essere online in qualsiasi momento per negoziare il nuovo materiale di codifica. Il protocollo descritto non fornisce una perfetta segretezza in corso durante la sessione e non è stato ampiamente implementato. N + 1Sec è un protocollo simile con alcuni miglioramenti. Nota che questi protocolli hanno molta complessità algoritmica e tendono a scalare male, specialmente quando aggiungi latenza nel mix.

  • Allora hai un'intera classe di protocolli, che chiamiamo semplicemente i protocolli N volte perché inviano solo ogni messaggio. Questi protocolli hanno il vantaggio di riutilizzare un protocollo one-to-one esistente, il che è molto utile quando si dispone già di un canale che offre funzionalità interessanti come la segretezza asincrona perfetta in avanti. La struttura del gruppo non è un concetto crittografico in questo caso, perdendo le garanzie crittografiche ma abbassando la complessità algoritmica. Il blog di Open Whisper Systems ha un ottimo post sul perché Signal lo fa al posto della messaggistica in stile mpOTR. Questa classe di protocolli viola il tuo secondo requisito poiché essi sono ciò che chiamiamo "fan-out lato client" in cui il client crittografa e invia tutti i diversi messaggi.

  • Esiste un'ottimizzazione su Signal che è stata adottata da WhatsApp e che puoi trovare nella loro whitepaper chiamato Keys Sender che ha "fan-out lato server". Utilizza N volte durante l'installazione, ma dopo il primo messaggio, ogni membro del gruppo può inviare un singolo messaggio al gruppo. Questo protocollo ha perfetta segretezza in avanti usando un hash ratchet (ma non fornisce una segretezza futura perfetta). La coerenza di trascrizione viene applicata dal lato server (perché fan-out lato server), ma non da una prospettiva crittografica.

Questi sono i tipi di protocolli che ho visto in fase di implementazione. Ci sono sfide, sia nell'usabilità che nella ricerca crittografica su come combinare l'asincronia con la perfetta segretezza futura e la coerenza del trascritto nell'impostazione di gruppo.

Se vuoi un protocollo che risponda a entrambi i tuoi requisiti, penso che qualcosa come la variante Sender Keys del protocollo Signal sia ciò che stai cercando.

    
risposta data 17.06.2016 - 16:15
fonte
2

Forse Albero a cricchetto asincrono è ciò che stai chiedendo.

Puoi anche dare un'occhiata a Sicurezza dei livelli di messaggistica :

Messaging Layer Security (MLS) is an IETF working group building a modern, efficient, secure group messaging protocol.

    
risposta data 25.08.2018 - 07:13
fonte

Leggi altre domande sui tag