La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Sicurezza dei sistemi informatici Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione Seconda lezione.

Presentazioni simili


Presentazione sul tema: "Sicurezza dei sistemi informatici Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione Seconda lezione."— Transcript della presentazione:

1 Sicurezza dei sistemi informatici Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione Seconda lezione 27/4/2007

2 Contenuto della lezione Politiche per lintegrità Politiche per lintegrità Politiche ibride Politiche ibride Autenticazione Autenticazione

3 Politiche per lintegrità Requisiti di Lipner Requisiti di Lipner Modelli di Biba Modelli di Biba Matrice di Lipner Matrice di Lipner Cenni al modello di Clark-Wilson Cenni al modello di Clark-Wilson

4 I requisiti di integrità di Lipner 1. Gli utenti non devono scrivere programmi ma usare solo programmi e database di produzione 2. I programmatori sviluppano e testano di programmi non sui sistemi di produzione, se hanno bisogno di usare dati veri, riceveranno dati di produzione filtrati attraverso un processo speciale e useranno solo quelli 3. Un processo speciale deve essere eseguito per installare un programma dal sistema di sviluppo a quello di produzione. 4. Il processo speciale del requisito 3 deve essere controllato e sottoposto ad audit. 5. Gli amministratori devono accedere allo stato del sistema e ai log generati

5 Modelli per lintegrità I requisiti suggeriscono i seguenti principi I requisiti suggeriscono i seguenti principi Separazione dei compiti. Se due o più passi sono richiesti per compiere una funzione critica, devono essere impiegati almeno due soggetti differenti. Muovere unapplicazione dal sistema di sviluppo a quello della produzione è un esempio di funzione critica. Separazione dei compiti. Se due o più passi sono richiesti per compiere una funzione critica, devono essere impiegati almeno due soggetti differenti. Muovere unapplicazione dal sistema di sviluppo a quello della produzione è un esempio di funzione critica. Separazione delle funzioni. Funzioni differenti devono usare dati differenti. Per esempio, gli sviluppatori non devono sviluppare nuovi programmi nellambiente di produzione e non possono processare dati di produzione nellambiente di sviluppo. Si può dar loro dati sanitized. Separazione delle funzioni. Funzioni differenti devono usare dati differenti. Per esempio, gli sviluppatori non devono sviluppare nuovi programmi nellambiente di produzione e non possono processare dati di produzione nellambiente di sviluppo. Si può dar loro dati sanitized. Auditing. E il processo di analisi del sistema per determinare quali azioni sono state compiute e da chi Auditing. E il processo di analisi del sistema per determinare quali azioni sono state compiute e da chi

6 Modelli per lintegrità Modello di Biba Modello di Biba insieme di soggetti S insieme di soggetti S insieme di oggetti O insieme di oggetti O insieme di livelli di integrità I insieme di livelli di integrità I relazione di ordine <= su I relazione di ordine <= su I i(s) rappresenta il livello di integrità di s, per un programma indica quanto è corretta la sua esecuzione i(s) rappresenta il livello di integrità di s, per un programma indica quanto è corretta la sua esecuzione i(o) rappresenta il livello di integrità di o, indica quanto è affidabile il contenuto i(o) rappresenta il livello di integrità di o, indica quanto è affidabile il contenuto

7 Modello Low-Water-Mark di Biba s può scrivere o se e solo se i(o)<=i(s): un soggetto non può scrivere qualcosa di più affidabile s può scrivere o se e solo se i(o)<=i(s): un soggetto non può scrivere qualcosa di più affidabile se s legge o, allora i(s) diventa pari a min{i(s),i(o)}: lintegrità del soggetto si può contaminare se s legge o, allora i(s) diventa pari a min{i(s),i(o)}: lintegrità del soggetto si può contaminare s può eseguire s se e solo se i(s)<=i(s): non si può eseguire qualcosa di più affidabile s può eseguire s se e solo se i(s)<=i(s): non si può eseguire qualcosa di più affidabile

8 Modello di Biba di integrità stretta s può leggere o se e solo se i(s)<=i(o) s può leggere o se e solo se i(s)<=i(o) s può scrivere o se e solo se i(o)<=i(s) s può scrivere o se e solo se i(o)<=i(s) s può eseguire s se e solo se i(s)<=i(s) s può eseguire s se e solo se i(s)<=i(s) E il duale di Bell-La Padula E il duale di Bell-La Padula Vale il seguente teorema: in un trasferimento di informazioni o 0 s 1 o 1 s 2 o s n o n lintegrità delloggetto finale è minore o uguale di quello di partenza Vale il seguente teorema: in un trasferimento di informazioni o 0 s 1 o 1 s 2 o s n o n lintegrità delloggetto finale è minore o uguale di quello di partenza

9 LOCUS e Biba Scopo: prevenire che un programma non fidati alteri dati o altri programmi Scopo: prevenire che un programma non fidati alteri dati o altri programmi Approccio: usare livelli di fiducia Approccio: usare livelli di fiducia un livello di credibilità basato sulla stima di affidabilità del programma (0 non fidato, n altamente fidato) un livello di credibilità basato sulla stima di affidabilità del programma (0 non fidato, n altamente fidato) I trusted file systems contengono programmi con un solo livello di credibilità I trusted file systems contengono programmi con un solo livello di credibilità Un programma può essere eseguito solo se ha credibilità maggiore del processo che lo lancia Un programma può essere eseguito solo se ha credibilità maggiore del processo che lo lancia Si deve usare il comando run-untrusted per eseguire un programma con minor livello di credibilità Si deve usare il comando run-untrusted per eseguire un programma con minor livello di credibilità

10 Matrice di integrità di Lipner Lipner è riuscito a coniugare Bell-La Padula (confidenzialità) e Biba (integrità) Lipner è riuscito a coniugare Bell-La Padula (confidenzialità) e Biba (integrità) Un soggetto s può leggere un oggetto o se Un soggetto s può leggere un oggetto o se s ha un livello di sicurezza maggiore o uguale a quello di o s ha un livello di sicurezza maggiore o uguale a quello di o o ha un livello di integrità maggiore o uguale a quello di s o ha un livello di integrità maggiore o uguale a quello di s In modo inverso per la scrittura In modo inverso per la scrittura

11 Livelli/categorie di integrità Tre livelli di integrità: Tre livelli di integrità: ISP(System Program): per programmi di sistema ISP(System Program): per programmi di sistema IO (Operazioneal): programmi di produzione, tool di sviluppo IO (Operazioneal): programmi di produzione, tool di sviluppo ISL (System Low): per tutti gli utenti ISL (System Low): per tutti gli utenti Due categorie di integrità Due categorie di integrità ID (Development): entità in sviluppo ID (Development): entità in sviluppo IP (Produczione): entità di produzione IP (Produczione): entità di produzione

12 Livelli/categorie di sicurezza Due Livelli di sicurezza Due Livelli di sicurezza AM (Audit Manager): system audit, funzioni di amministrazione AM (Audit Manager): system audit, funzioni di amministrazione SL (System Low): ogni processo può leggere tali dati SL (System Low): ogni processo può leggere tali dati Tre Categorie di sicurezza Tre Categorie di sicurezza SP (Production): codice e dati di produzione SP (Production): codice e dati di produzione SD (Development): programmi per la produzione in sviluppo ma non in uso SD (Development): programmi per la produzione in sviluppo ma non in uso SSD (System Development): programmi di sistema in sviluppo ma non in uso SSD (System Development): programmi di sistema in sviluppo ma non in uso

13 Livelli di sicurezza degli utenti Soggetti Livelli di sicurezza Livelli di integrità Ordinary users (SL, { SP }) (ISL, { IP }) Applicaction developers (SL, { SD }) (ISL, { ID }) System programmers (SL, { SSD }) (ISL, { ID }) System managers and auditors (AM, { SP, SD, SSD }) (ISL, { IP, ID}) System controllers (SL, { SP, SD }) and downgrade privilege (ISP, { IP, ID}) Repair (SL, { SP }) (ISL, { IP })

14 Livello di sicurezza degli oggetti Oggetti Livelli di sicurezza Livelli di integrità Development code/test data (SL, { SD }) (ISL, { IP} ) Production code (SL, { SP }) (IO, { IP }) Production data (SL, { SP }) (ISL, { IP }) Software tools (SL, ) (IO, { ID }) System programs (SL, ) (ISP, { IP, ID }) System programs in modification (SL, { SSD }) (ISL, { ID }) System and application logs (AM, { appropriate }) (ISL, ) Repair (SL, {SP}) (ISL, { IP })

15 Utenti ordinari Un utente ordinario ha i livelli: sicurezza (SL, { SP }) integrità (ISL, { IP }) Quindi può svolgere le seguenti operazioni Leggere e scrivere dati di produzione :stessi livelli di sicurezza e integrità Leggere codice di produzione: stessa classificazione e (IO, {IP}) dom (ISL, {IP}) System program (SL, {SP}) dom (SL, {}) & (ISP, {IP,ID}) dom {ISL, {IP}) Repair oggetti (stessi livelli) Scrivere (ma non leggere) i log di sistema e di applicazione (AM, {SP}) dom (SL, {SP}) & (ISL, {IP}) dom {ISL, {})

