Hilfe zur Bootloaderimplementierung

Gast #2442176
Lesenswert?

Guten Morgen, ich habe ein Bootloadertoll geschrieben mit dem ich einen 
Mikrocontroller flashen kann. Nach Beendigung des Flashvorgangs wird ein 
Reset im Mikrocontroller ausgeführt und die neue Applikation starten. 
Das funktioniert bei mir soweit. Nun möchte ich ein paar 
Sicherheitsaspekte einbauen. Zum Beispiel crc berechnen und vergleichen. 
Ich habe mir es so vorgestellt. Das PC Bootloadertool läd die binäre 
Datei. In der binären Datei ist zum Schluß eine CRC Prüfsumme enthalten, 
die zuvor über alle binären Daten berechnet wurde. Diese CRC Prüfsumme 
soll zuerst (bevor Flashvorgang ausgeführt wird) mit der aktuellen 
Prüfsumme die im Mikrocontroller enthalten ist verglichen werden. Stimmt 
die Prüfsumme nicht überein, dann kann der Flashvorgang gestartet 
werden. Welche Möglichkeiten gibt es noch ?

Für jede Unterstützung bedanke ich mich schonmal im Vorfeld.
Gast #2442239
Lesenswert?

Erklär doch mal genauer, was du unter Sicherheitsaspekten verstehst.
Das von dir beschriebene Prüfverfahren macht generell schon Sinn, 
allerdings würde ich das nicht unter "Sicherheitsaspekte" eingruppieren.

Nach meinem Verständnis wären Sicherheitsaspekte eher:
+ Unbefugten Zugriff verwehren.
+ Prüfen ob Applikation richtig geflasht wurde
+ Falls beim Flashen ein Fehler auftrat: im Bootloader verbleiben, auch 
nach einem Reset
#2442299
Lesenswert?

Ich wuerde jedes versendete Packet mit einem CRC sichern. Und wenn der 
CRC des Packetes nicht stimmt, wird das Packet nochmals uebertragen.

Und ja, einen Gesammtcheck sollte man irgendwie haben. zB indem alle 
Packete gecheckt werden und man weiss wieviele Packete dazugehoeren.

Toll, wenn du das ganze Programm uebertragen kannst um auf Korrektheit 
zu pruefen. Nicht jeder hat so viel RAM. Ich musste bei meinem 
Bootloader direkt brennen. Jedes korrekt uebertragene Packet wurde 
sofort gebrannt.
Gast #2442528
Lesenswert?

>Diese CRC Prüfsumme soll zuerst (bevor Flashvorgang ausgeführt wird) mit >der 
aktuellen Prüfsumme die im Mikrocontroller enthalten ist verglichen >werden.

Die sind nur gleich wenn auf dem Mikrocontroller und dem PC die gleichen 
Daten für die CRC zugrundegelegt wurden, also brauchst du nicht Flashen 
weil würde sich ja eh nichts ändern. Du verstehst ?
Ich denke du willst etwas anderes machen.
Ich denke du willst ein Program auf dem PC das sich die BIN datei nimmt, 
hinten ne CRC dranhängt und dem Mikrocontroller sendet. Der µC speicher 
die Daten erst mal im RAM berechnet mit dem gleichen Verfahren auch eine 
CRC und Vergleicht beide. Stimmen diese Überein wird der RAM Inhalt ins 
Flash geladen.
CRC als Passwortschutz ?
Man könnte die Vorherige CRC aus dem Flash natürlich als Passwort 
benutzen um den Flashvorgang überhaupt zu erlauben. Wenn die Richtigen 
Lockbits gesetzt sind. Spätestens beim dritten Update hat man jedoch die 
Vorgängerversion und das Passwordt ist bekannt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren