Forum: Mikrocontroller und Digitale Elektronik Hardware-registration, Bootloader mit Signaturabgleich


von Flip B. (frickelfreak)


Lesenswert?

Ich möchte ein Elektronikprojekt zum nachbauen freigeben, jedoch 
unbegrenztes kopieren erschweren. Gibt es da bewährte Verfahren? Der 
Nutzer soll sich die Elektronik nach meinen Fertigungsdateien selbst 
beim bestücker bestellen und dann einen Bootloader aufspielen, dann mir 
die UID mitteilen und  von mir die endgültige Software bekommen.

Es sollte also eine Signaturverifikation im Bootloader basierend auf 
einer UID (zufallsgeneriert oder Hardware-mac...)  und einem mit dem 
Bootloader mitgelieferten Public Key passieren. Den Private Key dazu 
behalte ich für mich.

Vielleicht überprüft der BL vorher noch die Readout-protection bits.

Aktuelles Target: CH32V208

Gibt es da quelloffene Bootloaderprojekte für sowas? Vielleicht im 
universum der UEFI-Firmwares?

von Jens G. (jensig)


Lesenswert?

Flip B. schrieb:
> Ich möchte ein Elektronikprojekt zum nachbauen freigeben, jedoch
> unbegrenztes kopieren erschweren. Gibt es da bewährte Verfahren? Der
> Nutzer soll sich die Elektronik nach meinen Fertigungsdateien selbst
> beim bestücker bestellen und dann einen Bootloader aufspielen, dann mir
> die UID mitteilen und  von mir die endgültige Software bekommen.

Ich glaube, von Dir würde ich nix nachbauen wollen ...

von Flip B. (frickelfreak)


Lesenswert?

Jens G. schrieb:
> Ich glaube, von Dir würde ich nix nachbauen wollen ...

Okay, das tut zwar nichts zum Thema, aber magst du Gründe nennen? Oder 
ist es einfach nur ein fescher Spruch der dir in die Tastatur gefallen 
ist?

von Jens G. (jensig)


Lesenswert?

Flip B. schrieb:
> Jens G. schrieb:
>> Ich glaube, von Dir würde ich nix nachbauen wollen ...
>
> Okay, das tut zwar nichts zum Thema, aber magst du Gründe nennen? Oder
> ist es einfach nur ein fescher Spruch der dir in die Tastatur gefallen
> ist?

Eigentlich ganz einfach: ich mag keine künstliche Abhängigkeiten ...
Wenn mir der µC irgendwann mal kaputt geht, muß ich wieder bei Dir 
antraben, um nach einer neuen SW zu betteln ...
Kennt man ja schon von ELV - man kann mit deren geflashten µCs/Speichern 
nachbauen, aber Ersatz gibts dann nach gewisser Zeit keinen mehr.

: Bearbeitet durch User
von Flip B. (frickelfreak)


Lesenswert?

Okay, kann ich nachvollziehen, ich würde auch sehr gern das ganze 
Projekt veröffenltichen. Leider würden vorhersehbar einige das Ding 
Serienfertigen lassen und daraus Profit schlagen, bzw. ihre Produkte 
statt mit teureren Kommerziellen lösungen, mit der Hardware bauen, aber 
die ersparnis aus dem Einkauf nicht an die endkunden weitergeben.
Bei Hardware ist es in meinen Augen auch schwer, etwas über 
lizensbedingungen einzuschränken, wenn das in einem Produkt tief drin 
ausgeliefert wird, interessiert das keinen käufer, so lange es 
funktioniert.

Alternative zum seriennummergebundenen Binary-Blob o-ä- wäre einfach 
nicht-veröffentlichung.

: Bearbeitet durch User
von Jens G. (jensig)


Lesenswert?

Flip B. schrieb:
> Okay, kann ich nachvollziehen, ich würde auch sehr gern das ganze
> Projekt veröffenltichen. Leider würden vorhersehbar einige das Ding
> Serienfertigen lassen und daraus Profit schlagen, bzw. ihre Produkte
> statt mit teureren Kommerziellen lösungen, mit der Hardware bauen, aber
> die ersparnis aus dem Einkauf nicht an die endkunden weitergeben.

