Forum: PC-Programmierung One Time Password reversen


von fhbl (Gast)


Lesenswert?

Mal eine Frage. Eine Software generiert eine 4 stellige Kombi (nur 
Buchstaben, keine Zahlen) und eine zweite Software kann damit einen 8 
stelligen Code  (auch nur Buchstaben) ausgeben, der wiederum in der 
ersten Software gewisse Einstellungen freischaltet.

Wie schwer ist es ungefähr dahinter einen Algorithmus zu finden / die 
Antwort-Codes selbst generieren zu können?

Ist es grundsätzlich möglich wenn man einige Codes hat (4 stellige 
Anfrage und 8 stellige Antwort dazu) das Muster dahinter rauszufinden?
Ja, ist vermutlich vom Einzelfall abhängig, aber so allgemein?

Die Software selbst zu reverse engineeren kommt in diesem Fall nicht in 
Frage.

Danke

von Karl K. (karlklamson)


Lesenswert?


von Gerhard (Gast)


Lesenswert?

Nein, ist nicht möglich. Da kann man ja nur raten, und wenn ein 
gefundener Algorithmus bei den "einigen" bekannten passt, muss es bei 
den anderen noch lange nicht passen.

Die Software zu analysieren verspricht dagegen schnellen Erfolg. Du 
brauchst ja nichtmal den Algorithmus "reverse-engineeren". Es würde 
reichen, die Funktion aus der Software in deine zu transplantieren. Wenn 
für eine andere Maschine geschrieben, dann halt mit Emulator.

Was spricht denn von deiner Seite dagegen?

von foobar (Gast)


Lesenswert?

> Ist es grundsätzlich möglich wenn man einige Codes hat (4 stellige
> Anfrage und 8 stellige Antwort dazu) das Muster dahinter rauszufinden?
> Ja, ist vermutlich vom Einzelfall abhängig, aber so allgemein?

Grundsätzlich und allgemein?  Nein.

von Εrnst B. (ernst)


Lesenswert?

fhbl schrieb:
> Ist es grundsätzlich möglich wenn man einige Codes hat (4 stellige
> Anfrage und 8 stellige Antwort dazu) das Muster dahinter rauszufinden?
> Ja, ist vermutlich vom Einzelfall abhängig, aber so allgemein?

im Allgemeinen hängt es davon ab, wieviel "einige" sind.

Für "einige" im Bereich von 500000 baust du das ganze einfach als 
Table-Looup nach, bei "Nicht gefunden" muss man halt einen neuen 
Anfrage-Code erzeugen lassen.

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

One time passwords können per Prinzip nicht entschlüsselt werden. Ein 
einziges XOR reicht aus, daß ich dir zu jeder verschlüsselten Nachricht 
einen passenden Schlüssel liefern kann, der dir jeden gewünschten 
Klartext daraus generiert. Du bist hinterher genau so schlau wie vorher.

von JJ (Gast)


Lesenswert?

Ben B. schrieb:
> One time passwords können per Prinzip nicht entschlüsselt werden. Ein
> einziges XOR reicht aus, daß ich dir zu jeder verschlüsselten Nachricht
> einen passenden Schlüssel liefern kann, der dir jeden gewünschten
> Klartext daraus generiert. Du bist hinterher genau so schlau wie vorher.

Du meinst ein One-Time-Pad. Das ist aber nur dann nicht zu entschlüsseln 
wenn es max. einmal verwendet wird. Das wird hier nicht der Fall sein.

Trotzdem ist es unwahrscheinlich das Problem zu lösen wenn sich der 
Hersteller etwas Mühe gegeben hat. Du kannst ja mal ein simples XOR mit 
einem Par von den Codes versuchen. Wenn es das ist bekommst du damit 
direkt das Passwort zurück.

Eine Möglichkeit die Methoden auszuprobieren findest du hier: 
https://gchq.github.io/CyberChef/

von MaWin (Gast)


Lesenswert?

fhbl schrieb:
> Die Software selbst zu reverse engineeren kommt in diesem Fall nicht in
> Frage.

warum?

von fhbl (Gast)


Lesenswert?

Gerhard schrieb:
> Was spricht denn von deiner Seite dagegen?