16 I cinque requisiti E facile verificare che i cinque requisiti di Lipner sono soddisfatti E facile verificare che i cinque requisiti di Lipner sono soddisfatti Ad esempio un utente non può scrivere un programma perchè creerebbe un oggetto con un livello di integrità maggiore del proprio Ad esempio un utente non può scrivere un programma perchè creerebbe un oggetto con un livello di integrità maggiore del proprio

17 Modello di Integrità di Clark-Wilson Adatto allintegrità dei database Adatto allintegrità dei database Lintegrità definita mediante vincoli che i dati devono rispettare Lintegrità definita mediante vincoli che i dati devono rispettare Esempio: in una banca Esempio: in una banca D depositi odierni, W prelievi odierni, YB bilancio di ieri, TB bilancio di oggi D depositi odierni, W prelievi odierni, YB bilancio di ieri, TB bilancio di oggi Vincolo di integrità: D + YB –W=TB Vincolo di integrità: D + YB –W=TB Le transazioni ben formate portano uno stato consistente ad uno stato consistente Le transazioni ben formate portano uno stato consistente ad uno stato consistente Chi certifica che i vincoli siano sempre rispettati ? Chi certifica che i vincoli siano sempre rispettati ?

18 Entità CDI: entità/dati soggetti a vincoli di integrità CDI: entità/dati soggetti a vincoli di integrità UDI: entità/dati non soggetti a vincoli di integrità UDI: entità/dati non soggetti a vincoli di integrità IVP: procedure che controllano i vincoli di integrità IVP: procedure che controllano i vincoli di integrità TP: procedure di trasformazione, che portano il sistema da uno stato valido ad un altro stato valido TP: procedure di trasformazione, che portano il sistema da uno stato valido ad un altro stato valido

19 Regole di certificazione CR1Se un IVP è eseguito, deve assicurarsi che tutti i CDI siano in uno stato valido CR2Una TP deve trasformare un insieme di CDI da uno stato valido ad uno stato valido CR2 definisce come certificata una relazione che associa un insieme di CDI ad una TP CR2 definisce come certificata una relazione che associa un insieme di CDI ad una TP CR2 implica che una TP può corrompere un CDI se non è certificata per lavorare con quel CDI CR2 implica che una TP può corrompere un CDI se non è certificata per lavorare con quel CDI TP balance, CDI conti correnti. Sia C una relazione certificata, allora TP balance, CDI conti correnti. Sia C una relazione certificata, allora (balance, account 1 ), (balance, account 2 ),…., (balance, account n ) C

20 Regole di rinforzo CR2 implica che una TP può corrompere un CDI se non è certificato a lavorarvi CR2 implica che una TP può corrompere un CDI se non è certificato a lavorarvi Esempio: La TP che investe denaro nel portafoglio azionario della banca corromperebbe i bilanci anche se la TP fosse certificata a lavorare sul portafoglio, perchè le azioni della TP potrebbero non avere senso sui conti bancari Esempio: La TP che investe denaro nel portafoglio azionario della banca corromperebbe i bilanci anche se la TP fosse certificata a lavorare sul portafoglio, perchè le azioni della TP potrebbero non avere senso sui conti bancari Da ciò nasce la prima regola di rinforzo Da ciò nasce la prima regola di rinforzo

21 Regole di rinforzo ER1Il sistema deve garantire che solo le TP certificate ad operare su determinati CDI svolgano operazioni su di essi. ER2Il sistema associare a ciascun TP e insieme di CDI un utente. Il TP può accedere a quei CDI per conto dellutente, ma non può accedere per conto di utenti non autorizzati. Il sistema deve mantenere le relazioni certificate Il sistema deve mantenere le relazioni certificate Il sistema deve restringere laccesso degli utenti alle TP mediante una relazione di permesso A, che specifica quali utenti possono eseguire quali TP su quali CDI Il sistema deve restringere laccesso degli utenti alle TP mediante una relazione di permesso A, che specifica quali utenti possono eseguire quali TP su quali CDI

22 Utenti e regole CR3Le relazioni di permesso devono essere basate sulla separazione dei compiti. ER3Il sistema deve autenticare ogni utente che vuole utilizzare una TP

23 Uso dei Log CR4Tutte le TP devono scrivere in CDI di solo accodamento (append) tutte le informazioni sufficienti a ricostruire le operazioni svolte. Questo CDI è il log Questo CDI è il log Gli amministratori devono essere in grado di capire cosa ha fatto una determinata transazione Gli amministratori devono essere in grado di capire cosa ha fatto una determinata transazione

24 Trattamento di Input non fidato CR5Ogni TP che prende in input un UDI può eseguire solo transformazioni valide, oppure nessuna transformazione, per ogni possibile valore dellUDI. La trasformazione può quindi rifiutare il UDI o trasformarlo in un CDI. In una banca, i numeri inseriti da tastiera sono UDI, che non possono essere dati in input ad una TP. Unapposita TP deve validare tali numeri (rendendoli un CDI) prima di usarli; se la validazione fallisce, la TP rigetta il UDI In una banca, i numeri inseriti da tastiera sono UDI, che non possono essere dati in input ad una TP. Unapposita TP deve validare tali numeri (rendendoli un CDI) prima di usarli; se la validazione fallisce, la TP rigetta il UDI

25 Separazione dei compiti ER4Solo il certificatore di un TP può cambiare la lista di entità associate al TP. Nessun certificatore di un TP, o di un entità associata al TP, potranno mai farlo.

26 I cinque requisiti Anche in questo caso è relativamente semplice far vedere che i cinque requisiti di Lipner sono soddisfatti

27 Politiche ibride Molte organizzazioni hanno bisogno di politiche di rinforzo sia per la confidenzialità, che per lintegrità Molte organizzazioni hanno bisogno di politiche di rinforzo sia per la confidenzialità, che per lintegrità Modello della Chinese Wall Modello della Chinese Wall Cenni al modello della Clinical Information Systems Cenni al modello della Clinical Information Systems Modello ORGCON Modello ORGCON Modelli RBAC e TRBAC Modelli RBAC e TRBAC

28 Conflitto di interessi E un concetto ben noto (...) E un concetto ben noto (...) Un esempio nel mondo finanziario è quello di un analista che lavora come consulente presso lazienda X Un esempio nel mondo finanziario è quello di un analista che lavora come consulente presso lazienda X Tale analista deve tenere fede ai requisiti di confidentialità delle informazioni che lazienda X pone su di lui: non può usare tali informazioni con unazienda rivale di X Tale analista deve tenere fede ai requisiti di confidentialità delle informazioni che lazienda X pone su di lui: non può usare tali informazioni con unazienda rivale di X Comunque lanalista è libero di usare tali informazioni con aziende non in competizione con X Comunque lanalista è libero di usare tali informazioni con aziende non in competizione con X

29 Politica della Chinese Wall Si stabiliscono dinamicamente i diritti di accesso di utente in base a quello a cui lutente ha già avuto accesso Si stabiliscono dinamicamente i diritti di accesso di utente in base a quello a cui lutente ha già avuto accesso Introdotto da Brewer and Nash nel 1989 Il motivo per questo lavoro è stato quello di evitare che informazioni sensibili concernenti una compagnia siano passate a compagnie rivali per mezzo di consulenti finanziari

30 Concetti della Chinese Wall Soggetti: Entità attive che accedono a oggetti protetti Soggetti: Entità attive che accedono a oggetti protetti Oggetti: Informazioni legate ad una compagnia Oggetti: Informazioni legate ad una compagnia Dataset: insieme di informazioni di una data compagnia Dataset: insieme di informazioni di una data compagnia Classe di Conflict-of-Interest (CoI): compagnie rivali di una data compagnia Classe di Conflict-of-Interest (CoI): compagnie rivali di una data compagnia

31 Definizioni Indicheremo con CD(O) il dataset a cui appartiene linformazione O Indicheremo con CD(O) il dataset a cui appartiene linformazione O Indicheremo con COI(O) la classe di conflitto di interesse a cui appartiene linformazione O Indicheremo con COI(O) la classe di conflitto di interesse a cui appartiene linformazione O Assumiamo che ciascun oggetto appartenga ad un unico dataset e ad ununica classe COI Assumiamo che ciascun oggetto appartenga ad un unico dataset e ad ununica classe COI

32 Classificazione dei dati Info Bank A Bank B Gas A Oil A Oil B CoI 1 CoI 2 CoI 3 Insieme di tutti gli oggetti

33 Evoluzione dei diritti Se un consulente legge un oggetto appartenente ad un CD in una data COI, non può più leggere oggetti di altri CD in quella COI Se un consulente legge un oggetto appartenente ad un CD in una data COI, non può più leggere oggetti di altri CD in quella COI E possibile che le informazioni apprese prima possano consentirgli di prendere decisioni migliori dopo (ovviamente in modo sleale) E possibile che le informazioni apprese prima possano consentirgli di prendere decisioni migliori dopo (ovviamente in modo sleale) Indichiamo con PR(S) linsieme degli oggetti che S ha già letto Indichiamo con PR(S) linsieme degli oggetti che S ha già letto

