Forum: FPGA, VHDL & Co. Eigene SoC-Software vor Duplizierung schützen


von He. (Gast)


Lesenswert?

Als eifriger Leser (bisher sehr passiv) dieses Forum habe ich mich 
einfach mal registriert um ein Problem aktiv zu diskutieren.

Ich hätte eine Frage zum Schutz von Software auf FPGA-Bausteinen - 
besonders in SoC-Systemen, kenne mich aber damit leider noch nicht aus. 
Ich habe bisher zusammentragen können, dass es eine Art von DNA gibt 
sowie E-Fuses, um Code zu schützen, blicke aber nicht, wie das geht und 
ob das für meinen Anwendungsfall anwendbar ist. Bevor ich in die falsche 
Richtung denke oder entwickle, wäre ein Tipp ganz hilfreich.

Zunächst der Sachstand:

Ich bin MicroController-Entwickler in einem Grosskonzern und darf 
nebenher Produkte vertreiben, da ich das schon bei einem Einstieg tat. 
Ich verfüge eine über Jahre entwickelte Software für einen ARM-Core, die 
auch für ein stand-alone ARM-System entwickelt- eine Weile vertrieben 
wurde. Die soll jetzt neu aufgesetzt und lizensiert verteilt werden. 
Dazu soll sie auf ein aktuelles SoC portiert werden, für das eine Reihe 
von Erweiterungsmodulen im Markt ist und das potenzielle Kunden gerne 
als Entwicklungsplattform nehmen. Ferner soll es auf ein SoC eines 
Drittherstellers, der solche Module liefert und die bei den Kunden als 
Schaltzentrale in ihren Geräten dienen und dort gut bekannt sind. Es 
gibt rund 5.000 + 8.000 Installationen weltweit.

Ein Teil dieser Kundschaft hat auch Bedarf für meine Anwendung, muss 
diese aber derzeit als eine Art "Messgerät" kaufen. Es ist in etwa so, 
wie eine Firma, die STM-Devel-Plattformen in ihrem Produkten einsetzt 
und Teilfunktion eines "Oszilloskops" benutzt, um überhaupt zu 
entwickeln. Ich liefere denen nun sozusagen Code für so eine Plattform, 
mit der sie dann das machen können, was sie wollen, ohne ein 
"Oszilloskop" zu brauchen, das dann frei wird, für andere Aufgaben oder 
von denen man weniger anschaffen muss. Ich liefere damit für mich und 
den Kunden sehr kostengünstig etwas, was ich schon zu 90% habe und der 
Kunde profitiert von einer sehr günstigen Hardware.

Es ist aber nötig, den potenziellen Kunden regelmäßig updates zu senden, 
die sie einfach aufspielen können müssen, weil das System regelmäßig an 
eine sich im Markt ändernde Bedingung angepasst werden muss. Ich kann 
also nicht mehr einfach eine embedded HW kaufen oder bauen, die Software 
reinwerfen und schützen, wie vorher.

Es handelt sich bei der angepeilten Hardware um jeweils ein 
SoC-Entwicklungssystem, das man frei kaufen kann, daher gibt es keine 
Möglichkeit, eine Weitergabe der Software zu verhindern, ohne ein 
aktives Lizensierungsmodell zu etablieren. Vorgeschlagen wird das 
Andocken über Linux an Server und Aktivierung per Code. Das ist auch zu 
aufwändig und sprengt meinen Zeit´- und Kostenrahmen. Auch eine eigene 
HW scheidet aus. Ich muss mich aus Kostengründen an existente HW 
dranhängen.

Die Sache rechnet sich ungefähr so, dass die SW 300,- kosten soll, die 
Soc-Hardware muss der Kunde kaufen und kommt maximal auf 600,- er hat 
aber eine Funktion, die im Fertiggerät derzeit >4.000 kostet. Kunden, 
die schon solche Plattformen nutzen, fahren nochmal billiger. Ich könnte 
also für meine SW sogar noch mehr nehmen, es ist aber unmöglich, für 
geschätzt 500 Kunden in Europa bei jedem update (sicher alle 4 Wochen) 
einen Lizensierungslauf zu machen.

Ich suche deshalb eine Möglichkeit, das System mit der HW selber zu 
schützen, auch wenn es nicht die eigene ist und ich die gfs gar nicht in 
die Finger bekomme. Es gibt auf dem SoC ein TEMP-EEprom, in das man 
einen Code einbrennen könnte, aber es wäre für jeden Elektorniker 
leicht, den zu kopieren und an jeden Elektronikbastler weltweit 
weiterzugeben. Auch könnte sich eine Gruppe von Personen einen Code 
holen und dann die halbe Stadt damit arbeiten.

Ich habe nun die Idee, das mit dem FPGA zu schützen:

von He. (Gast)


Lesenswert?

Es soll so funktionieren, dass die SoC-Software einen kleinen FPGA-Teil 
enthält, der neben den IO-Funktionen in der Lage ist, die HW auszulesen 
und der SW melden kann, in welcher HW er sich befindet und was für ein 
FPGA er ist. Die Sourcen für die SoC-FPGA-PL gibt es vom Hersteller.

Soweit ich weiß, enthält der FPGA einen DNA-Code. Ich nehme an, dass es 
eine VHDL gibt, die in der Lage ist, diesen auszulesen. Diese wollte ich 
in die Sourcen einsetzen und das FPGA kundenspezifisch bauen, damit 
jeder Kunde EINMAL einen FPGA-Code bekommt, den er reinladen muss, oder 
den ich bei Auslieferung des SoC einbringe und dann nur noch Software 
überladen braucht. Das FPGA soll so programmiert werden, dass dieses 
Kunden-VHDL nur auf diesem FPGA funktioniert, also ein einfacher 
Vergleich, ist der DNA Code im FPGA der, den mir der Kunde bei der 
Bestlellung mitgeteilt hat und den ich in die Sourcen eingesetzt habe. 
Der Kunde könnte es zwar weitergeben, aber es arbeitet nicht. Die SW 
soll so programmiert werden, dass der FPGA "positiv" melden muss. Dafür 
habe ich schon eine sichere Idee wie ich das machen möchte, ohne dass es 
von aussen gefälscht, gelesen und vorgetäuscht werden kann. Ich habe 
nämlich die Befürchtung, dass genau das passieren wird, weil die 
Anwendung auch für ambitionierte Elektronikfreunde interessant sein 
könnte und es nur einen einzigen Hacker braucht, der das angeht. Meine 
Codierung stellt sicher, dass die SW nur funktioniert, wenn sie ihr 
Gegenstück "sieht". Das funktioniert in einer anderen Anwendung rein in 
SW auch über das lokale Ethernet in Firmen.

Der Punkt ist also sicher- ich brauche nur irgendeine Form einer 
gebrandeten Hardware.

Die Frage ist, funktioniert das so? Kann ich eine SW für das SoC bauen 
lassen, die nur einen FPGA-Teil programmiert und eine, die nur den 
PS-Teil programmiert?  Den FPGA würde man kundenseitig auch einmalig mit 
einem JTAG beschreiben können, um das Flash anzusteuern. Nach meiner 
Vorstellung sollte es so sein, dass der Kunde "sein" FPGA image einmal 
einbrennt / eingebrannt bekommt und danach so oft er will, neue SW 
überladen kann. Die SW ist dann für alle Kunden dieselbe und liegt auf 
meiner HP, wäre also frei verteilbar, funktioniert aber nicht ohne ein 
kundenspezifisches FPGA.

P.S. in der Vergangenheit war es so, dass ich eine HW erworben hatte, 
dort das flash beschrieben hatte und die SW dann einen plausiblen Code 
im Flash lesen musste, um zu arbeiten. Das Flash war so manipuliert, 
dass man es nicht einfach auslesen konnte und auch nicht beschreiben 
konnte. Auch das wurde aber schon vereinzelt dupliziert, wie ich 
feststellen musste. Das waren aber wohl nur interne Duplikate bei 
Industriekunden. Die neue Software enthält hingegen Funktionen, die auch 
für Bastler in Interesse sein könnten. Dann laufe ich in dieselbe 
Problematik hinein, wie gewisse Hersteller von LogicAnalazern, deren SW 
auf Billighardware portiert wird.

Leider ist die HW, mit der ich gearbeitet hatte, veraltet und auch nicht 
mehr zu erwerben. Eine aktuelle und verbesserte ist zu teuer. Die 
SoC-Plattformen bieten hingegen ein Vielfaches an Möglichkeiten und sind 
bei den Kunden so verbreitet wie PCs. Ähnlich könnte sich auch die SW 
verteilen, wenn ich sie nicht schütze. Nur ein NDA, wie bei Kunden 
bisher,  wird da nicht reichen. Es reicht ein einziger Nutzer bei einem 
Kunden, der den kundenspezifischen Namen im Flash überschreibt und die 
SW ins Netz stellt. Dann freut sich nur der Hersteller der Plattform, 
der die dann um so besser verkaufen kann. Mti dem hatte ich mich schon 
kurzgeschlossen, aber der wollte mein App nicht kaufen und eine 
Beteiligung an den Verkäufen, wenn er es mitliefert, ist zu aufwändig, 
da Kleckerbetrag. Der lässt die auch in China produzieren und von dort 
schon an die Distris verteilen, wie ich erfuhr.

Ich muss also entweder selber die HW vom Distri kaufen und programmieren 
oder dem Kunden etwas senden, was nur er verwenden kann. Die Idee ist, 
eine dummy image, das den DNA Code auslesen kann und ihn sichtbar macht, 
damit der Kunde ihn mit schickt.

