Hardwarebeveiliging: nieuwste ontwikkelingen

Welke uitspraak beschrijft het mechanisme van Arm-pointerauthenticatie (PAC) juist?

  1. ABij elk gebruik van een pointer wordt het OS via een systeemaanroep gevraagd te bevestigen of de pointer een juiste waarde heeft
  2. BUit de pointerwaarde en een contextwaarde wordt met een sleutel in de CPU een korte authenticatiecode berekend, die in de hoge bits van de pointer wordt gezet en vóór gebruik wordt gecontroleerd
  3. CAlle bits van de pointer worden met een sleutel in de CPU versleuteld voordat ze in het geheugen worden opgeslagen, en vóór elk gebruik in de CPU ontsleuteld
Antwoord en toelichting tonen

Antwoord: B. Uit de pointerwaarde en een contextwaarde wordt met een sleutel in de CPU een korte authenticatiecode berekend, die in de hoge bits van de pointer wordt gezet en vóór gebruik wordt gecontroleerd

In de hoge bits van een pointer van 64 bits die niet voor het virtuele adres worden gebruikt, wordt een authenticatiecode gezet die met een sleutel in de CPU is berekend uit de pointerwaarde en een contextwaarde (bijvoorbeeld de stackpointer). Vlak voordat bijvoorbeeld het terugkeeradres van een functie wordt gebruikt, berekent een speciale instructie de code opnieuw en vergelijkt die; bij een afwijking wordt de pointer een onbruikbaar adres, wat aanvallen die terugkeeradressen op de stack overschrijven (zoals ROP) moeilijker maakt. Software kan de sleutel niet lezen, dus een aanvaller kan geen authenticatiecode maken die bij een gewijzigde pointer past. De lengte van de code hangt echter af van instellingen zoals de breedte van het virtuele adres en bedraagt vaak niet meer dan zo'n tien à vijftien bits, dus waar vaak kan worden gegokt, moet rekening worden gehouden met de kans op een toevallige overeenkomst.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Hardwarebeveiliging: nieuwste ontwikkelingen

  1. Welke uitspraak beschrijft de hardwarematige shadow stack juist, die onder meer in Intel CET (Control-flow Enforcement Technology) wordt gebruikt?
  2. Welke combinatie is juist voor hardwarefuncties die control-flow-integriteit ondersteunen, namelijk wat het terugkeren uit functies beschermt en wat indirecte aanroepen en sprongen, zoals via functiepointers, beschermt?
  3. Wat is de juiste verklaring waarom wordt gezegd dat Rowhammer gemakkelijker optreedt naarmate DRAM verder wordt verkleind?
  4. Wat is de juiste verklaring waarom bescherming tegen Rowhammer door TRR (target row refresh) in de DRAM in onderzoek is omzeild?
  5. Wat is er mis met de gedachte „als geheugen met ECC wordt gebruikt, hoeft men zich over Rowhammer geen zorgen te maken”?