XUPWUP.NL
Login
Or create an account

Uitwerkingen security tentamen 22 jun 2011

0 Posted 15 April 2012 14:49
User avatar
Rick Hendricksen
Administrator
Posts: 2269
1 Geef aan in hoeverre je het eens bent met de volgende stellingen (geef een korte motivatie waarin elk onderdeel van de stelling verduidelijkt en beoordeeld wordt):
  • Een P3P privacy policy op een website waar je data invoert garandeert dat de data alleen volgens jouw voorkeuren wordt gebruikt.
    Een P3P privacy policy kan ambigu zijn, daarnaast is de manier waarop het geinterperteerd moet worden niet gedefinieerd. Verder is er geen "enforcement". Source: Slides 13, pag 29
  • Kerberos maakt single-sign-on mogelijk voor de services in verschillende domeinen zolang er een 'chain-of-trust' is tussen de service en de originele authenticatie server.
    Dit klopt, de user logt in bij een authenticatie server. Een ticket granting service "trusts" deze authenticatie server (die geeft login info). De applicatie kan daarna bij de ticket granting service een "ticket" aanvragen, waarmee de applicatie kan zien dat de user is ingelogd, zonder dat de user daarvoor zijn wachtwoord een tweede keer in hoeft te typen. Source: Slides 12, pag 37
  • Conditionele kansen kunnen gebruikt worden om uit te rekenen hoeveel entropy verloren gaat door informatie die gelekt wordt naar een aanvaller.
    ent(X) = - ΣxєD (p(X=x) ²log p(X=x)) Dus nee, de gewone kans kan hier voor gebruikt worden, niet de conditionele kans. Source: Slides 2, pag 12
  • Als een encryptie IND-CPA secure is kan er geen effectieve side-channel aanval op worden uitgevoerd.
    Dit heeft er niks mee te maken. Een side-channel attack is een aanval op eigenschappen van de hardware, stroomverbruik, hitte, etc. IND-CPA betekent dat als ik 2 plaintexts krijg, en er 1 encrypt, dat de ander niet kan zien welke ik heb ge-encrypt. Source: Slides 3, pag 32 + Slides 10, pag 26
  • Het meesturen van de hash van een bericht verzekert de authenticiteit want een verandering van het bericht zorgt er voor dat de hash waarde niet meer klopt.
    Nee, want je kunt ook de hash veranderen.
  • Using https requires that both parties have a certified public key certificate.
    Nee. De client genereert een random nummer om een session key te maken. Deze word verder gebruikt om de verbinding te encrypten. De certificate van de server is alleen nodig om te bewijzen dat de ander ook echt is wie hij zegt dat hij is. Source: Slides 5, pag 5
  • DNS SEC gebruikt ketens van certificaten om DNS spoofing te voorkomen.
    Ja, alle nameservers, behalve de root nameservers, sturen hun key mee bij de replies. Deze keys zijn signed door een belangrijkere partij. Source: Lecture 7, slide 18
  • Met meerdere kopieen van een video met verschillende watermerken kan je het watermark verwijderen.
    Ja, door de verschillen te zoeken in de data. Source: Lecture 14, slide 29

