Forum: Mikrocontroller und Digitale Elektronik AVR Mikrocontroller im Nachhinein nochmal programmieren trotz gesetzter Lock-Bits


von Nico S. (embedded_engineering)


Lesenswert?

Hallo Leute,

hätte eine Frage bezüglich der AVR Mikrocontroller.

Wie im Betreff schon steht, wollen wir die Mikrocontroller nachdem sie 
programmiert und gelockt wurden (durch die gesetzten Lock-Bits), 
eventuell wieder eine neue Software aufspielen.

Der Grund dafür ist folgender:

Wir verkaufen momentan mehrere eigene Komponenten, auf welcher ein 
Mikrocontroller bestückt ist mit einer entsprechende Software.

Oftmals kommt es vor, dass wir nach einigen Monaten wieder eine neue 
Software mit kleinen Anpassungen haben. Zwingend notwendig ist die neue 
Software für den Kunden nicht, aber bei Retouren oder Reparaturfällen, 
würden wir dem Kunden anbieten, gleich die neue Software aufzuspielen.

Der Mikrocontroller sollte jedoch gelockt sein, sodass der Endkunde 
keine eigene Software aufspielen kann oder unser Software ausliest.


Die Frage: Ist es nun möglich, wenn die Komponente zu uns zurück kommt 
(aus Gründen von Reparatur etc.), die neue Software aufzuspielen trotz 
gesetzter Lock-Bits? Wir benutzen den Programmer/Debugger Atmel ICE.


Danke im Voraus!

von Route_66 H. (route_66)


Lesenswert?

Nico S. schrieb:
> st es nun möglich, wenn die Komponente zu uns zurück kommt
> (aus Gründen von Reparatur etc.), die neue Software aufzuspielen trotz
> gesetzter Lock-Bits?

Ja, problemlos.

von Einer K. (Gast)


Lesenswert?

Nico S. schrieb:
> Wir benutzen den Programmer/Debugger Atmel ICE.

Obwohl der Kontroller geheim ist, sage ich: JA!
Üblicher Weise löscht ein ChipErase auch die Lock Fuses.

Spätestens eine HV Programmierung kann dann jeden Knoten lösen.

von Hmmm (Gast)


Lesenswert?

Flashen kann man immer, allerdings bei gelocktem Controller nur nach 
vorherigem Erase.

von Chris K. (Gast)


Lesenswert?

Bei den Atmegas kann man immer ein "Erase Chip" druchführen. Das setzt 
die Lockbits wieder auf 1 und man kann neu programmieren. Dann ist der 
Chip vorher halt leer und niemand kann das Programm einfach so auslesen. 
Was die Lock Bits nicht können, ist das löschen des IC sperren. Wer will 
kann also immer euren IC für was anderes verwenden. Wenn das ebenfalls 
nicht gewünscht ist, müsst ihr euch für einen anderen IC entscheiden.

von Axel S. (a-za-z0-9)


Lesenswert?

Nico S. schrieb:
> Der Mikrocontroller sollte jedoch gelockt sein, sodass der Endkunde
> keine eigene Software aufspielen kann oder unser Software ausliest.

Bei einem AVR gibt es keine Kombination der Lockbits, die ein Chip Erase 
verhindern würde. Du kannst zwar das Auslesen der Firmware verhindern, 
nicht aber daß jemand den Chip löscht und etwas anderes aufspielt.

von Frank K. (fchk)


Lesenswert?

Axel S. schrieb:
> Nico S. schrieb:
>> Der Mikrocontroller sollte jedoch gelockt sein, sodass der Endkunde
>> keine eigene Software aufspielen kann oder unser Software ausliest.
>
> Bei einem AVR gibt es keine Kombination der Lockbits, die ein Chip Erase
> verhindern würde. Du kannst zwar das Auslesen der Firmware verhindern,
> nicht aber daß jemand den Chip löscht und etwas anderes aufspielt.

Und wer den Chip mit Säure aufätzt (der Chip bleibt dabei 
funktionsfähig) und mit einem gut fokussierten blauen Laserpointer an 
eine bestimmte Stelle leuchtet, der kann die Security Fuse löschen und 
Eure supergeheime, kostbare Software auslesen. AVRs sind halt 20 Jahre 
alte Technik, und so sonderlich gut gegen Manipulationen sind sie eben 
nicht geschützt.

fchk

von MWS (Gast)


Lesenswert?

Lock-Bits in den AVRs sind ein Ausleseschutz und kein 
Neuprogrammierschutz.

Nico S. schrieb:
> sodass der Endkunde keine eigene Software aufspielen

Mit einem Chiperase kann er das.

Schwieriger wird's für ihn, wenn Ihr einen Krypto-Bootlader zum Flashen 
verwendet und die RSTDISBL-Fuse setzt, dann ist die ISP-Schnittstelle 
erstmal lahmgelegt. Dann kommt der Kunde nicht mehr einfach dran.

Ihr kommt aber auch selber nicht mehr an die Fuses ran, falls da was 
ändern braucht.

Mit HV-Programmierung kann man auch diesen Schutz wieder aufheben, was 
ggf. ein Auslöten des µCs oder Auftrennen der ISP-Pins erfordert, falls 
die Resthardware die höhere Programmierspannung nicht mag.

Macht's also nicht unmöglich, nur schwieriger. Dem wiederum kann man 
begegnen, indem man den µC eingießt, der interessierte Kunde könnte dann 
versuchen den Verguss zu entfernen, usw., usf.

Es geht immer um Aufwand vs. Nutzen.

von Wolfgang (Gast)


Lesenswert?

Nico S. schrieb:
> Der Mikrocontroller sollte jedoch gelockt sein, sodass der Endkunde
> keine eigene Software aufspielen kann

Das wirst du nicht verhindern können

von Cyblord -. (cyblord)


Lesenswert?

Wolfgang schrieb:
> Nico S. schrieb:
>> Der Mikrocontroller sollte jedoch gelockt sein, sodass der Endkunde
>> keine eigene Software aufspielen kann
>
> Das wirst du nicht verhindern können

Verhindern nicht. Aber wenn man es erschweren will, dann hilft nur die 
ganze HW eingießen und Bootloader mit signierter Firmware.
hat zumindest den Vorteil, man erkennt eine Manipulation am Gerät. 
Wichtig für Support/Gewährleistungsanfragen.

von Peter D. (peda)


Lesenswert?

Nico S. schrieb:
> hätte eine Frage bezüglich der AVR Mikrocontroller.

Es ist blöd, diese Frage allgemein zu stellen und nicht den konkreten 
AVR zu nennen.
Wie ja schon gesagt wurde, kann man je nach Typ das nachträgliche 
Programmieren über bestimmte Schnittstellen disablen und somit auch ein 
Erase. Dann kann man den AVR nur nach Auslöten neu programmieren.

von Cyblord -. (cyblord)


Lesenswert?

Ich verstehe nicht, wie man ein verkaufsfertiges Produkt mit einem AVR 
entwickeln kann und dann für solche Fragen nicht einfach dessen 
Datenblatt konsultieren kann.

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.