Come posso memorizzare i contatti dell'utente (rubrica) con zero conoscenze?

0

Desidero fornire a un utente un elenco di contatti remoti (rubrica) che possono accedere e aggiornare da client arbitrari su più dispositivi. Ma voglio avere zero conoscenza di questi contatti. Meccanismi esistenti (es. XMPP roster, CardDAV) memorizzano questi dettagli in chiaro. Esiste un meccanismo esistente per la crittografia / decodifica sul lato client di una rubrica?

Note (incluso il modello di sicurezza):

  • La rubrica sarà potenzialmente utilizzata da una varietà di client (XMPP, email, VoIP), quindi sono aperto a qualsiasi meccanismo / formato.

  • Presumo che i contatti possano ancora essere dedotti dai registri di routing di XMPP / email / altri servizi. Il server dovrebbe essere affidabile su questo comunque, quindi questo è accettabile. È la memoria "permanente" dell'elenco completo dei dettagli di contatto che desidero indirizzare qui.

posta d3vid 27.05.2017 - 12:37
fonte

1 risposta

1

Il problema generale qui è la memorizzazione di dati strutturati su un server inaffidabile. Le implementazioni di database con zero conoscenze / zero-trust e di crittografia omomorfica sono relativamente poco comuni, quindi è improbabile che vengano adottate soluzioni ancora più specifiche (come un protocollo di rubrica zero knowledge). Invece dovrai implementare quanto segue:

  • Archivia un BLOB crittografato sul server, decrittografalo e gestiscilo localmente. La sfida qui gestirà gli aggiornamenti al blob da più client.

  • Utilizzare un normale database relazionale e crittografare i campi sensibili (ad esempio i dettagli di contatto). Qui la sfida consiste nel garantire che le inferenze non possano essere fatte dai dati crittografati.

  • Utilizza un framework di database a conoscenza zero come Crypton ( codice ) o ZeroDB ( codice ). La sfida qui è trovare una soluzione che sia e rimarrà ben gestita.

Potresti quindi scrivere un modulo sul lato client che corrisponde all'API di un modulo CardDAV esistente (ad esempio), ma invece interroga la tua archiviazione sicura, decrittografa il risultato e restituisce un oggetto CardDAV in chiaro.

Lettura interessante: link

    
risposta data 31.05.2017 - 11:29
fonte

Leggi altre domande sui tag