Teoria dei social network completamente crittografata

4

Ho questa idea sulla costruzione di un social network che memorizza tutti i suoi dati crittografati. L'idea è che i dati di un membro siano memorizzati su più "server di base" (a scelta del membro). Ogni membro ha 3 set di dati e 3 chiavi di crittografia.

  • keyP per i propri dati e impostazioni privati
  • keyF per il suo profilo (post, foto, lista amici), consegna questa chiave a tutti i suoi amici
  • chiaveA per le sue informazioni pubbliche (nome, città, ecc.), anche fornite agli amici. Gli amici possono condividere questo con i loro amici (questo permette alle persone di trovare amici di amici)

Una lista amici contiene l'ID, la posizione del server e la chiaveA di tutti i tuoi amici.

I membri possono cambiare baseserver quando vogliono. Quando lo fanno, i loro dati crittografati saranno completamente rimossi dal server. Quando viene aggiunto un server di base, i dati crittografati verranno copiati sul nuovo server e tale posizione verrà inviata a tutti gli amici in modo che sappiano dove trovarlo. Se un membro desidera "rimuovere se stesso" dall'unico server che ha lasciato, dovrebbe esserci qualche conferma in più.

Ho aggiunto un sequenziato sequenziale per dare un'impressione visiva a cosa potrebbe

.

Domanda: Pensi che questo concetto sia realizzabile senza grandi problemi di prestazioni e pensi che la sicurezza possa essere mantenuta?

Aggiornamento:forse"Social network" non è proprio un nome appropriato per questo, voglio che sia una piattaforma con una mentalità di sicurezza prima e cercare di superare in astuzia anche le organizzazioni simili alla NSA dalla decrittografia i dati (che richiederebbero molta attenzione con i tasti invece di condividerlo con tutti i tuoi amici).

    
posta Edwin Otten 31.10.2013 - 16:09
fonte

3 risposte

6

Un primo commento generico è che quando date una chiave ad un amico, non c'è modo di impedire a quel "amico" di inviare la stessa chiave ad altre persone, o di blaterare sulle vostre informazioni semi-private. In questo senso, la crittografia non può fare un'utile distinzione tra "keyF" e "keyA". In un ambiente di sicurezza, ci sono solo due categorie di informazioni: ciò che non comunicherai a nessuno e ciò che dirai ad almeno una persona. Poiché sarebbe inutile caricare il primo su qualsiasi server, potremmo dire che in un social network esiste solo un tipo di informazione, destinata a essere condivisa. E non puoi davvero controllare quanto lontano alcuni dati sono condivisi.

Questo non è nuovo. La propagazione dei segreti attraverso il gossip è un fenomeno ben noto ed è probabilmente vecchia quanto la lingua stessa.

Tuttavia puoi provare a lavorare in una configurazione in cui gli amici sono "fidati", ovvero mantengono segreti (dubito strongmente che questo scenario sia pratico se il gruppo di amici include più di tre persone, ma hey, si può sempre sperare ). In tal caso, si può effettivamente condividere dati rivelando a questi pochi selezionare la chiave che ha crittografato i dati. Questo quindi richiede un secondo importante commento: non puoi imporre l'oblio.

Ciò significa che se si desidera "rimuovere" un amico, non è possibile farlo "dimenticare" la chiave precedentemente condivisa. L'unico metodo è quello di creare una nuova chiave, condividerla con i tuoi amici rimasti e successivamente crittografare i tuoi dati solo con la nuova chiave. Ciò implica che la rimozione di persone dal tuo gruppo di amici implica un overhead di distribuzione proporzionale al numero di amici rimasti. Ciò potrebbe causare problemi di scalabilità.

Non è alquanto chiaro cosa stai cercando di proteggere contro. Operatori server? Motori di ricerca ? I tuoi amici ? Forse l'analisi del traffico (ad esempio la ricostruzione del grafico dell'amicizia)? Questo dovrebbe essere definito con grande precisione. L'appropriatezza di qualsiasi algoritmo di protocollo può essere analizzata solo se sappiamo quale tipo di proprietà di sicurezza vogliamo raggiungere.

Vi esorto ancora a considerare i commenti generici sopra. Possono essere riassunti come: la propagazione dei dati è difficile da controllare. Rende le cose più semplici pensare ai social network come repository di dati pubblici: tutto ciò che scrivi su una rete di questo tipo può diventare pubblico o abbastanza vicino.

    
risposta data 31.10.2013 - 16:48
fonte
3

La sicurezza è efficace tanto quanto la tua fiducia nei tuoi amici per non condividerlo. Sistemi distribuiti come questo sono stati pensati prima, ma l'adozione è una sfida. In realtà si desidera veramente che le informazioni vengano replicate su più server in modo da avere ridondanza e tracciare un grafico di dove si trova.

Un'altra idea alternativa è che puoi dare ad ogni utente una coppia di chiavi pubblica / privata. È quindi possibile associare categoricamente le chiavi dati con qualsiasi elemento di dati per cui si desidera raggruppare le autorizzazioni.

È possibile creare gruppi di amici creando una coppia di chiavi pubblica / privata per quel gruppo e crittografando la chiave privata con la chiave pubblica di ciascun membro del gruppo. Puoi quindi crittografare la chiave dati per qualsiasi informazione tu voglia condividere con la chiave pubblica di un gruppo o di un gruppo di amici a cui vuoi dare l'accesso.

Puoi anche decidere se fidarti del server per gestire la gestione delle chiavi o l'utente finale. Se sei disposto a fidarti del server, puoi proteggere le chiavi in modo che gli utenti non accedano mai alla chiave privata del gruppo o alle chiavi degli elementi di dati, quindi non possono condividerle con altre persone, ciò richiede la fiducia che il server abbia vinto " Tuttavia, si comporta male durante l'esecuzione. (Gli attacchi offline sono ancora protetti poiché il server non ha mai le informazioni necessarie per utilizzare la chiave privata di qualsiasi utente offline.)

Se lo fai localmente d'altra parte, le chiavi private e le chiavi dati diventano disponibili a chiunque abbia accesso e non possono essere revocate senza ricodificare tutto ciò a cui qualcuno ha accesso ogni volta che vuoi rimuovere il loro accesso (che sarebbe essere potenzialmente costosi.) Ricodificherai quindi la nuova chiave dati o la coppia di chiavi di gruppo per tutti quelli che dovrebbero ancora avere accesso.

    
risposta data 31.10.2013 - 17:13
fonte
1

Dai un'occhiata a questo:
link
link

La diaspora utilizza chiavi pubbliche e private per crittografare il contenuto e la comunicazione. È anche decentralizzato.

Non devi reinventare la ruota; P

    
risposta data 01.11.2013 - 10:54
fonte

Leggi altre domande sui tag