Ja, kann ich auch nachvollziehen.
Ansonsten kann ich zur eigentlichen Frage auch nix sagen ...

: Bearbeitet durch User
von Harry L. (mysth)


Lesenswert?

Ich finde den Ansatz durchaus interessant!

Der Komponenten-Tester hier aus dem Forum ist doch das beste Beispiel 
dafür, wie die Chinesen aus unseren Innovationen Geld machen.

Sicherlich kann man das so nicht verhindern, aber zumindest erstmal die 
erste Hürde erhöhen.

Ist eben nur die Frage, ob der Autor so einer Firmware bereit ist, sich 
diesem administrativen Aufwand (individuelle Keys für jeden User zu 
generieren) zu stellen.

Vielleicht sollte man mal darüber nachdenken, für diese Art von 
Validierung ein zentrales Portal zu schaffen, bei dem sowas 
automatisiert passiert.

Zu Ende gedacht ist das sicher nicht, aber komplett verwerfen würde ich 
das auch nicht.

: Bearbeitet durch User
von Oliver S. (oliverso)


Lesenswert?

Flip B. schrieb:
> Leider würden vorhersehbar einige das Ding
> Serienfertigen lassen und daraus Profit schlagen

Ganz einfache Frage: was machst du, wenn jemand deine 
Softwareverschlüsselung „knackt“ (was ja wohl kein Problem sein sollte), 
und das Produkt dann weiterverkauft.

Ja, das darf der dann nicht, aber hast du die Mittel, dagegen anzugehen?

Oliver

von Dieter S. (ds1)


Lesenswert?

Wenn Du Bootloader und die vermutlich verschlüsselte Software 
herausgibts hat man alles um den Schutz zu umgehen, also z.B. die 
verschlüsselte Software zu entschlüsseln oder die Signaturprüfung zu 
patchen. Das "Geheimnis" (Schlüssel oder Bootloader) muss schon vorher 
möglichst sicher in der Hardware abgelegt sein damit der Schutz sinnvoll 
ist.

: Bearbeitet durch User
von Jack V. (jackv)


Lesenswert?

Oliver S. schrieb:
> Ganz einfache Frage: was machst du, wenn jemand deine
> Softwareverschlüsselung „knackt“ (was ja wohl kein Problem sein sollte),
> und das Produkt dann weiterverkauft.

Ohne die Verschlüsselungsmethode und ihre Implementierung zu kennen 
sagst du, dass es kein Problem sein sollte, sie zu knacken? Könntest 
Politiker werden …

Abgesehen davon halte ich den Ansatz für hinterfragbar: Wenn das Projekt 
vom TE nicht selbst zu Geld gemacht werden soll, ist’s doch unerheblich, 
ob jemand das nachbaut und verkauft? Wenn man seinen Namen noch 
geschickt drin unterbringt, könnte man’s dann ja so auch zu einiger 
Bekanntheit bringen.

Und wenn es wirklich so gut ist, dass jeder es haben wollen würde, 
dann könnte man über eine Patentanmeldung oder/und Lizenzen nachdenken. 
Das würde vielleicht den auf Nachbau spezialisierten Chinesen nicht 
stören, aber man könnte sich von den Leuten entschädigen lassen, die’s 
in größerer Stückzahl im außerchinesischen Markt in Verkehr bringen …

von Oliver S. (oliverso)


Lesenswert?

Jack V. schrieb:
> Ohne die Verschlüsselungsmethode und ihre Implementierung zu kennen
> sagst du, dass es kein Problem sein sollte, sie zu knacken?

Nun ja, er verteilt den bootloader mit dem darin enthaltenen public key. 
„Knacken“ muß man da natürlich gar nichts, nur etwas Assembler können, 
um den bootloader zu modifizieren.

Oliver

von Rainer W. (rawi)


Lesenswert?

Jack V. schrieb:
> Und wenn es wirklich so gut ist, dass jeder es haben wollen würde,
> dann könnte man über eine Patentanmeldung oder/und Lizenzen nachdenken.

