Come nascondere i dati sensibili dallo sviluppatore dell'applicazione e DBA del database

1

Ho una situazione semplice, siamo nel centro IT e ho bisogno di sviluppare un semplice modulo da 4 campi che contiene un campo salariale, ho bisogno che il programmatore del nostro centro IT non possa conoscere gli stipendi degli altri dipendenti quando controlla il database e l'applicazione che ha creato

    
posta user39814 10.02.2014 - 07:13
fonte

3 risposte

3

Hai diverse opzioni, considera che, a seconda dei regolamenti, ciò che vuoi fare è obbligatorio (es: Spagna).

  1. Questo è semplice come creare un database con informazioni false ma con la stessa struttura.
  2. Modifica i nomi dei dipendenti nel database (e altri ID), falli sviluppare e quindi ripristinali.
  3. Fai in modo che lo sviluppatore e il dba firmi un accordo di non divulgazione e permetti loro di lavorare con il db originale.

Credo che la prima opzione sia la migliore, popolare un database è una cosa facile usando uno script o simili e non è necessario accedere alle informazioni reali. La terza opzione, se hai paura solo dei regolamenti, è la più semplice.

--- Dopo il chiarimento aggiungo:

È possibile utilizzare qualsiasi metodo per memorizzare i dati nel database, credo che il modo più semplice non sia l'uso della crittografia pubblica / privata ma l'utilizzo di una normale password con bcrypt o simile (questo avrà meno complessità e impedirà la gestione chiavi).

Il problema usando una password è che i dati saranno criptati con una sola password e tutti gli utenti dell'applicazione potrebbero doverlo condividere.

Credo che la crittografia delle informazioni all'interno del database non sia una buona soluzione poiché ha molte implicazioni, quello che farei è limitare e loggare l'accesso a quel database e scegliere un dba per il quale io possa fidarmi.

Lo sviluppatore, semplicemente, non ha bisogno di accedere ai dati reali, è possibile creare il proprio database per test e sviluppo.

    
risposta data 10.02.2014 - 07:58
fonte
2

Puoi nascondere queste informazioni allo sviluppatore abbastanza facilmente. Lo sviluppatore funziona solo in un ambiente di sviluppo, che non contiene dati in tempo reale. Quando hanno creato l'app, creano un pacchetto di distribuzione, che una persona separata distribuisce per vivere. Ci sono alcune difficoltà associate a questo - come il debug dei problemi delle applicazioni - ma è possibile.

È molto più difficile nascondere tali informazioni alle persone che operano, come il DBA. L'approccio migliore consiste nel suddividere i dati in qualche modo, in modo tale da crittografarli e archiviare la chiave separatamente. Ciò richiederebbe almeno due persone di colludere per estrarre i dati. In generale, le organizzazioni commerciali non lo fanno con successo e, viste le recenti fughe della NSA, sembra che nemmeno le agenzie governative lo facciano!

    
risposta data 10.02.2014 - 15:22
fonte
1

Avere gli sviluppatori che lavorano senza accesso ai dati sarebbe come lasciarli lavorare con gli occhi bendati e con le mani legate.

Ma ciò non significa che debba essere un dato di produzione.

Ogni serio progetto di sviluppo software dovrebbe avere almeno due copie indipendenti, tecnicamente completamente separate: l'ambiente di test in cui avviene lo sviluppo e l'ambiente di produzione in cui gli utenti reali stanno lavorando. Questa separazione è importante per consentire agli sviluppatori di testare cosa succede quando creano, modificano e cancellano i dati senza aver paura di conseguenze per l'ambiente di produzione. L'ambiente di test dovrebbe avere accesso a un proprio database che è tecnicamente identico al database di produzione, ma che è pieno di dati di test.

I tuoi dati di test potrebbero essere generati casualmente da un programma, oppure potresti usare i dati di produzione e renderli anonimi. Quando si sostituiscono tutti i nomi (e qualsiasi altra informazione che può essere usata per identificare una persona) ma si lasciano tutti gli altri dati così come sono, si hanno dati funzionalmente identici alla produzione ma che non violano la privacy di nessuno.

    
risposta data 10.02.2014 - 17:08
fonte

Leggi altre domande sui tag