Forum: Offtopic Was zum knobeln, Algorithmus finden


von 3162534373 .. (3162534373)


Angehängte Dateien:

Lesenswert?

Hi,
ich hab hier ne Black Box.
Da stecke ich 4 Bytes rein und es kommen 4 Bytes wieder raus :)
Allerdings sind die Bytes die raus kommen irgendwie verdreht, 
verschoben, gekippt, verrechnet.....

Ein Beispiel:

00 00 00 00 => 96 B4 0F 11
..
00 1C 00 00 => CB 2C 22 36
..
55 55 55 55 => 39 45 F0 B7

Das was rein geht kann jede billige Zahl sein, also doch eine recht 
grosse Anzahl an Kombinationen ;)
Bei gleicher Eingabe kommt auch immer das gleiche Ergebnis heraus.

Wer findet das Muster, den Algorithmus?
:)

Im Anhang noch ein paar mehr Muster.

Grüße

von Tcf K. (tcfkao)


Lesenswert?

Gibt es Geld für die Lösung?
Oder ist das eine Stellenausschreibung der NSA oder des BND?

von 3162534373 .. (3162534373)


Lesenswert?

Also wenn es nur ums Geld geht ;)
Dann gibt es 50 Euro für die Lösung
Oder willst du lieber nen Job haben?

von K. L. (trollen) Benutzerseite


Lesenswert?

Frag doch Bosch nach der Lösung du Witzbold...

Bei diesem Rätsel geht es um die Kommunikation bei einem Pedelec das 
einen Boschantrieb hat. Die im Forum können es nicht knacken, deswegen 
sollen wir jetzt "knobeln".

http://www.pedelecforum.de/forum/index.php?threads/infos-%C3%BCber-bosch-antrieb-can-bus-daten-usw.17799/page-6#post-567311

Zwei Posts weiter ist dann auch die hier angehängte Datei: ccat4.txt

@Zahlennick Schöne Grüße an Google und schreib sowas das nächste mal 
gleich in den Thread :)

von Magic S. (magic_smoke)


Lesenswert?

Wie schnell muß das sein? Falls sich die Geschwindigkeit in Grenzen 
hält, wäre ein Controller mit 16GB EEPROM (SD-Karte) und Lookup-Table 
ein möglicher Ansatz. Das wird nicht so schnell wie eine Berechnung, 
aber die Position des Ausgangs-Codes im Speicher kann man direkt 
berechnen und deswegen trotz der Größe der Datei schnell darauf 
zugreifen.

von Mani W. (e-doc)


Lesenswert?

3162534373 .. schrieb:
> ich hab hier ne Black Box.

Ich habe hier eine White-Box:

Da stecke ich ein Ding rein und es kommt auch das selbe Ding wieder 
raus...


Wer findet den Algorithmus?

: Bearbeitet durch User
von 🍅🍅 🍅. (tomate)


Lesenswert?

Dump mal den gesammten Datensatz, als Lockup-Table sollten dass dann 4GB 
sein. Dann mal versuchen, mit guten Zipprogramm zu komprimieren. Wenn da 
System (wiederholende Sequenzen oder gleiche Daten)  drin ist, dann 
findet es das Programm nomalerweise und macht mit Huffman-Code und 
Wörterbuch-Algo weniger Daten draus. Dann hier posten und mit hexeditor, 
Statistik und geschicktem Suchen versuchen, das System dahinter zu 
finden. Die wenigen geposteten Daten reichen dazu IMO nicht.

: Bearbeitet durch User
von 3162534373 .. (3162534373)


Lesenswert?

Rote T. schrieb:
> Dump mal den gesammten Datensatz