Ist keine PC Software sondern auf einem Mikrocontroller von Fuji mit 
aktivem Lockbit, das ganze übersteigt dann den Aufwand (falls es 
überhaupt möglich ist).

Jetzt bin ich trotzdem wieder etwas schlauer :)

von Jens M. (schuchkleisser)


Lesenswert?

4 Ziffern rein heißt prinzipbedingt ja maximal 10000 Möglichkeiten.
Das kann man ausprobieren, bei 1x alle zehn Sekunden kann man das in 
knapp 4 Tagen schaffen, Arbeitstage wohlgemerkt.
Das ergibt dann eine feine Tabelle in der man dann einfach nachsehen 
kann.

Aber: Mit etwas Intelligenz des Programmierers ist der Code nicht nur 
4-stellig sondern bezieht z.B. das Datum oder die Zeit mit ein, und dann 
war's das mit der LUT.

Ich kenne aber auch Bedienterminals, bei denen der Code beliebig ist und 
z.B. nur die Quersumme identisch sein muss.
So kann der Servicefritze so tun als ob der Code OTP wäre, aber 
eigentlich ist es ganz einfach, ähnlich an mancher Maschine "Geben die 
das Passwort ein:" und man muss "das Passwort" eingeben: doof und leicht 
zu merken, aber Gelegenheitsfummler finden's nicht.

von (prx) A. K. (prx)


Lesenswert?

Jens M. schrieb:
> 4 Ziffern rein heißt prinzipbedingt ja maximal 10000 Möglichkeiten.

Bei den hier aufgeführten 4 Buchstaben sind es ein paar mehr.

von Jens M. (schuchkleisser)


Lesenswert?

(prx) A. K. schrieb:
> Bei den hier aufgeführten 4 Buchstaben sind es ein paar mehr.

Ah sorry, hatte genau falschrum gelesen "nur Zahlen keine Buchstaben", 
danke.
Wenns genau andersrum ist, sinds halt ein paar Möglichkeiten mehr.
So 457000 etwa, dauert halt ein wenig länger.
Oder bei Groß/Klein 7,3 Mio.

Und dann hängts ja auch noch davon ab ob sich der Code ändert, nach dem 
Motto "abcd? Oh, leider falsch, was passt zu efgh?", dann klappt das 
nie.
Sonst könnte man ja einen Hackomaten bauen der die Kombination brutal 
forciert ;)

Vielleicht ist es aber auch simpel nur eine Zahl, die z.B. ähnlich 
Base64 kodiert wird, d.h. es gibt nicht alle Kombinationen.

: Bearbeitet durch User
von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Ich habe sowas mal mit mehreren Stufen gemacht, ging um eine Verbindung 
zwischen Code-Terminal und eigentlicher Alarmanlage. 32 Bit Startwert 
für einen Zufallszahlengenerator, der von der Alarmanlage in kurzen 
Zeitabständen vorgegeben wird, eine große Codetabelle, aus welcher der 
Terminal-Controller frei wählen kann und zuvor übertragene Daten werden 
auch noch mit reingekippt. Alles kräftig durchgerührt, fertig sind ein 
paar komplett wechselnde Bytes für einen einzelnen Tastendruck. 
Zusätzlich macht der Alarmanlagen-Controller mächtig Radau, wenn er 
korrekt kodierte Frames bekommt, diese aber nicht mit dem aktuellen 
Startwert entschlüsseln kann. Wer sowas wie Replay-Angriffe probieren 
sollte, kriegt was auf die Ohren.

von Εrnst B. (ernst)


Lesenswert?

Jens M. schrieb:
> Aber: Mit etwas Intelligenz des Programmierers ist der Code nicht nur
...

Schlechte Programmierer entwickeln sowas selber und fallen auf die 
Schnauze.

Gute Programmierer verwenden fertige Algorithmen, in diesem Fall wäre 
z.B. eine Abwandlung von RFC 4226 (HOTP) denkbar. Mit Berücksichtigung 
der Zeit: TOTP.

Echte™ Programmierer schreiben die RFCs.

von Pandur S. (jetztnicht)


Lesenswert?

One time pads bedeutet eine Streichliste und wennn die durch ist 
schmeisst man alles weg.

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.