Hardwaresicherheit

Welche Kombination aus dem Problem der oben gezeigten Funktion zum Passwortvergleich und einer Gegenmaßnahme ist richtig?

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. ABei großem n wird das Rechenergebnis falsch. Vor dem Vergleich wird n verkleinert
  2. BDa sie beim ersten Unterschied endet, lässt sich aus der Verarbeitungszeit ablesen, bis zu welchem Zeichen Übereinstimmung besteht. Es wird auch bei Unterschieden bis zum Ende verglichen und das Ergebnis gesammelt zurückgegeben
  3. CEs gibt kein Problem, und die Funktion ist so sicher
Antwort und Erläuterung anzeigen

Antwort: B. Da sie beim ersten Unterschied endet, lässt sich aus der Verarbeitungszeit ablesen, bis zu welchem Zeichen Übereinstimmung besteht. Es wird auch bei Unterschieden bis zum Ende verglichen und das Ergebnis gesammelt zurückgegeben

Diese Funktion kehrt sofort zurück, wenn das erste Zeichen abweicht; stimmt es, wird das zweite verglichen, sodass die Verarbeitungszeit mit der Zahl der übereinstimmenden Zeichen wächst. Ein Angreifer kann Zeichen für Zeichen Kandidaten ausprobieren und jeweils den mit der längeren Zeit wählen, wodurch er das Passwort erschließt, ohne alle Kombinationen durchzuprobieren. Werden die Unterschiede aller Zeichen z. B. per XOR gesammelt und erst am Ende ausgewertet, ist die Zeit unabhängig von der Zahl übereinstimmender Zeichen konstant.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Hardwaresicherheit

  1. Was ist der Hauptgrund, warum Seitenkanalangriffe über den Cache möglich sind?
  2. Welches Prinzip der als Spectre bezeichneten Schwachstelle der spekulativen Ausführung ist richtig?
  3. Warum fließen bei Angriffen wie Spectre Informationen ab, obwohl die Ergebnisse spekulativ ausgeführter Befehle verworfen werden?
  4. Welches Prinzip der bei manchen CPUs problematischen Schwachstelle Meltdown ist richtig?
  5. Welche Idee von KPTI (Kernel Page Table Isolation), das als Software-Gegenmaßnahme gegen Meltdown eingeführt wurde, ist richtig?