Moin,
die Box antwortet nur alle 300ms ;)
Würde also ewig dauern alle Antworten zu bekommen :(
Grüße

von 🍅🍅 🍅. (tomate)


Lesenswert?

BTW, da ist schon System drin, die Bytes beeinflussen sich über kreuz, 
d.h. oberen 2 Bytes haben einfluss auf die unteren 2 Bytes und 
andersrum.
FF FF unteres Byte => 01 0A oberes Byte in zieldaten
01 0A unteres Byte => BA 96 oberes Byte in zieldaten
FE FE unteres Byte => 70 8D oberes Byte in zieldaten
01 01 oberes Byte => 9C 38 im unteren Byte in Zieldaten

Wenn das auch für den Rest der Daten stimmt, dann reicht schon eine 
billige Lockup-Datei in einem 64k/128k EPROM oder ein besserer uc.

Wie sieht es mit den versprochenen 50€ aus?
1
01 00 00 00 = 96 B4 0A 66
2
00 01 00 00 = 96 B4 CA 5F
3
01 01 00 00 = 96 B4 9C 38
4
01 01 00 01 = BA 96 9C 38
5
6
00 00 01 00 = 90 F6 0F 11
7
00 00 01 01 = C1 28 0F 11
8
00 00 00 01 = BA 96 0F 11
9
00 00 00 00 = 96 B4 0F 11
10
11
FE FE FE FE = 70 8D 00 7F
12
FE FE FE FF = B0 9F 00 7F
13
FE FE FF FE = 3A E4 00 7F
14
FE FE FF FF = 01 0A 00 7F
15
16
FE FF FF FF = 01 0A 29 0D
17
FF FE FF FF = 01 0A 8F DB
18
19
FF FF FE FE = 70 8D EE 1B
20
FF FF FE FF = B0 9F EE 1B
21
FF FF FF FE = 3A E4 EE 1B
22
FF FF FF FF = 01 0A EE 1B

von 3162534373 .. (3162534373)


Lesenswert?

ja noch fehlt der Algorithmus.

Es muss ja für alle Kombinationen passen ;)

692a4963 = 976bb658

aeed49a4 = 7ad16a6a

d19249db = 0ff2740c

eead49e4 = 3c471547

von 🍅🍅 🍅. (tomate)


Lesenswert?

Poste mal eine Liste mit Daten, wo die oberen 2 Bytes fix (z.B. 00 00) 
sind und die unteren 2 Bytes ändern.

Dann eine wo die unteren beiden fix und die oberen 2 ändern
so in dem Stil:
1
00 00 02 02 = AB B6 39 03
2
00 00 02 03 = 5D E9 39 03
3
00 00 03 02 = 24 19 39 03
4
00 00 03 03 = 42 B8 39 03
5
6
00 00 04 04 = 78 FF 8B 15
7
00 00 04 05 = 5C F4 8B 15
8
00 00 05 04 = 5E A7 8B 15
9
00 00 05 05 = EB A3 8B 15

von 3162534373 .. (3162534373)


Angehängte Dateien:

Lesenswert?

Hi,
ist im Anhang :)
Grüße

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Und das alles ist nur eine Prüfsumme oder ein Handshake? Das kommt mir 
recht viel vor für ein E-Bike wenn es nur um Manipulationsschutz geht...
Was ist denn mit Sachen wie:
-Wunschmoment
-Drehrichtung (?)
-Antrieb Ein/Aus
-Max. Moment
-Max. Drehzahl
-Max. Strom

usw., sowie die Antworten des Antriebs:
-Ist Strom
-Ist Moment
-Ist Spannung
-Ist Drehzahl
-Ist Temperatur

Oder wie läuft das bei so einem E-Bike...?

Grüße,
Alex

von (prx) A. K. (prx)


Lesenswert?

Alex B. schrieb:
> Und das alles ist nur eine Prüfsumme oder ein Handshake?

Das scheint ja wohl ein Device zu sein, das deterministisch auf den 
gleichen 32-Bit Wert mit der immer gleichen 32-Bit Antwort reagiert ohne 
ab und zu mal in Rauch aufzugehen oder anderweitig Unfug zu stiften. 
Geräte mit produktiver Funktion reagieren meist anders. Das klingt 
folglich nach einer Art Dongle.

: Bearbeitet durch User
von Markus M. (adrock)


Lesenswert?

...was es ist steht ja im anderen Forum:

Die Challenge/Response am CAN zur Erkennung ob am Pedelec ein 
Originalakku angeschlossen ist.

Wenn nicht der richtige Code am CAN vom Akku zurückgeschickt wird, 
schalter das System ab :-)

von Tcf K. (tcfkao)


Lesenswert?

Markus M. schrieb:
> Wenn nicht der richtige Code am CAN vom Akku zurückgeschickt wird,
> schalter das System ab :-)

Eben, und wenn die Antwort Teil eines sha-Hashes ist kannst Du nach dem 
Algorithmus suchen bis zum Sankt Nimmerleinstag, vor allen Dingen wenn 
das noch gesaltet sein sollte...

https://de.wikipedia.org/wiki/Secure_Hash_Algorithm

Da ist den Akku aufmachen und versuchen die Firmware zu reverse 
engineeren vermutlich noch einfacher.

von (prx) A. K. (prx)


Lesenswert?

Tcf K. schrieb:
> Da ist den Akku aufmachen und versuchen die Firmware zu reverse
> engineeren vermutlich noch einfacher.

Oder eine 16GiB µSD - aka 32GB.