2 Een online muziekwinkel laat zijn leden gratis luisteren naar muziek met advertenties en tegen vergoeding muziek zonder advertensies downloaden. Leden kunnen ook liedjes aanbevelen aan andere gebruikers en krijgen een gratis ringtone als tenminste vijf mensen naar het liedje luisteren aan de hand van deze aanbeveling. Doe een basis security analyse voor dit scenario:
  • Wie zijn de belanghebbenden en wat zijn hun belangen, welke trade-offs zijn er tussen deze belangen.
    Belanghebbenden: muziekwinkel, leden, record companies.

    Belangen: Muziekwinkel -> geld verdienen aan users en ads, muziek regelen.
    Advertentie-bedrijf -> ads verkopen, veel users krijgen, geen privacy voor users.
    record companies -> Monneh
    Leden -> muziek luisteren, geen geld uit geven, privacy.

    Trade-offs: leden moeten wél geld uitgeven. Leden moeten ads bekijken. Sommige leden gaan hierdoor weg, dus een nadeel voor alle andere belanghebbenden. Ads kunnen worden aangepast aan de user, dit is nadelig voor de user, maar voordelig voor de ad-company.
  • Wie zijn mogelijke aanvallers, hun doelen en mogelijke aanvallen.
    Een gebruiker zou na betaald te hebben muziek kunnen downloaden en dit via andere kanalen verspreiden, zodat de muziekwinkel en de artiest geen geld meer krijgen.

    Iemand zou het betalingssysteem kunnen kraken om een gratis membership te krijgen, of om andermans geld te stelen, etc.

    Een concurrent zou de ad company geld kunnen geven zodat ze alleen maar ads naar de concurrent op de muziekwinkel-site zetten.

    Adblock, dit schaad de muziekwinkel's inkomsten.

    Een gebruiker kan aanbevelingen spammen in de hoop gratis ringtones te krijgen.
  • Welke security mechanismen zou je toe kunnen passen en wat is hun invloed op de mogelijke aanvallen maar ook op de belangen van de belanghebbenden?
    Je kunt het aanbevelingen systeem limiten, zodat je maar 1 item kunt aanbevelen per tijdseenheid. Dit is niet leuk voor users, maar van de andere kant worden ze ook niet dood gegooid met aanbevelingen.

    Het betalingssysteem goed beveiligen, dit kan het mogelijk lastiger te gebruiken maken voor users, maar de gemiddelde user heeft dat liever dan dat mensen hun geld afpakken.

    Je zou de ad company kunnen laten bevestigen of een advertentie geladen is. Als het niet bevestigd word, disable alles. Nadeel voor de user, voordeel voor de rest. Het enige nadeel is dat de website niet meer werkt als de ad company's server down is.