von He. (Gast)


Lesenswert?

Ich hoffe ich habe jetzt keinen erschlagen mit dem Text. Wäre nett, wenn 
jemand der mit solchen Systemen schon gebaut hat, mir einen Tipp geben 
könnte, wie man das am Schlauesten macht. Das mit den E-fuses ist mir 
u.B. suspekt. Laut einem Herstellerhinweis kann man seine FPGA-Software 
damit verschließen, aber nach meinem Verständnis geht das dann nur 
einmal.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Harald E. schrieb:
> Die neue Software enthält hingegen Funktionen, die auch
> für Bastler in Interesse sein könnten.
Vor Bastlern hätte ich keine Angst.
> Dann laufe ich in dieselbe Problematik hinein, wie gewisse Hersteller
> von LogicAnalazern, deren SW auf Billighardware portiert wird.
Das hat den Originalherstellern aber übrigens nicht geschadet, sondern 
eher noch zur Bekanntheit und Verbreitung beigetragen.

> Der Punkt ist also sicher- ich brauche nur irgendeine Form einer
> gebrandeten Hardware.
Nimm einen DS28E10. Funktioniert bei uns tadellos, keine Klone bekannt.
https://www.maximintegrated.com/en/products/embedded-security/secure-authenticators/DS28E10.html

von Christoph Z. (christophz)


Lesenswert?

Harald E. schrieb:
> dass es eine Art von DNA gibt

Ich vermute, du meinst hier PUF: 
https://en.wikipedia.org/wiki/Physical_unclonable_function

Harald E. schrieb:
> Die SW
> soll so programmiert werden, dass der FPGA "positiv" melden muss. Dafür
> habe ich schon eine sichere Idee wie ich das machen möchte, ohne dass es
> von aussen gefälscht, gelesen und vorgetäuscht werden kann.

Das haben schon viele vor dir gedacht, die einen Kopierschutz in 
irgendeine Software eingebaut haben.
Meistens reichte dann doch ein passend gesetzter Jump in Assembler um 
das zu umgehen.
Chain of Trust, der FPGA/SoC soll dann nur noch signierten Code 
ausführen, der Booloader nur signierte Software etc.

Ist mit SRAM basierten FPGAs aber nicht so einfach.

Harald E. schrieb:
> Die Sache rechnet sich ungefähr so, dass die SW 300,- kosten soll, die
> Soc-Hardware muss der Kunde kaufen und kommt maximal auf 600,- er hat
> aber eine Funktion, die im Fertiggerät derzeit >4.000 kostet.

Dann verkauf es doch mit unterschiedlichen Preisen für Profis und 
Bastler. Ist ein Model das sich bei mehreren Projekten erfolgreich auf 
die Bekanntheit ausgewirkt hat und die Motivation zum Kopieren stark 
reduziert.

Harald E. schrieb:
> Die Frage ist, funktioniert das so? Kann ich eine SW für das SoC bauen
> lassen, die nur einen FPGA-Teil programmiert und eine, die nur den
> PS-Teil programmiert?  Den FPGA würde man kundenseitig auch einmalig mit
> einem JTAG beschreiben können, um das Flash anzusteuern. Nach meiner
> Vorstellung sollte es so sein, dass der Kunde "sein" FPGA image einmal
> einbrennt / eingebrannt bekommt und danach so oft er will, neue SW
> überladen kann.

Kommt sehr vom eingesetzten SoC ab. Die haben verschiedene Abläufe wie 
die Booten.

Ich kann selber nur vom 7-Series Zynq reden. Da ist es schon mal anders 
als deine Vorstellung, da nähmlich der ARM Core zuerst bootet und ein 
Bootloader, den du in das externe Flash schreiben musst dann den FPGA 
Teil beschreibt mit dem Bitstream der auch im externen Flash steht. 
Danach lädt der Bootloader typischerweise die Anwendersoftware vom Flash 
oder springt in einen weiteren Bootloader der dann mehr kann (Software 
laden von SD Karte Netzwerk oder was auch immer).

Harald E. schrieb:
> Soweit ich weiß, enthält der FPGA einen DNA-Code. Ich nehme an, dass es
> eine VHDL gibt, die in der Lage ist, diesen auszulesen. Diese wollte ich
> in die Sourcen einsetzen und das FPGA kundenspezifisch bauen, damit
> jeder Kunde EINMAL einen FPGA-Code bekommt, den er reinladen muss, oder
> den ich bei Auslieferung des SoC einbringe und dann nur noch Software
> überladen braucht. Das FPGA soll so programmiert werden, dass dieses
> Kunden-VHDL nur auf diesem FPGA funktioniert, also ein einfacher
> Vergleich, ist der DNA Code im FPGA der, den mir der Kunde bei der
> Bestlellung mitgeteilt hat und den ich in die Sourcen eingesetzt habe.

Du kennst Project X-Ray? Dann basteln wir halt so lange an einem 
Kundenspezifischen Bitstream herum, bis der auf jedem FPGA bootet. Nicht 
trivial aber wenn dein Produkt ein so krasses haben-muss Produkt ist, 
wird das wohl gemacht werden.
Sonst natürlich nicht, und wir Bastler wären zufrieden dir einfach 30 € 
pro Jahr zu geben.

von aäfdkj (Gast)


Lesenswert?

Christoph Z. schrieb:
> Dann verkauf es doch mit unterschiedlichen Preisen für Profis und
> Bastler. Ist ein Model das sich bei mehreren Projekten erfolgreich auf
> die Bekanntheit ausgewirkt hat und die Motivation zum Kopieren stark
> reduziert.

Das funktioniert ganz gut.

Dass ich mir privat einen J-Link EDU gekauft habe, hat in der Firma zu 
mindestens 2 Käufen der Vollversion geführt.
Den Segger hätte ich privat nie gekauft, hätte er viel mehr als die ca. 
50€ gekostet.

So profitiert jeder.

von He. (Gast)


Lesenswert?

Lothar M. schrieb:
> Vor Bastlern hätte ich keine Angst
Dein Selbstbewusstsein in Ehren aber aus nächster Nähe habe ich schon 
andere mit ähnlichen Projekten kaputtgehen sehen, weil ihnen was gehackt 
wurde.

Lothar M. schrieb:
> Nimm einen DS28E10. Funktioniert bei uns tadellos
Das wäre in der Tat das Beste, scheidet aber leider aus, weil das nicht 
auf den anvisierten boards drauf ist. Ich müsste dann eine Zusatzplatine 
bauen und liefern. Das läuft dann auf die Lösung 3 hinaus - siehe unten:

von He. (Gast)


Lesenswert?

Als eine weitere Idee:

Es wird Kunden geben, die ihre Plattform für ihren Zweck nutzen möchten 
und permanent zwischen meiner Funktion und der ihren hin und herschalten 
möchten. Von daher könnte es sein, dass es auch schon deshalb nicht 
geht, einmal den FPGA zu laden und dann nur noch die SW, weil beim 
Rückschalten auf die Kunden-APP alles wieder weg wäre und der Kunde dann 
erst wieder meine primäre FPGA-SW laden müsste.

Zwischenfrage: Kann man das Flash so nutzen, dass der Kunde seine 
Kunden-APP drin hat (also SoC-Software + eingebaute SoC-FPGA-firmware) 
und parallel meine beiden Versionen, also SoC-FPGA-firmware + allgemeine 
SW?

... also für den Fall, dass das SoC das ermöglicht (siehe die 
Einschränkung von  Christoph).

Angenommen, das geht nicht, folgende Frage:

Wäre es möglich, Teile des FPGA partiell zu rekonfigurieren? D.h. man 
startet das System mit einer Komplett-Software, die alles enthält und 
die kundenspezifisch nur auf seinem FPGA läuft und dann herzugehen und 
aus dem Flash einen aktuellen Teil drüber zu laden?

Es wäre mit etwas Aufwand nämlich möglich, die sich ändernden 
Informationen per Daten-Code im FPGA abzulegen, also als Tabelle oder 
Anweisungssequenz. Es gibt in der SW nämlich einen konfigurierbaren 
Prozessor wie eine MINI-RISC, welche Codes abarbeiten kann. Damit wären 
die monatlichen Anpassungen leistbar. Die Codes kämen eben aus dem 
FPGA-ROM, statt aus Tabellen im C-Code.

Es wäre prima wenn man das irgendwie hinbekommen könnte, weil ich 
nämlich sonst einen intelligenten dongle bauen und verschicken müsste. 
Siehe Vorschlag von Lothar M.

Die Notlösung wäre ein kleines Zusatzmodul, das man kaufen kann und das 
einen eigenen FPGA hat, den ich kundenspezifisch programmieren kann, um 
Funktionen freizuschalten, nur habe ich noch nicht rausbekommen, welcher 
FPGA das ist und ob der auch DNA hat. Außerdem erhöht das den Aufwand 
und verhindert, dass die Lösung auch für einige Bastler interessant ist. 
Ich gehe davon aus, dass zumindest die HF-Bastelfraktion Interesse an so 
einem System hat.

von He. (Gast)


Lesenswert?

Christoph Z. schrieb:
> Du kennst Project X-Ray? Dann basteln wir halt so lange an einem
> Kundenspezifischen Bitstream herum, bis der auf jedem FPGA bootet.
Bisher nicht. Ich habe noch nicht viel mit FPGAs gemacht. Ich nehme an, 
du meinst das hier:
https://symbiflow.readthedocs.io/projects/prjxray/en/latest/