von Malte S. (maltest)


Lesenswert?

Tcf K. schrieb:
> Eben, und wenn die Antwort Teil eines sha-Hashes ist kannst Du nach dem
> Algorithmus suchen bis zum Sankt Nimmerleinstag, vor allen Dingen wenn
> das noch gesaltet sein sollte...

Im Prinzip schon, aber das passt so eher gar nicht zu:

Rote T. schrieb:
> BTW, da ist schon System drin, die Bytes beeinflussen sich über kreuz,
> d.h. oberen 2 Bytes haben einfluss auf die unteren 2 Bytes und
> andersrum.

und einem kurzen Blick auf die Daten, der mich eher eine relativ simples 
XOR-Shift-Geschwurbel vermuten ließe. Betonung liegt auf kurz.

von Markus M. (adrock)


Lesenswert?

Das mit der Lookup-Table geht nicht, da wie der TO schrob, nur alle 
300ms ein Wert zurückgegeben wird. Alle 4 Milliarden Möglichkeiten 
abzufragen wird also eine Weile dauern...

: Bearbeitet durch User
von Pandur S. (jetztnicht)


Lesenswert?

Ich hatte auch mal so ein Problem und habe dann 2 Wochen Vollzeit 
verbraten, und fand's nicht.
Nur so zu den 50 Euro....

von Thomas E. (thomase)


Lesenswert?

Oder D. schrieb:
> Ich hatte auch mal so ein Problem und habe dann 2 Wochen Vollzeit
> verbraten, und fand's nicht.
> Nur so zu den 50 Euro....

Die hättest du aber nicht bekommen, weil du es ja nicht gefunden hast. 
Wenn er 100000€ ausgelobt hätte, bekämest du die folglich auch nicht. 
Also ist es doch völlig egal.

mfg.

von Yalu X. (yalu) (Moderator)


Lesenswert?

3162534373 .. schrieb:
> die Box antwortet nur alle 300ms ;)
> Würde also ewig dauern alle Antworten zu bekommen :(

Wieso? Es dauert nicht einmal ein Jahr, wenn du dir 41 von diesen Akkus
zulegst, die du ja anschließend als fast neuwertig weiterverkaufen
kannst. Das ist sicher billiger und zielführender als jahrelang
erfolglos zu versuchen, den Algorithmus zu finden.

Es sticht zwar sofort ins Auge, dass die Bits 0 und 8 (bzw. 16 und 24)
der Anfrage nur die Bits 16 bis 31 (bzw. 0 bis 15) der Antwort
beeinflussen. Das ist aber nur ein Honigtopf, den Bosch eingebaut hat,
um die Anstrengungen von 1337 h4x0r2 wie dir zu binden und im Nirwana
verpuffen zu lassen.

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Yalu X. schrieb:
> um die Anstrengungen von 1337 h4x0r2 wie dir zu binden und im Nirwana
> verpuffen zu lassen.
1
AB AD 1D EA
2
BA DC 0D ED

Leider kann ich nichts konstruktives beitragen. Dennoch viel Erfolg bei 
der Suche. Der "Ursprungs-Thread" in diesem "Pedelec-Forum" liest sich 
auch sehr interessant...

Viele Grüße,
Alex

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

Hallo ein nettes aber aufwendiges Objekt für eine Spielmit einem 
brutforce Angriff.

Was sich scheinbar leicht ablesen lässt  ist, dass das lowest Bit das 
Lowerword nicht beeinflust. Aber schon Bit 2 wirbelt alles ducheinander.

Es wäre sicher gescheiter die Tabele binär darzustellen und die 
Funktionalität der Eingangsbits einzeln in der gesamten Tabelle zu 
prüfen.

Erst im 2. Schritt würde ich die Bitkombinationen untersuchen.

Intressant wäre auch zu erfahren ob es Ergebnisswerte mit aufälligen 
Bitmustern gibt oder solche die Symmetrien aufweisen.

Oder ob die Abbildung eineindeutig ist  sprich jedem möglichen Ergebnis 
ein genau ein passendes Request zugeordnet werden kann.

Namaste

von Michael B. (laberkopp)


Lesenswert?

Markus M. schrieb:
> Die Challenge/Response am CAN zur Erkennung ob am Pedelec ein
> Originalakku angeschlossen ist.

K. L. schrieb:
> Frag doch Bosch nach der Lösung du Witzbold...

Vielen Dank für die Info, welches Pedelec man sich NIEMALS kaufen darf.

von Markus M. (adrock)


Lesenswert?

Naja, die Bastellösung ist ja, aus einem Originalakku die Elektronik zu 
nehmen und an einen Selbstbauakku zu verpflanzen.

Ich glaube der OT wollte das irgendwie kommerziell nutzen, was jedoch 
sowieso fragwürdig ist.

von 3162534373 .. (3162534373)


Lesenswert?

Alex B. schrieb:
> Und das alles ist nur eine Prüfsumme oder ein Handshake? Das kommt mir
> recht viel vor für ein E-Bike wenn es nur um Manipulationsschutz geht...
> Was ist denn mit Sachen wie:

Hi,
wie die anderen schon geschrieben haben ist das die 
Challenge-Response-Authentifizierung vom Akku.
Alle anderen Daten auf dem CAN-Bus sind nicht verschlüsselt und die 
meisten können per zuschauen zugeordnet werden.

Eigene Elektronik bauen um anderen Akkus fahren zu können wäre cool :)
Dafür braucht man die Challenge-Response
Grüße

