Tools gesucht

OP #4532407
Hallo Forum,

ich suche Tools oder Ideen um eine Firmware zu verschlüsseln und zu 
übertragen. Es soll unter Windows laufen und möglichst nicht 
selbst-programmiert sein. Also gescriptete Tools die man in Batches 
rufen kann. Es soll für den Anwender leicht nachvollziehbar sein, was 
mit der Firmware passiert. Desweiteren soll derjenige, der dann mal ein 
das Firmwareupdate macht, nicht die Firmware entschlüsseln können. Die 
verschlüsselten Daten soll erst auf µC wieder entschlüsselt werden.
Folgendes ist meine Vorstellung:
- S19-File zeilenweise AES verschüsseln
- (Länge + Verschüsseltet Zeile) * Zeilenanzahl in Datei speichern
- je eine Zeile per serieller Schnittstelle senden und auf ACK warten

Auf dem µC steht eine AES-Hardware zur Verfügung, jedoch ist diese nur 
Atomar verwendbar, da diese gleichzeitig noch für andere Aufgaben 
verwendet wird. Es steht auch nicht genügend Platz (weder RAM noch 
Flash) zur Verfügung um ein komplettes S19-File zu speichern.
Ich hab schon mit teraterm rumgespielt, aber das kann keine Binärdaten 
verarbeiten (bricht ab, wenn 0x00 in Datei enthalten ist).
Wie würdet Ihr das lösen?
Gast
Rangi J. schrieb:
> hmm, ganz schön teuer ...

Sicherheit kostet Geld, auch die Menschen/ Entwickler wollen etwas im 
Kühlschrank haben.
Der Beruf und das Einkommen eines Mathematikers ist nicht sonderlich 
hoch.
Wenn Du es kostenlos entwickeln kannst, dann bitte.
Persönliche Seite
Hab das mal selbst geschrieben, mit SW AES lib. Die PC Version landete 
in einem Konsole-Programm. In der µC Variante sind Intrinsics, AES 
Tables liegen im Flash (dahingehend wurde der original AES angepasst).

Ich würde die Binärversion der Firmware blockweise ver-/entschlüsseln, 
in Häppchen, die in einem Rutsch in den FlashAlg geschoben werden können 
(z.B. 256 Byte).

In meinem Fall wird die neue Firmware von einer SD Card gelesen, aber 
das ist prinzipiell ja egal.
Da keine microcontroller genennt wird nehme ich an es geht sich um die 
Cypress PSOC 3/5LP.

Der gibt ein professioneller bootloader mit einige standardfunktionen 
die password und dabei gibt es, wenn ich mich nicht irre, auch die 
source-code frei.

Falls es um einen anderen controller geht, bitte angeben welches weil es 
pro hersteller sehr unterschiedlich ist.
OP
so, habs hinbekommen. funktioniert.

Hab jetzt nur noch ne kleinigkeit: Wie kann ich im CCS6 einen Step 
"starten" nach dem HEX Utility?

Es gibt unter "Project" - "Properties" - "Build" - Tab "Steps" die 
Möglichkeit Pre-build und Post-build steps einzutragen. Das hab ich 
gemacht, wird auch gerufen, leider aber zeitlich vor dem HEX-Utility. 
Ich will aber die Ausgabe dieses Hex-Tools verwenden.
Wie kann ich etwas nach dem HEX-Utility starten?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.