Das klingt für mich nach organisiertem Hacken. Das soll nicht heißen, 
dass ich das schlecht finde oder für illegal halte, es ist nur leider 
so, dass dies ein Beispiel dafür ist, wie sehr manche einen Sport daraus 
machen, die IP, wo manch einer Tausende Stunden reingesteckt hat, für 
andere kostenfrei zu "klauen".

Christoph Z. schrieb:
> Das haben schon viele vor dir gedacht, die einen Kopierschutz in
> irgendeine Software eingebaut haben.
> Meistens reichte dann doch ein passend gesetzter Jump in Assembler um
> das zu umgehen.
So einfach ist das nicht. Es ist eben nicht nur eine Abfrage. In dem 
FPGA und den darin hinterlegten (zu hinterlegenden) Daten steckt 
erheblich mehr drin. Man kann nicht einfach etwas ändern und es zum 
laufen bringen, weil man nicht erkennt, wann es richtig läuft und wann 
nicht. Den Messergebnissen ist das nicht unbedingt anzusehen. Es geht 
u.a. um Kalibrierdaten, die (bei einer neuen Funktion) auch mit den IOs 
des FPGA zu tun haben werden. D.h. es ist Teil der Funktion, dass sich 
das FPGA auf das PCB anpasst und dies fließt bisher nur in die Daten, 
nach neuer Planung auch in den Code. Steckt man dort ein falsches image 
rein mit gefälschtem Code, kriegt man Werte, aber sie sind praktisch 
wertlos.

Hinzu kommt, dass die Hackerei nach der Methode oben eine Halbwertszeit 
hat und nur bis zum nächsten update lebt.

Wie gesagt ginge nach meinem Posting hier auch ein reiner Dongle, der 
dann zwar dümmer wäre, als der FPGA, dafür aber direkt die Sicherheit 
brächte. Leider erfordert das, dass ich den liefern und irgendwie in die 
HW einbauen muss. Auf dem SoC-System des Anbieters ist aber schon ein 
FPGA drauf, der  für intelligente Funktion vorgesehen ist und der für 
diverse Dinge mitbenutzt werden wird. Damit könnte man ihn auch für den 
SW Schutz mitverwenden.

ich habe nämlich noch das Problem, dass ich in dem Idealfall nur SW 
liefern muss, während ich in jedem anderen Fall auch HW liefern muss, 
was eine andere Qualität hat, steuerlicher und arbeitsrechtlicher Art. 
Wahrscheinlich auch Haftung etc.

von He. (Gast)


Lesenswert?

Christoph Z. schrieb:
> Ich vermute, du meinst hier PUF:
Das ist ja cool! Hätte ich nicht gedacht, dass soetwas geht.

--------------------------
Bei einer Ringoszillator-PUF werden verschiedene Glieder mit zeitlicher 
Verzögerung rückgekoppelt und beispielsweise auf einen Eingang eines 
Multiplexers gelegt. Die Dauer der Schwingung hängt wieder von kleinen 
Produktionstoleranzen ab und ist individuell für den PUF. Der 
Rückgabewert wird aus dem Vergleich von Oszillatorfrequenzen erreicht 
oder aus dem Auslesen eines Multiplexers zu einem bestimmten Zeitpunkt. 
Durch geschickten Vergleich lassen sich Schwankungen in den 
Umgebungsbedingungen vorteilhaft eliminieren.
------------------------------

Ich frage mich aber, wie man das auswertet. Dafür reichen meine 
FPGA-Kenntnisse nicht aus. Wenn der FPGA einen digitalen DNA-Code hat 
(also wirklich jeder CHIP einen eigenen) dann reicht mir das aus, den 
mit den den Freischaltcode zu nehmen.

Es gibt nämlich noch einen geplanten Schutz: Das System schreibt 
Protokolldaten in ein file und dies erfolgt als Ausgabe eines serieller 
Datenstroms über UART. In diesen UART-Daten stehen nicht nur Datum, 
Erfassungswerte und Protokolltyp, sondern auch die Firma und der user, 
der die Messung gemacht hat. Den User-Output müsste er erst einmal 
ändern. Das hat schon im alten System dafür gesorgt, dass Firmen es 
nicht so ganz offensichtlich mehrfach nutzen konnten.

von Martin S. (strubi)


Lesenswert?

TL;DR;, unterm Strich kann ich nur sagen: Mach' eine eigene Hardware. 
Alles andere ist nach meiner Erfahrungen (und der vieler Kollegen im 
aehnlichen Geschaeft) eher zum Scheitern oder zur sinnlosen Verzettelung 
verurteilt.
Von Lattice gibt es ein paar pfiffige Ansaetze, sich 'sein' FPGA zu 
schuetzen ohne dass man sich allenfalls selbst aussperrt und neue HW 
liefern muss.
Interessant ist auch einfach, Mechanismen einzubauen, die 
unrechtmaessige Nutzung protokollieren. Haelt sich nach meiner Erfahrung 
im Promillebereich (bei einer einfachen Seriennummer und XOR-Check).
Und ja, hackbar sein macht ein Produkt allenfalls erst interessanter, 
als die grossartige eigene Erfindung.

von W.S. (Gast)


Lesenswert?

Harald E. schrieb:
> Ich hätte eine Frage zum Schutz von Software auf FPGA-Bausteinen -
> besonders in SoC-Systemen, kenne mich aber damit leider noch nicht aus.

Du bist erst einmal angestellt und willst privat etwas dazuverdienen. 
Gelle?

Und zwar mit Software, die auf normaler Kauf-Hardware läuft. Und die 
schätzt du kraft deiner Nase als 300€ wert ein.
Hmm, es ist imer wieder das Gleiche: Softwareleute erhoffen sich von 
ihrer Arbeit den anschließenden Gold-Regen.

Mein Rat: mach deine Software frei von Lizenzgehadere und mache sie 
billiger, z.B. 35€/Stück. Dann kriegst du zwar weniger herein, aber es 
ist ja nur nebenberuflich und du sparst dir einen Haufen Ärger mit dem 
Buchführen der vergebenen Lizenzen usw.

Und merke: der echte Straßenpreis regelt das und nicht etwa die 
Vorstellungen der Programmierer.

W.S.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Harald E. schrieb:
> Ich frage mich aber, wie man das auswertet.
Vergiss es. Das hört sich zwar recht geschwollen (und irgendwie nach 
einem Patentauszug) an, funktioniert aber in der Praxis garantiert nicht 
zuverlässig oder wenigstens hinreichend.

von Martin S. (strubi)


Lesenswert?

Harald E. schrieb:
> Das klingt für mich nach organisiertem Hacken. Das soll nicht heißen,
> dass ich das schlecht finde oder für illegal halte, es ist nur leider
> so, dass dies ein Beispiel dafür ist, wie sehr manche einen Sport daraus
> machen, die IP, wo manch einer Tausende Stunden reingesteckt hat, für
> andere kostenfrei zu "klauen".

