Come posso cancellare in modo sicuro gli elementi in un database?

2

So che per cancellare in modo sicuro i file su un sistema devo applicare una sorta di cancellazione sicura (per esempio, sovrascrivere i cluster vuoti).

Ma quando voglio cancellare alcune informazioni su un database (Oracle o MySQL), è completamente cancellato?

Voglio dire, ho un DB in esecuzione, e non voglio cancellare l'intero database, solo alcuni record, ma voglio essere sicuro che quei record non possano essere ripristinati. La funzione dbms delete è sufficiente?

Ritengo che non esista altra copia delle informazioni (non esiste un backup del database).

Ho letto qualcosa relativo a questo Microsoft Access qui , e dicono che dopo aver cancellato i dati rimane nel db fino a quando non viene usato quello spazio (o il db è "compattato e riparato"). Questo accade anche su Oracle e MySQL?

Grazie in anticipo.

    
posta BrainSCAN 06.03.2015 - 10:28
fonte

1 risposta

2

Ci sono due modi per rispondere a questo. La prima strada segue la tua linea di pensiero, l'altra no.

Anche se è difficile essere sicuri per un database specifico, a causa dello spazio allentato (ad esempio non ridurre il file di dati quando vengono eliminati), journaling e altre funzionalità del database, sospetto che quanto segue sia ragionevolmente sufficiente per un sistema come InnoDB:

  • Esegui un UPDATE sulle righe per sostituire tutti i dati con dati vuoti della stessa lunghezza. Quindi, se hai Polynomial in una cella, la sostituisci con AAAAAAAAAA .
  • Elimina le righe normalmente.
  • Aggiungi un gruppo di nuove righe con blob di grandi dimensioni di dati fittizi.
  • Elimina quelle righe.
  • Elimina il database ed esegui un'operazione di riduzione / compatta / reindicizzazione.

Questo non è garantito per fare il lavoro, perché le implementazioni del database hanno ogni sorta di comportamento strano, ma per la maggior parte dei casi renderà almeno più difficile il recupero dei dati. In effetti, in un ambiente di utilizzo elevato, sospetto che lo spazio vuoto della riga svuotato venga sovrascritto piuttosto velocemente.

Ma ecco la risposta più completa - il tuo modello di minaccia in questo caso sembra essere che qualcuno ha catturato il file del database. Quindi, perché non criptarlo? La crittografia su disco completo è computazionalmente economica (e LUKS è facile da configurare) e impedirebbe a qualcuno di ottenere il file di database da un disco rubato.

    
risposta data 06.03.2015 - 11:28
fonte

Leggi altre domande sui tag