Corso di Sicurezza AA2015-2016 ESONERO aprile 2016
Transcript
Corso di Sicurezza AA2015-2016 ESONERO aprile 2016
Corso di Sicurezza A.A.2015-2016 ESONERO aprile 2016 Le soluzioni devono essere ricevute in formato pdf entro le 22 di giovedì 28 aprile 2016. La prima pagina delle soluzioni sottomesse deve riportare, in aggiunta al Nome, Cognome e numero di matricola, la seguente dichiarazione: “Dichiaro di aver completato questo esonero da solo/a e di non aver discusso le soluzioni con altri studenti in classe.” PROBLEMA 1 [4+5+3+8 punti] Vi hanno assunto per sviluppare un sistema che gestisce la manutenzione di alcuni computer. I soggetti sono 4 banche AllBank, BankOne, CreditOne, e Diretta, ed il figlio Jack dell’amministratore delegato. Il sistema ha computers 1, 2, e 3 come oggetti. I permessi sono Use, Priority, e Shutdown a) Descrivere la access control matrix (come nel modello HRU) del sistema, dando a AllBank il permesso Priority sul computer 1 e Use sui computers 1 e 3, a BankOne Priority e Use sul computer 2, a CreditOne Use sul computer 1, e a Diretta Use sui computers 2 and 3. (Nessun altro permesso!) b) Se un soggetto ha il permesso Priority su un computer, quel computer non può essere spento senza il suo permesso. Immaginando che non più di un soggetto abbia il permesso Priority su un qualunque computer, scrivere un commando (modello HRU) che permette ad un soggetto di dare ad un altro soggetto il permesso di spegnere (Shutdown) un computer. Commentare eventuali problemi. c) Dato il sistema definito sopra, è possibile per Jack eseguire la manutenzione (con il permesso Shutdown) su qualunque computer (eventualmente dopo che l’entità appropriata abbia eseguito il commando definito)? Spiegare! d) Immaginando di aver scritto anche il commando per rimuovere il permesso Shutdown analogo a quello che dà il permesso Shutdown della parte b), e che non ci sono altri comandi, la safety del sistema risultante è decidibile? Spiegare ! PROBLEMA 2 [3 x 5 punti] Ci sono 3 proprietà desiderabili di una funzione hash crittografica: a) resistente alla preimmagine [data y, trovare x tale che f(x)=y] , b) resistente ad altra preimmagine [dati x,y con y=f(x), trovare x’ tale che f(x’)=y], e c) resistente alle collisioni [trovare x e x’ tali che f(x)=f(x’)]. Per ciascuna delle applicazioni seguenti, spiegare quale/i proprietà è/sono necessaria/e e quale/i no. 1) Andrea propone a Barbara un problema difficile che dichiara di saper risolvere. Barbara vuole provare a risolverlo, ma vuole anche essere sicura che Andrea non sta bleffando. Quindi Andrea scrive la propria soluzione, aggiunge alcuni bit randomici, calcola il valore hash e manda a Barbara il valore finale (soluzione e bit rimangono segreti). Quando Barbara trova la soluzione, Andrea può verificare la correttezza della soluzione di Barbara priva di rivelare la sua soluzione (ed i bit randomici) che lui aveva prima. 2) Le password sono conservate in un file delle password in formato hash. Per autenticare uno studente, la password presentata da un utente è trasformata (con hash) e confrontata con il valore hash memorizzato. Un utente che mette le mani sul file delle password non dovrebbe essere in grado di autenticarsi in questo modo. 3) Un amministratore di sistema, preoccupato di possibili intromissioni, calcola il valore hash di file binari importanti e conserva i valori hash in un file read-only. Un programma ricalcola periodicamente i valori hash dei file che contengono i binari e li confronta con i valori conservati. Un utente malizioso che riuscisse a sovrascrivere uno dei file protetti non dovrebbe essere in grado di cambiarli senza essere scoperto. PROBLEMA 3 [10 punti] Un esperto (?) di sicurezza propone il seguente protocollo per permettere ad un cliente C di autenticarsi presso un server S utilizzando un servizio di autenticazione Aut (chiave condivisa da X e Y indicate con KX,Y ) C -> S C (C manda ad S il messaggio “C”) S -> C N (S risponde a C con il messaggio “N(once)” ) C -> S KC,Aut [ N ] S -> AUT KS,Aut [ C , KC,Aut [ N ]] AUT -> S KS,Aut [ N ] Spiegare perché il protocollo non è sicuro e modificare il protocollo per rimuovere il problema. PROBLEMA 4 [5 x 5 punti] Un blocco di plaintext di 500 bit è criptato con DES con una delle modalità di cifratura producendo un blocco di ciphertext di 512 bit.. Il ciphertext viene spedito al ricevente per essere decifrato. Durante la trasmissione, il bit 194 ed il bit 259 vengono scambiati tra loro. Se i due bit sono diversi, a) quanti bit POTREBBERO essere sbagliati dopo la decifratura usando ECB? b) quanti bit POTREBBERO essere sbagliati dopo la decifratura usando CBC? c) quanti bit POTREBBERO essere sbagliati dopo la decifratura usando CFB nella versione con blocchi di 32 bit (cioè 32 bit sono criptati ad ogni turno)? d) quanti bit POTREBBERO essere sbagliati dopo la decifratura usando OFB nella versione con blocchi di 32 bit (cioè 32 bit sono criptati ad ogni turno)? e) quanti bit POTREBBERO essere sbagliati dopo la decifratura usando CTR? PROBLEMA 5 [4+6 punti] Con riferimento al seguente modello RBAC (tre ruoli in gerarchia, con due subject ciascuno) u6 Cardiologo p1, p2 u5 u3 Medico p3, p4 u4 u1 Infermiere p5, p6 u2 1. Estendere il modello con ruolo Resident (con User 7 e Permissions 7 e 8) come sottoruolo di Medico, e ruolo Neurologo (con User 8 e Permission 9) come superruolo di Medico; nessuna altra relazione con i ruoli esistenti. 2. Aggiungere vincoli di incompatibilità tra Cardiologo e Neurologo, e tra Infermiere e Resident. Spiegare! PROBLEMA 6 [10 punti] Il programma su permette ad un utente UNIX accesso all’account di un altro utente. Se il primo utente non è il superuser, su richiede la password del secondo utente. Una versione (taroccata?) di su chiederebbe la password dell’utente e, se non riuscisse a stabilire se la password è corretta perché non è possibile aprire il file delle password, immediatamente concederebbe privilegi di superuser affinché l’utente possa risolvere il problema. Spiegare quali dei principi di Secure Design vengono rispettati e quali vengono violati. PROBLEMA 7 [0 punti] Approssimativamente, quanto tempo è stato dedicato alla risoluzione di questi problemi?