Försättsblad till skriftlig tentamen vid Linköpings Universitet Datum för tentamen 2010-10-08 Sal Tid 8-12 Kurskod Provkod Kursnamn/benämning TDDD36 TEN2 Projekttermin: Säkra Mobila System Institution IDA Antal uppgifter som 13 ingår i tentamen Antal sidor på tentamen (inkl. 6 försättsbladet) Jour/Kursansvarig David Byers Telefon under skrivtid 282821 Besöker salen ca kl. Kursadministratör Madeleine Häger (namn + tfnnr + mailadress) 282360, madha@ida.liu.se Tillåtna hjälpmedel Inga Övrigt (exempel när resultat kan ses på webben, betygsgränser, visning, övriga salar tentan går i m.m.)
LiTH, Linköpings tekniska högskola IDA, Institutionen för datavetenskap Nahid Shahmehri Skriftlig Tentamen TDDD36: Projekttermin: Säkra Mobila System 2010-10-08 Tillåtna hjälpmedel Inga Jourhavande lärare David Byers, 282821 Betyg Ditt betyg avgörs av hur många poäng du får på tentamen. Nedanstående betygsgränser är preliminära. Betyg 3 4 5 Poäng 50 60 70
Fråga 1: Begrepp (4p) Klassificera nedanstående som ett brott mot konfidentialitet (engelska: confidentiality), integritet (engelska: integrity) eller tillgänglighet (engelska: availability), eller en kombination av dessa (ange vilken kombination): a) Alice förfalskar Bobs handstil och signatur. b) Bob beställer en produkt, men anger Alice information (namn, adress, etc.) till den som tillhandahåller produkten. Fråga 2: Policy och mekanismer (4p) Anta att ett systems tillstånd beskrivs av tupeln (x,y), där x och y är ickenegativa heltal. Ett tillstånd är säkert om skillnaden mellan x och y är mindre än 10. Säkerhetsmekanismen för detta system bygger på en funktion secure som tar ett tillstånd som argument och returnerar true om tillståndet är säkert och false om tillståndet är osäkert. a) Skriv funktionen secure så att säkerhetsmekanismen blir säker (engelska: secure) men inte exakt (engelska: precise). Motivera varför din lösning uppfyller uppgiftens krav. b) Skriv funktionen secure så att säkerhetsmekanismen blir exakt (engelska: precise). Motivera varför din lösning uppfyller uppgiftens krav. Du kan använda valfritt C, Pascal, Lisp, eller Pythonliknande programmeringsspråk eller pseudokod med motsvarande detaljnivå. Fråga 3: Hot (6p) Vad är en denial-of-service-attack? Ge ett konkret exempel på en sådan attack och ett (fungerande) förslag på hur man kan förebygga attacker som det i ditt exempel. Fråga 4: Kryptoteknik (8p) a) Förklara begreppen stream cipher och block cipher. Skillnaden mellan de två måste framgå av ditt svar. b) Namnge ett stream cipher och ett block cipher. c) Vad är en sessionsnyckel (engelska: session key)? Varför används sessionsnycklar? Ge ett exempel på ett praktiskt sätt att upprätta en sessionsnyckel på ett säkert sätt. d) Vad är ett key escrow system?
Fråga 5: Accesskontroll (8p) Anta att ett system har subjekt A, B, C och objekt X, Y, Z. Rättigheter i systemet är r, w, och o. Om subjekt s har rättighet r på objekt x så får s läsa från x. Om subjekt s har rättighet w på objekt x så får s skriva till x. Om subjekt s har rättighet o på objekt x så äger s objektet x. Accesskontroll-listor (engelska: access control lists; ACLs) definieras enligt Bishop: Definition 15-1: Let S be the set of subjects, and R the set or rights, of a system. An access control list (ACL) l is a set of pairs l = {(s,r): s S, r R}. Let acl be a function that determines the access control list l associated with a particular object o. The interpretation of the access control list acl(o) = { (s i,r i ): 1 i n } is that subject s i may access o using any right in r i. Anta ovanstående definition och nedanstående definition av acl(o): o acl(o) = X { (A, {r}) (B, {r}) (C, {r, o}) } Y { (A, {r}) (B, {r, w, o}) } Z { (A, {r, w}), (B, {r, w}), (C, {r, w, o}), (A, {}) } Svara på frågorna a-c nedan, och utför uppgift d. Motivera svaren till frågorna a-c. a) Vilka rättigheter har subjekt A till objekt Z? b) Vilka rättigheter har subjekt C till objekt Y? c) Vilka subjekt får ändra accesskontroll-listorna för objekt X? d) Visa hur accesskontroll-matrisen för detta system ser ut. Fråga 6: Konfidentialitetsmodeller (6p) Bell-LaPadula-modellen är baserad på simple security condition, *-property och basic security theorem. Definiera dessa tre begrepp.
Fråga 7: Säkra hash-funktioner (4p) Säkra hashfunktioner är grundläggande komponenter i många säkra protokoll. a) Är identitetsfunktionen, vars utdata är identiskt med indata, en säker hashfunktion (engelska: secure hash function eller cryptographic checksum)? Motivera ditt svar. b) Är funktionen sum som summerar alla 32-bitarsord i indata modulo två (xor) en säker hashfunktion? Motivera ditt svar. Funktionen sum skulle kunna implementeras så här i Java: int sum(int[] input) { int hash = 0, i = 0; while (i < input.length) { hash = hash ^ input[i]; // x ^ y ger x xor y i = i + 1; } return hash; } Fråga 8: Autentisering (6p) Lösenord är ett enkel och effektivt sätt att autentisera användare i ett system. Anta att du utvecklar ett system där lösenord ska användas, och man inte kan garantera att entiteter med onda avsikter kommer över lösenordslistan. a) Hur bör lösenorden lagras för att göra listan så oanvändbar som möjligt för entiteterna med onda avsikter? b) Finns det några nackdelar med att lagra lösenorden på detta sätt (ur säkerhetssynpunkt)? Om det finns nackdelar, förklara dem. Fråga 9: Certifikat (8p) Certifikat används i stor utsträckning i system som nyttjar kryptering med öppna nycklar, såsom SSL. a) Förklara vad syftet med certifikat är. b) Ange vad ett certifikat typiskt innehåller. c) Förklara hur man kan avgöra om ett certifikat är giltigt. d) Förklara vad en PKI (public key infrastructure) är, och hur den används. Förklara de ingående komponenternas roller i en PKI. Fråga 10: Nätverkssäkerhet (6p) IPSec är ett protokoll för säkerhet i nätverkslagret. a) Förklara begreppet security association i relation till IPSec. b) Hur avgör en sändare som använder IPSec vilka säkerhetsmekanismer som ska appliceras på ett givet utgående paket? Förklara processen så detaljerat du kan.
Fråga 11: Designprinciper (6p) En brandväggstillverkare gör designen för sin senaste produkt tillgänglig på företagets hemsida. Vad är fördelarna respektive nackdelarna med detta för företaget och användarna? Hur relaterar det till designprinciper för säkerhet (engelska: design principles)? Fråga 12: Riskanalys (10p) Gör en riskanalys för säkerheten på en webbplats där kunder kan köpa saker med kreditkort. Använd RMF. Ange de antaganden du har gjort för att lösa uppgiften. Fråga 13: Återhämtning, förebuggande och upptäckt (4p) Ge exempel på en situation där återhämtning (engelska: recovery) är viktigare än förebyggande och upptäckt (engelska: prevention och detection). Motivera ditt svar.