Du kennst die Kosten für Patente, zumal so ein Patent für jeden 
Einzelstaat/-region erteilt werden muss? Nachdenken alleine hilft nicht 
- dafür wandert ordentlich Kohle über den Tisch. Das fängt beim 
Patentanwalt an.
Das muss so ein Projekt erstmal einspielen, d.h. man muss sich über den 
Bedarf in der Welt sehr im Klaren sein.

: Bearbeitet durch User
von Michael (Gast)


Lesenswert?

Flip B. schrieb:
> selbst beim bestücker bestellen
...
> Aktuelles Target: CH32V208

Also China Bestücker, mit China PCB und China Teilen.
Aber die Chinesen sollen es nicht nachbauen können wenns so richtig 
zündet.
Weil Chinesen ja keine SW schreiben können?

Dafür möchtest Du dich dann mit 10.000 UID Anfragen herumschlagen.
Für lau.

Bei der großartigen Idee gibst Du dem Chinesen die beste aller 
Steilvorlagen.
Ich würde dem Chinesen das doppelte bezahlen, nur damit ich nicht alles 
selbst regeln und machen muss.
Zudem sind Einzelstücke beim Bestücker unverhältnismäßig teuer.

Flip B. schrieb:
> Gibt es da quelloffene Bootloaderprojekte für sowas?
Noch besser!
Sogar diese Arbeit soll Dir abgenommen werden.
Und der BL Programmierer soll bitteschön keine Maßnahmen gegen 
unbegrenztes Kopieren ergriffen haben.
Geb es frei oder lass es.
Ein wenig freigeben weil Du keinen Bock auf HW hast und es Dir 
offenhalten willst an der SW zu verdienen, ist kein Plan.

Lass doch einfach mal 100Stk bauen und vertreibe die inkl. SW über einen 
Partner der sich um das rechtliche kümmert.
Das kommt dem Kunden billiger und bringt Dir ein wenig Geld.

von Jack V. (jackv)


Lesenswert?

Rainer W. schrieb:
> Das muss so ein Projekt erstmal einspielen, d.h. man muss sich über den
> Bedarf in der Welt sehr im Klaren sein.

Das wollte ich mit „Und wenn es wirklich so gut ist, dass jeder es haben 
wollen würde, […]“ gesagt haben, ja. Für die Kosten fände sich bei einem 
solchen Produkt eine Lösung.

Oliver S. schrieb:
> Nun ja, er verteilt den bootloader mit dem darin enthaltenen public key.
> „Knacken“ muß man da natürlich gar nichts, nur etwas Assembler können,
> um den bootloader zu modifizieren.

Denkbar wäre vielleicht ein Programm zum Beschicken des μC mit der 
Firmware. Das könnte die eindeutige ID des Controllers auslesen und an 
den TE schicken. Dessen Gegenstück könnte dann die Firmware so 
modifizieren, dass sie nur auf dem betreffenden Controller lauffähig 
ist, und sie verschlüsselt an das besagte Programm zurückschicken, das 
den Blob on teh fly entschlüsselt, auf den μC schreibt und dessen 
Leseschutz aktiviert.

Klar könnte man nun mit „aber wenn man nur ’n bisschen mit Assembler …“ 
zu argumentieren versuchen, aber dann frage ich: „Und warum passiert das 
nicht allenthalben, wenn milliardenfach Firmware-Updates auf diesem Weg 
in Hardware gebracht werden?“

Ich halte es aber weiterhin für den falschen Weg, die Verbreitung auf 
diesem Weg kontrollieren zu wollen, wenn nicht selbst kommerzielle 
Interessen bestehen. In jedem anderen Fall würde schließlich keinem ein 
Schaden entstehen, wenn jemand das Produkt zu Geld macht. Ich meine: Das 
gesamte Internet und vieles an heutiger Elektronik gibt es im Grunde 
nur, weil genau das gemacht worden ist – in wirklich vielen komplexeren 
Produkten ist freier Code drin.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Abstrakt ausgedrückt, du möchtest den Supply Chain kontrollieren ohne 
den Supply Chain zu kontrollieren. Das funktioniert nicht.

