Ich bin bin kürzlich in Besitz einer Matrixtastatur gekommen und wollte ein wenig damit herumspielen. Heute bin ich über diesen (http://forums.hackaday.com/viewtopic.php?f=3&t=3040) Link gestolpert. Dort wurde ein im Laden erwerbbarer Safe mittels Brute Force geknackt. Zwar gab es eine (temporäre) Sperre nach 3 Fehlversuchen, allerdings konnte man diese mittels Entfernen der Stromversorgung "aushebeln". Nun frage ich mich wie man das Ganze sicher(er) implementiert. Ich dachte daran bei x Fehlversuchen ein "Flag" ins EEPROM zu schreiben und dieses halt nach y Sekunden wieder zu löschen. Beim Initialisieren (sprich wenn die Stromversorgung zwischenzeitlich unterbrochen wurde) schaut man dann, ob das "Flag" im noch EEPROM vorhanden ist und fängt dann erneut an von y herunter zu zählen. Damit kann es zwar passieren, dass jemand (im Worst-Case) nahezu doppelt solange warten muss wie vorgesehen, nämlich dann, wenn die Zeit fast abgelaufen war und die Stromversorgung unterbrochen wurde. Andererseits reicht ein einzelnes Flag nicht aus. Man könnte ja auf die Idee kommen das Gerät bereits nach x-1 Fehlversuchen vom Strom zu trennen. Hierfür sehe ich zwei Optionen. Die Anzahl der Fehlversuche in den letzten z Sekunden im EEPROM festhalten und ggf. keine neuen Versuche zulassen. Mittels eines Countdowns könnte man dann z.B. jede Minute eins vom im EEPROM gespeicherten Wert abziehen. Beim Initialisieren fängt der Countdown dann wieder von vorne an, ähnlich wie beim oben beschriebenen Fall des "Flags". Das wirft allerdings die Frage der Haltbarkeit des integrierten EEPROMs auf. Wenn da jemand auf Biegen und Brechen das Ding mit Fehlversuchen bombardiert, dann geht das EEPROM eher oder später auch kaputt. Was dann passiert ist wohl schwer abzuschätzen, oder? Wie seht ihr das? Gibt es effektive Mittel den o.g. "Angriff" zu unterbinden? Dabei beziehe ich mich hier nur auf den "elektronischen" Aspekt. Der mechanische Weg (nämlich Sägen, Brechen, Schneiden, Biegen, etc.) soll mal außen vor gelassen werden. Und nein, ich will hier keinen Safe bzw. Tresor in Eigen-Regie bauen. Ich bin nur an theoretischen Aspekten interessiert das o.g. Problem in den Griff zu bekommen. Vielen Dank für eure Ideen bzw. Vorschläge!
Mach einfach eine Wartezeit nach jedem Reset rein, z.B. eine Minute. Wer die Batterie rausnimmt, muß eine Minute warten bis zur ersten Eingabe. Ist die Zeit rum, geht die CPU in Power-Down und wacht mit dem Interrupt beim Tastendruck auf.
Peter Dannegger schrieb: > Mach einfach eine Wartezeit nach jedem Reset rein, z.B. eine Minute. > Wer die Batterie rausnimmt, muß eine Minute warten bis zur ersten > Eingabe. > Ist die Zeit rum, geht die CPU in Power-Down und wacht mit dem Interrupt > beim Tastendruck auf. Gute Idee, und natürlich die Wartezeit nach 3 Fehleingaben.
Peter Dannegger schrieb: > Wer die Batterie rausnimmt, muß eine Minute warten bis zur ersten > Eingabe. Ja, wobei das halt dann unter Umständen "benutzerunfreundlich" ist. Wenn nämlich jemand die Batterie(n) wechselt und dann versucht den Safe (aus Testzwecken) zu öffnen, dann muss er sich gedulden. Aber hier scheint wie so oft der Widerspruch zwischen Bequemlichkeit und Sicherheit zu Tage zu kommen.
Du könntest so nen Supercap/Goldcap in den sicheren Teil des Safes einbauen. Die extern zugängliche Batterie lädt diesen und erst wenn er voll genug ist, wird die Eingabe freigeschaltet. Damit hast Du dann für nen paar Tage genug Strom um Daten im RAM zu behalten (wie z.B. den Zählerstand) und einen Timer laufen zu lassen. Außerdem würde ich die Wartezeiten nach kontinuierlichen Fehleingaben immer weiter verlängern. Also z.B. so: 3 Fehlversuche - 1 Min warten - 3 Fehlversuche - 2 Min warten - 3 Fehlversuche - 4 Min warten usw.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.