Nochwas dazu:
Mit Sport oder Klauen hat das so gar nichts zu tun. Project XRAY 
reverse-engineert das Mapping von Bitstream auf die FPGA-Primitiven zum 
Zweck, OpenSource PnR-Tools nutzen zu koennen. An den Quellcode des IP 
kommt man auch mit Reverse-Engineering-Tools nicht.
Quellcode zu einem SoC laesst sich hingegen sehr leicht aus den 
SRAM-Initialisierungs-Blocks auslesen und in Assembler rueckuebersetzen. 
Das war's dann aber schon. Dem kann man allerdings mit genuegend 
Obfuskierung (gibt's das im Deutschen?) entgegenwirken, dass der 
Reverse-Engineer schon mal viel Muehe hat, die Architektur zu erraten, 
die in deinem Fall schon verraten wurde.

Faellt mir grade noch einer ein: Ich hatte einen Kunden aus der 
Roboterecke, der HW und SW angeboten hat. Seine pragmatische Antwort, 
wie er die SW an die HW bindet resp billiges Klonen unterbindet: Dann 
kaufe ich die Hardware halt bei DEM. Die SW wurde dann sowieso 
OpenSource.

Also: Besser nochmal ueber die Buecher gehen..

von He. (Gast)


Lesenswert?

Oh, Oh, Oh, also langsam:

Martin S. schrieb:
> Mach' eine eigene Hardware.
Scheidet aus. Das System ist zu komplex um es preisgünstig nachzubauen. 
Es wären Stückzahlen im Bereich der 5000 nötig gfs 10.000. Das ist wie 
"bau deinen eigenen Industrie-PC" um die SW zu schützen.

Martin S. schrieb:
> Von Lattice gibt
Das System läuft mit einem Xilinx UltrasScale-Baustein. Einen kleinen, 
aber aber eben mit einem der Glasfaseranschluss und eben noch einiges 
mehr hat, was ich verwenden kann.

W.S. schrieb:
> Du bist erst einmal angestellt und willst privat etwas dazuverdienen.
> Gelle?
Nein ich bin "erst einmal" Inhaber eines ING-Büros (gewesen), wurde dann 
für eine Weile in einem Sonderprojekt angestellt und weggekauft. Bin 
dann fest in einen Konzern, während das ING-Büro weitergeführt wird. Nix 
privat. Ich habe auch noch 2-3 andere Sachen, die laufen - eine davon 
MIT eigener Hardware.

W.S. schrieb:
> Und zwar mit Software, die auf normaler Kauf-Hardware läuft.
Richtig. So wie es unzählige Software gibt die auf PCs, Industrie-PCs, 
Linux-Systemen und anderen embedded Systemem laufen. Oder nehmen wir 
eine Software für eine PLC oder VPX.

Martin S. schrieb:
> Mit Sport oder Klauen hat das so gar nichts zu tun.
Das hatte ich auch sofort verneint, wenn du richtig liest. Zudem wurde 
das Projekt ja mir gegenüber (und nicht "von mir") als eine Möglichkeit 
dargestellt, den bitstream zu knacken. Ich sehe das eher als 
unbedeutende Gefahr. Wenn ein Kopierschutz drauf ist, der an die HW 
gekoppelt ist, sollte das ausreichen, um massenhaftes Kopieren zu 
unterbinden. Der Phreak, der es gebrauchen kann, wird liebend gern etwas 
Geld hinlegen, weil es ihm nämlich Zeit spart. Wenn er erst hacken muss, 
wird es unrentabel für ihn. Die Nutzer legen ja Tausende hin.

Martin S. schrieb:
> "Dann kaufe ich die Hardware halt bei DEM."
Das mache ich gerne auch, wenn ich eine billigere finde. Das ist aber 
nicht das Problem. Ich verdiene nichts an der Hardware, sondern möchte 
eine allgemeine flexible Hardware für mich nutzen.

Aber jetzt nochmal zum eigentlich Thema:

von He. (Gast)


Lesenswert?

Also:

Ich habe mir das sehr gut überlegt und was ich machen möchte, ist auch 
nichts Ungewöhnliches: Im Gegenteil, ich nutze eine allgemeine Plattform 
eines Herstellers so, wie er es sich denkt, nämlich als 
Kleinserienprodukt. Das Einzige, was ich nicht machen muss, ist eine 
eigene Hardware für meinen Zweck zu bauen, um sein System als "on-top" 
einzusetzen. Es ergibt sich nämlich die komfortable Situation, dass - in 
Verbindung mit einigen Erweiterungsplatinen - schon alles verfügbar ist, 
was der Mensch braucht. Es braucht nur eine Software mit Intelligenz.

Ich führe als Beispiel eine VX oder einen anderen single board PC an, 
der in Systemen integriert wird. Im vorliegenden System ist es nur so, 
dass die Zusatzplatine so einfach und billig ist, dass man mit SOC + EXP 
auf 600,- bis 700,- Euro rauskommt. Das kann (und "soll" von mir aus) 
jeder machen. Nur wenn er eine Software kauft, die besondere Funktionen 
hat und die im Arbeit oder die Anschaffung von weiterem Eqipment spart, 
soll er auch dafür bezahlen.  (Für das vorherige System wurde ja auch 
bezahlt).

Es ist nur so, dass das SOC-System, das für mich passt, leider nicht mit 
irgendwelchen Sicherheitsfunktionen ausgestattet ist. Es gibt keine 
Festplatte oder MAC/PHY der eine Seriennummer hätte, die man abfragen 
könnte, wie es bei PCs der Fall ist. Ich habe mich vor einiger Zeit mit 
Xilinx-Entwicklung befasst und erinnere mich, dass auch dort die Lizenz 
an die Platte gebunden ist.

Da ich ohnehin das FPGA etwas anpassen muss, kann ich auch gleich die 
security dort einbauen, oder?

Lothar M. schrieb:
> Vergiss es. Das hört sich zwar recht geschwollen (und irgendwie nach
> einem Patentauszug) an, funktioniert aber in der Praxis garantiert nicht
> zuverlässig oder wenigstens hinreichend.
Laut der Sichtung der Dokumente ist es wohl so, dass maximal 32 FPGAs 
der selben Serie die gleiche DNA-Nummer haben. Das würde mir eigentlich 
schon reichen. Was spricht dagegen?

Wenn es mit dem branding des FPGA nicht geht, muss eben ein dongle her. 
Dazu hattest Du den Chip von Maxim empfohlen. Leider ist das Dokument 
nur unter NDA zu bekommen, wie ich feststellen musste.

Könnte man kurz skizzieren, wie das funktioniert? Ich nehme an, der Chip 
hat eine feste Nummer ( oder eine die ich vergeben kann) und die dann 
per Software ausgelesen wird. Wie wird sichergestellt, dass dieser 
Vorgang im FPGA nicht abgehört oder entschlüsselt wird? Und wenn man den 
als sicher ansieht, warum wäre dann das DNA-Code lesen unsicher?

Der Chip wäre mir grundsätzlich nicht unsympathisch, da 1-wire-IF. Das 
wäre kein Problem, denke ich, wenn es Verilog dafür gibt, ihn sicher 
auszulesen. Und wenn er nicht zu teuer ist. ?

von Martin S. (strubi)


Lesenswert?

Harald E. schrieb:
> Das hatte ich auch sofort verneint, wenn du richtig liest.

Lies nochmal:

>> wie sehr manche einen Sport daraus
>> machen, die IP, wo manch einer Tausende Stunden reingesteckt hat, für
>> andere kostenfrei zu "klauen".

Notabene: Es kommt hier nicht sehr gut an, Stueckzahlen zu suggerieren, 
die durchaus ein serioeses Ingenieurbuero fuer dich kostenguenstig 
produzieren wuerde, sich dann aber kostenlos hier das Knowhow abzuholen.
Bau' eine einfache Seriennummerabfrage ein, und gut ist. Wenn du einen 
hackerresistenten Schutz willst, legst du dem Profi 30k hin, und gleich 
dasselbe dem freundlichen R-Engineer fuer den Penetrationstest, oder du 
machst halt deine Hausaufgaben selber.

von Johannes F. (doppelgrau)


Lesenswert?

Würde auch zustimmen, entweder ein einfacher Kopierschutz der ehrliche 
Leute hilft ehrlich zu bleiben, oder musst spezial-Hardware bauen und an 
die idealerweise auch einige Funktionen auslagern, damit die Überprüfung 
der HW nicht einfach raushackbar ist.

von Holger (Gast)


Lesenswert?

https://www.maximintegrated.com/en/design/technical-documents/app-notes/4/4594.html

APPLICATION NOTE 4594
PROTECT YOUR FPGA AGAINST PIRACY: COST-EFFECTIVE AUTHENTICATION SCHEME 
PROTECTS IP IN SRAM-BASED FPGA DESIGNS

Gruss Holger.

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Harald E. schrieb:
> Scheidet aus. Das System ist zu komplex um es preisgünstig nachzubauen.
> Es wären Stückzahlen im Bereich der 5000 nötig gfs 10.000. Das ist wie
> "bau deinen eigenen Industrie-PC" um die SW zu schützen.

Bei den Stueckzahlen gehst du zum Board Hersteller und sagst, er moege 
doch bitte den Baustein den Lothar vorgeschlagen hat, mit drauf packen. 
Wenn du ihm garantiert 5000 Stueck abnimmst, wird er das mit Kusshand 
tun und wahrscheinlich kostet das Board kein Cent mehr.

von Holger (Gast)


Angehängte Dateien:

Lesenswert?

https://www.xilinx.com/video/fpga/security-lock-before-you-leave.html

Learn how to enable bitstream encryption to secure your design. This 
video shows how to enable AES-256 GCM bitstream encryption to protect 
your design from unintended use or reverse engineering.

https://www.xilinx.com/support/documentation/user_guides/ug570-ultrascale-configuration.pdf

Protecting a Bitstream
Like processor code, a bitstream that defines the device’s functionality 
loads into the device
during power-on. Since this configuration data is stored off chip there 
exists a possibility of
unauthorized duplication / modification.
Like processors, there are multiple techniques to protect the bitstream 
and any embedded
intellectual property (IP) cores. The surest way to protect the 
confidentiality of your IP is to
encrypt the configuration data using an AES-256 key. Keys for the 
on-chip decryption logic
can be stored in either battery-backed RAM or one time programmable 
eFUSEs. This
technique allows for off-chip storage of your IP protected with high 
grade encryption.

Bitstream Security, eFUSEs, and Device
DNA
Bitstream Encryption and Authentication
The UltraScale architecture-based FPGAs have on-chip Advanced Encryption 
Standard (AES)
decryption and authentication logic to provide a high degree of design 
security. Without
knowledge of the encryption key, adversaries cannot analyze an 
externally intercepted
bitstream to modify or clone the design. Encrypted FPGA designs cannot 
be copied or
reverse-engineered.

von Holger (Gast)


Lesenswert?

Vivado Menue:

https://www.xilinx.com/support/documentation/application_notes/xapp1267-encryp-efuse-program.pdf
Encrypted Bitstream Implementation Overview.

Gruss Holger.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Harald E. schrieb:
> Dazu hattest Du den Chip von Maxim empfohlen. Leider ist das Dokument
> nur unter NDA zu bekommen, wie ich feststellen musste.
Welches "Dokument" meinst du? Für einen ziemlich tiefgehenden Blick 
reicht doch das, was als "Technical Documentation" frei zugänglich ist:
https://www.maximintegrated.com/en/products/embedded-security/secure-authenticators/DS28E10.html#tech-docs
https://www.maximintegrated.com/en/design/technical-documents/app-notes/4/4594.html
https://www.maximintegrated.com/en/design/technical-documents/app-notes/3/3826.html
https://www.maximintegrated.com/en/design/technical-documents/tutorials/1/1201.html

> Könnte man kurz skizzieren, wie das funktioniert? Ich nehme an, der Chip
> hat eine feste Nummer ( oder eine die ich vergeben kann) und die dann
> per Software ausgelesen wird.
Du schreibst selber deine Informationen und Freischaltcodes in den 
Speicher des Chips. Und diese Datenübertragung ist per SHA gesichert.

> Wie wird sichergestellt, dass dieser
> Vorgang im FPGA nicht abgehört oder entschlüsselt wird?
"Abhören" kann die Übertragung jeder, er braucht dafür nur einen 
1-Draht-Logicanalyzer. Der Witz liegt am entschlüsseln dieser Daten.

> warum wäre dann das DNA-Code lesen unsicher?
Eine Voraussetzung für die Unsicherheit ist, dass ich diese DNA 
natürlich auch ganz einfach auslesen kann.
Und dann geht es (etwas vereinfacht gesagt) etwa so: mal angenommen, ich 
habe 20 Klone deiner Steuerungen gebaut. Und ich habe 2 deiner 
Steuerungen mit gleichen Optionen aber natürlich mit 2 unterschiedlichen 
DNA gekauft. Dann erzeugst du mir fürs nächste Update 2 Bitfiles und 
sendest die mir zu. Und ich mache einen FileCompare zwische den beiden 
und weiß, wo du den Vergleich des Codes machst und wo ich die DNA der 
FPGAs meiner 20 Klone einbauen muss.

> Der Chip wäre mir grundsätzlich nicht unsympathisch, da 1-wire-IF. Das
> wäre kein Problem, denke ich, wenn es Verilog dafür gibt, ihn sicher
> auszulesen.
Die Kommunikation zum Maxim SHA-Device wird per Picoblaze-Software 
abgefragt.

> Und wenn er nicht zu teuer ist. ?
Eine Preisindikation gibts bei Maxim nach Klick auf "Buy". Und dann 
lässt du deinen Einkäufer von der Leine und der handelt das mit deinen 
Stückzahlen auf die Hälfte runter.

Der Trick ist, dass letztendlich die freigeschalteten Optionen im 
SHA-Device gespeichert sind, und es nur 1 einzigen Bitstream für alle 
deine Steuerungen gibt.
Du hampelst also nicht jeder Steuerung mit einem eigenen händisch 
erzeugten Bitstrem hinterher, sondern die Steuerung selber weiß, was sie 
kann und schaltet sich selber die Funktionen frei.
Und wenn du trotzdem für jeden Kunden einen eigenen Bitstream erzeugen 
willst, dann kannst du auch das.

: Bearbeitet durch Moderator
von S. R. (svenska)


Lesenswert?

Zusammengefasst: Du möchtest eine Software vertreiben, die auf einer 
frei zugänglichen Hardware läuft. Ferner möchtest du verhindern, dass 
jemand deine Software auf einem Gerät laufen lassen kann, für das er 
nicht bezahlt hat.

Soweit richtig?

Einigermaßen sicher wäre die Bindung an eine zusätzliche Hardware. Das 
kann ein Dongle sein, oder ein Chip zusätzlich zur verfügbaren Hardware 
(z.B. eine Platine, die man auf einen Arduino oder Raspberry Pi 
draufsteckt). Die Software kann dann die Existenz dieses Chips prüfen. 
Wichtig ist, dass die korrekte Funktion des Dongles/Chips für die 
Funktion der Software notwendig ist, sonst kann man das mit genug 
Aufwand umgehen.

Weniger sicher ist die Bindung an eine Seriennummer, die bei den meisten 
SoCs eingebaut ist. Bei der Bestellung der Software muss dann die 
Seriennummer des Chips angegeben werden und du generierst eine spezielle 
Version der Software für genau diese Seriennummer. Mit genug Aufwand 
kann man das immer umgehen.

Wenn du Angst vor Hackern und Bastlern hast, dann musst du den Aufwand 
nach oben treiben: Ein Dongle macht dich für Bastler wahrscheinlich 
unattraktiv genug, dass niemand den Aufwand treiben wird. Das gleiche 
gilt, wenn du die Generierung des Images so teuer machst, dass niemand 
ein Dutzend Images zur Analyse in die Hände bekommt. Oder du machst dein 
Produkt schlicht so teuer, dass eine Neuentwicklung billiger ist.

Zusätzliche Sicherheit erschwert natürlich die Nutzung deines Produkts 
für den ehrlichen Käufer. Sollte also wider erwarten eine gehackte 
Variante in Umlauf kommen, wird diese für die gesamte Zielgruppe - 
moralisch verwerflich oder einwandfrei - attraktiver.

Die aktuelle Variante in der IT ist im Übrigen, nicht mehr die Software 
zu sichern, sondern sie an einen Online-Dienst zu binden.

von He. (Gast)


Lesenswert?

Martin S. schrieb:
> Lies nochmal:
Danke für dein Zitat, meines Satz. Aber lies du bitte mal, was ich 
direkt danach geschrieben habe. :-)