Was auch nicht funktioniert ist Copyright auf deine Software. Besonders 
nicht, wenn du dadurch zum Nachbau animierst dass du die Schaltung 
veröffentlichst.

Nebenbei bemerkt, wenn du die Schaltung veröffentlichst ist das 
eigenständige Programmieren einer kompatiblen Software reine 
Fleißarbeit. So besonders wird deine Software nämlich nicht sein.

Die gute und gleichzeitig schlechte Nachricht ist dass die 
Wahrscheinlichkeit dass dein Projekt ein Hit wird gering ist. Dass heißt 
deine Sorge dass ein chinesischer Hersteller die Massenproduktion auf 
nimmt ist eher unbegründet. Das ist mehr so ein Sechser im Lotto.

Wenn du absolut nicht damit leben kannst dass irgend jemand mit deinem 
Projekt Geld verdient dann veröffentliche es nicht.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Jack V. schrieb:
> Klar könnte man nun mit „aber wenn man nur ’n bisschen mit Assembler …“
> zu argumentieren versuchen, aber dann frage ich: „Und warum passiert das
> nicht allenthalben, wenn milliardenfach Firmware-Updates auf diesem Weg
> in Hardware gebracht werden?“

Weil in diesen Fällen der Key zum Entschlüsseln nicht öffentlich 
geliefert wird - wie der Fragesteller das aber vor hat und du es auch 
vorgeschlagen hast:

>  an das besagte Programm zurückschicken, das
> den Blob on teh fly entschlüsselt,

Was dieses besagte Programm nur kann wenn es den Entschlüsselungs-Key 
hat und dieses Programm ist in den Händen des Angreifers.

Das Szenario funktioniert wenn der Entschlüsselungs-Key über einen 
separaten Weg in die Hardware gebracht wurde. Ohne dass ein Angreifer 
Zugriff entlang des Weges hat und ohne dass der Key oder die 
entschlüsselte Firmware aus der Hardware ausgelesen werden können.

von Oliver S. (oliverso)


Lesenswert?

Jack V. schrieb:
> Denkbar wäre vielleicht ein Programm zum Beschicken des μC mit der
> Firmware. Das könnte die eindeutige ID des Controllers auslesen und an
> den TE schicken. Dessen Gegenstück könnte dann die Firmware so
> modifizieren, dass sie nur auf dem betreffenden Controller lauffähig
> ist, und sie verschlüsselt an das besagte Programm zurückschicken, das
> den Blob on teh fly entschlüsselt, auf den μC schreibt und dessen
> Leseschutz aktiviert.

Der Zielprozessor hat 128kB Flash, 64kB Ram, und 144Mhz. Da geht nix „on 
the fly“. Und solange du Zugriff auf den bootloader mit Key und 
Entschlüsselungsalgorithmus hast, ist das alles eh nutzlos.

Die einzige sichere Lösung in den Fall wäre, nicht die Software zu 
verschicken, sondern den fertig programmierten Prozessor. Aber dann muß 
den jemand auflöten…

Oliver

von Jens G. (jensig)


Lesenswert?

Oliver S. schrieb:
> Die einzige sichere Lösung in den Fall wäre, nicht die Software zu
> verschicken, sondern den fertig programmierten Prozessor. Aber dann muß
> den jemand auflöten…

Was ja kein Problem wäre - es soll ja zum Nachbauen sein.

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Flip B. schrieb:
> Der Nutzer soll sich die Elektronik nach meinen Fertigungsdateien selbst
> beim bestücker bestellen und dann einen Bootloader aufspielen, dann mir
> die UID mitteilen und  von mir die endgültige Software bekommen.

Darauf lässt sich niemand ein, schätze ich. Das Risiko ist viel zu hoch, 
dass du die Software nicht lieferst oder sie nicht funktioniert. Dann 
bleibt man auf der (teuren) Hardware sitzen. Und was ist  wenn der 
Mikrocontroller ausgetauscht werden muss?

