Firmware-protection üblich?

Gast #7063014
Lesenswert?

Kleine Anfängerfrage, ich wollte wissen wie oft es möglich ist, MCUs in 
Verbraucherelektronik auszulesen oder ob die eurer Erfahrung nach immer 
ab Factory geschützt wurden (Fuses, etc.)

Ich meine kleine Gadgets wie elektrische Zahnbürsten, Spielzeuge, 
Dimmer, etc. keine teuren Sachen.

Weil ich würde gerne manche der Schaltkreise nachzeichnen und verstehen 
wie sie funktionieren, aber die Mühe kann ich mir sparen wenn jedesmal 
eine MCU als Blackbox in der Mitte liegt :(
Gast #7063023
Lesenswert?

Selbst wenn du sie auslesen kannst:
-)Wie unterscheidest du in dem Dump Daten und Code?
-)Wie machst du aus den nackten Daten Assemblerinstruktionen?
-)Wie machst du aus dem Assemblercode was verständlicheres wie C?

IMHO kann man selbst ohne Kenntnis des µC-Inhalts einige Funktionsblöcke 
verstehen, z.B.: einer Halbbrücke ist es ja egal woher ihr 
Ansteuersignal kommt.
Gast #7063029
Lesenswert?

Reving schrieb:

> Weil ich würde gerne manche der Schaltkreise nachzeichnen und verstehen
> wie sie funktionieren, aber die Mühe kann ich mir sparen wenn jedesmal
> eine MCU als Blackbox in der Mitte liegt :(

Mumpitz, blackBox-Analyse ist normales Handwerkszeug eines Technikers.

Eigentlich jedes Menschen, den man weiß je nie was im Kof seines 
Gegenübers vorgeht, man steht also auch da vor einer Block Box.

Und manche wissen nicht mal, was in ihrem eigenen Kopf vorgeht, ...
Gast #7063031
Lesenswert?

ziege schrieb:
> -)Wie unterscheidest du in dem Dump Daten und Code?
> -)Wie machst du aus den nackten Daten Assemblerinstruktionen?
> -)Wie machst du aus dem Assemblercode was verständlicheres wie C?

Ja aber hallo, dann wird das Leben doch erst interessant. Opcode 
Tabellen durchwühlen, Subroutinen identifizieren, so in etwa die Arbeit 
eines Paläontologen.

Bei den kleinen PICs die ich bisher so antreffe wäre das mit 
vertretbarem Aufwand machbar. Dass es bei den schwarzen Blobs wohl 
nichts auszulesen gibt habe ich aber vermutet.
#7063047
Lesenswert?

Reving schrieb:
> Weil ich würde gerne manche der Schaltkreise nachzeichnen und verstehen
> wie sie funktionieren, aber die Mühe kann ich mir sparen wenn jedesmal
> eine MCU als Blackbox in der Mitte liegt :(

Wenn es um Schaltungsteile geht, ist es meistens sogar einfacher, die 
MCU als Blackbox zu betrachten, als zu versuchen, fremden Quelltext zu 
verstehen. Die Signalformen an den Pins sprechen oft eine viel 
deutlichere Sprache selbst als der Quelltext (oder der Programmierer).
#7063048
Lesenswert?

Reving schrieb:
> Weil ich würde gerne manche der Schaltkreise nachzeichnen und verstehen
> wie sie funktionieren, aber die Mühe kann ich mir sparen wenn jedesmal
> eine MCU als Blackbox in der Mitte liegt :(

Daraus kannst du lernen dass man die Funktionalität heute eben nicht 
mehr aus der HW ablesen kann, sondern die Magie in der Software steckt.
Gast #7063060
Lesenswert?

ziege schrieb:
> Selbst wenn du sie auslesen kannst:
> -)Wie unterscheidest du in dem Dump Daten und Code?

In mühevoller Handarbeit beim...

> -)Wie machst du aus den nackten Daten Assemblerinstruktionen?

...Disassemblieren. Ist machbar, aber halt, je nach Image-Größe, 
zeitaufwendig.

> -)Wie machst du aus dem Assemblercode was verständlicheres wie C?

Wozu? Um zu verstehen, was es macht, reicht doch der Assemblercode.

Zugegeben, je nach verwendetem Kern könnte das etwas eklig werden. Aber 
nicht unmöglich, vorausgesetzt, man kommt an den Speicherinhalt dran.
#7063101
Lesenswert?

PittyJ schrieb:
> Ich schütze nichts. Kann man theoretisch alles aus meinen Arm-CPUs
> wieder auslesen.
>
> Ich wünsche dem viel Spass, der die 150 KBytes disassembliert, und dann
> versucht die 20000 C++ Zeilen zu ermitteln auch noch zu verstehen.
> Ich glaube, dafür muss man schon ich Nordkorea leben.