Tobias B. schrieb:
> Harald E. schrieb:
>> Scheidet aus. Das System ist zu komplex um es preisgünstig nachzubauen.
>> Es wären Stückzahlen im Bereich der 5000 nötig gfs 10.000. Das ist wie
>> "bau deinen eigenen Industrie-PC" um die SW zu schützen.
> Bei den Stueckzahlen gehst du zum Board Hersteller und sagst,
Leider den Sinn meiner Aussage nicht verstanden. Es sind eben keine 
5.000 Stk.! Es sind gfs 500-1000 im Höchstfall und dies eben nur, wenn 
weite Teile der Nutzer keine Extrahardware kaufen müssen. Ist das so 
schwer zu verstehen? Das ist eine "Der Nutzer kann seinen PC auch noch 
für was anderes nutzen"-Software. Nur nicht für PCs sondern SoCs.

Holger schrieb:
> APPLICATION NOTE 4594
> PROTECT YOUR FPGA AGAINST PIRACY: COST-EFFECTIVE AUTHENTICATION SCHEME
Das sieht doch schon einmal ganz gut aus. Danke.

Holger schrieb:
> Encrypted Bitstream Implementation Overview.
super, das hatte ich bisher noch nicht finden können.

von He. (Gast)


Lesenswert?

Lothar M. schrieb:
> Und dann geht es (etwas vereinfacht gesagt) etwa so: mal angenommen, ich
> habe 20 Klone deiner Steuerungen gebaut. Und ich habe 2 deiner
> Steuerungen mit gleichen Optionen aber natürlich mit 2 unterschiedlichen
> DNA gekauft. Dann erzeugst du mir fürs nächste Update 2 Bitfiles und
> sendest die mir zu. Und ich mache einen FileCompare zwische den beiden
> und weiß, wo du den Vergleich des Codes machst und wo ich die DNA der
> FPGAs meiner 20 Klone einbauen muss.

Das ist einleuchtend, dass das geht. Ich dachte allerdings, dass der 
Bitstream so verschlüsselt / (verworren) ist, dass man das nicht so 
einfach machen kann. Dann müsste man pro Kunde auch noch andere Sachen 
am bitstream ändern, nehme ich an, damit das Platzieren zu anderen 
Ergebnissen führt.

> Die Kommunikation zum Maxim SHA-Device wird per Picoblaze-Software
> abgefragt.
Oha! Der läuft aber soweit mir bekannt, auch mit C? Kann diese Software 
dann nicht genau so analysiert und geknackt werden, dass die 
Freischaltung an das übergeordnete System für alles erfolgt, egal, was 
der Baustein sagt?

Ich meine, der PICOBLAZe tritt aus meiner Sicht nur an die Stelle des 
ARM im SoC. Dann kann ich den SW-Schutz auch auf die ARM-SW beschränken 
und bin genau so weit wie vorher (?)

von Mucky F. (Gast)


Lesenswert?

Ist eine Laufzeitbegrenzung mit anschließender Zusendung eines 
Freischaltung(mit aus dem Chip generierter challenge) möglich?

von W.S. (Gast)


Lesenswert?

S. R. schrieb:
> Die aktuelle Variante in der IT ist im Übrigen, nicht mehr die Software
> zu sichern, sondern sie an einen Online-Dienst zu binden.

Mag sein - ist aber mit einem zunehmenden Aufwand verbunden. und sobald 
es irgend eine erträgliche Alternative gibt, ist man zu 99% raus aus 
jeglichem Geschäft. Und was als gerade noch erträglich bei den Anwendern 
gilt, hängt auch von vielen Faktoren ab. Mein Rat hier also nochmal: 
Kein Kopierschutz und billige Preise. Das wirkt ohne eigenes Zutun. 
Allerdings nur dann, wenn man etwas wirklich Sinnvolles den Kunden 
anbietet.

W.S.

von He. (Gast)


Lesenswert?

Mucky F. schrieb:
> Ist eine Laufzeitbegrenzung mit anschließender Zusendung eines
> Freischaltung(mit aus dem Chip generierter challenge) möglich?
Theoretisch ja, aber eine Laufzeitbeschränkung wäre auch zu knacken oder 
zu umgehen und die möchte ich auch nicht, um mich nicht unter Druck zu 
bringen. Es wird auch Kunden geben, die keine updates brauchen oder 
haben wollen.

W.S. schrieb:
> Kein Kopierschutz
Ohne Kopierschutz kauft es keiner, sondern benutzt es einfach.

> billige Preise.
Es gibt keine billigen Preise sondern nur niedrige und alles unter 500,- 
ist in dem Fall "niedrig". Es muss ja auch einiges für den Kunden 
zugeschnitten werden, aka "Einrichtung" und 2-3h fallen da ohnehin an.