Derartig verdongelte Software war schon in den 90er Jahren verhasst und 
ist inzwischen kaum noch anzutreffen.

Die Kombination mit einem quasi raubkopierten STM32 finde ich ganz 
besonders fragwürdig.

: Bearbeitet durch User
von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Flip B. schrieb:
> Leider würden vorhersehbar einige das Ding Serienfertigen lassen und
> daraus Profit schlagen, bzw. ihre Produkte statt mit teureren
> Kommerziellen lösungen, mit der Hardware bauen, aber die ersparnis aus
> dem Einkauf nicht an die endkunden weitergeben

Na und? Ist das dein Problem? Wer anderen nicht die Butter auf dem Brot 
gönnt ist selbst nicht viel besser. Gibst du denn einen Teil deiner 
Einnahmen an die Entwickler der kostenlosen Tools und Programmcodes ab, 
die du in dem Projekt verwendest?

: Bearbeitet durch User
von Jack V. (jackv)


Lesenswert?

Oliver S. schrieb:
> Der Zielprozessor hat 128kB Flash, 64kB Ram, und 144Mhz. Da geht nix „on
> the fly“.

Ich meinte, schrieb und du zitiertest es, dass das Programm zum 
Beschicken des μCs die Entschlüsselung on teh fly vornehmen, das 
Ergebnis auf den Controller schreiben und diesen dann zusperren solle.

Wie gesagt – es ist ja nicht so, dass das Prinzip sonderlich neu wäre 
oder gar erst noch erfunden werden müsse. Das wird in etwa so gemacht.

von Oliver S. (oliverso)


Lesenswert?

Jack V. schrieb:
> Ich meinte, schrieb und du zitiertest es, dass das Programm zum
> Beschicken des μCs die Entschlüsselung on teh fly vornehmen, das
> Ergebnis auf den Controller schreiben und diesen dann zusperren solle.

Und ich schrieb, egal, was du da auch anstellst, irgendwo kommst du an 
die entschlüsselte Software, ohne allzu großen Aufwand.

Wenn die Entschlüsselung auf dem PC passiert, geht die unverschlüsselte 
Software über die Schnittstelle, und kann einfach mitgeschnitten werden.

Wenn da noch eine Verschlüsselungsschicht dazwischen sitzt, musst du 
halt den bootloader anpassen. Da steckt die Entschlüsselung und der Key 
drin.

Oliver

: Bearbeitet durch User
von Thomas Z. (usbman)


Lesenswert?

Ich habe sowas vor einiger Zeit mal gemacht. Verwendet habe ich XTEA. 
https://de.wikipedia.org/wiki/Extended_Tiny_Encryption_Algorithm. Den 
Key habe ich mir aus der UUID der CPU gebildet. Zusätzlich wurde die FW 
per CRC gesichert. Das hat ganz gut funktioniert, und man konnte den USB 
Mitschnitt nicht mehr direkt verwenden da erst im Loader entschlüsselt 
wurde.

Allerdings ist es ein erheblicher Aufwand die Binaries bereitzustellen. 
Sowas über einen längeren Zeitraum automatisch bereitzustellen ist ein 
erheblicher Aufwand. Du willst die Binaries sicher nicht von Hand 
erzeugen und per Email verteilen.
Ein Problem mit den UUIDs sehe ich in den potentiell schwachen 
Schlüsseln da diese Nummern sich ziemlich ähnlich sind und keinesfalls 
Zufallszahlen sind.

Es stellt sich halt die Frage ob der Aufwand gerechtfertigt ist. Wenn 
das wirklich die Killer App wird wird sich ziemlich schnell jemand 
finden der den Loader dissassembliert.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Thomas Z. schrieb:
> und man konnte den USB
> Mitschnitt nicht mehr direkt verwenden da erst im Loader entschlüsselt
> wurde.

Ihr lest alle nicht was er machen will:

Flip B. schrieb:
>> Der Nutzer soll ... einen Bootloader aufspielen,

Das heißt der Nutzer hat den Bootloader mit dem Entschlüsselungs-Key und 
-Algorithmus VOR SICH LIEGEN damit er ihn selber auf dem µC einspielen 
kann.

