Post #2089566
2025-12-08 13:23 UTC
Funfact aus der Kartenentwicklung:
Wusstet ihr, dass die Prüfung der Karten-PIN anders implementiert ist, als man denken möge?
Ein:e Normalo-Entwickler:in würde es wohl so bauen:
> // let's assume comparison is time-constant
> if (storedPIN == providedPIN) {
> doSomething();
> } else {
> failCounter++;
> }
Replies (1)
-
@weizenspreu@chaos.social 2025-12-08 13:25
Tatsächlich sieht es jedoch eher so aus: > // let's assume comparison is time-constant > failCounter++; > if (storedPIN == providedPIN) { > failCounter--; > doSomething(); > } Warum? Man stelle sich vor, nach der PIN-Prüfung wird der Strom gekappt, damit der Fehler-Counter nicht erhöht werden kann. Das wäre unpraktisch und würde Bruteforcing vereinfachen. Deshalb wird zuerst der Fehler-Counter erhöht, um sicherzustellen, dass Bruteforcing verhindert wird.