Hardwarebeveiliging

Welke combinatie van het probleem in de bovenstaande functie voor het vergelijken van wachtwoorden en de tegenmaatregel is juist?

int check(const char *in, const char *pw, int n) {
    for (int i = 0; i < n; i++)
        if (in[i] != pw[i]) return 0;
    return 1;
}
  1. ABij groot n is het rekenresultaat onjuist. n verkleinen vóór het vergelijken
  2. BOmdat bij de eerste afwijking wordt geëindigd, is uit de verwerkingstijd af te leiden hoeveel tekens kloppen. Ook bij afwijkingen tot het einde vergelijken en het resultaat gezamenlijk teruggeven
  3. CEr is geen probleem en het is zo veilig
Antwoord en toelichting tonen

Antwoord: B. Omdat bij de eerste afwijking wordt geëindigd, is uit de verwerkingstijd af te leiden hoeveel tekens kloppen. Ook bij afwijkingen tot het einde vergelijken en het resultaat gezamenlijk teruggeven

Deze functie keert direct terug als het eerste teken verschilt en vergelijkt het tweede teken als het eerste klopt, dus de verwerkingstijd wordt langer met het aantal correcte tekens. Een aanvaller kan teken voor teken kandidaten proberen en degene kiezen waarbij de tijd langer wordt, zodat het wachtwoord kan worden afgeleid zonder alle combinaties te proberen. Als de verschillen van alle tekens gezamenlijk, bijvoorbeeld met exclusive-OR, worden verzameld en pas aan het eind beoordeeld, is de tijd constant, ongeacht het aantal correcte tekens.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Hardwarebeveiliging

  1. Wat is de belangrijkste reden waarom een side-channelaanval met caches kan slagen?
  2. Welke uitspraak over het principe van de speculatieve-uitvoeringskwetsbaarheid Spectre is juist?
  3. Waarom lekt bij aanvallen zoals Spectre informatie, ook als het resultaat van speculatief uitgevoerde instructies wordt ingetrokken?
  4. Welke uitspraak over het principe van de kwetsbaarheid Meltdown, die bij sommige CPU's een probleem was, is juist?
  5. Welke uitspraak over de gedachte achter KPTI (kernel page-table isolation), dat als softwaretegenmaatregel tegen Meltdown werd ingevoerd, is juist?