Forum: FPGA, VHDL & Co. Welche Möglichkeiten gibts zur Verschlüsselung des Firmwares?


von derGast (Gast)


Lesenswert?

Hallo zusammen,

ich habe ein Cyclon 4E FPGA von Altera und ein SPI-Config Flash EPCQ32. 
Gibts Möglichkeiten, damit die Firmware davor geschützt wird, dass 
jemand das Firmware nicht rauslesen und "verstehen" kann. Zb. Chinesen 
versuchen nachzumachen usw...

Vielen Dank im Vorraus erstmals!

lg

: Gesperrt durch Moderator
von Falk B. (falk)


Lesenswert?

Keine Ahnung was Cyclone IV kann, Die Xilinxe haben verschieden 
Möglichkeiten.

Virtex 2++ haben Triple DES bzw. AES Verschlüsselung mit 
batteriegepuffertem Schlüssel im FPGA.

Spartan 3++ haben Digital DNA, eine Art Seriennummer im FPGA, mit der 
man auch Verschlüsseln kann, wenn gleich aufwändiger und nicht ganz so 
sicher.

von Christian R. (supachris)


Lesenswert?


von Schlumpf (Gast)


Lesenswert?

Ich hab glaub mal vor langer Zeit eine App-Note von Altera in den 
Fingern gehabt, wo die das mit einem zusätzlichen CPLD gemacht haben..
Kanst ja mal gurgeln

von Falk B. (falk)


Lesenswert?


von Marius W. (mw1987)


Lesenswert?

Vielleicht kann man auch mal in Richtung partielle Rekonfiguration 
denken. Im Flash sind zwei Bitfiles gespeichert. Ein Minimal-Image mit 
der Ladelogik und ein verschlüsseltes Bitfile, das die wirkliche Logik 
enthält. Die Minimallogik wird ganz normal geladen und entschlüsselt das 
Bitfile, welches dann per partieller Rekonfiguration geladen wird. Keine 
Ahnung ob das so geht.

Gruß
Marius

von Kest (Gast)


Lesenswert?

Mann kanns auch kompliziert machen.

Überleg Dir mal, wenn die Chinesen versuchen das nachzumachen (was ist 
das überhaupt?), dann bauen die das auch nach, ggf. wird auch FPGA 
Design nachgebaut. Ansonsten gibt es unendlich viele 
Angrifsmöglichkeiten: beim Bestücker, der die Flashes schon mal 
vorkonfiguriert, eine chinesische Putzfrau, die bei dir auf dem 
Arbeitsrechner alles kopiert, Hacker/Geheimdienste, die alles 
überwachen, ...ich könnte jetzt noch länger machen.

Was meinst Du, wie schwer das ist ein PCB nachzubauen? Da muss man schon 
richtig ran (wenn man mehr lagen hat als z.b. 4).

Das war meine bescheidene Meinung

Grüße
Kest

p.s.: ich musste soetwas bauen (für ein sehr kompliziertes System) und 
habe das auch mit einem CPLD gelöst, den man nicht auslesen kann (sagt 
zumindest Altera ;-))

von Amateur (Gast)


Lesenswert?

Hast Du so ein Teil mal, ohne jegliche Unterstützung, ausgelesen?

Schau Dir das mal an. Selbst wenn Du weist, was da passiert, muss die 
erfinderische Höhe immens sein, um sich so etwas anzutun.

Würde mich nicht wundern, wenn das Neuschreiben schneller ginge, als 
eine gründliche Analyse.

von Kest (Gast)


Lesenswert?

Was ich mir auch mal überlegt habe zu machen, ein Paar FPGA Pins ins 
Nirvana gehen zu lassen, auf Hi oder Lo zu legen oder unter dem FPGA 
direkt verschwinden zu lassen.

Der "gemeine" Chinese denkt dann -- "der PIN ist doch gar nicht 
angeschlossen oder do" und macht das PCB anders. Die Firmware im FPGA 
kriegt das dann mit und funktioniert nach 30 Minuten oder so nicht... 
Wichtig ist halt, dass das FPGA erst nach einer Weile einen 
Fehlverhalten aufweist und nicht sofort. Z.B. bei einer Capture-Karte 
zuckt das Bild dann plötzlich, ab und zu zwar, aber es reicht schon, um 
zu nerven und dem Kunden zu zeigen "Hättest du blos Original gekauft" 
;-))

Grüße
Kest

von Dirk H. (dirk_h63)


Lesenswert?

Dann schleifen die die Dinger langsam im betrieb ab....

von MaWin (Gast)


Lesenswert?

Kest schrieb:
> Der "gemeine" Chinese denkt dann

...was für ein dämlicher Deutscher der glaubt wir hätten keine 
Röntgenapparate,
das muss ein sehr rückständiges Land sein in dem solche Deppen 
rumlaufen.

