27.06.2014 Views

Informatica Medica Prof. Mauro Giacomini A.A. 2013-2014

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!