Condivisione di dati crittografati

3

Ho un'app Web che memorizza informazioni relative a un'organizzazione che vorrei crittografare ma condividere tra i membri dell'organizzazione. Mi piacerebbe solo che i membri dell'organizzazione fossero in grado di visualizzare questi dati crittografati e non amministratori del server.

Sembra che io voglia una qualche forma di crittografia simmetrica. Ogni membro dovrebbe avere una copia di un segreto master crittografato utilizzando una password fornita dall'utente. I passaggi per accedere ai dati dell'organizzazione saranno, fornire la password utente per ottenere il segreto principale, utilizzare il master secret per sbloccare i dati dell'organizzazione.

Una preoccupazione che ho è l'aggiunta di un nuovo membro all'organizzazione. Non vedo un modo ovvio per consentire al nuovo membro di creare la propria versione del segreto master crittografato. Alcuni come quando il nuovo utente sta creando un nuovo account avranno bisogno del master secret per crittografare ma non sono sicuro di come farlo in modo sicuro.

È anche molto probabile che io pensi a tutto questo nel modo sbagliato, ogni consiglio sarebbe fantastico. Grazie.

    
posta seanbrant 01.04.2013 - 02:28
fonte

2 risposte

6

Normalmente in un'organizzazione un amministratore di sistema è un ragazzo di cui tutti si fida.

It seems like I want some form of symmetric encryption

  1. Il più grande problema con la crittografia simmetrica sarà la condivisione della chiave segreta tra i membri dell'organizzazione.
  2. Un altro problema è anche se la chiave segreta viene condivisa con successo ma memorizzata nel sistema client (la maggior parte delle persone pigre lo farà) quindi l'amministratore può accedere al sistema e accedere alla chiave. La chiave è meglio conservarla su una USB guidare.

Utilizzo di una coppia di chiavi pubblica-privata

  1. L'uso di PKI proteggerà definitivamente i tuoi dati e risolverà il problema della condivisione delle chiavi, ma la tua domanda non menziona il numero di persone che accedono ai dati e la quantità di dati che sei disposto a azione.

  2. Supponiamo di avere 100 utenti, quindi il server che ospita i tuoi dati dovrà tenere traccia della chiave pubblica di ogni singolo utente.

  3. Dato che non ti fidi degli amministratori, suppongo che i dati conservati sul server vengano crittografati in anticipo usando la chiave pubblica di ogni utente (in modo che solo lui / lei possa decrittografarlo). questo significherà che ci saranno 100 diverse istanze dello stesso insieme di dati. A seconda della dimensione dei dati e del numero di utenti questo potrebbe essere un problema di prestazioni.

Suggerirei semplicemente di mantenere un sito Web intranet con autenticazione utente e HTTPS abilitato che non sarà sotto il controllo degli amministratori di sistema (se la politica di sicurezza lo consente). Ma ancora una volta devi prendere il mal di testa della manutenzione e della sicurezza del sistema.

Nota: Normalmente un amministratore di sistema avrà accesso fisico a tutti i sistemi di un'organizzazione ei tuoi dati saranno presenti in testo normale in un posto o nell'altro (sui sistemi client che hanno decrittografato i dati per il loro uso). Quindi ci sono molti se e ma ....

    
risposta data 01.04.2013 - 10:23
fonte
6

Declinazione di responsabilità del modello di minaccia standard: difficile rispondere senza conoscere meglio il contesto del sistema, la sensibilità dei dati, i tipi di aggressori ecc.

Supponendo che l'unico agente di minaccia di cui sei preoccupato sia un amministratore di sistema e i loro diritti di amministratore completi per l'applicazione Web, il sistema operativo e il database, è quasi impossibile mantenere le informazioni archiviate in tale applicazione e nel database completamente al sicuro. Per esempio. anche se lo si cripta a riposo, con accesso al sistema operativo completo accedono ai dati di decrittografia in memoria.

Se hanno solo l'accesso all'amministratore dell'applicazione e forse l'accesso all'amministratore del database e vuoi rendere più difficile l'accesso ai dati in chiaro (regola 80/20), allora una qualche forma di crittografia lato client sarebbe la migliore. È possibile utilizzare la crittografia asimmetrica per archiviarla con i dati crittografati utilizzando più chiavi pubbliche dell'utente. La chiave privata per ciascun utente viene memorizzata solo localmente dall'utente e utilizzata per la decrittografia. Non esiste un backup chiave e se un utente perde la sua chiave privata, il suo accesso viene revocato e viene creato un nuovo account utente.

Questo ha vantaggi sul metodo della chiave simmetrica che hai descritto, perché ogni membro dell'organizzazione non avrebbe bisogno di conoscere la chiave principale e la distribuzione delle chiavi è sicura.

Ad esempio:

Se sei preoccupato solo degli amministratori di database e non degli amministratori delle applicazioni, un approccio più semplice consiste nell'utilizzare qualcosa come la crittografia trasparente dei database, il che significa che se essi accedono direttamente al database non possono visualizzare le informazioni.

    
risposta data 01.04.2013 - 05:10
fonte

Leggi altre domande sui tag