von Falk B. (falk)


Lesenswert?

@ Kest (Gast)

>Was ich mir auch mal überlegt habe zu machen, ein Paar FPGA Pins ins
>Nirvana gehen zu lassen, auf Hi oder Lo zu legen oder unter dem FPGA
>direkt verschwinden zu lassen.

Ja und?

>Der "gemeine" Chinese denkt dann -- "der PIN ist doch gar nicht
>angeschlossen oder do" und macht das PCB anders.

Nö, der gemeine Nachbauchinese baut die Platine 1:1 nach, ohne 
Nachdenken und "Verbessern". Wozu auch, das Original läuft doch exakt 
so.

> Die Firmware im FPGA
>kriegt das dann mit

Wie willst du mitkriegen, das nicht angeschlossene Pin immer noch nicht 
angeschlossen sind? Denkst du, der Chines ist dumm genug, Das layout nur 
neben dem FPGA zu kopieren, aber nicht unter das FPGA zu schauen? Du 
hast keine Ahung, wie man Produkte nachbaut, schon gar nicht, wie es die 
Chinesen machen?

> und funktioniert nach 30 Minuten oder so nicht...
>Wichtig ist halt, dass das FPGA erst nach einer Weile einen
>Fehlverhalten aufweist und nicht sofort. Z.B. bei einer Capture-Karte
>zuckt das Bild dann plötzlich, ab und zu zwar, aber es reicht schon, um
>zu nerven und dem Kunden zu zeigen "Hättest du blos Original gekauft"
>;-))

Das ist wohl wahr.

von Jens B. (fernostler)


Lesenswert?

Man kann es etwas erschweren wenn man das Modul mit schwarzem Epoxy 
versiegelt, plus möglichst viele Bauteile ohne Bezeichnung. Da ICs mit 
Laser beschriftet werden konnte man die ICs auch mit Laser unleserlich 
machen.

Aber wo ein Wille ist......

von derGast (Gast)


Lesenswert?

Hallo zusammen,

erstmals vielen Dank für eure Antwort!

Ich selbe habe noch nie Erfahrung gehabt, ob, wie die Chinesen 
nachmachen, können.

Diese Idee kommt vom Kunden, dass wie davor schützen müssen...

Ich bin immer noch auf dem Suchen, Google. Aber so richtige Vorstellung 
mit Altera Cyclone 4E; SPI-FLash EPCQ habe ich noch nicht..

lg

von Kest (Gast)


Lesenswert?

Aber, sicher ist mir klar, dass alles nachgebaut wird! (FPGA+Platine) 
Mit dem Beispiel wollte ich nur klar machen, dass es mit nötigem Aufwand 
alles möglich ist. Mit nicht angeschlossenen Pins am FPGA war ein 
schlechtes Beispiel, gebe ich zu.
Ich wollte nur sagen, dass es sich fast gar nicht lohnt, Elektronik mit 
ausgefallenen Sachen zu schützen, weil es sich immer jmd findet, der 
alles umgehen kann.

kest

von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

Von Maxim gibt es EEPROMs mit denen du Daten verschlüsseln kannst.


http://www.maximintegrated.com/datasheet/index.mvp/id/5369


Den setzt du als Dongle ein. Sie werden nur bei euch im Hause 
programmiert und gehen so zum Bestücker.

Tom

von Falk B. (falk)


Lesenswert?

@ Kest (Gast)

>Ich wollte nur sagen, dass es sich fast gar nicht lohnt, Elektronik mit
>ausgefallenen Sachen zu schützen, weil es sich immer jmd findet, der
>alles umgehen kann.

Selten so einen Käse gelesen.

Also ist es sinnlos, die Wohnungstür zuzuschließen?
Sinnlos, das Fahrrad anzuschließen?
Sinnlos, die EC-Karte incl. Geheimzahl unter Verschluß zu halten?

Beim Schutz gegen Einbruch, Diebstahl, Räuber und Kopierer geht es NIE 
um den UMLTIMATIVEN, NIE und NIMMER brechbaren Schutz, sonder IMMER um 
ein relatives Schutzniveau. D.h. man will es einem potentiellen Kopierer 
das Kopieren schwer machen, sodass er es nur schafft, wenn er einen 
gewissen Aufwand betreibt bzw. betreiben kann. Alle anderen schaffen es 
nicht.

Ein Fahrradschloss hält Leute auf, die aus Langeweile, Trunkenheit oder 
wasweißich ein Fahrrad einfach mitnehmen, wenn es nicht angeschlossen 
ist. Einen Profi mit Bolzenschneider hält es nicht auf.