34 Condizione di semplice sicurezza delle CW Un soggetto s può leggere un oggetto o se e solo se: Un soggetto s può leggere un oggetto o se e solo se: 1. Esiste un oggetto o a cui s ha avuto accesso e CD(o ) = CD(o), oppure 2. Per ogni o O, o PR(s) COI(o ) COI(o) Ignoriamo per ora i dati sanitized Ignoriamo per ora i dati sanitized Inizialmente, PR(s) =, quindi qualunque cosa può essere letta allinizio Inizialmente, PR(s) =, quindi qualunque cosa può essere letta allinizio

35 In altri termini Un soggetto può leggere un oggetto se: loggetto è in un dataset di cui il soggetto ha già letto qualcosa oppure loggetto è in un dataset di cui il soggetto ha già letto qualcosa oppure loggetto appartiene a una COI di cui il soggetto non ha letto ancora niente loggetto appartiene a una COI di cui il soggetto non ha letto ancora niente Bank A Consultant Bank B Gas A Oil B R R R R X R

36 Regola di lettura Info Bank A Gas A Oil A Info Bank B Info Oil B COI 1 CoI 2 COI 3 Insieme di tutti gli oggetti = John Info Oil A CoI 3 Info Bank A CoI 1

37 Confronto con Bell-LaPadula La politica Chinese Wall è una combinazione di libera scelta e di controllo obbligatorio (mandatory) La politica Chinese Wall è una combinazione di libera scelta e di controllo obbligatorio (mandatory) Inizialmente un soggetto è libero di accedere a ciò che vuole Inizialmente un soggetto è libero di accedere a ciò che vuole Una volta fatta la scelta, per quellutente è creata una attorno al dataset a cui loggetto appartiene Una volta fatta la scelta, per quellutente è creata una Muraglia Cinese attorno al dataset a cui loggetto appartiene Si noti che la Chinese Wall può essere combinata con le politiche DAC Si noti che la Chinese Wall può essere combinata con le politiche DAC

38 Scrittura Anthony e Susan lavorano per la stessa azienda di consulenza Anthony e Susan lavorano per la stessa azienda di consulenza Anthony può leggere i CD di Bank A e di Gas A Anthony può leggere i CD di Bank A e di Gas A Susan può leggere i CD di Bank B e di Gas A Susan può leggere i CD di Bank B e di Gas A Se Anthony potesse scrivere sul CD di Gas A, Susan potrebbe leggerlo Se Anthony potesse scrivere sul CD di Gas A, Susan potrebbe leggerlo Perciò, indirettamente, potrebbe acquisire informazioni su Bank B, un chiaro conflitto di interesse Perciò, indirettamente, potrebbe acquisire informazioni su Bank B, un chiaro conflitto di interesse La regola per la lettura non è in grado di prevenire fughe di notizie La regola per la lettura non è in grado di prevenire fughe di notizie

39 Proprietà * delle CW Un soggetto s può scrivere un oggetto o se e solo se entrambe le condizioni valgono Un soggetto s può scrivere un oggetto o se e solo se entrambe le condizioni valgono 1. La condizione di sicurezza semplice consente a s di leggere o 2. Per ogni oggetto non sanitized o, se s può leggere o, allora CD(o ) = CD(o) In pratica s può scrivere un oggetto se tutti gli oggetti (non sanitized) che può leggere sono nello stesso dataset In pratica s può scrivere un oggetto se tutti gli oggetti (non sanitized) che può leggere sono nello stesso dataset

40 In altri termini Un soggetto può scrivere un oggetto se lo può anche leggere E lo può anche leggere E non può leggere dati di altre compagnie non può leggere dati di altre compagnie Consultant A Consultant B W W R R X Oil B Bank B Bank A X

41 Conclusioni e critiche Perciò secondo questa regola: Perciò secondo questa regola: Il flusso di informazioni è confinato allinterno della compagnia Però un utente che ha letto da più dataset non può scrivere nessuno oggetto Però un utente che ha letto da più dataset non può scrivere nessuno oggetto Inoltre, una volta che ha scritto in un dataset, può scrivere solo lì Inoltre, una volta che ha scritto in un dataset, può scrivere solo lì

42 Regola di scrittura Info Bank A Gas A Oil A COI 1 CoI 2 COI 3 Insieme di tutti gli oggetti = John Info Oil A CoI 3 Info Bank A CoI 1 ABC ABC

43 Regola di scrittura Info Gas A Oil A Info Bank B COI 1 COI 2 COI 3 Insieme di tutti gli oggetti = Jane Info Oil A COI 3 Info Bank B COI 1 ABC ABC

44 Informazioni Sanitized Alcune informazioni pubbliche possono appartenere ad un CD Alcune informazioni pubbliche possono appartenere ad un CD Essendo pubbliche, non generano conflitti di interesse Essendo pubbliche, non generano conflitti di interesse Tipicamente, tutti i dati sensibili sono rimossi prima che tale informazione sia resa pubblica (linformazione è sanitized) Tipicamente, tutti i dati sensibili sono rimossi prima che tale informazione sia resa pubblica (linformazione è sanitized) Una terza opzione per la Condizione di sicurezza semplice è quindi: Una terza opzione per la Condizione di sicurezza semplice è quindi: 3.o è un oggetto sanitized

45 Confronto con Bell-LaPadula Sono fondamentalmente differenti Sono fondamentalmente differenti CW non ha etichette di sicurezza, B-LP sì CW non ha etichette di sicurezza, B-LP sì CW si basa sugli accessi passati, B-LP no CW si basa sugli accessi passati, B-LP no Bell-LaPadula può simulare CW istante per istante Bell-LaPadula può simulare CW istante per istante Ogni coppia di (COI, CD) è una categoria Ogni coppia di (COI, CD) è una categoria Due livelli di sicurezza, S (sanitized) and U (non sanitized) Due livelli di sicurezza, S (sanitized) and U (non sanitized) S dom U S dom U I livelli di sicurezza dei soggetti comprendono al massimo una sola categoria per ogni classe COI I livelli di sicurezza dei soggetti comprendono al massimo una sola categoria per ogni classe COI Ma B-LP non è in grado di modellare i cambiamenti nel tempo Ma B-LP non è in grado di modellare i cambiamenti nel tempo

46 Confronto con Clark-Wilson Il modello di Clark-Wilson si occupa dellintegrità Il modello di Clark-Wilson si occupa dellintegrità Se i soggetti e i processi sono la stessa cosa, una singola persona potrebbe usare più processi e violare la condizione di semplice sicurezza in CW Se i soggetti e i processi sono la stessa cosa, una singola persona potrebbe usare più processi e violare la condizione di semplice sicurezza in CW Ma rispetterebbe il modello di Clark-Wilson Ma rispetterebbe il modello di Clark-Wilson Se il soggetto è una specifica persona che comprende anche tutti i processi eseguiti, allora CW è consistente con Clark-Wilson Model Se il soggetto è una specifica persona che comprende anche tutti i processi eseguiti, allora CW è consistente con Clark-Wilson Model

47 Clinical Informazione Systems Securità Policy Pensato per dati medici Pensato per dati medici Il conflitto di interesse non è un problema critico Il conflitto di interesse non è un problema critico La confidenzialità del paziente, lautenticazione dei dati e di chi li scrive, e lintegrità lo sono La confidenzialità del paziente, lautenticazione dei dati e di chi li scrive, e lintegrità lo sono Entità: Entità: Paziente: soggetto dei dati medici Paziente: soggetto dei dati medici Informazioni mediche del paziente: dati sullo stato di salute del paziente o sulle cure mediche che possono consentire l identificazione del paziente Informazioni mediche del paziente: dati sullo stato di salute del paziente o sulle cure mediche che possono consentire l identificazione del paziente Medici: personale che può entrare in contatto con le informazioni mediche del paziente Medici: personale che può entrare in contatto con le informazioni mediche del paziente

48 Accesso Principio 1: Ciascuna cartella clinica ha una lista di controllo degli accessi che determina gli individui o i gruppi che possono leggere e aggiungere dati alla cartella. Il sistema deve restringere laccesso solo alle persone identificate dalla lista. Principio 1: Ciascuna cartella clinica ha una lista di controllo degli accessi che determina gli individui o i gruppi che possono leggere e aggiungere dati alla cartella. Il sistema deve restringere laccesso solo alle persone identificate dalla lista. Lidea è che solo i medici hanno diritto allaccesso, ma nessun altro. Gli auditor possono avere diritto ad una copia, ma non possono fare modifiche Lidea è che solo i medici hanno diritto allaccesso, ma nessun altro. Gli auditor possono avere diritto ad una copia, ma non possono fare modifiche