3 Beschouw het volgende zero-knowledge bewijs: Bewijzer P heeft geheim S, en grote priemgetallen p en q. Publieke bekende waarden zijn: n = p*q en I = S² mod n. Een ronde in het bewijs werkt als volgt:
(i) P genereert een random R, en stuurt X = R² mod n
(ii) V stuurt random bit E
(iii) P stuurt Y = R * S^E mod n
(iv) V controleert dat Y² en X * I^E gelijk zijn modulo n
  • Laat zien dat een zich correct gedragende P altijd wordt geaccepteerd door V.
    We maken hier gebruik van de regel: ((a mod y) * (b mod y)) mod y = (a*b) mod y

    Y² mod n =?= X * I^E mod n
    (R * S^E mod n)² mod n =?= (R² mod n) * (S² mod n)^E mod n
    (R * S^E mod n)² mod n =?= ((R² mod n) mod n) * ((S² mod n)^E mod n) mod n
    (R * S^E mod n)² mod n =?= (R² mod n) * ((S²)^E mod n) mod n
    (R * S^E mod n)² mod n =?= (R² mod n) * ((S^E)² mod n) mod n
    (R * S^E mod n)² mod n =?= ((R mod n) * (R mod n) mod n) * ((S^E mod n) * (S^E mod n)) mod n) mod n
    (R * S^E mod n)² mod n =?= (R mod n) * (R mod n) * (S^E mod n) * (S^E mod n) mod n
    (R * S^E mod n)² mod n =?= (R * R * S^E * S^E) mod n
    (R * S^E mod n)² mod n =?= (R * S^E)² mod n
    (R * S^E mod n)² mod n = (R * S^E mod n)² mod n
  • Waarom is V na een aantal ronden overtuigt dat P inderdaad S weet?
    Er van uit gaand dat een mogelijke attacker geen advantage heeft door het niet bekend zijn van R en E, heeft een mogelijke attacker maar een erg kleine kans om deze waardes correct te gokken. Na een aantal rondes is deze kans zo klein dat je overtuigd genoeg bent dat de ander secret S weet en niet aan het gokken is.
  • De bit E moet random zijn. Geef een aanval als E voorspelbaar is voor P.
    Vraag P om te bewijzen dat hij S weet. Hij genereert random R, en je gebruikt altijd een vaste V. Onthoud Y. Daarna kun je je voordoen als P, want jij stuurt P's random, V stuurt jou een V, namelijk dezelfde als die jij gebruikte toen je met P praatte, en dan stuur je V dezelfde Y als eerst. Herhaal dit voor een aantal random waarden. Dan heb je voor een behoorlijk aantal randoms X en Y, en kun je een replay attack doen.
  • Wat betekent het dat dit bewijs `zero-knowledge’ is en waarom is het dat?
    Het is geen sluitend bewijs dat de ander het geheim weet. Het wordt enkel aannemelijk gemaakt door heel vaak het experiment te doen. Gezien de kans op random goed hebben 1/2 is, is het om den duur voldoende om aan te nemen dat de ander het geheim weet.
  • Dit bewijs geeft `computationele security’, geen `unconditional security’ leg uit wat hiermee bedoelt wordt.
    Dit betekent dat het kraken van dit systeem te lang duurt, en daardoor niet haalbaar is. Het kan, met oneindig rekentijd wel gekraakt worden.


4 Een universiteit heeft toegang regels voor het gebruik van gebouwen. Gebruikers zijn studenten Alice en Bob, docent Charlie, professor Daisy en secretaresse Eve.
  • Beschrijf met behulp van een Access control Matrix de policy: `Personeel en studenten toegang hebben tot de college zaal en alleen wetenschappelijk personeel (docenten en professoren) toegang tot de vergaderzaal.’
    hurr durr tables
    1. |collegezaal|vergaderzaal
    2. Alice |y |n
    3. Bob |y |n
    4. Charlie|y |y
    5. Daisy |y |y
    6. Eve |y |n

  • Introduceer een geschikte rol hiërarchie en druk de zelfde policy uit met behulp van `role based access control’.
    1. |rol |collegezaal|vergaderzaal
    2. |Student |y |n
    3. |Docent |y |y
    4. |Prof |y |y
    5. |Secretaresse|y |n


    1. rol |users
    2. Student |Alice, Bob
    3. Docent |Charlie
    4. Prof |Daisy
    5. Secretaresse|Eve

  • Druk de regel `Een secretaresse mag een vergadering belegen tussen een wetenschapper en een student. De student krijgt hierdoor toegang tot de vergaderzaal.’ uit in een hiervoor geschikt formalisme. Leg uit hoe deze regel in dit formalisme gebruikt wordt met behulp van een voorbeeld waarin Alice toegang krijgt tot de vergaderzaal.
    Secretary(S) -> S SAYS (Student(x) -> magIn(x, vergaderzaal)) TO x
  • Suppose that we want to add that planning a meeting also makes the meeting room inaccessible for those not in the meeting.
    • How could you express this in XACML?
      Je moet de concepten kennen en het kunnen begrijpen; e.g. een eenvoudige policy zou je naar tekst moeten kunnen vertalen.
      Je hoeft zeker niet een syntactisch correcte policy te kunnen produceren.

      E.g.: Om `room inaccessible during meeting' toe te voegen aan een bestaande policy(set) voor de kamer:

      - Maak een nieuwe policy die alleen geldig is voor deze kamer, als er een meeting is.
      Als de gebruiker attribuut `deelnemer' heeft geeft de policy PERMIT, en (default regel): in alle gevallen een DENY.
      het policy combinatie algoritme is permit-overwrite (1 keer permit is permit).
      (Standaard manier om `Deny all others' te doen; de policy geeft DENY voor alles behalve deelnemers).

      - Combineer met bestaande policy(set):
      Nieuwe policyset met twee elementen; bestaande policy(set) en de policy hierboven. Een deny-overwrite (1 keer deny is deny)
      algoritme combineert de twee.
      (Vergelijkbaar met logische `en' van de twee)

      (Dit is helemaal uitgewerkt - met iets minder detail zou ook nog acceptabel zijn.
      Moet in ieder geval aangeven - een deny in bepaalde omstandigheden; een deny-overwrite om correct te combineren met bestaande regels.)

      I.e. het is de bedoeling dat je de componenten (e.g. policy(sets), combinatie algoritmes, responses) kent en hoe deze gecombineerd kunnen worden,
      niet de precieze syntax.
      Source: Jerry den Hartog, in een email
    • Why can we not express this by adding a rule to the existing ones in systems such as Logic in Access Control?
      Logic in Access Control spreekt alleen over het wel of niet mogen van een bepaalde actie. Het bijhouden van beschikbaarheid in zulk een systeem is niet mogelijk in 1 extra regel. Je zou beschikbaarheid kunnen simuleren door voor elke mogelijke persoon in die ruimte een extra constraint toe te voegen dat de ruimte niet beschikbaar is voor anderen. Er is echter geen vorm van Voor alle in LiAC, dus dit is niet op te lossen met 1 nieuwe regel.


5
  1. 1. A->B: { K }pk(B)
  2. 2. B->A: { Nb }pk(A) , { B }K
  3. 3. A->B: { Nb }K
  4. Tweezijdige authenticatie- en sessie sleutel uitwisselingsprotocol. A en B zijn agent
  5. identiteiten, K een verse sessie sleutel, Nb een nonce, pk(X) is de publieke sleutel van agent
  6. X, en { M }pk(X), { M }K is bericht M versleuteld met respectievelijk een public-key algoritme
  7. en een symmetrisch algoritme.

Het protocol hierboven wil tweezijdige authenticatie (mutual authentication) van de agenten A en B bereiken en een nieuwe sessie sleutel tussen hen uitwisselen.
  • Weet na het protocol A zeker dat zij met B spreekt en alleen B de sessie sleutel kan hebben? (Zo ja: geef argumentatie, zo nee geef een aanval).
    A ziet door de message {B}K dat de zender B zou moeten zijn. Als er een I tussen zit die dit bericht probeert te faken zou deze de sessie sleutel K moeten weten om een fake {I}K bericht te sturen. Maar K weten kan alleen door de sk(b) te weten, dus dit is onmogelijk voor iemand die niet B is. Uit de berichten {Nb}K kan de sessie sleutel niet worden afgeleid, dus B is de enige die deze kan weten. Tenzij B deze K doorgeeft aan een ander natuurlijk.
  • Authenticatie van A gaat mis; geef een aanval waarna indringer Mallory een sleutel heeft waarvan B denkt dat alleen A deze kent.
    1. A->I: {K}pk(I) [I weet K]
    2. I(A)->B: {K}pk(B)
    3. B->I(A): {Nb}pk(A), {B}K [B denkt dat ie met A praat]
    4. I->A: {Nb}pk(A), {I}K [I kan {I}K maken]
    5. A->I: {Nb}K [I weet Nb]
    6. I->B: {Nb}K

  • Werkt het protocol correct als we de inhoud van bericht 2 vervangen door onderstaande opties? (Geef voor elke optie een korte motivatie waarom het wel/niet werkt.)
    • { A , B , Nb }K
      Dit verzekert de identiteit van A niet. Dit verzekert alleen dat degene waar je mee praat ook degene is die K genereerde.
    • { A , Nb }pk(A) , { B }K
      Je geeft alleen extra infomatie. Het is alleen niet zeker dat B ook echt A weet.
    • { B , Nb }pk(A) , { A } K
      Dit werkt ook, zolang A ook B weet.
    • { A , B , Nb }pk(A)
      A kan niet zien of B K wel weet.



Edited on 16 April 2012 17:30 by Luc.
1 Posted 15 April 2012 17:08
User avatar
Rick Hendricksen
Administrator
Posts: 2269
Even ter informatie, ik garandeer geen correctheid. Als je denkt dat ik iets fout heb, of ik mis een antwoord en jij weet het, post hieronder.
Luc garandeert ook geen correctheid, maar wil graag benadrukken dat hij waarschijnlijk gelijk heeft. Behalve bij de laatste vraag, want ik heb het gevoel dat ik iets over het hoofd zie.

Edited on 15 April 2012 21:15 by Luc.
2 Posted 17 April 2012 18:54
User avatar
Kebabbi
Moderator
Posts: 555
Conditionele kansen kunnen gebruikt worden om uit te rekenen hoeveel entropy verloren gaat door informatie die gelekt wordt naar een aanvaller.

use P( X=x | attacker knowledge ) in entropy calculation
E.g. tell attacker roll of dice is even/odd: drops 2.6 -> 1.5
P( X = i | X is even)

source: pagina 38 http://sectest1.win.tue.nl:8080/SecurityCourse/lectures/week4/12-Lecture7-NS.pdf
© Rick Hendricksen