Informatica Medica Prof. Mauro Giacomini A.A. 2013-2014
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Informatica</strong> <strong>Medica</strong><br />
<strong>Prof</strong>. <strong>Mauro</strong> <strong>Giacomini</strong><br />
A.A. <strong>2013</strong>-<strong>2014</strong>
Introduzione<br />
• Protezione dei dati: cuore di molti sistemi sicuri<br />
• Contengono dati vitali per aziende e pubbliche<br />
amministrazioni<br />
• Risorse aziendali preziose da proteggere<br />
• Vari livelli di protezione offerti dai vari DBMS<br />
• Qualche problema ancora aperto
Requisiti di protezione<br />
• Integrità fisica del database<br />
• Integrità logica del database<br />
• Integrità dell’elemento<br />
• Verificabilità<br />
• Controllo degli accessi<br />
• Autenticazione dell’utente<br />
• Disponibilità
Integrità<br />
• Aggiornamenti eseguiti da utenti autorizzati e con<br />
strumenti appropriati<br />
• Protezione dal danneggiamento (sia da azioni<br />
illegali, sia da cause di forza maggiore)<br />
• Due problemi: cancellazione dell’intero DB<br />
(danneggiamento del supporto), singoli dati<br />
illeggibili<br />
• Responsabilità del gestore, del sistema operativo e<br />
del sistema informatico<br />
• Prime soluzioni: backup periodici, registro delle<br />
transazioni
Integrità dell’elemento<br />
• I DBMS devono essere pensati per intercettare e<br />
correggere errori di inserimento<br />
• Metodi:<br />
• Controlli di campo, verifica di valori appropriati<br />
(controlli di tipo)<br />
• Controllo degli accessi e della condivisione (riduzione<br />
della ridondanza)<br />
• Registro delle modifiche
Verificabilità<br />
• Record di verifica di tutti gli accessi in lettura e<br />
scrittura a un DBMS<br />
• Registro delle modifiche<br />
• Accesso in modo incrementale ai dati protetti<br />
• Registro di controlli a livello di record / campo /<br />
elemento<br />
• Accessi a record per sola lettura
Controllo degli accessi<br />
• L’amministratore del DB specifica a chi sono dati i<br />
diritti di fare che cosa<br />
• Il DBMS deve imporre questo criterio, garantendo<br />
l’accesso ai dati autorizzati e negando quello ai dati<br />
non autorizzati<br />
• Numero elevato di modalità di accesso<br />
• Complessità degli accessi dovuta alla correlazione dei<br />
record (inferenza)<br />
• Anche qui la granularità dà i suoi problemi
Autenticazione utente<br />
• Autenticazione utente rigorosa<br />
• Secondo livello di autenticazione oltre a quello del<br />
sistema operativo<br />
• DBMS è obbligato a gestire un proprio sistema di<br />
autenticazione
Disponibilità<br />
• DBMS usa altre risorse HW e SW<br />
• Indicazione della indisponibilità di alcune risorse<br />
• Arbitraggio nell’accesso a risorse condivise<br />
• Controllo per impedire l’inferenza
Aggiornamento in due fasi<br />
• Tecnica<br />
• I fase “dell’intento”: preparazione di tutto ciò che serve<br />
all’aggiornamento senza effettuarlo<br />
• Raccolta dei dati<br />
• Creazione record temporanei<br />
• Apertura file<br />
• Scrittura del flag di commit<br />
• II fase: aggiornamento dei dati nei file definitivi
Ridondanza - coerenza interna<br />
• Informazioni aggiuntive per rilevare le incoerenze<br />
interne dei dati<br />
• Rilevamento degli errori e codici di correzione<br />
• Bit di parità<br />
• Codici di Hamming<br />
• Codici di ridondanza ciclica<br />
• Campi ombra<br />
• Duplicazione di attributi o record interi<br />
• Ripristino<br />
• A seguito della scoperta di un errore si restaura il DB con<br />
gli ultimi dati salvati<br />
• Uso dei dati dei file di controllo
Concorrenza - coerenza<br />
• Accessi multipli devono essere vincolati<br />
• Multiutenza libera in lettura<br />
• Blocco in scrittura: l’intero ciclo interrogazione –<br />
aggiornamento deve essere eseguito come una singola<br />
operazione atomica<br />
• Blocco anche di tutte le operazioni di lettura mentre è<br />
in atto un’operazione di scrittura
Monitor<br />
• Unità del DBMS responsabile dell’integrità strutturale<br />
del DB<br />
• Possibili operazioni del monitor<br />
• Confronto dell’intervallo<br />
• Vincoli di stato: in nessun momento i valori del DB<br />
devono violare questi vincoli<br />
• Vincoli di transazione: condizioni necessarie prima che<br />
sia possibile applicare una modifica al DB
Dati sensibili<br />
• Def: quei dati che non dovrebbero essere resi<br />
pubblici (legge 196/2003)<br />
• Casi semplici:<br />
• Nessun dato sensibile<br />
• Tutti i dati sensibili<br />
• Caso complesso:<br />
• parte dati liberi, parte dati sensibili<br />
• diversi livelli di sensibilità<br />
• In alcuni casi anche la presenza di un certo dato o<br />
meno rende il sistema sensibile, a prescindere dal<br />
contenuto
Fattori di sensibilità<br />
• Sensibili in modo innato<br />
• Provenienti da fonte sensibile<br />
• Dichiarati sensibili<br />
• Parte di un attributo o di un record sensibili<br />
• In relazione di altre informazioni divulgate in<br />
precedenza
Fattori per consentire l’accesso<br />
• Disponibilità dei dati<br />
• Uno o più dati richiesti temporaneamente inaccessibili<br />
(aggiornamento esterno)<br />
• Accettabilità dell’accesso<br />
• Blocco di interi record per non rivelare informazioni<br />
anche indirettamente<br />
• Gestione di dati aggregati<br />
• Garanzia di autenticità<br />
• Accessi solo in fasce orarie<br />
• Controllo sulle richieste
Tipi di divulgazione<br />
• Dati esatti<br />
• Da evitarsi sempre (controllare anche gli errori)<br />
• Confini<br />
• Indicazione di un intervallo all’interno del quale si situa<br />
il dato sensibile<br />
• Controllare che ripetute richieste di questo tipo<br />
consentano l’individuazione del dato esatto<br />
• Risultato negativo<br />
• Indicazione che un dato sensibile è diverso da un valore<br />
indicato (ma anche qui ci sono problemi)
Attacchi indiretti<br />
• Cerca di dedurre il risultato finale sulla base di uno o<br />
più risultati statistici intermedi e di informazioni<br />
esterne<br />
• Somma: di solito serve per avere un risultato negativo<br />
• Conteggio: da abbinarsi alla somma<br />
• Mediana: se ci sono delle intersezioni dei dati al centro<br />
dello spazio, si può determinare il nome o altri dati<br />
sensibili
Possibili soluzioni<br />
• Campione casuale: risultati statistici calcolati solo su<br />
un campione<br />
• Perturbazione casuale dei dati: sui dati aggregati non<br />
si rileva questa perturbazione ma impedisce di arrivare<br />
al dato singolo<br />
• Analisi delle query