Es gibt auch keine Diskussion um den Preis. Eine Firma muss ohnehin 
einen Bestellvorgang auslösen und es registrieren und fakturieren. Also 
einmal SAP-Mann aktivieren, der den Knopf drückt und einen im 
Controlling, der unterzeichnet. Das sind auch Kosten im Bereich von 
100,- aufwaerts.

Hobbylizenz für nichtkommerzielle Nutzung könnte man diskutieren, wird 
aber keiner machen, der nicht Bedarf hat.

von S. R. (svenska)


Lesenswert?

Harald E. schrieb:
>> Kein Kopierschutz
> Ohne Kopierschutz kauft es keiner, sondern benutzt es einfach.

Und mit hinreichend kompliziertem Kopierschutz benutzt es keiner.

Du darfst halt nie vergessen, dass jegliche Form von Kopierschutz und 
Sicherheitstheater in erster Linie dem ehrlichen Käufer schadet; 
demjenigen mit der geknackten Version ist das egal.

Die Computerspieleindustrie hat es bis zu dem Punkt getrieben, wo selbst 
die ehrlichen Käufer lieber Kopien benutzt haben - oder sogar mussten, 
weil der originale Schutz zu unzuverlässig war. Da kommt Freude auf.

von VHDL hotline (Gast)


Lesenswert?

Die eFUSEs in den Ultrascales nützen dir m.M. nach nichts, wenn du nicht 
der Boardhersteller bist. Dort kann man bei den Ultrascales einen 
Schlüssel für einen Signaturcheck und für die Verschlüsselung der 
Firmware reinlegen. Allerdings eben nur einen und der muss dann für 
sämtliche Firmware benutzt werden, die da reingeht. Wahrscheinlich ist 
das bei den von dir genutzten Boards nicht aktiv, da ja offensichtlich 
deine eigene FW ohne Schlüssel eingespielt werden kann. Setzt du jetzt 
aber einen Schlüssel in den eFUSEs für deine FW, kann die original-FW 
nicht mehr eingespielt werden, da die den Schlüssel nicht kennt.

von Michael W. (Gast)


Lesenswert?

VHDL hotline schrieb im Beitrag #6727763:
> Setzt du jetzt
> aber einen Schlüssel in den eFUSEs für deine FW, kann die original-FW
> nicht mehr eingespielt werden, da die den Schlüssel nicht kennt.
Aber muss die den denn kennen? Sie läuft ja auch bisher ohne? Oder 
Verweigert der FPGA das Beladenwerden mit einer firmware, wenn die fuses 
gesetzt sind?

Diese Frage betrifft doch praktisch jede Evaluierungs-Plattform von 
FPGAs. Die würden alle nicht mehr laufen, wenn ich als Benutzer einmal 
die FUSEs setze.

S. R. schrieb:
> Die Computerspieleindustrie hat es bis zu dem Punkt getrieben, wo selbst
> die ehrlichen Käufer lieber Kopien benutzt haben - oder sogar mussten,
> weil der originale Schutz zu unzuverlässig war. Da kommt Freude auf.
Lag aber auch daran, dass der Schutz oft darin bestand, dass ein Code 
von Flash-Dongles hin und her geschrieben wurde oder ein Zähler dafür 
sorgte, dass jedes Teil nur in einer Console funktionierte und dann mit 
der Zeit über den Jordan ging.

Ich benutze auf den Entwicklungsplattformen keine FUSEs. Es gibt immer 
eine indivuduelle Hardware mit fest verbautem Flash zu Kennung. Die 
Mühe, FPGAs zu hacken, um den Code zu nutzen macht sich niemand, weil 
der FPGA immer nur ein Teil des Systems ist.

von VHDL hotline (Gast)


Lesenswert?

Markus W. schrieb:
> Aber muss die den denn kennen? Sie läuft ja auch bisher ohne?

Wenn du den Secure Boot aktivierst (per eFUSE), dann muss man die 
kennen. Der FPGA erlaubt kein Einspielen von nicht/anders signierter FW 
mehr, das ist ja der Sinn des sicheren Boot. Für Evaluierungsplattformen 
sollte das daher sinnvollerweise nicht aktiviert sein und bei der HW des 
TO ist es dann wohl auch nicht aktiv.

von Mucky F. (Gast)


Lesenswert?

Harald E. schrieb:
> Laufzeitbeschränkung wäre auch zu knacken oder zu umgehen und

Das muss man dann auch machen. Da sind dann noch ein paar weiter die 
etwas später kommen.

> die möchte ich auch nicht, um mich nicht unter Druck zu bringen

Da kommt dann halt ne Fehlermeldung, muss ja keiner wissen.

von Holger (Gast)


Angehängte Dateien:

Lesenswert?

https://www.intel.com/content/www/us/en/programmable/products/reference-designs/all-reference-designs/industrial/ref-des-secur-mem.html

FPGA Design Security Solution Using a Secure Memory Device Reference 
Design
Unter dem Link ist noch ein RefDesign drin.

Oder der Ident-Chip gleich mit in die Leiterplatte in den 6 Lagen 
einlaminieren.

von malsehen (Gast)


Lesenswert?

VHDL hotline schrieb im Beitrag #6727815:
> FPGA erlaubt kein Einspielen von nicht/anders signierter FW
> mehr, das ist ja der Sinn des sicheren Boot

Ach!

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Harald E. schrieb:
> Leider den Sinn meiner Aussage nicht verstanden. Es sind eben keine
> 5.000 Stk.! Es sind gfs 500-1000 im Höchstfall und dies eben nur, wenn
> weite Teile der Nutzer keine Extrahardware kaufen müssen. Ist das so
> schwer zu verstehen? Das ist eine "Der Nutzer kann seinen PC auch noch
> für was anderes nutzen"-Software. Nur nicht für PCs sondern SoCs.

Selbst bei 500 bis 1000 Stueck wird er das machen. Ein OneWire Chip mit 
3 Beinchen klatscht der dir Nachts im Schlaf mit drauf.

Wie waere es wenn du einfach mal beim Hersteller nachfragst, anstatt 
soviele Digne anzunehmen? Ich dachte du hattest mal ein Ing. Buero, da 
war Kommunikation mit dem Hersteller doch gaengige Praxis, oder? ;-)

von Tippgeber (Gast)


Lesenswert?

Tobias B. schrieb:
> Wie waere es wenn du einfach mal beim Hersteller nachfragst, anstatt
> soviele Digne anzunehmen? Ich dachte du hattest mal ein Ing. Buero, da
> war Kommunikation mit dem Hersteller doch gaengige Praxis, oder? ;-)
Eine grundsätzliche Diskussion mit dem Hersteller scheint ja 
stattgefunden zu haben, denn er schreibt:

Harald E. schrieb:
> Mti dem hatte ich mich schon kurzgeschlossen ...
> ... , ist zu aufwändig, da Kleckerbetrag.

Ich würde auch nicht erwarten, dass einer ein neues board design 
auflegt, nur weil ein einzelner Nutzer eine kleine Änderung haben 
möchte. Außerdem möchte der TE offensichtlich nur Software verkaufen und 
mit harter Ware nichts (mehr) zu tun haben.

S. R. schrieb:
> Zusammengefasst: Du möchtest eine Software vertreiben, die auf einer
> frei zugänglichen Hardware läuft. Ferner möchtest du verhindern, dass
> jemand deine Software auf einem Gerät laufen lassen kann, für das er
> nicht bezahlt hat.
Für mich ist die Vorgehensweise "Software liefern" ein klassischer Fall 
für eine Softwaresicherung.

Den weiteren Ausführungen von S.R. ist nichts hinzuzufügen.

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Tippgeber schrieb:
> Ich würde auch nicht erwarten, dass einer ein neues board design
> auflegt, nur weil ein einzelner Nutzer eine kleine Änderung haben
> möchte. Außerdem möchte der TE offensichtlich nur Software verkaufen und
> mit harter Ware nichts (mehr) zu tun haben.

Das kann ich mir bei bestem Willen aber nicht vorstellen. Bei Dave, 
Enclustra, Trenz und wie sie alle heissen, lohnt es sich in der Regel 
schon ab 100 Stueck ein eigenes FPGA Board zu machen. Da kann ich mir 
schwer vorstellen, dass bei 500 Stueck sich eine minimalste Anpassung 
nicht lohnen soll.

Das ganze hier erscheint irgendwie strange. :-/

von He. (Gast)


Lesenswert?

S. R. schrieb:
> Und mit hinreichend kompliziertem Kopierschutz benutzt es keiner.
Der Vorgänger wurde auch benutzt und bezahlt. Mach Dir mal keine Sorgen 
:-)
In Zeiten, in denen jeder sein Telefon alle 2 Jahre aktualisiert und 
hunderte Euros für Unsinn ausgibt, sind Softwarekosten unter 500,- kein 
Thema.

Tobias B. schrieb:
> Das kann ich mir bei bestem Willen aber nicht vorstellen. Bei Dave,
> Enclustra, Trenz
Wenn du eine eigene HW bestellst, musst du sie auch bezahlen und rund 
500,- x (in meinem Fall) 250 Stk Mindestabnahme (wurde angeboten) kommt 
auf eine nicht vorfinanzierbare Summe. Jedenfalls nicht in einem 
Coronajahr.

Aber wieder zum Technischen:

von He. (Gast)


Lesenswert?

Sodele, das mit den FUSE habe ich jetzt kapiert. Scheidet demnach aus, 
Danke an Holger. Bliebe noch die DNA:

Angenommen, ich bilde aus dem DNA des FPGA und dem Namen des Kunden 
sowie der Softwareversion einen CODE, dann müsste dieser in die 
Verilog-Software hinein, um sicherzustellen, dass die Firmware (die für 
den FPGA-Chip) nur bei einem Kunden und einer Hardware läuft. Das 
Problem mit den 32 gleichen DNAs wäre auch mit erledigt.(?)

Bliebe also nur, das so sicher zu machen, dass man nicht einfach einen 
Bitstrom hacken kann.

von Chris (Gast)


Lesenswert?

Das FPGA bietet zuviele Angriffsmoglichkeiten.
Benutze das eeprom. Z.b. 256 byte. Das sind 8x 32byte oder 256 bit
32 byte für user ID(30 für  ID, 1 für checksum, 1 für Rest checksum), 4 
byte für unix-time, 4byte für Option, 2byte für Version. 16bit für auth, 
16 bit checksum, 4byte system ID.
Dann kommen auth+ checksum + 128 byte HW calib Daten, und dann ein slot 
für update sowie ein slot für Statistik. Slot 1 benutzt einen 
asymmetrischen key, wie auch slot2 oder slot7. Slot3-6 verwenden auch 
die 64 bit DNA im decryption key. Ein kleiner pic micro im fpga welcher 
auch sonstige wichtige Funktionen steuert. Sollte der demo modus oder 
timeout modus verwendet werden wird das update bzw Statistik Slots 
anders benutzt. Wenn kein separates eeprom kann man auch das config 
EPROM verwenden.

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Harald E. schrieb:
> Tobias B. schrieb:
>> Das kann ich mir bei bestem Willen aber nicht vorstellen. Bei Dave,
>> Enclustra, Trenz
> Wenn du eine eigene HW bestellst, musst du sie auch bezahlen und rund
> 500,- x (in meinem Fall) 250 Stk Mindestabnahme (wurde angeboten) kommt
> auf eine nicht vorfinanzierbare Summe. Jedenfalls nicht in einem
> Coronajahr.

Asooooo, aber dann sehe ich auch nicht, warum das Produkt so wertvoll 
ist zu schuetzen. Entweder du vertraust darauf, dass es in den 
entsprechenden Stueckzahlen weggeht. weswegen man es auch ordentlich 
schuetzen muss oder die realistischen Stueckzahlen sind vll. doch 
deutlich niedriger als man erwartet, aber dann ist es auch egal ob es 
geschuetzt wird.

Was sagt der Business Plan zu der ganzen Idee? Koennen 
Risikokapitalgeber davon ueberzeugt werden, dass das Produkt durch die 
Decke geht?

von He. (Gast)


Lesenswert?

Tobias B. schrieb:
> Asooooo, aber dann sehe ich auch nicht, warum das Produkt so wertvoll
> ist zu schuetzen.
Es ist wertvoll genug, dass es jemand für lau nutzt, wenn er es umsonst 
bekommt. Schau mal, wieviele kostenlose APPs Du benutzt, nur weil sie 
umsonst sind. Würde man dafür zahlen müssen, hätten die Meisten nur die 
Hälfte davon drauf.

> Entweder du vertraust darauf, dass es in den
> entsprechenden Stueckzahlen weggeht.
Da gibt es nichts zu vertrauen. Der Entwicklungsaufwand ist zu 80% 
bereits geleistet und stammt aus dem Vorgänger. Der soll nun ersetzt 
werden. Wie weit ich das noch ausbaue, hängt von Markt ab.

> Was sagt der Business Plan zu der ganzen Idee?
Sie oben: Geschätzt mindestens 5.000 Installationen weltweit mit einer 
Plattform dieses Herstellers in der Sparte der Anwendung 
(Maschinensteuerung und -überwachung). Wahrscheinlich mehr. Tendenz 
steigend, da weltweit die Anforderungen steigen und die Firmen immer 
wieder umrüsten. SoC-Plattformen finden dort starke Verbreitung. 
Langfristig sicher 10.000 Installationen.

Etwa 5% bis 20% der Kunden können mit meinem Produkt etwas anfangen. Sie 
können es während der Inbetriebnahme nutzen (und müssen dann eine 
Plattform zweckentfremden) oder als Überwachung mit einsetzen, also 1-2 
weitere kaufen. Die Produktionsanlagen, die dort stehen und Maschinen, 
die da laufen, gehen in die Mio. Die Elektronik drum herum immerhin noch 
in die Hunderttausende + eben soviel an Ingenieur-Inbetriebnahmezeit. Da 
macht etwas Messtechnik nicht viel aus. Wie schon erwähnt, müssen die 
momentan mindestens eine DAQ-Karte, Datenlogger und / oder noch einen 
Analyser hinstellen oder ein Fertiggerät des Wettbewerbs in der 
Größenordnung von bis zu 5.000 Euro bemühen, das sie nur halb nutzen. 
Wenn sich die Kunden, die das so machen, aber mein System zulegen (und 
damit rund 2k sparen) können sie auch gleich 2 nehmen, die Techniker 
damit ausstatten und noch IB-Zeit sparen.

Von den (s.o.) 250-1000 Kunden, die das betrifft, sollte die Hälfte 
davon Gebrauch machen, langfristig das Doppelte. Ich rechne mit am Ende 
500 Einheiten. Das ist also ein Umsatz, der kein Investment verträgt. 
Billig rauswerfen sehe ich daher nicht. Ich bin kein APP-Programmierer. 
Dann kriege ich nämlich 5.000 Abnehmer, die eine Software für 99,- 
kaufen, aber einen Arbeitsaufwand in der Größenordnung von 3h pro Kunde 
und arbeite am Ende für 20,- die Stunde.

> Risikokapitalgeber davon ueberzeugt werden, dass das Produkt durch die
> Decke geht?
Nix Kapitalgeber! Ich verkaufe die SW Stückweise ohne weitere 
Vorinvestition.

von He. (Gast)


Lesenswert?

Tippgeber schrieb:
> Außerdem möchte der TE offensichtlich nur Software verkaufen und
> mit harter Ware nichts (mehr) zu tun haben.

Wie bereits erwähnt, läuft das Vorprodukt auf eigens produzierter 
(Zusatz-)Hardware, die der Kunde erwerben konnte.

Chris schrieb:
> Das FPGA bietet zuviele Angriffsmoglichkeiten.
Jetzt bin ich wieder unsicher. Warum schreibt der Hersteller dann dies:

Holger schrieb:
> The UltraScale architecture-based FPGAs have on-chip Advanced
> Encryption Standard (AES) decryption and authentication logic to
> provide a high degree of design security. Without knowledge of
> the encryption key, adversaries cannot analyze an externally
> intercepted bitstream to modify or clone the design. Encrypted
> FPGA designs cannot be copied or reverse-engineered.
Das klingt doch prima.

Wie könnte man das trotzem knacken?

von OldMan (Gast)


Lesenswert?

Harald E. schrieb:
> Wenn es mit dem branding des FPGA nicht geht, muss eben ein dongle her.
> Dazu hattest Du den Chip von Maxim empfohlen. Leider ist das Dokument
> nur unter NDA zu bekommen, wie ich feststellen musste.

Warum nimmst Du nicht einfach einen DS18B20 als Dongle?

Die haben alle eine eindeutige Seriennummer (48 Bit).
Für jede SW Lieferung (Neu) legst Du einen DS18B20 bei, den Du
vorher ausgelesen hast und die Seriennummer in Deiner SW hinterlegt 
hast.
Den DS18B20 lieferst Du dann mit und der Kunde muss ihn eben an einen
vorgegebenen Portpin knüppern.

Was meinst Du zu dieser Idee?

von Chris (Gast)


Lesenswert?

Harald E. schrieb:
> Das klingt doch prima.
> Wie könnte man das trotzem knacken

Du vergisst dass der Kunde in deinem speziellem Fall den AES key separat 
bekommt, sei es obfuscated or not und diesen selbst einprogrammiert. 
Würdest du HW liefern dann sieht die Sache anderer aus, müsstest 
allerdings jtag durch efuse verbieten da es sonst angreifbar wäre.

von Blechbieger (Gast)


Lesenswert?

Hast du dir schon mal

https://www.wibu.com/de.html

angeschaut? Ich selbst habe es noch nicht benutzt und daher k.A. ob es 
was taugt oder was es kostet. Ich kenne die nur weil sie viel Werbung 
machen.

Hat diese Fremdhardware einen USB-Anschluss? Dann wäre eine Lösung mit 
Dongle wahrscheinlich am besten. Wibu hat aber auch Dongles im 
Speicherkartenformat.

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Harald E. schrieb:
> Sie oben: Geschätzt mindestens 5.000 Installationen weltweit mit einer
> Plattform dieses Herstellers in der Sparte der Anwendung
> (Maschinensteuerung und -überwachung). Wahrscheinlich mehr. Tendenz
> steigend, da weltweit die Anforderungen steigen und die Firmen immer
> wieder umrüsten. SoC-Plattformen finden dort starke Verbreitung.
> Langfristig sicher 10.000 Installationen.

Aber dann raff ichs immer noch nicht. Dann lohnt es sich doch locker, 
wenn du dir professionelle Expertise einkaufst und nach Unterzeichnung 
eines NDAs auch Details offen legen kannst.

Mit den wenigen Details die du hier preisgeben willst, wirst du nie eine 
Loesung bekommen die deinen Anspruechen genuegt. Gerade wenn du sagst, 
dass die Hardware fix ist und nicht daran geruettelt werden kann.

von S. R. (svenska)


Lesenswert?

