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?
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.
naja, aber du hast auch komische Anforderungen. Mit dem tinybootloader Protocol (pic) könntest du die Applikation haben, dann musst du aber von deinen Vorderungen abkommen.
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.
O ja, und wenn du Teraterm benutzt, wuerde es schoen wenn dein bootloader zB via ZMODEM funktioniert.
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?
> Wie kann ich etwas nach dem HEX-Utility starten? Nur einen batchfile starten. Dann in der batchfile die verschiedene tools nacheinander starten. https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/start.mspx?mfr=true
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.