Come archiviare le chiavi per una memoria crittografata nel servizio interno di .NET

0

Nell'azienda per cui lavoro abbiamo un determinato servizio in cui gli utenti possono caricare documenti (testo, talvolta scansioni di documenti), non è niente di confidenziale ma se quei documenti saranno trapelati, mi verrà un sacco di mal di testa che spiega perché tutti sono disponibili pubblicamente. Recentemente abbiamo avuto una breccia nella rete e mentre questa volta nessuno è riuscito a ottenere nulla ha sollevato alcuni problemi di sicurezza.

È un vasto sistema legacy, sostituirlo in questo momento è fuori questione. Esiste all'interno della nostra rete aziendale e gli utenti non possono accedere direttamente a questa archiviazione dati a causa di specifiche policy di sicurezza di AD e di rete. Come la pratica dimostra che queste politiche possono essere ignorate a causa della nostra negligenza IT. Quindi quello che voglio è aggiungere un ulteriore livello di sicurezza crittografando tutto all'interno dello spazio di archiviazione.

Lo spazio di archiviazione funziona come un archivio. Le persone scaricano vecchi documenti e quei documenti sono raramente se mai acceduti. L'inserimento di tutti i file in arrivo in alcuni contenitori crittografati non è un problema facile da implementare. La domanda è: come posso conservare le chiavi per quei contenitori? Se li inserirò nel database del servizio generale, chiunque vorrebbe accedere a tali documenti in maniera non autorizzata sarà in grado di farlo semplicemente accedendo al database (SQL Server, utilizzato da molte app, probabilmente compromesso a causa di servizi legacy mal progettati in azienda).

In teoria, posso memorizzare le chiavi in qualche altro database (server dedicato con una corretta configurazione di SQL Server \ PostgreSQL), disconnesso fisicamente da quello principale e inviare le chiavi da lì solo quando richiesto e impedire i tentativi di scaricare tutte le chiavi, qualsiasi comportamento 'insolito' è molto facile da rilevare perché le persone richiedono raramente qualcosa. E non mi interessa quanto tempo ci vorrà per ripristinare e decifrare quei contenitori, 1ms o 1 ora non fanno alcuna differenza quando si prendono in considerazione i processi di sistema in generale. Tuttavia, questo approccio sembra un po 'complicato.

Esistono alcune "migliori pratiche" per risolvere tali problemi?

    
posta user3223738 16.09.2016 - 13:08
fonte

1 risposta

1

Se stai archiviando i file su NTFS , potrebbero già essere crittografati tramite EFS . Se stai pensando di crittografare i file all'interno del filesystem crittografato, devi chiederti perché?

La crittografia non è una panacea, come hai scoperto. I tuoi file sono già crittografati ma non sei riuscito a proteggere i mezzi per decrittografare correttamente i file. Cosa ti fa pensare che non succederà di nuovo?

Tutto quello che stai facendo è rendere più difficile mantenere buoni processi perché aumenti la loro complessità complessiva raddoppiando la crittografia.

Hai chiesto quale sia la migliore pratica. Eccolo: Metti il file in un luogo sicuro. Custodisci la posizione con solidi processi IT e di amministrazione. È così.

Lo stesso vale per l'archiviazione del database. Cripta il database e proteggi l'accesso tramite pratiche audio DBA.

Se non puoi farlo, non ha senso costruire altro. Non puoi sistemarlo costruendo più schifezze sulla merda.

    
risposta data 16.09.2016 - 22:58
fonte

Leggi altre domande sui tag