49 Accesso Principio 2: Uno dei medici sulla lista dei controlli di accesso ha il diritto di aggiungere persone a tale lista. Principio 2: Uno dei medici sulla lista dei controlli di accesso ha il diritto di aggiungere persone a tale lista. E chiamato il medico responsabile E chiamato il medico responsabile

50 Accesso Principio 3: Il medico responsabile deve notificare al paziente i nomi sulla lista di controllo quando il record è aperto. Tranne in particolari occasioni, o in casi di emergenza, il medico responsabile deve ottenere il consenso del paziente. Principio 3: Il medico responsabile deve notificare al paziente i nomi sulla lista di controllo quando il record è aperto. Tranne in particolari occasioni, o in casi di emergenza, il medico responsabile deve ottenere il consenso del paziente. Principio 4: Il nome del medico, la data e lora di accesso alla cartella clinica deve essere registrato. Principio 4: Il nome del medico, la data e lora di accesso alla cartella clinica deve essere registrato.

51 Creazione Principio: Un medico può aprire una cartella clinica, con il medico e il paziente nella lista di controllo accessi. In caso di un referto medico, anche il medico che ha fatto il referto deve stare nella lista. Principio: Un medico può aprire una cartella clinica, con il medico e il paziente nella lista di controllo accessi. In caso di un referto medico, anche il medico che ha fatto il referto deve stare nella lista.

52 Cancellazione Principio: Le informazioni mediche non possono essere cancellate prima che sia passato un determinato lasso di tempo. Principio: Le informazioni mediche non possono essere cancellate prima che sia passato un determinato lasso di tempo.

53 Confinamento Principio: Le informazioni provenienti da una cartella clinica possono essere aggiunte ad unaltra cartella se e solo se la lista di accesso della seconda cartella è un sottoinsieme della lista della prima. Principio: Le informazioni provenienti da una cartella clinica possono essere aggiunte ad unaltra cartella se e solo se la lista di accesso della seconda cartella è un sottoinsieme della lista della prima. In altri termini chi può accedere alla prima può accedere anche alla seconda In altri termini chi può accedere alla prima può accedere anche alla seconda

54 Aggregazione Principio: Un paziente deve essere messo al corrente se qualcuno è stato aggiunto alla lista di controllo e se questi ha accesso ad un grande numero di cartelle cliniche. Principio: Un paziente deve essere messo al corrente se qualcuno è stato aggiunto alla lista di controllo e se questi ha accesso ad un grande numero di cartelle cliniche. Si evita che un investigatore acceda a molte cartelle, le correli e scopra informazioni private informazione sui singoli individui Si evita che un investigatore acceda a molte cartelle, le correli e scopra informazioni private informazione sui singoli individui

55 Rinforzo Principio: Tutti i sistemi informatici che trattano dati di cartelle cliniche devono avere un sottosistema che garantisca i precedenti principi. Leffettivo funzionamento di tale sistema deve essere controllato da terze persone. Principio: Tutti i sistemi informatici che trattano dati di cartelle cliniche devono avere un sottosistema che garantisca i precedenti principi. Leffettivo funzionamento di tale sistema deve essere controllato da terze persone.

56 Confronto con Bell-LaPadula Il principio di confinamento impone una struttura a reticolo sulle entità del modello Il principio di confinamento impone una struttura a reticolo sulle entità del modello Simile a Bell-LaPadula Simile a Bell-LaPadula CISS si concentra sugli oggetti a cui si accede; B-LP sui soggetti che vi accedono CISS si concentra sugli oggetti a cui si accede; B-LP sui soggetti che vi accedono

57 ORCON Problema: unorganizzazione vuole controllare la diffusione dei propri documenti Problema: unorganizzazione vuole controllare la diffusione dei propri documenti Esempio: Il Ministro delle politiche agricole scrive documento da distribuire per i propri impiegati e concede il permesso unulteriore ridistribuzione. Ciò si indica con il nome di originator controlled (in questo caso, l originator è una persona). Esempio: Il Ministro delle politiche agricole scrive documento da distribuire per i propri impiegati e concede il permesso unulteriore ridistribuzione. Ciò si indica con il nome di originator controlled (in questo caso, l originator è una persona).

58 Requisiti Il soggetto s S marca loggetto o O come ORCON per conto dellorganizzazione X. Il soggetto s S marca loggetto o O come ORCON per conto dellorganizzazione X. X permette che o sia diffuso ai soggetti che lavorano per conto dellorganizzazione Y con le seguenti restrizioni: X permette che o sia diffuso ai soggetti che lavorano per conto dellorganizzazione Y con le seguenti restrizioni: 1. o non può essere rilasciato a soggetti che lavorano per conto di altre organizzazioni senza il permesso di X e 2. Ogni copia di o deve avere le stesse restrizioni.

59 DAC non va bene Il possessore può concedere qualsiasi diritto Il possessore può concedere qualsiasi diritto La proprietà 2 non sarebbe soddisfatta La proprietà 2 non sarebbe soddisfatta

60 MAC non va bene Primo problema: esplosione del numero delle categorie Primo problema: esplosione del numero delle categorie Ogni categoria C contiene o, X, Y. Se un soggetto y Y vuole leggere o ne fa una copia o. Nota che o ha categoria C. Se y vuole dare a z Z una copia, z deve essere in Y ma per definizione non vi è. Se x vuole concedere a w W di vedere il documento, deve creare una nuova categoria C contenente o, X, W. Ogni categoria C contiene o, X, Y. Se un soggetto y Y vuole leggere o ne fa una copia o. Nota che o ha categoria C. Se y vuole dare a z Z una copia, z deve essere in Y ma per definizione non vi è. Se x vuole concedere a w W di vedere il documento, deve creare una nuova categoria C contenente o, X, W. Secondo problema: astrazione Secondo problema: astrazione In MAC la classificazione e le categorie sono controllate centralmente e laccesso è controllato da una politica centralizzata In MAC la classificazione e le categorie sono controllate centralmente e laccesso è controllato da una politica centralizzata ORCON è controllato localmente ORCON è controllato localmente

61 Combinare DAC e MAC Il possessore delloggetto non ne può cambiare i controlli di accesso. Il possessore delloggetto non ne può cambiare i controlli di accesso. Quando loggetto è copiato, le restrizioni di accesso sono copiate dalla sorgente e legate alla copia. Quando loggetto è copiato, le restrizioni di accesso sono copiate dalla sorgente e legate alla copia. Ciò è MAC (il possessore non può controllarlo) Ciò è MAC (il possessore non può controllarlo) Il creatore del documento (originator) può alterare le restrizioni di accesso in base al soggetto e alloggetto. Il creatore del documento (originator) può alterare le restrizioni di accesso in base al soggetto e alloggetto. Ciò è DAC (loriginator può controllarlo) Ciò è DAC (loriginator può controllarlo)

62 RBAC: Motivazioni Un problema importante nellorganizzazione di grandi sistemi è la complessità dellamministrazione della sicurezza Un problema importante nellorganizzazione di grandi sistemi è la complessità dellamministrazione della sicurezza Quando il numero dei soggetti e degli oggetti è alto, il numero di autorizzazioni può diventare molto grande Quando il numero dei soggetti e degli oggetti è alto, il numero di autorizzazioni può diventare molto grande Inoltre, se la popolazione di utenti è molto dinamica, il numero di concessioni e di revoche di permessi diventa eccessivamente elevato Inoltre, se la popolazione di utenti è molto dinamica, il numero di concessioni e di revoche di permessi diventa eccessivamente elevato

63 RBAC: Motivazioni Gli utenti finali spesso non possiedono le informazioni a cui hanno accesso. Le aziende o gli enti sono i reali possessori degli oggetti Gli utenti finali spesso non possiedono le informazioni a cui hanno accesso. Le aziende o gli enti sono i reali possessori degli oggetti Il controllo di accesso è quindi basato sulle mansioni delle persone e non sul semplice possesso Il controllo di accesso è quindi basato sulle mansioni delle persone e non sul semplice possesso RBAC è stato quindi proposto come alternativa al DAC e al MAC per semplificare la gestione degli accessi e per supportare direttamente il controllo basato sulle mansioni (ruoli) RBAC è stato quindi proposto come alternativa al DAC e al MAC per semplificare la gestione degli accessi e per supportare direttamente il controllo basato sulle mansioni (ruoli)

64 RBAC I diritti di accesso dipendono dal ruolo, non dallidentità I diritti di accesso dipendono dal ruolo, non dallidentità Esempio: Esempio: Anna, segreteria del dipartimento, ha accesso ai dati finanziari. Anna, segreteria del dipartimento, ha accesso ai dati finanziari. Anna cambia impiego e non ha più diritti di accesso. Anna cambia impiego e non ha più diritti di accesso. Barbara prende il suo posto e adesso è lei che può accedere a quei dati Barbara prende il suo posto e adesso è lei che può accedere a quei dati E il ruolo che stabilisce i diritti e non lidentità del singolo individuo. E il ruolo che stabilisce i diritti e non lidentità del singolo individuo.

