La segretezza perfetta funziona con chat di gruppo o cronologia chat?

9

Sono curioso di sapere se la perfetta segretezza in avanti potrebbe funzionare in un'app come WhatsApp, in cui si desidera visualizzare i messaggi prima dell'ultimo messaggio o una moltitudine di messaggi contemporaneamente, come in una chat di gruppo.

Dal momento che ho capito che la perfetta segretezza in avanti cambia la chiave ogni volta, in modo che i vecchi messaggi non crittografati con quella chiave non siano suscettibili di essere decifrati se si perde l'ultima chiave. Se questo è il caso e sono sicuro che lo sia, puoi vedere solo l'ultimo messaggio

    
posta dwkd 17.12.2016 - 21:19
fonte

2 risposte

7

Penso che tu intenda Perfetta segretezza avanzata , che WhatsApp fa supporta nella sua fine- crittografia fino alla fine. PFS è difficile per le app di chat, a causa dell'incertezza nella connessione, ed è la ragione per cui molte app di chat lo ignorano.

In PFS normale (come TLS o SSH) viene stabilita una connessione in corso e le chiavi vengono ricalcolate ogni volta in numero di byte o minuti. Le app di chat non sono in grado di riconoscere un messaggio (o qualsiasi dato) ricevuto. In effetti, l'altra estremità del canale potrebbe non aver mai inviato alcun dato a modo tuo, oppure era offline per tutto il tempo. In ogni caso, tu come emittente dovresti essere in grado di proteggere i messaggi che hai inviato, indipendentemente dall'altra estremità.

Per superare l'intero problema, protocolli come OTR en Axolotl usa prekeys . Questi prekey sono tasti Diffie-Hellman (o EC come Curve25519) precalcolati. È normale calcolare alcune centinaia di chiavi in anticipo. Tutte le chiavi pubbliche di questi keypair precalcolati vengono inviate al server relay (chat) e pubblicizzate insieme alla tua chiave di identità pubblica (la chiave di identità pubblica è in realtà il tuo 'nome' verso gli altri) . Ora che i prekeys pubblici si trovano sul server relay, chiunque desideri inviarti un messaggio può semplicemente scegliere uno dei tuoi prekeys e calcolare il segreto condiviso.

Il messaggio viene quindi crittografato e autenticato utilizzando il segreto condiviso e inviato al destinatario insieme all'ID prekey. Una volta che il ricevente estrae il messaggio dal server, può decodificare il messaggio con la prekey privata corrispondente. Un nuovo prekeypair viene generato e inviato al server per prendere il suo posto. Questo sistema funziona all'infinito.

Sia il mittente che il destinatario devono tenere traccia di tutti i loro prekeys ancora in uso. L'intero algoritmo è noto come Double Ratchet .

App che utilizzano Axolotl :

  • WhatsApp
  • Google Allo
  • Facebook Messenger
  • Signal
  • Viber (richiesto)

Aggiorna

Il protocollo è autopulente perché ogni messaggio è crittografato con un'altra chiave. Questa chiave non è più nota quando il messaggio viene decifrato e il messaggio stesso viene memorizzato nel database dell'app locale. Ecco il trucco: i messaggi sono not concatenati in ordine, quindi al meglio una pre-chiave (un messaggio) è compromessa. Questo non ha alcun effetto sugli altri messaggi. Ogni messaggio è crittografato con un'altra chiave (segretezza perfetta). I messaggi di per sé non dipendono l'uno dall'altro e quindi un attacco all'ultimo messaggio non conferisce al malintenzionato il controllo sulle comunicazioni future (segreto futuro). Nota: il protocollo presenta anche alcuni svantaggi, ad esempio ordini di messaggi o messaggi persi.

Aggiornamento 2: chat di gruppo

Dal punto di vista del protocollo, non esiste una "chat di gruppo". È lo stesso messaggio che invia più volte alle persone, come le e-mail possono essere inviate anche a più destinatari. Ognuno di questi messaggi è crittografato con la prekey del destinatario. Ad esempio, se il gruppo contiene un totale di 4 persone, incluso te, lo stesso messaggio viene inviato 3 volte (tecnicamente, invia una sola volta, contenente 3 messaggi) a ciascuno dei membri del gruppo. Pertanto è necessario che ogni messaggio sia firmato e crittografato con il segreto condiviso tra te e il destinatario. Nota: l'ultima versione del protocollo TextSecure può ottimizzare questo processo in qualche modo crittografando il messaggio una volta e firmandolo più volte. C'è una proposta per introdurre chiavi di gruppo temporanee per gruppi più grandi. Per quanto ne so, questo non è ancora arrivato a WhatsApp.

Se un nuovo utente si unisce alla chat, non vi è alcuna cronologia per quell'utente poiché i messaggi di chat sono tenuti sul dispositivo locale (ovviamente). Vedi questo come un vantaggio, ogni utente del gruppo è responsabile per mantenere privati i messaggi. Sarà una soluzione di sincronizzazione; 1) aumentare la superficie di attacco, 2) aumentare la complessità del criptosistema e 3) spostare la proprietà dei messaggi in giro.

    
risposta data 18.12.2016 - 00:57
fonte
1

Nella maggior parte delle app E2E al giorno d'oggi, PFS si applica solo al transito. Il loro riposo è solitamente solo una crittografia simmetrica con la chiave di crittografia memorizzata nel dispositivo locale (fondamentalmente non criptato). La ricerca di messaggi storici è semplice.

Alcune app consentono all'utente di fornire una passphrase aggiuntiva (memorizzata nel cervello dell'utente) per rafforzare la crittografia locale.

    
risposta data 20.12.2016 - 00:53
fonte

Leggi altre domande sui tag