Forum: Mikrocontroller und Digitale Elektronik STM32 uC Code schützen, aber flash sektor beschreibbar


von Bert S. (kautschuck)


Lesenswert?

Hi,

Ich möchte den Code auf einem STM32F4 vor dem Auslesen schützen, da ich 
aber noch 2 Sektoren des Flashes als Speicher brauche, muss ich diese 
noch beschreiben können. Kann ich also Sektorenweise die 
Zugriffsberechtigung erteilen? Wäre es theoretisch auch möglich, den 
Code zu updaten, wobei aber das .hex verschlüsselt wäre?

: Bearbeitet durch User
von Jim M. (turboj)


Lesenswert?

Bert S. schrieb:
> Wäre es theoretisch auch möglich, den
> Code zu updaten, wobei aber das .hex verschlüsselt wäre?

Für sowas muss man dann den passenden Bootloader schreiben.

Habe ich mal für einen NRF52832 gemacht, weil die ANT+ Softdevices einen 
"geheimen" Code aus lizenztechnischem Grund benötigen. War relativ 
aufwändig und auch nicht grade klein für einen seriellen Bootloader.

Bert S. schrieb:
> Kann ich also Sektorenweise die
> Zugriffsberechtigung erteilen?

In der "Produktions" Version klemmt man alle externen 
Auslese-Funktionen des Flash ab, inklusive JTAG/SWD. Dann kann man den 
Chip nur noch von eigenem Code aus beschreiben - wo man die Adresse 
steuern kann.

von Bauform B. (bauformb)


Lesenswert?

Die STM32 L4 (und F7) haben einen zusätzlichen Schutzmechanismus 
genannt "Proprietary code readout protection (PCROP)".

Dass man Firmware wirksam verschlüsseln kann, mag ich nicht glauben. Die 
CPU muss ja nach dem Reset irgendwie an den Schlüssel ran kommen. Die 
normale Read Out Protection ist sicher sicherer als selbstgebaute 
Verschlüsselung, aber gegen Profis hilft die auch nicht:
https://www.aisec.fraunhofer.de/en/FirmwareProtection.html

von Bert S. (kautschuck)


Lesenswert?

Ok, danke euch. Dann werde ich wohl so gut es geht auf Firmwareupdates 
verzichten.

von Mark B. (Firma: M.J.Butcher Consulting) (utasker)


Lesenswert?

Habe folgendes Video zum Thema von STM32 Flash Optionen (Schreib- und 
Leseschutz) gemacht:
https://youtu.be/IN_U7QsYQlc

Gruss

Mark

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.