65 RBAC e ruoli I ruoli rappresentano le mansioni allinterno di unorganizzazione I ruoli rappresentano le mansioni allinterno di unorganizzazione Le autorizzazioni sono concesse ai ruoli anzichè ai singoli utenti Le autorizzazioni sono concesse ai ruoli anzichè ai singoli utenti Gli utenti sono perciò autorizzati semplicemente ad assumere ruoli appropriati, acquisendo le autorizzazioni assegnate a quei ruoli Gli utenti sono perciò autorizzati semplicemente ad assumere ruoli appropriati, acquisendo le autorizzazioni assegnate a quei ruoli

66 Vantaggi del RBAC Poichè i ruoli rappresentano le funzioni dellorganizzazione, un modello RBAC può direttamente supportare le politiche di sicurezza proprie dellorganizzazione Poichè i ruoli rappresentano le funzioni dellorganizzazione, un modello RBAC può direttamente supportare le politiche di sicurezza proprie dellorganizzazione Concedere e revocare autorizzazioni alle categorie di utenti è grandemente semplificato Concedere e revocare autorizzazioni alle categorie di utenti è grandemente semplificato I modelli RBAC sono perciò policy-neutral I modelli RBAC sono perciò policy-neutral

67 RBAC I produttori di DBMS hanno visto limportanza e i vantaggi di RBAC, e oggi molti DBMS commerciali supportano in vario modo RBAC I produttori di DBMS hanno visto limportanza e i vantaggi di RBAC, e oggi molti DBMS commerciali supportano in vario modo RBAC Esiste un certo consenso su un modello standard di RBAC Esiste un certo consenso su un modello standard di RBAC Il modello NIST [Sandhu,Ferraiolo,Kuhn 00] è stato il primo passo verso la definizione di uno standard Il modello NIST [Sandhu,Ferraiolo,Kuhn 00] è stato il primo passo verso la definizione di uno standard Una recente definizione è data dall ANSI: Role based access control. ANSI INCITS , February 2004 Una recente definizione è data dall ANSI: Role based access control. ANSI INCITS , February 2004

68 Modello NIST Tre livelli con capacità funzionali crescenti Tre livelli con capacità funzionali crescenti Core RBAC – anche chiamato Flat RBAC Core RBAC – anche chiamato Flat RBAC RBAC gerarchico RBAC gerarchico RBAC vincolato RBAC vincolato

69 RBAC- Concetti di base Utente – un essere umano, una macchina, un processo, o un agente intelligente autonomo, ecc. Utente – un essere umano, una macchina, un processo, o un agente intelligente autonomo, ecc. Ruolo – una funzione nel contesto di unorganizzazione con una semantica associata secondo lautorità e la responsibilità del ruolo Ruolo – una funzione nel contesto di unorganizzazione con una semantica associata secondo lautorità e la responsibilità del ruolo

70 RBAC- Concetti di base Permesso – Modo di accesso che può essere esercitato sugli oggetti nel sistema. Permesso – Modo di accesso che può essere esercitato sugli oggetti nel sistema. Sia gli oggetti e i modi di accesso sono dipendenti dal dominio. Sia gli oggetti e i modi di accesso sono dipendenti dal dominio. Per esempio, nel caso dei database, tra gli oggetti si trovano tabelle, colonne e righe e tra i modi di accesso le operazioni di insert, delete e update. Per esempio, nel caso dei database, tra gli oggetti si trovano tabelle, colonne e righe e tra i modi di accesso le operazioni di insert, delete e update.

71 RBAC- Concetti di base Sessione – E una particolare istanza di una connessione di un utente al sistema e definisce un sottoinsieme di ruoli attivati. Sessione – E una particolare istanza di una connessione di un utente al sistema e definisce un sottoinsieme di ruoli attivati. Ad ogni istante, possono essere attive più sessioni differenti per ciascun utente. Ad ogni istante, possono essere attive più sessioni differenti per ciascun utente. Quando un utente entra nel sistema, stablisce una sessione e durante tale sessione può attivare un sottoinsieme dei ruoli che è autorizzato ad assumere. Quando un utente entra nel sistema, stablisce una sessione e durante tale sessione può attivare un sottoinsieme dei ruoli che è autorizzato ad assumere. Lutente ottiene i permessi associati al ruolo che ha attivato nella sessione. Lutente ottiene i permessi associati al ruolo che ha attivato nella sessione.

72 Role-Based AC IndividuiRuoliRisorse ruolo 1 ruolo 2 ruolo 3 Server 1 Server 3 Server 2 Gli utenti cambiano frequentemente, i ruoli no

73 Core RBAC

74 Core RBAC - Permissions Sessioni Utenti Ruoli UA RSA RA PA Operazioni Oggetti Permessi

75 Core RBAC insiemi, funzioni e relazioni USERS, ROLES, OPS, OBS USERS, ROLES, OPS, OBS UA USERS ROLES, relazione molti-a-molti tra utenti e ruoli UA USERS ROLES, relazione molti-a-molti tra utenti e ruoli assigned_users: (r: ROLES) 2 USERS, ad ogni ruolo r linsieme degli utenti. Formalmente: assigned_users: (r: ROLES) 2 USERS, ad ogni ruolo r linsieme degli utenti. Formalmente: assigned_users(r) = {u USERS | (u, r) UA} assigned_users(r) = {u USERS | (u, r) UA} PRMS = 2 (OPS OBS), tutti i sottoinsiemi di permessi PRMS = 2 (OPS OBS), tutti i sottoinsiemi di permessi PA PRMS ROLES, relazione molti-a-molti tra ruoli e permessi PA PRMS ROLES, relazione molti-a-molti tra ruoli e permessi assigned_permissions: (r: ROLES) 2 PRMS, ad ogni ruolo linsieme dei permessi. Formalmente: assigned_permissions: (r: ROLES) 2 PRMS, ad ogni ruolo linsieme dei permessi. Formalmente: assigned_permissions(r) = {p PRMS | (p, r) PA} assigned_permissions(r) = {p PRMS | (p, r) PA}

76 Core RBAC insiemi, funzioni e relazioni Op (p : PRMS) {op OPS}, le operazioni associate ad un insieme di permess p Op (p : PRMS) {op OPS}, le operazioni associate ad un insieme di permess p Ob (p : PRMS) {op OBS}, gli oggetti su cui opera un insieme di permessi p Ob (p : PRMS) {op OBS}, gli oggetti su cui opera un insieme di permessi p SESSIONS = linsieme delle sessioni SESSIONS = linsieme delle sessioni session_users (s : SESSIONS) USERS, gli utenti della sessione s session_users (s : SESSIONS) USERS, gli utenti della sessione s session_roles (s : SESSIONS) 2 ROLES, i ruoli degli utenti di una sessione. Formalmente: session_roles (s : SESSIONS) 2 ROLES, i ruoli degli utenti di una sessione. Formalmente: session_roles (s) = {r ROLES | (session_users (s), r) UA} session_roles (s) = {r ROLES | (session_users (s), r) UA} avail_session_perms (s : SESSIONS) 2 PRMS, i permessi disponibili per gli utenti di una sessiona. Formally: avail_session_perms (s : SESSIONS) 2 PRMS, i permessi disponibili per gli utenti di una sessiona. Formally: avail_session_perms (s) = r session_roles( r ) assigned_permissions (r) avail_session_perms (s) = r session_roles( r ) assigned_permissions (r)

77 Core RBAC - Sessioni La nozione di sessione è astratta – è definitaa mapping between a user and an activated subset of roles that are assigned to the user La nozione di sessione è astratta – è definitaa mapping between a user and an activated subset of roles that are assigned to the user Distinzioni: Distinzioni: Attivazione a singolo ruolo (SRA) Solo un ruolo può essere attivo Attivazione a singolo ruolo (SRA) Solo un ruolo può essere attivo Attivazione a ruoli multipli (MRA) Più ruoli possono essere attivi in una sessione, è possibile vincolare la concorrente presenza di alcuni ruoli Attivazione a ruoli multipli (MRA) Più ruoli possono essere attivi in una sessione, è possibile vincolare la concorrente presenza di alcuni ruoli

78 RBAC gerarchico - Motivazioni Le gerarchia tra ruoli sono un modo naturale per strutturare i ruoli in modo da riflettere le linee di autorità e responsibilità di unorganizzazione Le gerarchia tra ruoli sono un modo naturale per strutturare i ruoli in modo da riflettere le linee di autorità e responsibilità di unorganizzazione

79 Modello gerarchico RBAC - RH ROLES ROLES è una relazione binaria non riflessiva e aciclica sullinsieme of ruoli nel sistema - E una relazione di dominanza; se (r i,r j ) RH diremo che r i domina r j - La relazione è la chiusura riflessiva e transitiva di RH. - Un sistema RBAC può scegliere se memorizzare o se calcolarlo ogni volta

80 Esempio di RH Produczione Engineer 1 Qualità Engineer 1 Engineering Dept Produczione Engineer 2 Qualità Engineer 2 Project Lead 1 Director Project Lead 2

