Elektrine lite

← Feed

@weizenspreu@chaos.social

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.

    Open ##2598929