Markus W. schrieb:
>> Die Computerspieleindustrie hat es bis zu dem Punkt getrieben, wo selbst
>> die ehrlichen Käufer lieber Kopien benutzt haben - oder sogar mussten,
>> weil der originale Schutz zu unzuverlässig war. Da kommt Freude auf.
> Lag aber auch daran, dass der Schutz oft darin bestand, dass ein Code
> von Flash-Dongles hin und her geschrieben wurde oder ein Zähler dafür
> sorgte, dass jedes Teil nur in einer Console funktionierte und dann mit
> der Zeit über den Jordan ging.

Ich dachte z.B. an timingabhängige Schutzmechanismen für CDs (die auf 
originaler Hardware nicht funktionieren, je nach Hersteller des 
CD-Laufwerks). Die Malware-Varianten oder die Arcade-Schutzmechanismen 
sind noch eine ganz andere Klasse.

Harald E. schrieb:
> Wie bereits erwähnt, läuft das Vorprodukt auf eigens produzierter
> (Zusatz-)Hardware, die der Kunde erwerben konnte.

Und davon möchtest du wegkommen, richtig?
Wenn einen Dongle akzeptieren kannst, warum keinen Dongle für die 
vorhandene Hardware? Ein-zwei Pins, wo du einen Securitychip anknoten 
kannst, wäre sinnvoll.

An deiner Stelle würde ich einfach auf einen vom Hersteller vorgesehenen 
Weg setzen (z.B. den Ausleseschutz bei Mikrocontrollern) und darauf 
vertrauen, dass meine Kundschaft den Aufwand für einen Hack scheut. 
Einen hundertprozentigen Schutz bekommst du sowieso nicht hin.

Du richtest dich offensichtlich an einen eher kleinen Kreis von 
Industriekunden. Wahrscheinlich sogar schon jetzt Kunden von dir. Für 
die sind 2000€ für ein paar Lizenzen ein geringeres Problem als ein paar 
Monate reverse engineering, wo der Erfolg nicht feststeht.

Oder hast du Angst vorm bösen Chinesen, der das Gesamtprodukt kopiert 
und billiger verkauft?

Nachtrag: Bitte definiere erstmal das Angriffsmodell. Wovor hast du 
konkret Angst, wie definiert sich der maximale Schaden in diesem Fall, 
und wie hoch ist der Aufwand des Schutzes? Bevor du selbst nicht weißt, 
was du willst - oder es hier nicht schreibst - wirst du keine Lösung 
finden.

: Bearbeitet durch User
von S. R. (svenska)


Lesenswert?

Harald E. schrieb:
>> Und mit hinreichend kompliziertem Kopierschutz benutzt es keiner.
> Der Vorgänger wurde auch benutzt und bezahlt.
> Mach Dir mal keine Sorgen :-)

Der Vorgänger bestand aus Hardware.
Das ist ein physisches Produkt, da gelten andere Regeln.

von Zeno (Gast)


Lesenswert?

Harald E. schrieb:
> Holger schrieb:
>> The UltraScale architecture-based FPGAs have on-chip Advanced
>> Encryption Standard (AES) decryption and authentication logic to
>> provide a high degree of design security. Without knowledge of
>> the encryption key, adversaries cannot analyze an externally
>> intercepted bitstream to modify or clone the design. Encrypted
>> FPGA designs cannot be copied or reverse-engineered.
> Das klingt doch prima.
>
> Wie könnte man das trotzem knacken?

Die Frage ist nicht wie man das knackt, sondern wie aufwändig das Ganze 
ist. Grundsätzlich ist erst mal jede Verschlüsselung knackbar, es ist 
nur eine Frage der Zeit und des sonstigen Aufwandes und da scheidet sich 
Spreu vom Weizen. Es kommt darauf an ob sich der immense Aufwand des 
Knackens lohnt und am Ende dann noch etwas rum kommt. In 99,9% der Fälle 
dürfte es günstiger sein, das verschlüsselte Produkt zu kaufen.

von He. (Gast)


Lesenswert?

S. R. schrieb:
> Harald E. schrieb:
>>> Und mit hinreichend kompliziertem Kopierschutz benutzt es keiner.
>> Der Vorgänger wurde auch benutzt und bezahlt.
>> Mach Dir mal keine Sorgen :-)
> Der Vorgänger bestand aus Hardware.
> Das ist ein physisches Produkt, da gelten andere Regeln.
Es ging Dir doch darum, dass es mit Kopierschutz keiner benutzt. Das 
stimmt eben nicht. Der Aufwand war vorher sogar noch höher für den 
Kunden, weil er ein NDA unterzeichnen musste.

Chris schrieb:
> Du vergisst dass der Kunde in deinem speziellem Fall den AES key separat
> bekommt, sei es obfuscated or not und diesen selbst einprogrammiert.
Warum sollte der den bekommen müssen?
Um zwischen Softwareversionen auf derselben HW unschalten zu können, 
nehme ich an. Dann lasse wir den Punkt weg und kalkulieren nur den Fall, 
dass er eine neue HW nimmt, um meine SW zu betreiben. Das sollte nicht 
wesentlich schlechter sein, weil sich viele Kunden ohnehin nicht den 
Aufwand machen dürften.

Nur so als Beispiel das Ergebnis eines heutigen Sondierungsgespräches in 
einer anderen Sache: Dort ist es so, dass der Kunde für jede Messaufgabe 
einen eigenen PC hinstellt, teilweise als remote, um vom Arbeitsplatz 
drauf zugreifen zu können. Einen vollständigen PC mit Installation, der 
nur zu 10% genutzt wird. Grund: Man will keine LAPTOPs mehr hin und her 
schleppen, anschließen, konfigurieren, booten, LABVIEW anpassen und 
laden und die Verkabelung einprogrammieren. Bequemlichkeit lassen sich 
die Firmen was kosten.

von He. (Gast)


Lesenswert?

OldMan schrieb:
> Warum nimmst Du nicht einfach einen DS18B20 als Dongle?
Das wäre das gleiche wie der von Lothar vorgeschlagene Spezial-Dongle.

Tobias B. schrieb:
> Aber dann raff ichs immer noch nicht. Dann lohnt es sich doch locker,
> wenn du dir professionelle Expertise einkaufst und nach Unterzeichnung
> eines NDAs auch Details offen legen kannst.
Welche Expertise soll ich einkaufen? Wie man SW verdongelt?

> Mit den wenigen Details die du hier preisgeben willst, wirst du nie eine
> Loesung bekommen
Was muss man denn noch wissen um zu klären, wie bei einem SoC ein 
SW-Schutz funktionieren kann. Das ist doch nicht von der Anwendung 
abhängig.

> dass die Hardware fix ist und nicht daran geruettelt werden kann.
nicht gerüttelt werden soll! Das ist eine Idealanforderung. Wenn es 
nicht geht, kommt eben der dongle.

Blechbieger schrieb:
> Hast du dir schon mal
> https://www.wibu.com/de.html
> angeschaut?
Ja, aber zu kompliziert. Ich brauche auch nicht noch einen Mitverdiener.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Zeno schrieb:
> ie Frage ist nicht wie man das knackt, sondern wie aufwändig das Ganze
> ist. Grundsätzlich ist erst mal jede Verschlüsselung knackbar, es ist
> nur eine Frage der Zeit und des sonstigen Aufwandes und da scheidet sich
> Spreu vom Weizen.
Das ist richtig, allerdings ergibt sich daraus - wenn man es zu Ende 
denkt - die Lösung, den Aufwand zu hoch zu treiben, dass die 
Entschlüsselungsdauer 1 Mio Jahre ist, um potenzielle Cracker vom 
Versuch abzuschrecken. Wenn man gute Codes knacken will, braucht es 
Annahmen über die Verschlüsselungsmethode und Ergebnisse aus Versuchen, 
die mathematisch untersucht werden. Das lohnt aber nur bei sehr 
wichtigen Systemem und wird wahrscheinlich nur bei Geheimdiensten 
gemacht :-)

> Es kommt darauf an ob sich der immense Aufwand des
> Knackens lohnt und am Ende dann noch etwas rum kommt. In 99,9% der Fälle
> dürfte es günstiger sein, das verschlüsselte Produkt zu kaufen.
So ist es. Jedenfalls im professionellen Umfeld. Es gibt allerdings das 
Problem, das hier noch nicht erörtert wurde, das aber immer mehr um sich 
greift:

Hersteller X verkauft seine HW mit Software und verdient an beidem.
Hersteller Y baut die HW billig nach und nutzt die Software des 
Herstellers X.

Oder der Plagiator baut eine Zusatzhardware und nutzt das Original, wie 
bei der Methode "Tintenstrahldrucker", wo es billige Nachbauten der 
Druckköpfe und der Patronen gibt. Selbst im Medizinsektor ist mir das 
schon begegnet, wo es aus Asien plötzlich austauschbares Zubehör für 
Produkte meines Kunden gab, der am Service verdiente, indem er Kunden 
das Hauptgerät günstig zur Verfügung stellte und einen Wartungsvertrag 
abschloss.

Da braucht es schon eine geschickte Verriegelung. Die dar aber nicht nur 
aus einem Code bestehen, der irgendwann mal abgefragt ist.

Die IMHO beste Methode ist eine laufzeitbegrenzte Software, die nach 1J 
zum Service zwingt und danach die HW zum Erliegen bringt. Dann hat man 
als Hersteller regelmäßig die Chance, die Schutzstrategie seiner HW zu 
ändern und eine einmal geknakcte Vorgehensweise hält nicht lange vor.

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.