81 Semantica del RBAC gerarchico Ereditarietà di utente (UI): Tutti gli utenti autorizzati ad un ruolo r sono anche autorizzati ad un ruolo r, ove r r Ereditarietà di utente (UI): Tutti gli utenti autorizzati ad un ruolo r sono anche autorizzati ad un ruolo r, ove r r Eredità di permessi (PI): Un ruolo r è autorizzato a tutti i permessi per i quali ogni ruolo r, tale che r r, è autorizzato Eredità di permessi (PI): Un ruolo r è autorizzato a tutti i permessi per i quali ogni ruolo r, tale che r r, è autorizzato Eredità di attivazione (AI): Attivando un ruolo r automaticamente si attivano tutti i ruoli r, tali che r r. Da usare solo con sessioni MRA Eredità di attivazione (AI): Attivando un ruolo r automaticamente si attivano tutti i ruoli r, tali che r r. Da usare solo con sessioni MRA

82 RBAC vincolato Il RBAC vincolato è un modello RBAC con la capacità di supportare le politiche di Separazione dei compiti (Separation of Duty) Il RBAC vincolato è un modello RBAC con la capacità di supportare le politiche di Separazione dei compiti (Separation of Duty) Evita conflitti di interesse e collisioni tra mansioni Evita conflitti di interesse e collisioni tra mansioni Due categorie principali: Due categorie principali: SoD statici SoD statici SoD dinamici SoD dinamici

83 RBAC –SoD statici SoD statici restringono linsieme dei ruoli and in particolare la possobilità ad entrare nella relazione RA SoD statici restringono linsieme dei ruoli and in particolare la possobilità ad entrare nella relazione RA Nessun utente può assumere più di t ruoli in un insieme di m ruoli Nessun utente può assumere più di t ruoli in un insieme di m ruoli Evita che una persona sia autorizzata a usare troppi ruoli Evita che una persona sia autorizzata a usare troppi ruoli

84 RBAC –SoD Dinamici Questi vincoli limitano il numero di ruoli che un utente può attivare in una singola sessione Questi vincoli limitano il numero di ruoli che un utente può attivare in una singola sessione Esempi di vincoli: Esempi di vincoli: Nessun utente può attivare più di t ruoli nel corso di una sessione. Nessun utente può attivare più di t ruoli nel corso di una sessione. se lutente ha usato il ruolo r1 in una sessione, non può usare il ruolo r2 nella stessa sessione se lutente ha usato il ruolo r1 in una sessione, non può usare il ruolo r2 nella stessa sessione E necessario mantenere una storia dei ruoli attivati da ciascun utente E necessario mantenere una storia dei ruoli attivati da ciascun utente

85 Constraint RBAC Prepare check Approve/ Disapprove check Approve/ Disapprove check Summarize decisions Issue/void check Static SOD Dynamic SOD

86 Autenticazione Autenticazione: collegamento soggetto-identità Autenticazione: collegamento soggetto-identità Lidentità si riferisce ad unentità esterna (Marco Baioletti,...) Lidentità si riferisce ad unentità esterna (Marco Baioletti,...) Il soggetto è un entità del sistema (utente, processo,...) Il soggetto è un entità del sistema (utente, processo,...)

87 Stabilire unidentità Mediante uno o più tra Mediante uno o più tra Uninformazione che lentità possiede (ad es. password) Uninformazione che lentità possiede (ad es. password) Unoggetto fisico che lentità ha (ad es. badge, smart card) Unoggetto fisico che lentità ha (ad es. badge, smart card) Una caratteristica che lentità possiede (ad es. impronte digitali, caratteristiche della retina) Una caratteristica che lentità possiede (ad es. impronte digitali, caratteristiche della retina) Una situazione/luogo in cui lentità si trova (ad es. di fronte ad un determinato terminale) Una situazione/luogo in cui lentità si trova (ad es. di fronte ad un determinato terminale)

88 Sistema di autenticazione (A, C, F, L, S) (A, C, F, L, S) A informazione riguardante lidentità A informazione riguardante lidentità C informazione memorizzata e usata per validare linformazione di autenticazione C informazione memorizzata e usata per validare linformazione di autenticazione F funzioni complementari; f : A C F funzioni complementari; f : A C L funzioni che comprovano lidentità L funzioni che comprovano lidentità S funzioni che permettono alle entità di creare e alterare informazioni in A o C S funzioni che permettono alle entità di creare e alterare informazioni in A o C

89 (Cattivo) esempio Sistema di password in cui le password sono memorizzate in chiaro Sistema di password in cui le password sono memorizzate in chiaro A insieme di stringhe (password) A insieme di stringhe (password) C = A C = A F = { identità } F = { identità } L = { uguaglianza } L = { uguaglianza } S funzioni tipo passwd S funzioni tipo passwd

90 Password Una password è uninformazione testuale associata ad unentità che ne conferma lidentità Una password è uninformazione testuale associata ad unentità che ne conferma lidentità Sequenze di caratteri Sequenze di caratteri Esempi: 10 cifre, una stringa di lettere, ecc. Esempi: 10 cifre, una stringa di lettere, ecc. Generata a caso, dallutente, dal computer su input dellutente Generata a caso, dallutente, dal computer su input dellutente Sequenze di parole Sequenze di parole Esempi: pass-phrases Esempi: pass-phrases Algoritmi Algoritmi Esempi: challenge-response, one-time passwords Esempi: challenge-response, one-time passwords

91 Memorizzazione di password Memorizzate in chiaro Memorizzate in chiaro Se il file delle password è compromesso, tutte le password sono rivelate Se il file delle password è compromesso, tutte le password sono rivelate File cifrato File cifrato Deve essere decifrato, la chiave di cifratura è in memoria Deve essere decifrato, la chiave di cifratura è in memoria Alla fine si riconduce al problema precedente ! Alla fine si riconduce al problema precedente ! Memorizzate con funzioni hash one-way Memorizzate con funzioni hash one-way Se il file viene letto, lattaccante deve comunque indovinare le password o invertire la funzione hash Se il file viene letto, lattaccante deve comunque indovinare le password o invertire la funzione hash

92 Esempio UNIX usa delle funzioni hash UNIX usa delle funzioni hash Comprime le password in una stringa di 11 carattery (88 byte) usando una tra 4096 funzioni hash Comprime le password in una stringa di 11 carattery (88 byte) usando una tra 4096 funzioni hash Come sistema di autenticazione: Come sistema di autenticazione: A = { stringhe di <= 8 caratteri } A = { stringhe di <= 8 caratteri } C = { 2 car. hash id || 11 car. hash } C = { 2 car. hash id || 11 car. hash } F = { 4096 versioni di DES } F = { 4096 versioni di DES } L = { login, su, … } L = { login, su, … } S = { passwd, nispasswd, passwd+, … } S = { passwd, nispasswd, passwd+, … }

93 Anatomia dellattacco Scopo: trovare a A tale che: Scopo: trovare a A tale che: Per qualche f F, f(a) = c C Per qualche f F, f(a) = c C c è associata ad unentità particolare (o a qualsiasi entità) c è associata ad unentità particolare (o a qualsiasi entità) Due modi per vedere se a soddisfa questi requisiti: Due modi per vedere se a soddisfa questi requisiti: Approccio diretto: calcolare f(a) Approccio diretto: calcolare f(a) Approccio indiretto: vedere il risultato di l(a) Approccio indiretto: vedere il risultato di l(a) Altro tipo di attacco: mediante il social engineering acquisire informazioni sullutente e da queste trovare buoni candidati come password Altro tipo di attacco: mediante il social engineering acquisire informazioni sullutente e da queste trovare buoni candidati come password

94 Prevenire gli attacchi Come prevenire questo: Come prevenire questo: Nascondere a, f, o c Nascondere a, f, o c Previente gli attacchi diretti Previente gli attacchi diretti Esempio: UNIX/Linux shadow password files Esempio: UNIX/Linux shadow password files Nascondono c Nascondono c Bloccare laccesso a tutte le l L o al risultato di l(a) Bloccare laccesso a tutte le l L o al risultato di l(a) Lattaccante non sa se ha indovinato Lattaccante non sa se ha indovinato Esempio: disabilitare laccesso dalla rete, oppure rallentare la risposta Esempio: disabilitare laccesso dalla rete, oppure rallentare la risposta

95 Attacchi mediante dizionario Tentativi mediante una lista D di parole note (dizionario) Tentativi mediante una lista D di parole note (dizionario) Off-line: Sapendo f e c, si provano tutti i tentativi g D finchè la lista non è finita o non si è trovata la password Off-line: Sapendo f e c, si provano tutti i tentativi g D finchè la lista non è finita o non si è trovata la password Esempi: crack, john-the-ripper Esempi: crack, john-the-ripper On-line: avere accesso alle funzioni in L e fare i tentativi g fino a che l(g) è vera On-line: avere accesso alle funzioni in L e fare i tentativi g fino a che l(g) è vera Esampi: prova a fare login indovinando la password Esampi: prova a fare login indovinando la password