Damit bricht die ganze Scheiße von wegen irgendwie klever im Bootloader 
eine Firmware zu entschlüsseln zusammen. Denn unter anderem ist damit 
folgendes möglich:

Der Entschlüsselungs-Key kann aus dem vorliegenden Bootloader-Binary 
extrahiert werden kann. Damit, und dem richtigen Algorithmus, der auch 
im vorliegenden Binary implementiert ist, kannst du eine Firmware auf 
dem Trocknen außerhalb des µC entschlüsseln.

Der Bootloader kann vor dem Einspielen gehackt werden, so dass er nach 
der ganzen Kryptographie-Augenwischerei im µC die entschlüsselte 
Firmware über einen Ausgabe des µC im Klartext ausgibt.

Die geplante Singnaturverifikation kann aus dem Bootloader vor dem 
Aufspielen rausgepatcht werden. Dann wird keine Signatur mehr 
verifiziert.

Kannst du also alles knicken.

von Thomas Z. (usbman)


Lesenswert?

Hannes J. schrieb:
> Das heißt der Nutzer hat den Bootloader mit dem Entschlüsselungs-Key und
> -Algorithmus VOR SICH LIEGEN damit er ihn selber auf dem µC einspielen
> kann.

Das ist richtig. Dazu muss das Loader Binary aber erst mal 
disassembliert und verstanden werden. Das ist schon mit etwas Aufwand 
verbunden. Der User kennt weder den Key noch den Algorithmus. Die 
einzige Info ist, dass der Key irgendwie aus der UUID gebildet wird. 
Natürlich kann man sowas hacken.

Ich habe selbst schon TEA gehackt aber nur weil der Programmierer 
Konstanten verwendet hat die dann via Google direkt zum Beispiel Algo 
führten. Wenn man solche Bugs einbaut, kann man das auch gleich sein 
lassen.

von Oliver S. (oliverso)


Lesenswert?

Thomas Z. schrieb:
> Das ist richtig. Dazu muss das Loader Binary aber erst mal
> disassembliert und verstanden werden.

Ja und? Wenn das supergeheime Projekt so einen wirtschaftlichen Erfolg 
verspricht, dann wird sich dafür schon jemand finden.

Letztendlich muß man ja nur die Stelle finden, an der geprüft wird, daß 
der Prozessor gegen Auslesen geschützt ist, dazu den CRC-Vergleich, und 
die raus-NOPen.Danach findet man das entschlüsselte Programm im 
Speicher.

Oliver

: Bearbeitet durch User
von Dieter S. (ds1)


Lesenswert?

Thomas Z. schrieb:
>
> Das ist richtig. Dazu muss das Loader Binary aber erst mal
> disassembliert und verstanden werden. Das ist schon mit etwas Aufwand
> verbunden.

Was bei einem Bootloader von der Größe her mit sehr überschaubaren 
Aufwand machbar ist. Und den Bootloader künstlich größer zu machen ist 
selten eine Option wenn man den Flash für die eigentliche Software 
braucht.

von Jobst M. (jobstens-de)


Lesenswert?

Man vergibt selbst eine UID (oder liest sie aus irgendeinem der 
Controller aus), fordert 1x einen Key dafür an und lässt den ganzen Kram 
im Emulator laufen. Das entschlüsselte Ergebnis kann man dann auf jeden 
Controller schieben.

Ich frage mich allerdings, wie umfangreich die SW des TO ist, wenn 
dieser diese Problematik nicht selbst erkennt. Vermutlich ist sie die 
Verschlüsselung nicht wert. Das hatten wir ja schon häufiger hier.

Gruß
Jobst

von Flip B. (frickelfreak)


Lesenswert?

also mein szenario ist nicht, dass die Industrie da besonders interesse 
hätte, also wer es Disassembliert und seine UID einträgt darf es gerne 
kopieren.

Die Hemmschwelle soll eben so sein, dass es einfacher ist, bei mir 
einmal bescheidzugeben dass es nun ein weiteres Gerät gibt. Und das ohne 
Cloud-zwang.


