Dati Sensibili

I DB possono contenere dati sensibili, cioè dati che non dovrebbero essere resi pubblici. Il fatto d'essere sensibili dipende sia dal DB sia dal significato dei dati stessi. Ad esempio il DB di una biblioteca pubblica non conterrà dati sensibili, mentre i DB del ministero della difesa conterranno dati totalmente sensibili. Questi due casi sono i più facili da trattare, poichè dei controlli d'accesso al DB possono stabilire chi è autorizzato ad accedervi e chi non lo è. Il caso più complicato si presenta quando in uno stesso DB convivono dati sensibili e dati non sensibili, cioè quando coesistono molteplici gradi di sensibilità. La soluzione in questo caso è limitare l'accesso degli utenti in modo che possano ottenere solo i dati di loro pertinenza. Molti fattori possono determinare la sensibilità dei dati. Un dato può essere volutamente dichiarato sensibile dal DBA, oppure può essere sensibile per il valore che esso contiene. A volte la sola esistenza di un dato può rivelare sensibilità; in altri casi un dato può diventare sensibile solo in presenza di altri dati.


Decisioni sulla politica di accesso

Il DBA è la persona che decide quali dati devono essere contenuti nel DB e chi può avere accesso a questi dati. Le decisioni del DBA sono basate su una politica degli accessi. Il DBMS non fa altro che mettere in pratica, attraverso delle informazioni di controllo, la politica degli accessi decisa dal DBA. Il DBMS considera molti fattori quando decide se permettere un accesso, tra questi fattori descriveremo brevemente:

Disponibilità dei dati

Quando un dato č aggiornato, per tutta la durata dell'aggiornamento esso non dovrebbe essere disponibile, per evitare l'inconsistenza di altri dati. Un dato deve poter essere bloccato, cioè non  può essere manipolato in un determinato intervallo temporale, anche se ciò può causare attesa di altri utenti su quel dato, e in caso di qualche errore anche di attese infinite.

Accettabilità degli accessi

Un DBMS, nel decidere su un accesso, non deve rilasciare dati sensibili ad utenti non autorizzati. Ciò non è molto semplice, poiché a volte anche dati non sensibili possono aiutare, se manipolati in un certo modo, a dedurre dati sensibili. Quindi un DBMS deve stare attento a concedere anche gli accessi a dati non sensibili che possono svelare informazioni riservate.

Autenticità degli utenti

Alcune caratteristiche di un utente esterno al DB devono essere considerate per rafforzare la sicurezza. Il DBA, infatti, potrebbe permettere l'accesso al DB solo in determinati periodi di tempo, come ad esempio, durante l'orario di lavoro.


Tipi di rivelazioni di dati

I dati possono essere sensibili, ma spesso sono sensibili anche le caratteristiche di un dato. Ovvero anche informazioni sui dati (come l'esistenza o il fatto che non sia uguale a zero), oltre ai valori veri e propri, possono essere delle forme di rivelazioni.

Dati esatti

La rivelazione più grave è la conoscenza del  valore esatto di un dato sensibile. Alcune volte l'utente sa di richiedere dati sensibili, altre volte può richiedere dati generali senza sapere che alcuni di essi sono sensibili. In altri casi un DBMS difettoso può dare accesso a dati senza che l'utente li abbia richiesti. Il risultato è sempre lo stesso: la sicurezza dei dati è compromessa.

Limiti

Un altro modo per rivelare dati è rendere noti i limiti dei valori tra i quali esso varia. Usando una tecnica di restringimento simile alla ricerca binaria si può determinare un valore desiderato con una buona precisione.

Risultato negativo

Si possono svelare dati anche attraverso query negative, cioč query che chiedono che X non è il valore di Y. In particolare sapere che una valore non è uguale a zero è una rivelazione significativa.

Esistenza

In certi casi, la sola esistenza di un dato rivela la sua sensibilità, a prescindere dal valore del dato stesso. Cioè, già sapere che un dato esiste può rivelare informazioni riservate.

Valore probabile

Infine, può essere possibile determinare la probabilità che un certo elemento ha una determinato valore, sapendo porre determinate query. Se si vuole scoprire, ad esempio, se il presidente di una società è iscritto a un determinato partito, sapendo che i dati del  presidente sono presenti  nel DB, si possono porre le seguenti query:

  1. quante persone abitano in via Rossi n° 45? (risposta: 4)
  2. quante persone che abitano in via Rossi 45 sono iscritte a quel partito? (risposta: 1)
A questo punto c'è una probabilità del 25% che il presidente appartenga a quel partito. Si osservi che in alcune tecniche appena discusse, i dati non sono presi direttamente, ma sono stati dedotti. Una buona strategia di sicurezza deve proteggere da rivelazioni dirette e indirette.


Sicurezza e precisione

Abbiamo visto come sia difficile determinare quali dati siano sensibili e proteggerli. La situazione è complicata dalla coesistenza di dati sensibili e dati non sensibili. Per ragioni di sicurezza si vogliono svelare solo i dati non sensibili. Tale prospettiva incoraggia una filosofia conservativa nel determinare quali dati rivelare. Questa filosofia conservativa dice di vietare qualsiasi query che menziona campi sensibili. In questo modo saranno vietate molte query ragionevolmente sicure. Noi vogliamo. invece, svelare la maggior parte dei dati in modo che gli utenti del DB abbiano accesso a tutti quelli di cui hanno bisogno. Questa meta, chiamata precisione, protegge dati del tutto sensibili mentre rivela la maggior parte dei dati non sensibili. Si può raffigurare la relazione tra sicurezza e precisione con cerchi concentrici. Come la figura 1.1 mostra, i dati sensibili, presenti nel cerchio più interno, dovrebbero essere protetti attentamente. Continuando con gli strati più esterni troviamo i dati non sensibili da cui si possono dedurre i dati sensibili, quelli non sensibili da cui non è possibile ottenere informazioni sensibili, infine, lo strato più esterno contiene i dati che possono essere rivelati senza problemi. La combinazione ideale di sicurezza e precisione permette di mantenere sicurezza perfetta e massima precisione, cioè di svelare tutti e solo i dati non sensibili.  Ciò non è facile da realizzare. Infatti, spesso si deve sacrificare la precisione per mantenere la sicurezza.

Figura 1.1 Sicurezza e Precisione

Sicurezza e Precisione





Pagina Precedente  Torna Inizio Pagina Pagina Successiva DIA - Dipartimento di
Informatica ed Applicazioni
http://www.oracle.com