Projekt: wie funktionieren OTA Updates mit der CCU2?

Begonnen von betateilchen, 30 Januar 2014, 14:36:03

Vorheriges Thema - Nächstes Thema

Dirk

ZitatDen AES Key + den genauen Input für AES sollte man da drin finden denke ich.
Nicht unbedingt.
Der könnte genauso gut im Bootloader stecken. bzw. zusammen mit dem Bootloader in ungenutzten Bereichen des Flash's stecken. 
Zumindest währ das leichtsinnig den sonst so gut geschützten Schlüssel so leicht zugänglich zu machen.

Gruß
Dirk

jab

Zitat von: Dirk am 11 Februar 2014, 00:09:03
Nicht unbedingt.
Der könnte genauso gut im Bootloader stecken. bzw. zusammen mit dem Bootloader in ungenutzten Bereichen des Flash's stecken. 
Zumindest währ das leichtsinnig den sonst so gut geschützten Schlüssel so leicht zugänglich zu machen.
Da hast du recht. Die Frage ist ob der aus eq3 Sicht überhaupt gut geschützt ist, denn es kann ja jeder mit HMLAN oder dem Stick mit den Geräten reden. Für mich wäre die konkrete Implementierung der AES Signierung viel interessanter. Ansonsten könnte man versuchen den Key mit einem eigenen "Firmwareupdate" aus dem Flash zu lesen.


Gruß,
Jan

Dirk

ZitatAnsonsten könnte man versuchen den Key mit einem eigenen "Firmwareupdate" aus dem Flash zu lesen.
Das ist korrekt. Die Idee hatte ich auch schon.
Daher vermute ich, damit das nicht so leicht geht, dass die Firmware, wenn diese nicht verschlüsselt ist, zumindest irgendeine Art Signatur hat.


mgernoth

Zitat von: Dirk am 11 Februar 2014, 00:16:04
Daher vermute ich, damit das nicht so leicht geht, dass die Firmware, wenn diese nicht verschlüsselt ist, zumindest irgendeine Art Signatur hat.

Sieht für mich nach einem einfachen "Entropietest" leider doch verschlüsselt aus:


-rw-r--r-- 1 michael michael 67588 Feb 11 00:12 hm_cc_rt_dn_update_V1_2_007_131202.bin

$ bzip2 hm_cc_rt_dn_update_V1_2_007_131202.bin

-rw-r--r-- 1 michael michael 68236 Feb 11 00:12 hm_cc_rt_dn_update_V1_2_007_131202.bin.bz2


Bei einem anderen AVR-Binary (Ethersex Bootloader, keine Strings) sieht das etwas anders aus:


-rwxr-xr-x 1 michael michael 6016 Jun  7  2012 ethersex.bin

$ bzip2 ethersex.bin

-rwxr-xr-x 1 michael michael 4756 Jun  7  2012 ethersex.bin.bz2


Gruß
  Michael

jab

Falls die Firmware verschlüsselt ist kann mein Debugger die Verschlüsselung on the fly knacken. Solche schönen Callgraphen wie im Anhang entstehen nicht durch Zufall. Sobald man die Längen aus dem Hex entfernt wird das ganze gültiger AVR Code. Die Liste der Fehler ist ziemlich klein und wird vermutlich fast leer wenn man den richtigen Controller auswählt.

Gruß,
Jan

betateilchen

Zitat von: jab am 11 Februar 2014, 01:04:09Die Liste der Fehler ist ziemlich klein und wird vermutlich fast leer wenn man den richtigen Controller auswählt.

das heißt, irgendjemand müsste mal so einen Regler sezieren? Na mal schauen, ob ich heute abend dazu komme :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

jab

Abend,

ich habe gestern schon etwas angefangen. Leider ist so ein Microcontroller schwerer zu verstehen als ein C++ Binary mit Debugsymbols. Ich habe angefangen alle Funktionen ausgehend von den Interrupthandlern zu benennen. Leider fehlen mir aktuell noch zu viele Infos über die Hardware: Was ist an welchem Pin? Welcher ADC misst was? Welcher Interrupts wird wofür benutzt? Welcher Controller ist das überhaupt genau? Hat wirklich noch niemand das Ding aufgemacht? Ich wäre an Bildern sehr interessiert! Ansonsten muss ich mir wohl noch ein Spiel RT kaufen.


Gruß,
Jan

mgernoth

#52
Zitat von: jab am 11 Februar 2014, 17:27:54
ich habe gestern schon etwas angefangen. Leider ist so ein Microcontroller schwerer zu verstehen als ein C++ Binary mit Debugsymbols.

Ich hatte so gehofft, dass Du sinnvollen Code bekommst und wir mehr über die fehlenden HM-Teile (hauptsächlich AES) lernen können, aber leider muss ich Dir jetzt das Innenleben eines HM-CC-RT-DN zeigen (der, den ich gestern mehrmals geflashed habe). :-(

Originalgröße auf: https://rmdir.de/~michael/hm-cc-rt-dn/

Gruß
  Michael

betateilchen

ok... dann kann ich meinen RT ja nun wieder zusammenschrauben  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

jab

Hi,

@Michael: Danke für die Bilder! STM8L152 erklärt warum es Fehler im Disassembler gibt. Der ist etwas exotisch. Scheinbar decken sich die Opcodes großteils mit den von AVR Atmega. IDA Pro unterstützt den nicht direkt. Ich schau ob ich noch einen anderen Disassembler finde.


Gruß,
Jan

Robbi24

 Hi! Alle Achtung! Super Idee . Super Team.


  Was ist denn mit einer HM-RC-4-2 . Laut pdf lässt die sich auch OTA flashen und der Code ist sicher viel einfacher gestrickt.

    http://www.eq-3.de/Downloads/eq3/pdf_FAQ/OTAU_Firmware-Update.pdf


betateilchen

Das Verfahren dürfte auch bei der Fernbedienung nicht viel anders/einfacher sein.

Das simpelste Update war bisher beim Regensensor - da war am Gerät selbst überhaupt nichts zu tun.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

trilu

fernbedienung müsste vom code viel einfacher zu verstehen sein, da sind keine state maschines drin zur abfrage von irgendwelchen sensoren
oder ausgabe devices. aus meiner sicht hängen da die tasten am pin change interrupt und gut.
ausserdem ist da mit hoher wahrscheinlichkeit ein atmel drin, der auch noch von ida unterstützt wird.

habe gerade mal im usb-update tool nachgeschaut, da finde ich nur leider keine firmware für die fernbedienung...
ich könnte heute abend mal ein paar fotos vom innenleben machen...


betateilchen

@trilu: Geht es Dir jetzt eigentlich um die OTA Updates oder um die Firmware selbst?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

trilu

mir gehts um die firmware :-)
ich brauche den aes teil für meine lib  8)