von Johannes O. (jojo_2)


Lesenswert?

Ich hab da mal nen Blick drauf geworfen. Die versuchen da irgendwelche 
Crypto zu machen.
Es gibt Hersteller die sowas recht sicher umsetzen können. Oftmals gehts 
aber grandios daneben. Je mehr sowas "selbst ausgedacht" wurde, desto 
eher wurden schwerwiegende Designfehler gemacht.

Auf den ersten Blick steckt da schon zuviel Regelmäßigkeit drin: Siehe 
die ganzen Spielereien mit "letztes Bit kippen, zwei Byte bleiben 
gleich". Schaut also irgendwo selbstgemacht aus.
Warum sollten die es tun? Um irgendwelche Honeypots aufzustellen? Und 
deshalb Sicherheit / Länge der Response verschenken? Damit wird sowas ja 
erst interessant...


Wenns sicher sein soll, dann würd ich Response = SHA-X(KEY+Challenge) 
verwenden, mit ausreichend langem KEY und ner SHA Hash Funktion nach 
Wahl / Möglichkeit. Das wär dann so gut wie unmöglich zu knacken, 
solange niemand den Code auslesen kann. Sofern die sowas gemacht haben 
(auf einen Teil der Challenge Bits!), seid ihr da recht chancenlos. 
(Wobei sie da schon mehr als 32 bit hätten spendieren dürfen...)


Irgendwo hab ich gelesen: Maximal eine Antwort pro 300 ms? Was passiert 
denn, wenn direkt danach die Spannung unterbrochen wird oder der 
Mikrocontroller einen Reset bekommt. Gehts dann doch schneller?


Grundsätzlich würd ichs weiterhin probieren. Die folgenden Schritte 
können sinnvoll sein:

- Macht BEIDE GERÄTE mal auf, welcher Mikrocontroller wird verwendet?
- Lässt sich einer der beiden Controller auslesen?
- Oder haben sie sogar externen Flashspeicher? => Ablöten und auswerten!
- Wie lange braucht das Challenge-Response Verfahren?
- Ändert sich die Ausführungszeit mit den Daten?
- Gibts Korrelationen zwischen Challenge und Response Bits?
- Wurden bereits Kollisionen gefunden?
- Sind die Response Werte gleichverteilt?
- Stromaufnahme des Chips auswerten: Lassen sich so etwas wie "Runden" 
erkennen?
- Was unterstützt die Hardware des Controllers an Cryptofunktionen? Oft 
ist ein AES Hardwaremodul dabei (das könnte auch für sowas benutzt 
werden)
- Unterstützt die Firmware im Controller sonst noch was? Da könntet ihr 
mal per Fuzzing probieren, Programmierfehler zu finden. Evtl. lässt sich 
da ja was ausnutzen...

Das sollten ein paar Anregungen sein, da würde zumindest ich 
weitermachen.


Evtl. wird ja mal wieder was geknackt, beim Meteotime Chip hats damals 
hier ja auch geklappt ;-)

von 3162534373 .. (3162534373)


Lesenswert?

Hi,
die Spannungsversorgung ist der Akku selbst. Das Ein- und Ausschalten 
dauert noch länger als 300ms.
Prozessor ist ein STM8AF51A9. Also simpler 8 Bit ohne Hardwarecrypto. 
(Im Motor und im Akku)
Flash und EEprom intern, nicht auslesbar weil durch Fuses gesperrt.
Antwortzeit ist immer 319ms.
Grüße

: Bearbeitet durch User
von Tcf K. (tcfkao)


Lesenswert?

3162534373 .. schrieb:
> Antwortzeit ist immer 319ms.

