Forum: Compiler & IDEs Menü schützen durch eingabe einer berechneten nummer


von Hans Lang (Gast)


Lesenswert?

Hallo,

ich versuche einige Menüpunkte in meinem Benuteroberfläche zu sperren.

Ich verwende einen AT Mega 128 Über das Display werden verschidene 
Menüpunkte angezeigt, ich habe normale tasten für die eingabe, aber kein 
numeric Display sondern nur links rechts und plus minus.

Ich möchte einige Punkte per "Passwort" schützen und zwar so das ich 
einen Unlockcode bereistellen kann nach anruf dieser sollte dann 
einmalig zum verstellen funktionieren und sich danach das System wieder 
sperren.

Also müsste ich eine Zahl anzeigen und auf Eingabe waren, nur wie soll 
ich diese wechselnde Zahl vefschlüsseln ? Das wäre ja eigentlich keine 
Verschlüsselung ? Da kenne ich mich überhaupt nicht aus. Früher habe ich 
schonmal soetwas gemacht mit binär und komplimet bildung, aber das 
sollte halt z.b. eine 5 stellige zahl angezeigt werden und das Ergebniss 
nicht alzugroß werden da ich kein numerisches Display habe zum eingeben.

ciao
Hans

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Naja, du kannst zum Bleistift nach einem bestimmten Algorithmus eine
Pseudo-Zufallszahlenfolge benutzen.  Jede erfolgreiche Benutzung
einer Zahl ruft dann den Zufallszahlengenerator erneut auf.  Die
letzte benutzte (oder die nächste zu benutzende) musst du dir dabei
im EEPROM merken.

Nachteilig ist, dass jemand anders mit genügend vielen Beispielen
den Algorithmus erraten kann.

Alternativ kannst du sowas wie TANs vergeben: eine voreingestellte
Liste möglicher Codes, wobei du dir wiederum den zuletzt benutzten
im EEPROM merkst.  Nachteil: wenn die Liste alle ist, ist Schluss.

Nachteil der EEPROM-Merke-Variante ist natürlich, dass jemand, der
den EEPROM manipulieren kann, die Folge von vorn beginnen lassen
kann.  Wenn du sowas vermeiden willst, brauchst du wohl einen von
diesen spreng-, brand- und einbruchsicheren "secure controller"n,
bei denen man ohne NDA nichtmal das Datenblatt bekommt.

Statt des Zufallszahlenalgorithmus zum Weiterschalten kann man auch
kryptografische Prüfsummen nehmen; dann bist du bei sowas wie einem
MD5-basierten Einmalpasswortsystem:

http://www.faqs.org/rfcs/rfc1938.html

Googel nach "opie one-time passwords in everything"

von Hans Lang (Gast)


Lesenswert?

Hallo Jörg,

hmm ja ich glaube das "opie one-time passwords in everything" vielleicht 
schon etwas oversized ist, aber eine gute Idee.

Ich dachte mir nur die Nummer im EEprom zu speichern die der User sowiso 
angezeigt bekommt und ich rechne erst los wenn die 2. Zahl eingegeben 
wurde.

Und genau das mit dem Algorithmus ist für mich das Problem, ich möchte 
da nicht mit Kommastellen arbeiten oder zum runden anfangen, hmm

Hans

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nein, alles Integer.  Du kannst ja als Weiterschalt-Algorithmus das
normale rand() benutzen.  Mit srand() jeweils auf den alten Wert
seeden, einmal rand() aufrufen und das als neuen Wert nehmen.  Ggf.
einfach die vorderste Stelle und das Vorzeichen weglassen bei der
Eingabe und dem Vergleich.

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
Noch kein Account? Hier anmelden.