Vielleicht reicht es auch, eine der firmware-funktionen nur als 
Binär-Blob mit seriennummernbindung auszuliefern. Dann kann auch der 
Bootloader und alles weitere Öffentlich sein.

Der Nutzerkreis ist auch sehr eingeschränkt. Es könnte auch reichen, 
wenn man in den Bestückungsdruck einen vermerk macht "check 
registration: www.domain.de/check/" und da dann als käufer sehen kann, 
ob die UID des Prozessors registriert wurde. Also einfach eine 
durchsuchbare liste.

Für die Kommerzielle nutzung würde ich diese registrierung dann schon an 
eine 100€ spende an z.b. KiCad knüpfen.

Wenn jemand für profit viele dieser dinger verkauft, würden er bei 
Kunden in diesem Nutzerkreis seine reputation zerstören.

von Matthias S. (dachs)


Lesenswert?

Harry L. schrieb:
> ein
bloss das nicht
> zentrales
bloss das nicht
> Portal
ist dann auch egal.

von Kevin M. (arduinolover)


Lesenswert?

Was du da vor hast wird effektiv nicht funktionieren. Ich weiß ja nicht, 
was dein super geheimes Produkt so tolles machen kann, aber wenn man die 
Hardware inklusive Schaltplänen kennt, ist eigene Firmware schreiben 
nicht wirklich aufwendig.

Was du nutzen könntest, wäre sowas wie SFI von ST:
https://www.st.com/resource/en/application_note/an4992-introduction-to-secure-firmware-install-sfi-for-stm32-mcus-stmicroelectronics.pdf

Aber das gibts nur für die dickeren Controller und der Aufwand steht in 
keinem Verhältnis.

Je nachdem was die Salamischeibe tut, werden die, die es nutzen wollen, 
vermutlich eigene Firmware schreiben. Vielleicht bauen es einige sogar 
in besser nach, man weiß es nicht. Es wird ja nicht die Lösung für 
Kernfusion sein.

Wenn du uns mal erklären würdest, was das geheime super Produkt so kann, 
könnte man das vermutlich besser einschätzen.

von Clemens S. (zoggl)


Lesenswert?

Kevin M. schrieb:
> Was du nutzen könntest, wäre sowas wie SFI von ST:

Nein kann er nicht nutzen.

Für das ST modell muss ein Hardware Token (HSM) zum OEM, der damit die 
Keys erzeugt. Das funktioniert nicht zum selbst flashen, da dann ja das 
HSM zu jedem Kunden muss (dann kannst du gleich den programmierten Chip 
schicken)

Du könntest dir aber dein eigenes Programmoertool schreiben das das als 
Relay weiterleitet.

So in der Art:
Programmiertool verbindet sich mit Chip, holt Zertifikat und public Key 
vom Chip, leitet die zu dir, du prüfst, ob Zertifikat und Keys von einem 
ST Chip stammen (sonst könnte dir ja jemand einen public Key schicken, 
zu dem er den privaten kennt). Danach erzeugst du das key File und 
schickst es an den Programmer. Dieser spielt es auf den Chip und dieser 
entschlüsselt das dann mit seinem Key.

Wenn ich ehrlich bin, würde ich aber eher das Programmiertool klauen und 
verwenden wollen, da sehe ich einen Markt. Bei der Firmware 
wahrscheinlich nicht.

Sg

von Michael (Gast)


Lesenswert?

Flip B. schrieb:
> Der Nutzerkreis ist auch sehr eingeschränkt.
Dann ist Dein Problem nicht existent.
Du willst eine einfache Sache für den Kunden maximal kompliziert machen, 
weil Du zwar nicht die Kontrolle abgeben willst, aber auch nicht die 
Produktion managen willst.
Man kann den Kuchen nicht essen UND behalten..

Das Projekt ist eh schon für wenige interessant.
Ein Erfolg damit fraglich.
Jede weitere Hürde halbiert die Nutzerzahlen.

