Come implementare la crittografia end-to-end nei messenger multi-piattaforma [chiuso]

2

AFAIK, la crittografia end-to-end (E2EE) inizia su un dispositivo (una piattaforma, ad esempio Android), il messaggio raggiunge la destinazione e decodifica lì. Quindi altri miei dispositivi (come iOS o client web) non hanno le chiavi per decifrare il messaggio.

Ma alcune applicazioni di messaggistica istantanea come Wire forniscono alla chat multi-piattaforma E2EE la cronologia delle chat.

1. La domanda è: in che modo i diversi dispositivi decodificano un messaggio che è end-to-end crittografato su un altro dispositivo? In che modo iOS e Android e i messaggi di sincronizzazione client web e desktop ?! Se condividono chiavi private, come possiamo fidarci del fatto che il server non salvi la chiave?!

2. Qualche idea su come Wire messenger sincronizza i messaggi?

    
posta Saeed 25.07.2017 - 17:14
fonte

1 risposta

2

Cercherò di rispondere a quello che - al momento della stesura - capisco sono le tue domande:

La crittografia è indipendente dalla piattaforma, quindi non importa quale piattaforma sta inviando un messaggio crittografato finché il mittente e il destinatario aderiscono allo stesso protocollo.

Per quanto riguarda lo scambio di chiavi: Diciamo che hai i dispositivi A e B, entrambi appartenenti alla stessa identità, I. Ora, dovrei avere accesso ai messaggi tramite A e B. Questo significa che ogni messaggio è essere crittografato con la chiave (A) e la chiave (B) - o quella chiave (A) = la chiave (B).

Nel primo caso, non ci si può fidare del fatto che il server non aggiunga in modo trasparente un terzo dispositivo sotto il loro controllo all'elenco delle chiavi per I, cioè la chiave (C). Questo potrebbe sollevare alcune sopracciglia con il mittente, ma poiché hanno il controllo dell'interfaccia utente e per quello - non importa.

Nel secondo caso, è possibile condividere le chiavi stabilendo un canale di comunicazione sicuro per trasmettere la chiave, ad esempio visualizzando un codice QR su A e scansionandolo con B in un ambiente sicuro.

In entrambi i casi, poiché l'interfaccia utente e la logica potrebbero essere closed source o potresti non eseguire il binario per il quale hai fonti (potrebbe essere corretto prima della consegna), non puoi essere certo che A e B trasmettano tutte le chiavi note a li al server mentre stai messaggiando via.

Si riduce a: lo scambio di chiavi è un problema risolvibile per questo scenario - il software fidato non lo è. O fai o non fai e usa il tuo software sotto il tuo controllo, aderendo allo stesso protocollo.

Quanto a chi chiede l'implementazione e i dettagli di progettazione per un prodotto specifico: non lo so; potrebbe non essere divulgato. E se lo fosse, se stai diffidando del fornitore, perché fidarti di quello che dicono?

    
risposta data 26.07.2017 - 15:59
fonte

Leggi altre domande sui tag