Dito beim Schutz gegen Kopien. Verschlüsselte ICs, Secutity Fuses und 
Firmware hält alle Amateuere fern, die Vollprofis mit Reinraum und 
Spezialistenteam nicht.

Lies mal die Dokumente hier.

Beitrag "Re: Welche Möglichkeiten gibts zur Verschlüsselung des Firmwares?"

von derGast (Gast)


Lesenswert?

Thomas Reinemann schrieb:
> Den setzt du als Dongle ein. Sie werden nur bei euch im Hause
> programmiert und gehen so zum Bestücker.

wie kann ich uptade ohne Dongle ausführen, wenn das Gerät schon beim 
Kunden ist? Bis jetzt haben wir einen Mikrocontroller, der über USB den 
FPGA Config-Flash aktualisiert. Wir müssen nur den Kunden die Firmware 
per Mail schicken.

Ich stelle mir ein Szenario vor: Bei Power-On wird der FPGA selber 
Config-Data holen, der im Config-Flash liegt.

Kann man diese Config-Data aus dem Flash lesen, oder mit JTAG aus dem 
FPGA lesen und anschließend die Logik re-konstruieren?

lg

von derGast (Gast)


Lesenswert?


von Falk B. (falk)


Lesenswert?

Ja, steht doch drin.

von Falk B. (falk)


Lesenswert?

>wie kann ich uptade ohne Dongle ausführen, wenn das Gerät schon beim
>Kunden ist? Bis jetzt haben wir einen Mikrocontroller, der über USB den
>FPGA Config-Flash aktualisiert. Wir müssen nur den Kunden die Firmware
>per Mail schicken.

Dann muss diese aber personalisiert sein, sprich, für den individuellen 
Code des Sicherheis-ICs compiliert sein. Ist ein lösbares 
Logistikproblem.

von derGast (Gast)


Lesenswert?

Falk Brunner schrieb:
> Dann muss diese aber personalisiert sein, sprich, für den individuellen
> Code des Sicherheis-ICs compiliert sein. Ist ein lösbares
> Logistikproblem.

danke für deine Antwort!

Kann man aus dem Configuration-data die Logik rekonstruieren?


Vielen Dank im Voraus!

lg

von Schlumpf (Gast)


Lesenswert?

derGast schrieb:
> Kann man aus dem Configuration-data die Logik rekonstruieren?

Du meinst, ob man aus dem Bit-File oder JED-File wieder lesbaren 
HDL-Code generieren kann?
Wohl kaum mit endlichem Aufwand..

von derGast (Gast)


Lesenswert?

Christian R. schrieb:
> Sieht schlecht aus:

Es gehts!:-)

ich hab was interessantes für Xilinx und altera FPGA gefunden

http://www.maximintegrated.com/products/1-wire/flash/fpga/
http://www.altera.com/support/refdesigns/sys-sol/indust_mil/ref-des-secur-mem.html

Laut altera "FPGAs are more vulnerable to cloning of the entire design 
rather than to intellectual property (IP) theft, since extracting IP 
from the bitstream is nearly impossible."

viele Grüße!

von derGast (Gast)


Lesenswert?

Schlumpf schrieb:
> Du meinst, ob man aus dem Bit-File oder JED-File wieder lesbaren
> HDL-Code generieren kann?
> Wohl kaum mit endlichem Aufwand..

danke für deine Antwort!

von Schlumpf (Gast)


Lesenswert?

Es kommt einfach darauf an, was du schützen willst.
Willst du verhindern, dass irgendwo auf der Welt ein Duplikat deines 
Designs angefertigt wird? Dann solltest du es irgendwie verschlüsseln.

Geht es dir aber darum, dass du "reverse engineering" verhindern willst, 
weil in deinem Design eine absolut grandiose Idee steckt, deren 
Funktionsweise du nicht jedem offenlegen willst?
Dann kannst du meines Erachtens das Design ungeschützt lassen. Denn der 
Aufwand, aus dem Bitfile wieder HDL zu erzeugen, aus dem dann die 
Funktion in einer vernünftigen Darstellung hervorgeht, ist immens.
Das tut sich vermutlich keiner freiwillig an, wenn er nur ein wenig 
Industriespionage betreiben will.
Da müsste schon ein extrem großes Interesse an deinem Desing bestehen, 
dass jemand Mannjahre Aufwand investiert, um herauszubekommen, was dein 
FPGA wie tut.

von Tom W. (Gast)


Lesenswert?

Könnte man nicht die Netzliste extrahieren und die komplett simulieren?

von Ghost (Gast)


Lesenswert?

Wenn die Stückzahl entsprechend groß ist, warum nicht einen Customchip 
(ASIC) machen lassen?
Da tun sich Nachahmer umso schwerer, denn nur der Entwickler kennt und 
erhält diese Chips vom Hersteller.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.