96 Quanto tempo ? Formula di Anderson: P probabilità di indovinare una password in uno specificato periodo di tempo P probabilità di indovinare una password in uno specificato periodo di tempo G numero di tentativi nellunità di tempo G numero di tentativi nellunità di tempo T numero di unità di tempo T numero di unità di tempo N numero di password possibili (|A|) N numero di password possibili (|A|) Allora P TG/N Allora P TG/N

97 Esempio Scopo Scopo Password composte da un insieme di 96 caratteri Password composte da un insieme di 96 caratteri 10 4 tentativi al secondo 10 4 tentativi al secondo Probabilità di successo pari a 0.5 su 365 giorni Probabilità di successo pari a 0.5 su 365 giorni Qual è la lunghezza minima s della password? Qual è la lunghezza minima s della password? Soluzione Soluzione N TG/P = ( ) 10 4 /0.5 = N TG/P = ( ) 10 4 /0.5 = Scegliere s tale che s j=0 96 j N Scegliere s tale che s j=0 96 j N Perciò s 6 Perciò s 6

98 Modi di selezionare le password Password generate completamente a caso Password generate completamente a caso Vantaggio: ogni password ha la stessa probabilità di essere generata Vantaggio: ogni password ha la stessa probabilità di essere generata Svantaggio: non sono ricordabili Svantaggio: non sono ricordabili Password pronunciabili Password pronunciabili Password selezionate dallutente Password selezionate dallutente

99 Password Pronunciabili Generare fonemi a caso Generare fonemi a caso Il fonema è ununità fonetica, per esempio consonante+vocale, v+c, c+v+c, v+c+v Il fonema è ununità fonetica, per esempio consonante+vocale, v+c, c+v+c, v+c+v Esempi: Esempi: helgoret, juttelon SI helgoret, juttelon SI przbqxdfl, zxrptglfn NO przbqxdfl, zxrptglfn NO Problema: sono troppo poche Problema: sono troppo poche

100 Selezione da parte dellutente Problema: si è portati a scegliere password semplici (da ricordare) Problema: si è portati a scegliere password semplici (da ricordare) Basati sul nomi di account, sul proprio nome e cognome, sul nome del computer, sui luoghi Basati sul nomi di account, sul proprio nome e cognome, sul nome del computer, sui luoghi Parole di dizionario (anche al contrario, con maiuscole/minuscole invertite, caratteri di controllo, elite-speak, coniugazioni o declinazioni di parole, parolacce, Torah/Bibbia/Corano/… ) Parole di dizionario (anche al contrario, con maiuscole/minuscole invertite, caratteri di controllo, elite-speak, coniugazioni o declinazioni di parole, parolacce, Torah/Bibbia/Corano/… ) Troppo corte, solo cifre, solo lettere Troppo corte, solo cifre, solo lettere Targhe di macchine, acronimi, social security numbers Targhe di macchine, acronimi, social security numbers Caratteristiche personali (nomi di animali, soprannomi, caratteristiche di lavoro, ecc.) Caratteristiche personali (nomi di animali, soprannomi, caratteristiche di lavoro, ecc.)

101 Buone password LlMm*2^Ap LlMm*2^Ap Names of members of 2 families Names of members of 2 families OoHeO/FSK OoHeO/FSK Second letter of each word of length 4 or more in third line of third verse of Star-Spangled Banner, followed by /, followed by authors initials Second letter of each word of length 4 or more in third line of third verse of Star-Spangled Banner, followed by /, followed by authors initials Non sempre sono buone Non sempre sono buone DMC/MHmh non va bene a Dartmouth (Dartmouth Medical Center/Mary Hitchcock memorial hospital), in altri posti è OK DMC/MHmh non va bene a Dartmouth (Dartmouth Medical Center/Mary Hitchcock memorial hospital), in altri posti è OK Adesso sono cattive password ? Adesso sono cattive password ?

102 Controllo proattivo delle password Analizza le password Analizza le password Da invocare sempre Da invocare sempre Può scoprire e rifiutare password cattive Può scoprire e rifiutare password cattive Discrimina in base allutente e al sito Discrimina in base allutente e al sito Fa pattern matching sulle parole Fa pattern matching sulle parole Deve eseguire sottoprogrammi e usare i risultati Deve eseguire sottoprogrammi e usare i risultati Spell checker Spell checker Facile da integrare con i sistemi di modifica password Facile da integrare con i sistemi di modifica password

103 Esempio: OPUS Scopo: controllare le password in modo veloce su un dizionario di grandi dimensioni Scopo: controllare le password in modo veloce su un dizionario di grandi dimensioni Calcolare per ogni parola del dizionario k funzioni hash differenti h 1, …, h k, ognuna delle quali un valore minore di n Calcolare per ogni parola del dizionario k funzioni hash differenti h 1, …, h k, ognuna delle quali un valore minore di n calcolare h 1, …, h k per tutte le parole del dizionario e da questo generare un vettore di n bit D calcolare h 1, …, h k per tutte le parole del dizionario e da questo generare un vettore di n bit D Per controllare una parola, generare il vettore di bit e vedere se tutti i bit 1 della parola corrispondono ai bit 1 di D Per controllare una parola, generare il vettore di bit e vedere se tutti i bit 1 della parola corrispondono ai bit 1 di D in caso positivo, cè una certa probabilità che la parola appartiene al dizionario in caso positivo, cè una certa probabilità che la parola appartiene al dizionario in caso negativo, non appartiene al dizionario in caso negativo, non appartiene al dizionario

104 Esempio: passwd+ Fornisce un linguaggio per descrivere i controlli proattivi Fornisce un linguaggio per descrivere i controlli proattivi test length($p) < 6 test length($p) < 6 se la password ha meno di 6 caratteri, rifiutala se la password ha meno di 6 caratteri, rifiutala test infile(/usr/dict/words, $p) test infile(/usr/dict/words, $p) se la password fa parte del file /usr/dict/words, rifiutala se la password fa parte del file /usr/dict/words, rifiutala test !inprog(spell, $p, $p) test !inprog(spell, $p, $p) se la password non viene corretta dal correttore ortografico, rifiutala (perché è una parola scritta correttamente) se la password non viene corretta dal correttore ortografico, rifiutala (perché è una parola scritta correttamente)

105 Salting Scopo: rallentare gli attacchi basati sul dizionario Scopo: rallentare gli attacchi basati sul dizionario Metodo: perturbare le funzioni hash con un parametro salt Metodo: perturbare le funzioni hash con un parametro salt Il salt controlla quale funzione hash è usata Il salt controlla quale funzione hash è usata Il salt è diverso per ogni password Il salt è diverso per ogni password Con n possibili password hashes, e quindi n valori di salt, lattaccante deve provare n valori hash per ogni tentativo di password Con n possibili password hashes, e quindi n valori di salt, lattaccante deve provare n valori hash per ogni tentativo di password

106 Esempi Metodo di base in UNIX Metodo di base in UNIX Usare DES per cifrare il messaggio nullo con la password come chiave Usare DES per cifrare il messaggio nullo con la password come chiave Perturbare la tabella E di DES in uno tra 4096 modi possibili Perturbare la tabella E di DES in uno tra 4096 modi possibili i 12 bit del salt invertono le entrate 1–11 con le entrate 25–36 i 12 bit del salt invertono le entrate 1–11 con le entrate 25–36 Metodi alternative Metodi alternative Usare il salt come prima parte dellinput della funzione hash Usare il salt come prima parte dellinput della funzione hash

107 Tentativi attraverso L Non si possono prevenire del tutto Non si possono prevenire del tutto Altrimenti nemmeno gli utenti legittimi potrebbero log in Altrimenti nemmeno gli utenti legittimi potrebbero log in Però si possono rallentare Però si possono rallentare Backoff esponenziale Backoff esponenziale Disconnessione dopo n tentativi falliti Disconnessione dopo n tentativi falliti Disabilitazione dopo n tentativi falliti Disabilitazione dopo n tentativi falliti Attenzione agli account di amministratore! Attenzione agli account di amministratore! Jailing Jailing Farlo entrare, ma in un ambiente ristretto e così magari viene identificato Farlo entrare, ma in un ambiente ristretto e così magari viene identificato

108 Password Aging Forzare gli utenti a cambiare la password dopo un certo periodo Forzare gli utenti a cambiare la password dopo un certo periodo Dopo un certo lasso di tempo la password potrebbe essere stata violata Dopo un certo lasso di tempo la password potrebbe essere stata violata Come si forzano gli utenti a non riutilizzare le password? Come si forzano gli utenti a non riutilizzare le password? Memorizzare le password precedenti Memorizzare le password precedenti Bloccare i cambiamenti per un tempo minimo Bloccare i cambiamenti per un tempo minimo Dare agli utenti tempo sufficiente a trovare buone password Dare agli utenti tempo sufficiente a trovare buone password Non forzarli a cambiarla prima del login Non forzarli a cambiarla prima del login Avvisarli prima della scadenza Avvisarli prima della scadenza