Er kann auch einfach die SW 1:1 kopieren und mit seiner eigenen Hardware 
verkaufen. Plagiate kennst du?
Gast #7063117
Lesenswert?

Nachdenklicher schrieb:
> ...Disassemblieren. Ist machbar, aber halt, je nach Image-Größe,
> zeitaufwendig.

Machbar ist es natürlich, aber diese Fragen kommen hier sehr oft von 
Menschen, die das vollkommen unterschätzen/noch nicht besonders viel 
Ahnung haben und erwarten, dass das quasi so einfach ist wie 
kompilieren.

Das soll jetzt niemanden davon abhalten, es zu versuchen - der 
Lerneffekt ist sicher beachtlich - aber es rückt die Erwartungen 
vielleicht gerade.
Moderator Persönliche Seite #7063127
Lesenswert?

Cyblord -. schrieb:
> Er kann auch einfach die SW 1:1 kopieren und mit seiner eigenen Hardware
> verkaufen. Plagiate kennst du?

Dagegen könnte man sich durch Verknüpfung mit bspw. der vom Hersteller 
vergebenen Controller-ID einfach wehren.

Ich stecke in der Chip-Herstellung leider nicht wirklich drin.
Wie sicher ist bspw. die fortlaufende ID des Herstellers? Ist diese mit 
Tricks manipulierbar?

Wobei ein Schutz gegen Auslesen ja nicht wirklich etwas kostet, 
üblicherweise reicht ein Flag. Dass jemand mit genug Energie diesen 
knacken kann - geschenkt. Aber viele hält so ein einfacher Schutz 
sicherlich ab.

Auf jeden Fall ist Code-Schutz ein interessantes Thema. da gibt es viele 
"Gemeinheiten" von Herstellerseite (Code in gepuffertem RAM etc.).
#7063132
Lesenswert?

Chris D. schrieb:
> Cyblord -. schrieb:
>> Er kann auch einfach die SW 1:1 kopieren und mit seiner eigenen Hardware
>> verkaufen. Plagiate kennst du?
>
> Dagegen könnte man sich durch Verknüpfung mit bspw. der vom Hersteller
> vergebenen Controller-ID einfach wehren.

Ja oder einfach die Protection aktivieren. Das ist mal der einfachste 
und erste Schritt das zu verhindern.

> Ich stecke in der Chip-Herstellung leider nicht wirklich drin.
> Wie sicher ist bspw. die fortlaufende ID des Herstellers? Ist diese mit
> Tricks manipulierbar?

Wenn du die SW auslesen und ändern kannst, kannst du mit etwas mehr 
Aufwand auch die ID die erwartet wird ändern.
So wurden in den 90ern die NoCDCracks erstellt. Man musste im Binary nur 
den Assembler Compare finden und durch ein NOP ersetzen.
Eine ID zu finden und zu tauschen ist noch einfacher.
Und wie soll das in der Praxis laufen? Woher weiß die SW in jedem 
Artikel welche ID sie erwartet? Es erhöht den Produktionsaufwand bringt 
aber nur wenig mehr Sicherheit.

Wenn dann muss man gleich Controller mit kryptografischer OTP Region 
usw. nehmen. Oder gleich Krypto-ICs mit auf der Platine vorsehen. Signed 
Firmware, Secure Boot gibt es alles.

> Wobei ein Schutz gegen Auslesen ja nicht wirklich etwas kostet,
> üblicherweise reicht ein Flag. Dass jemand mit genug Energie diesen
> knacken kann - geschenkt. Aber viele hält so ein einfacher Schutz
> sicherlich ab.

Wie immer: 100% Schutz gibt es nicht. Aber deshalb muss man nicht auf 
jede Sicherheit verzichten. Grade wenn sie nichts kostet. Gegen das 
kriminelle Superhackergenie wird man sich nicht wehren können. Aber man 
kann den Aufwand für ein Plagiat recht hoch machen.
Gast #7063135
Lesenswert?

ziege schrieb:
> Machbar ist es natürlich, aber diese Fragen kommen hier sehr oft von
> Menschen, die das vollkommen unterschätzen/noch nicht besonders viel
> Ahnung haben und erwarten, dass das quasi so einfach ist wie
> kompilieren.

Das stimmt. Ich gebe zu, bei meinem ersten Disassembler-Projekt habe ich 
das auch leicht falsch eingeschätzt... Daß es mehr ist als kompilieren, 
war mir klar, aber so ein paar fiese Details habe ich halt nicht 
erwartet.
Aber aus Fehlern lernt man. (naja, die meisten zumindest) ;-)
Moderator Persönliche Seite #7063137
Lesenswert?

