DDBMS - Sicurezza nei database distribuiti
Un sistema distribuito necessita di misure di sicurezza aggiuntive rispetto al sistema centralizzato, poiché ci sono molti utenti, dati diversificati, più siti e controllo distribuito. In questo capitolo esamineremo i vari aspetti della sicurezza del database distribuito.
Nei sistemi di comunicazione distribuita, ci sono due tipi di intrusi:
Passive eavesdroppers - Monitorano i messaggi e acquisiscono informazioni private.
Active attackers - Non solo monitorano i messaggi, ma danneggiano anche i dati inserendo nuovi dati o modificando i dati esistenti.
Le misure di sicurezza comprendono la sicurezza nelle comunicazioni, la sicurezza nei dati e il controllo dei dati.
Sicurezza delle comunicazioni
In un database distribuito, avviene una grande quantità di comunicazione di dati a causa della posizione diversificata di dati, utenti e transazioni. Quindi, richiede una comunicazione sicura tra utenti e database e tra i diversi ambienti di database.
La sicurezza nella comunicazione comprende quanto segue:
I dati non dovrebbero essere danneggiati durante il trasferimento.
Il canale di comunicazione dovrebbe essere protetto sia dagli intercettatori passivi che dagli aggressori attivi.
Al fine di soddisfare i requisiti sopra indicati, è necessario adottare algoritmi e protocolli di sicurezza ben definiti.
Due tecnologie popolari e coerenti per ottenere comunicazioni sicure end-to-end sono:
- Secure Socket Layer Protocol o Transport Layer Security Protocol.
- Reti private virtuali (VPN).
La sicurezza dei dati
Nei sistemi distribuiti, è imperativo adottare misure per proteggere i dati oltre alle comunicazioni. Le misure di sicurezza dei dati sono:
Authentication and authorization- Queste sono le misure di controllo degli accessi adottate per garantire che solo gli utenti autentici possano utilizzare il database. Per fornire l'autenticazione vengono utilizzati certificati digitali. Inoltre, l'accesso è limitato tramite la combinazione nome utente / password.
Data encryption - I due approcci per la crittografia dei dati nei sistemi distribuiti sono:
Approccio al database da interno a distribuito: le applicazioni utente crittografano i dati e quindi memorizzano i dati crittografati nel database. Per utilizzare i dati archiviati, le applicazioni recuperano i dati crittografati dal database e quindi li decrittano.
Esterno al database distribuito: il sistema di database distribuito ha le proprie capacità di crittografia. Le applicazioni utente memorizzano i dati e li recuperano senza rendersi conto che i dati sono archiviati in forma crittografata nel database.
Validated input- In questa misura di sicurezza, l'applicazione utente verifica ogni input prima che possa essere utilizzato per l'aggiornamento del database. Un input non convalidato può causare un'ampia gamma di exploit come il sovraccarico del buffer, l'iniezione di comandi, lo scripting intersito e il danneggiamento dei dati.
Controllo dei dati
Un sistema di sicurezza del database deve rilevare e monitorare le violazioni della sicurezza, al fine di accertare le misure di sicurezza che dovrebbe adottare. Spesso è molto difficile rilevare una violazione della sicurezza nel momento in cui si verificano. Un metodo per identificare le violazioni della sicurezza consiste nell'esaminare i log di controllo. I registri di controllo contengono informazioni come:
- Data, ora e luogo dei tentativi di accesso non riusciti.
- Dettagli dei tentativi di accesso riusciti.
- Modifiche vitali nel sistema di database.
- Accesso a enormi quantità di dati, in particolare da database in più siti.
Tutte le informazioni di cui sopra forniscono una panoramica delle attività nel database. Un'analisi periodica del registro aiuta a identificare qualsiasi attività innaturale insieme al suo sito e al momento in cui si è verificata. Questo registro è idealmente archiviato in un server separato in modo che sia inaccessibile agli aggressori.