109 Challenge-Response Lutente e il sistema condividono una funzione segreta f (in pratica, f è una funzione nota con parametri incogniti come una chiave crittografica) user system request to authenticate user system random message r (the challenge) user system f(r) (the response)

110 Pass Algorithms Challenge-response con una funzione segreta f Challenge-response con una funzione segreta f Esempio: Esempio: La Challenge è una stringa casuale: abcdefg, ageksido La Challenge è una stringa casuale: abcdefg, ageksido La Response è una funzione della stringa: ad esempio una lettera sì, una no a partire dalla seconda: bdf, gkio La Response è una funzione della stringa: ad esempio una lettera sì, una no a partire dalla seconda: bdf, gkio Si possono usare modi diversi a seconda della sicurezza Si possono usare modi diversi a seconda della sicurezza ad esempio in unarea poco sicura la risposta potrebbe aggiungere (in posizioni concordate) caratteri a caso: xbydmfg ad esempio in unarea poco sicura la risposta potrebbe aggiungere (in posizioni concordate) caratteri a caso: xbydmfg

111 One-Time Password Password che possono essere usate solo una volta Password che possono essere usate solo una volta Dopo luso sono immediatamente invalidate Dopo luso sono immediatamente invalidate Meccanismo Challenge-response Meccanismo Challenge-response Challenge è il numero progressivo di autenticazioni; response è la password per quel particolare numero Challenge è il numero progressivo di autenticazioni; response è la password per quel particolare numero Problemi Problemi Sincronizzazione tra lutente e il sistema Sincronizzazione tra lutente e il sistema Generazione di buone password casuali Generazione di buone password casuali Distribuzione delle password Distribuzione delle password

112 S/Key Schema di One-time password basato sullidea di Lamport Schema di One-time password basato sullidea di Lamport h funzione hash one-way (ad esempio MD5 o SHA-1) h funzione hash one-way (ad esempio MD5 o SHA-1) Lutente sceglie un valore iniziale k Lutente sceglie un valore iniziale k Il sistema calcola: Il sistema calcola: h(k) = k 1, h(k 1 ) = k 2, …, h(k n–1 ) = k n Le password sono in ordine inverso: Le password sono in ordine inverso: p 1 = k n, p 2 = k n–1, …, p n–1 = k 2, p n = k 1

113 Protocollo S/Key user system { name } user system { i } user system { p i } Il sistema si memorizza il massimo numero di autenticazioni n, il numero della prossima autenticazione i, lultima password correttamente fornita p i–1. Il sistema calcola h(p i ) = h(k n–i+1 ) = k n–i = p i–1. Se corrisponde con quello che è memorizzato, sostituisce p i–1 con p i e incrementa i.

114 Supporto Hardware Basato sui Token Basato sui Token Un dispositivo fisico usato per calcolare la risposta al challenge Un dispositivo fisico usato per calcolare la risposta al challenge Può cifrare o calcolare una funzione hash della challenge Può cifrare o calcolare una funzione hash della challenge Può richiedere un PIN allutente Può richiedere un PIN allutente Basato sul tempo Basato sul tempo Ogni tot di tempo mostra un numero diverso Ogni tot di tempo mostra un numero diverso Il sistema quale numero sarà mostrato Il sistema quale numero sarà mostrato Lutente immette il numero e la password Lutente immette il numero e la password

115 Biometria Misure automatiche di caratteristiche biologiche o di comportamento che identificano una persona Misure automatiche di caratteristiche biologiche o di comportamento che identificano una persona Impronte digitali: tecniche ottiche o elettriche Impronte digitali: tecniche ottiche o elettriche Limpronta è tradotta in un grafo, che poi è ricercato in un database Limpronta è tradotta in un grafo, che poi è ricercato in un database Le misure sono imprecise, perciò sono necessari algoritmi di matching approssimati Le misure sono imprecise, perciò sono necessari algoritmi di matching approssimati Voce: verifica/riconoscimento del parlante Voce: verifica/riconoscimento del parlante Verifica: si usano tecniche statistiche per verificare se il parlante è veramente lui (dipendono dallutente) Verifica: si usano tecniche statistiche per verificare se il parlante è veramente lui (dipendono dallutente) Riconoscimento: riconosce una parola o una frase particolari, tipo password vocale (indipendenti dallutente) Riconoscimento: riconosce una parola o una frase particolari, tipo password vocale (indipendenti dallutente)

116 Altre caratteristiche Si possono usare altre caratteristiche Si possono usare altre caratteristiche Occhi: pattern unici nelliride Occhi: pattern unici nelliride trova il pattern e lo confronta con quelle memorizzate, determinando se le differenze sono casuali trova il pattern e lo confronta con quelle memorizzate, determinando se le differenze sono casuali unalternativa è usare test statistici di correlazione unalternativa è usare test statistici di correlazione Faccia: immagine o caratteristiche specifiche come la distanza dal naso al mento Faccia: immagine o caratteristiche specifiche come la distanza dal naso al mento difficoltà possono sorgere dai capelli, luce, posizione, ecc. difficoltà possono sorgere dai capelli, luce, posizione, ecc. Dinamica di digitazione (forse è univoca) Dinamica di digitazione (forse è univoca) Intervallo di battitura tasti, pressione, durata del colpo Intervallo di battitura tasti, pressione, durata del colpo Si usano test statistici Si usano test statistici

117 Attenzione, però Ci sono molti modi per frodare questi sistemi ! Ci sono molti modi per frodare questi sistemi ! Verificare che gli strumenti biometrici siano accurati nellambiente in cui sono usati! Verificare che gli strumenti biometrici siano accurati nellambiente in cui sono usati! Accertarsi che la trasmissione dei dati al sistema sia corretta e a prova di manomissione Accertarsi che la trasmissione dei dati al sistema sia corretta e a prova di manomissione

118 Luogo/situazione Se si sa dove si dovrebbe trovare un utente, lidentità può essere verificata controllando se la persona è realmente lì Se si sa dove si dovrebbe trovare un utente, lidentità può essere verificata controllando se la persona è realmente lì E richiesto un hardware speciale per localizzare gli utenti E richiesto un hardware speciale per localizzare gli utenti Il GPS fornisce una location signature della posizione dellentità Il GPS fornisce una location signature della posizione dellentità Gli host usano gli LSS (location signature sensor) per localizzare il punto di accesso Gli host usano gli LSS (location signature sensor) per localizzare il punto di accesso

119 Metodi multipli Esempio: il dove sei richiede allutente di avere un dispositivo GPS, perciò è anche un metodo cosa hai Esempio: il dove sei richiede allutente di avere un dispositivo GPS, perciò è anche un metodo cosa hai Si possono assegnare più modi di autenticazione Si possono assegnare più modi di autenticazione Se un utente deve compiere unazione più importante si deve autenticare in modo più stringente Se un utente deve compiere unazione più importante si deve autenticare in modo più stringente

120 PAM Idea: se un programma ha bisogno di far autenticare un utente, chiama la routine pam_authenticate Idea: se un programma ha bisogno di far autenticare un utente, chiama la routine pam_authenticate Accede ad un file di configurazione nella cartella /etc/pam_d avente lo stesso nome del programma Accede ad un file di configurazione nella cartella /etc/pam_d avente lo stesso nome del programma Il file contiene i moduli di autenticazione che devono essere chiamati e come usare i risultati che restituiscono Il file contiene i moduli di autenticazione che devono essere chiamati e come usare i risultati che restituiscono sufficient: ha successo se il modulo ha esito positivo sufficient: ha successo se il modulo ha esito positivo required: fallisce se il metodo ha esito negativo, ma tutti i metodi precedenti sono comunque chiamati required: fallisce se il metodo ha esito negativo, ma tutti i metodi precedenti sono comunque chiamati requisite: come required, ma non controlla gli altri moduli requisite: come required, ma non controlla gli altri moduli optional: invocato solo se tutti gli altri falliscono optional: invocato solo se tutti gli altri falliscono

121 Esempio di file PAM authsufficient/usr/lib/pam_ftp.so authrequired/usr/lib/pam_unix_auth.so use_first_pass authrequired/usr/lib/pam_listfile.so onerr=succeed \ item=user sense=deny file=/etc/ftpusers Quando si lancia ftp: 1. Se lutente è anonymous, è accettate; altrimenti poni PAM_AUTHTOK = password, PAM_RUSER = nome e fallisci 2. Ora controlla che la password in PAM_AUTHTOK appartiene a quella dellutente in PAM_RUSER; in caso contrario fallisci 3. Infine se lutente in PAM_RUSER è presente in /etc/ftpusers (utenti che non si possono usare per ftp) fallisci altrimenti accetta

122 Studio sulle password (Stallings, 2003) Collected nearly 14,000 encrypted passwords Strategia: Try user info variants Try words from 60,000 entry dictionary Try permutations of above (0-O, 1-L, etc.) Try various capitalization of above Table Next slide

123


Scaricare ppt "Sicurezza dei sistemi informatici Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione Seconda lezione."

Presentazioni simili


Annunci Google