DDBMS - Sicurezza del database e crittografia
In questo capitolo esamineremo le minacce che un sistema di database deve affrontare e le misure di controllo. Studieremo anche la crittografia come strumento di sicurezza.
Protezione del database e minacce
La sicurezza dei dati è un aspetto fondamentale di qualsiasi sistema di database. È di particolare importanza nei sistemi distribuiti a causa del gran numero di utenti, dati frammentati e replicati, più siti e controllo distribuito.
Minacce in un database
Availability loss - La perdita di disponibilità si riferisce alla non disponibilità di oggetti di database da parte di utenti legittimi.
Integrity loss- La perdita di integrità si verifica quando operazioni inaccettabili vengono eseguite sul database accidentalmente o in modo doloso. Ciò può accadere durante la creazione, l'inserimento, l'aggiornamento o l'eliminazione dei dati. Risulta in dati danneggiati che portano a decisioni errate.
Confidentiality loss- La perdita di riservatezza si verifica a causa della divulgazione non autorizzata o non intenzionale di informazioni riservate. Può provocare azioni illegali, minacce alla sicurezza e perdita della fiducia del pubblico.
Misure di controllo
Le misure di controllo possono essere sostanzialmente suddivise nelle seguenti categorie:
Access Control- Il controllo degli accessi include meccanismi di sicurezza in un sistema di gestione del database per proteggere dall'accesso non autorizzato. Un utente può accedere al database dopo aver cancellato il processo di accesso solo tramite account utente validi. Ogni account utente è protetto da password.
Flow Control- I sistemi distribuiti comprendono molti flussi di dati da un sito all'altro e anche all'interno di un sito. Il controllo del flusso impedisce il trasferimento dei dati in modo tale che possano essere acceduti da agenti non autorizzati. Una politica di flusso elenca i canali attraverso i quali le informazioni possono fluire. Definisce inoltre le classi di sicurezza per i dati e le transazioni.
Data Encryption- La crittografia dei dati si riferisce alla codifica dei dati quando i dati sensibili devono essere comunicati su canali pubblici. Anche se un agente non autorizzato ottiene l'accesso ai dati, non può comprenderli poiché sono in un formato incomprensibile.
Cos'è la crittografia?
Cryptography è la scienza della codifica delle informazioni prima dell'invio tramite percorsi di comunicazione inaffidabili in modo che solo un destinatario autorizzato possa decodificarle e utilizzarle.
Il messaggio in codice viene chiamato cipher text e viene chiamato il messaggio originale plain text. Il processo di conversione del testo normale in testo cifrato da parte del mittente è chiamato codifica oencryption. Il processo di conversione del testo cifrato in testo normale da parte del destinatario è chiamato decodifica odecryption.
L'intera procedura di comunicazione tramite crittografia può essere illustrata attraverso il diagramma seguente:
Metodi di crittografia convenzionali
Nella crittografia convenzionale, la crittografia e la decrittografia vengono eseguite utilizzando la stessa chiave segreta. Qui, il mittente crittografa il messaggio con un algoritmo di crittografia utilizzando una copia della chiave segreta. Il messaggio crittografato viene quindi inviato tramite canali di comunicazione pubblici. Alla ricezione del messaggio crittografato, il destinatario lo decrittografa con un algoritmo di decrittografia corrispondente utilizzando la stessa chiave segreta.
La sicurezza nella crittografia convenzionale dipende da due fattori:
Un algoritmo sonoro noto a tutti.
Una chiave segreta generata in modo casuale, preferibilmente lunga, conosciuta solo dal mittente e dal destinatario.
L'algoritmo di crittografia convenzionale più famoso è Data Encryption Standard o DES.
Il vantaggio di questo metodo è la sua facile applicabilità. Tuttavia, il problema più grande della crittografia convenzionale è la condivisione della chiave segreta tra le parti in comunicazione. I modi per inviare la chiave sono macchinosi e altamente suscettibili alle intercettazioni.
Crittografia a chiave pubblica
A differenza della crittografia convenzionale, la crittografia a chiave pubblica utilizza due chiavi diverse, denominate chiave pubblica e chiave privata. Ogni utente genera la coppia di chiave pubblica e chiave privata. L'utente quindi mette la chiave pubblica in un luogo accessibile. Quando un mittente desidera inviare un messaggio, lo crittografa utilizzando la chiave pubblica del destinatario. Alla ricezione del messaggio crittografato, il destinatario lo decrittografa utilizzando la sua chiave privata. Poiché la chiave privata non è nota a nessuno tranne che al destinatario, nessun'altra persona che riceve il messaggio può decrittarla.
Gli algoritmi di crittografia a chiave pubblica più popolari sono RSA algoritmo e Diffie– Hellmanalgoritmo. Questo metodo è molto sicuro per inviare messaggi privati. Tuttavia, il problema è che comporta molti calcoli e quindi si rivela inefficiente per messaggi lunghi.
La soluzione è utilizzare una combinazione di crittografia a chiave convenzionale e pubblica. La chiave segreta viene crittografata utilizzando la crittografia a chiave pubblica prima della condivisione tra le parti in comunicazione. Quindi, il messaggio viene inviato utilizzando la crittografia convenzionale con l'aiuto della chiave segreta condivisa.
Firme digitali
Una firma digitale (DS) è una tecnica di autenticazione basata sulla crittografia a chiave pubblica utilizzata nelle applicazioni di e-commerce. Associa un segno unico a un individuo nel corpo del suo messaggio. Ciò aiuta gli altri ad autenticare mittenti di messaggi validi.
In genere, la firma digitale di un utente varia da messaggio a messaggio per fornire protezione contro la contraffazione. Il metodo è il seguente:
Il mittente prende un messaggio, calcola il digest del messaggio del messaggio e lo firma con una chiave privata.
Il mittente aggiunge quindi il digest firmato insieme al messaggio di testo normale.
Il messaggio viene inviato tramite il canale di comunicazione.
Il destinatario rimuove il digest firmato aggiunto e verifica il digest utilizzando la chiave pubblica corrispondente.
Il destinatario quindi prende il messaggio di testo normale e lo esegue attraverso lo stesso algoritmo di digest del messaggio.
Se i risultati del passaggio 4 e del passaggio 5 corrispondono, il destinatario sa che il messaggio è integro e autentico.