Stromaufnahme in dieser Zeit genau messen (Scope), ob der da wirklich 
rödelt oder ob das nur eine Brute-Force-Sperre ist.

von Matthias L. (Gast)


Lesenswert?

Also ich glaube durch "Scharfes Hinsehen" wird das wohl nichts. Kann der 
Code ausgelesen und disassembliert werden? Oder verhindert das auch die 
Fuses?

von Uhu U. (uhu)


Lesenswert?

Johannes O. schrieb:
> Irgendwo hab ich gelesen: Maximal eine Antwort pro 300 ms? Was passiert
> denn, wenn direkt danach die Spannung unterbrochen wird oder der
> Mikrocontroller einen Reset bekommt. Gehts dann doch schneller?

Überleg doch:
  * µC schickt Challenge
  * Akku läßt sich 300 ms Zeit, bis er die Antwort schickt

Wenn du da zwischendrin den Strom abstellst, gehts höchstens länger...


Aber ihr könnt ja mal versuchen, mit der Hälfte der bekannten Daten ein 
neuraonales Netz zu trainieren und dann zu testen, ob es die andere 
Hälfte der Daten richtig errät...

: Bearbeitet durch User
von Vorn N. (eprofi)


Lesenswert?

> Evtl. wird ja mal wieder was geknackt, beim Meteotime Chip
> hats damals hier ja auch geklappt ;-)
Ui ja, das wäre wieder eine Aufgabe für die damalige Runde, ich wäre 
dabei!

Bei 300ms geht das ja viel schneller als damals (30 s).
Schaut euch mal das Video vom CCC an, wo sie den angeblich sicheren Code 
des Microchip-Keeloq (Hopping-Code für Funkschlüssel (Auto, Garage 
etc.)) geknackt haben. Oder die Crypto-iButtons von Dallas.
Das ist nur eine Frage der Zeit - irgend eine Schwachstelle ist drin.
32 Bits is ja heute kein Problem mehr.
Mal sehen, ob es beim freundlichen Chinesen nicht ein paar solcher Chips 
gibt.
Zuerst gilt es, eine ordentliche Datenbank mit ein paar Tausend Sätzen 
zu schaffen.
Dann Stromverbrauch analysieren. Schauen, ob man die 300ms drücken kann.
Packen wir's an!

von Matthias L. (Gast)


Lesenswert?

Im Pedelec Forum war etwas ASM-Code gepostet? Konnte der STM ausgelesen 
werden? Wenn ja, wer hat den?

von 3162534373 .. (3162534373)


Lesenswert?

bekommt man es auch ohne den asm-Code hin?

Zitat aus dem Pedelecforum:

"Uiuiuiui, jetzt wirds warm, schaut euch mal diese seed/key 
Kombinationen an. Die Differenz im key ist dabei immer 3. Die 
Darstellung ist
hex seed1 key1
hex seed1 key1+3
bin seed1 key1
bin seed1 key1+3

diff = 3
0xFFBB0015 0x330DB5DB
0xFFBA0015 0x330DB5DE
0b11111111101110110000000000010101 0b00110011000011011011010111011011
0b11111111101110100000000000010101 0b00110011000011011011010111011110
------------
0xFFBB0014 0x49A6B5DB
0xFFBA0014 0x49A6B5DE
0b11111111101110110000000000010100 0b01001001101001101011010111011011
0b11111111101110100000000000010100 0b01001001101001101011010111011110
------------
0x05BC0000 0x83D9F374
0x04BC0000 0x83D9F377
0b00000101101111000000000000000000 0b10000011110110011111001101110100
0b00000100101111000000000000000000 0b10000011110110011111001101110111
------------
0xFFC300F5 0xBDCF4EE8
0xFFC200F5 0xBDCF4EEB
0b11111111110000110000000011110101 0b10111101110011110100111011101000
0b11111111110000100000000011110101 0b10111101110011110100111011101011
------------
0xFFC300F4 0xED884EE8
0xFFC200F4 0xED884EEB
0b11111111110000110000000011110100 0b11101101100010000100111011101000
0b11111111110000100000000011110100 0b11101101100010000100111011101011

"

von Matthias L. (Gast)


Lesenswert?

3162534373 .. schrieb:
> bekommt man es auch ohne den asm-Code hin?



DIe Methode des scharfen Hinsehen klappt bei mir nicht. Ist der ASM-COde 
verhanden?

von 3162534373 .. (3162534373)


Lesenswert?

hm...

wohl nicht genug Autisten hier.

Mit dem Quellcode könnte ich es ja selbst rausfinden :D

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

Autismus ungleich Savange Syndrom!
Namaste

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.