In zwei Jahren hast Du dann keinen Bock mehr, bekommst einen 
Schlaganfall oder läufst vor den Bus.
Und dann sitzt man da mit diesem unsinnigen Projekt, bei dem man zwar 
alles selber machen muss, es dann aber nicht besitzt, weil DU nicht 
loslassen kannst.

Erfreu Dich am Erfolg, wenns einer wird.
Und wenn einer das in Massen baut, ist das doch eine Wertvolle 
Dienstleistung für all diejenigen die es haben aber nicht selber bauen 
wollen.
Und wenn es frei ist, kann auch keiner Fantasiepreise nehmen, weil eben 
JEDER es vollständig bauen kann.

Die Dinge sollen sich entwickeln.
Bei Open HW / SW ist man idealerweise nur der Geburtshelfer und 
begleitet das Projekt tatkräftig.
Aber damit es wachsen kann, muss man es freilassen.

von Walter T. (nicolas)


Lesenswert?

Kevin M. schrieb:
> [...] aber wenn man die
> Hardware inklusive Schaltplänen kennt, ist eigene Firmware schreiben
> nicht wirklich aufwendig.

Interessante Ansicht. Bei mir ist die Firmware fast immer mit Abstand 
der aufwendigste Teil.

von Kevin M. (arduinolover)


Lesenswert?

Walter T. schrieb:
> Interessante Ansicht.

Ich passe mich nur dem Forum an...

von Michi S. (mista_s)


Lesenswert?

Flip B. schrieb:
> wenn man in den Bestückungsdruck einen vermerk macht "check
> registration: www.domain.de/check/" und da dann als käufer
> sehen kann, ob die UID des Prozessors registriert wurde.

Mal abgesehen davon, daß dabei die Frage bleibt, wie sehr das die Käufer 
wirklich interessiert, wenn sie dafür die HW vermutlich günstiger 
kriegen, als sie nachbaubar wäre, wie schwer ists für den Chinesen wohl, 
des aus dem Bestückungsdruck raus zu löschen, oder genau dort einen 
Aufkleber mit Seriennr. o.ä. hinzupappen?

von Martin S. (strubi)


Lesenswert?

Taeglich gruesst das Murmeltier...

Sicherheit auf Level "Geheimhaltung deiner Firmware" hast du mit deinem 
Konzept nicht, die meisten Chips lassen sich irgendwie per SWD oder JTAG 
in die Emulation glitchen. Damit ist ein gewiefter RE im System, und der 
ganze Aufwand fuer die Cryptoloesung ist fuer die Katz.
Ansonsten wurden die Argumente schon oben aufgezaehlt, die dein Vorhaben 
ad absurdum fuehren.

Ich verstehe allerdings eine gewisse Motivation, sich nicht mit WEEE und 
EAR rumschlagen zu muessen, aber die Tage, das ueber China abzuwickeln, 
sind gezaehlt.

Ich wuerde das pragmatisch machen. Genaues lasse ich mal aus, aber ich 
habe schlicht einen Hash-Wert irgendwo, der sowohl embedded wie auch 
remote (PC, etc.) ueberprueft wird, also im Grund, ob die Programmierung 
"genuine" ist. Wenn nicht, kommen die Supportanfragen (hier genau einmal 
in 20 Jahren vorgekommen, und war nicht mal unredliche Absicht). Kann 
man natuerlich ganz einfach knacken. Wenn du dann feststellst, dass 
deine HW als Hackerziel populaer wird, legst du sie entsprechend neu 
auf, suchst dir einen vertrauenswuerdigen Distributor, lieferst ihm 
deine Programmierloesung mit Datenbank, und bringst ab und an ein tolles 
neues Firmware-Feature, was die Klonkrieger (noch) nicht haben.
Der Rest ist Kundenservice.

Witzigerweise funktioniert so gesehen Security by Obscurity viel besser. 
Manchmal hilft auch eine obskure CPU-Architektur, die ghidra nicht 
kennt.

Als Hacker will ich grundsaetzlich keine Hardware haben, die bei einem 
gekippten Bit schon als "bricked" gilt, weil ich sie nicht neu flashen 
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.