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?