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
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
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
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
>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..
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.
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.