Metodi per la crittografia dei dati utente sul server, Autenticazione con certificato TLS client

1

Sto usando i certificati TLS del client utente (dalle smartcard) per autenticare su un programma web. Gli utenti memorizzano i dati sul server e vorrei criptare i dati memorizzati per proteggere le informazioni se il database è compromesso. Mi piacerebbe non archiviare i dati in testo semplice.

Quali sono i metodi consigliati per crittografare o proteggere i dati a riposo? Non credo di poter utilizzare la chiave privata della smartcard per decrittografare i dati poiché sono bloccati sul lato client e inaccessibili al server. L'unico metodo di autenticazione degli utenti è la smart card, quindi non posso usare una normale 'password utente' come chiave di crittografia. Sto usando Go come server web, ma una soluzione in qualsiasi lingua è buona.

UPDATE: il tipo di compromesso che sto pensando è un utente malintenzionato che ottiene un dump completo del database. Vorrei crittografare i dati in un database Redis a livello del "valore" della memoria chiave / valore. Un esempio potrebbe essere la crittografia di alcuni dati sensibili utilizzando la password dell'utente (se stavo usando le password) in modo che solo la password fornita dall'utente decodificherà correttamente i dati.

Non sto cercando un sistema operativo o una crittografia ampia come il database è ospitato da una terza parte. L'utente accede all'app Web tramite HTTPS e il programma dell'app Web comunica con il database. So che IE ha il plug-in S / MIME che consente l'uso della smart card del client per decrittografare la posta elettronica in Outlook online, ma che è fondamentalmente un programma lato client.

Qualche suggerimento?

Le piattaforme degli utenti mirate sono Windows, OS X, Linux

I browser degli utenti scelti come target sono IE, Chrome

    
posta AnsonL 28.10.2017 - 00:39
fonte

1 risposta

2

Un modo semplice è abilitare BitLocker, FileVault ed equivalenti in Linux. Se qualcuno ruba la tua macchina o il tuo disco, i dati vengono crittografati. È fatto a livello di sistema operativo, quindi non è necessario apportare modifiche alle tue applicazioni.

Questo è molto efficace, esp. con database legacy, archivi di file e applicazioni.

Se si è preoccupati che DB venga compromesso in remoto su un computer già sbloccato e in esecuzione, lo stesso può accadere con l'applicazione. Quindi dovrai mettere in pericolo il modello e capire perché l'attaccante che può compromettere il tuo DB non può compromettere la tua applicazione e usarla per ottenere i dati nel modulo decrittografato.

    
risposta data 28.10.2017 - 06:29
fonte

Leggi altre domande sui tag