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
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.
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
Brute Force. FPGA ohne Config-Speicher betreiben, einmalig per JTAG programmieren und immer per Batteriepuffer am Leben halten ;-) http://www.xilinx.com/support/documentation/application_notes/xapp780.pdf http://www.xilinx.com/support/documentation/white_papers/wp266.pdf http://www.xilinx.com/support/documentation/white_papers/wp267.pdf http://www.xilinx.com/support/documentation/white_papers/wp345.pdf http://www.xilinx.com/support/documentation/application_notes/xapp1084_tamp_resist_dsgns.pdf
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
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 ;-))
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.
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
Dann schleifen die die Dinger langsam im betrieb ab....
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.
@ 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.
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......
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
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 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
@ 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?"
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
Falk Brunner schrieb: > http://www.xilinx.com/support/documentation/application_notes/xapp780.pdf ... vielen Dank für deine Tipps:) Mit http://www.xilinx.com/support/documentation/application_notes/xapp780.pdf Kann man auch für Altera - FPGA machen? lg
>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.
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
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..
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!
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!
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.
Könnte man nicht die Netzliste extrahieren und die komplett simulieren?
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.