Cyblord -. schrieb:
> Wenn du die SW auslesen und ändern kannst, kannst du mit etwas mehr
> Aufwand auch die ID die erwartet wird ändern.
> Und wie soll das in der Praxis laufen? Woher weiß die SW in jedem
> Artikel welche ID sie erwartet?

Die Software kann den gerade zu programmierenden Chip vorher auslesen. 
Dann hat sie die ID und kann den zu programmierenden Code entsprechend 
anpassen. Bspw. indem sie die ID als kryptografischen Schlüssel für 
Teile des Codes verwendet, die erst zur Laufzeit entschlüsselt werden.

> Es erhöht den Produktionsaufwand bringt
> aber nur wenig mehr Sicherheit.

Es verhindert zumindest die Auführung des Codes auf einem anderen 
Controller.

> Wenn dann muss man gleich Controller mit kryptografischer OTP Region
> usw. nehmen. Oder gleich Krypto-ICs mit auf der Platine vorsehen. Signed
> Firmware, Secure Boot gibt es alles.

Ja, das geht natürlich auch - kostet aber wieder. Man muss dann wie 
immer abwägen.

> Wie immer: 100% Schutz gibt es nicht. Aber deshalb muss man nicht auf
> jede Sicherheit verzichten. Grade wenn sie nichts kostet. Gegen das
> kriminelle Superhackergenie wird man sich nicht wehren können. Aber man
> kann den Aufwand für ein Plagiat recht hoch machen.

Sehe ich auch so. Ein simples Flag für rudimentären Ausleseschutz kostet 
nichts.
#7063141
Lesenswert?

Chris D. schrieb:

> Die Software kann den gerade zu programmierenden Chip vorher auslesen.
> Dann hat sie die ID und kann den zu programmierenden Code entsprechend
> anpassen. Bspw. indem sie die ID als kryptografischen Schlüssel für
> Teile des Codes verwendet, die erst zur Laufzeit entschlüsselt werden.

Die Schwachstelle ist dann der Punkt an dem SW die Hardware-ID ausliest. 
Dort kann man die ID manipulieren so dass die SW immer die gleiche ID 
bekommt, für welche sie auch funktioniert.

> Es verhindert zumindest die Auführung des Codes auf einem anderen
> Controller.

Es baut eine weitere Hürde ein.  Ja.
Gast #7063142
Lesenswert?

Cyblord -. schrieb:
> PittyJ schrieb:
>> Ich schütze nichts. Kann man theoretisch alles aus meinen Arm-CPUs
>> wieder auslesen.
>>
>> Ich wünsche dem viel Spass, der die 150 KBytes disassembliert, und dann
>> versucht die 20000 C++ Zeilen zu ermitteln auch noch zu verstehen.
>> Ich glaube, dafür muss man schon ich Nordkorea leben.
>
> Er kann auch einfach die SW 1:1 kopieren und mit seiner eigenen Hardware
> verkaufen. Plagiate kennst du?

Nö, er braucht noch die komplette optische Spezial-Hardware im Wert von 
50K€ dazu.
Das bauen nicht mal die Chinesen nach.
#7063145
Lesenswert?

PittyJ schrieb:
> Nö, er braucht noch die komplette optische Spezial-Hardware im Wert von
> 50K€ dazu.
> Das bauen nicht mal die Chinesen nach.

Naja dann scheint die SW bei euch nicht das teuerste Teil zu sein. Dann 
kann man sich das in der Tat sparen.
Das Argument für den Aufwand der Disassemblierung zieht aber eben nicht. 
Weil meistens einfach kopiert wird.
#7063157
Lesenswert?

Wolfgang schrieb:
> Walter T. schrieb:
>> Wenn es um Schaltungsteile geht, ist es meistens sogar einfacher, die
>> MCU als Blackbox zu betrachten, als zu versuchen, fremden Quelltext zu
>> verstehen
>
> Es geht nicht um fremden Quelltext, sondern um fremden Binärcode,
> bestenfalls (richtig) disassambled. Fremder Quelltext ist dagegen noch
> einfach zu lesen.

Mein Punkt. Fremden Quelltext zu durchforsten ist oft schon mehr Arbeit 
als die Schaltung in vivo zu sezieren. Beim Disassembly ist es nochmal 
ein paar Nummern mehr.

Das gilt natürlich nur, wenn die Schaltung der Punkt des Interesses ist 
(was ja die ursprüngliche Fragestellung war).

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