Es gibt ein Sprichwort, dass intelligente Menschen nicht immer als Erste ins Ziel kommen. Im Studium erinnere ich mich, dass einige Kommilitonen meine Aufgaben kopierten, nur um dann bessere Noten als ich zu bekommen. Intelligent zu sein garantierte mir nicht unbedingt die besten Noten im Studium, und zuzusehen, wie andere auf Basis meiner Ideen Erfolg hatten, wurde demotivierend.
Die Geschäftswelt ist ähnlich; es ist nicht ungewöhnlich, dass Unternehmen Konzepte kopieren, die für ihre Wettbewerber gut funktionieren, und diese nutzen, um den Markt zu dominieren. Obwohl ethisch fragwürdig, sind gefälschte Designs tatsächlich ziemlich häufig. Als Entwicklungsingenieur ist es meine Aufgabe, das Fälschen meines Designs so schwierig wie möglich zu machen.
Abgesehen davon, die gesamte PCB in Epoxidharz zu tauchen, habe ich jeden möglichen Trick versucht. Dazu gehört die Verwendung von einzigartigen ID EEPROMs (elektrisch löschbarem programmierbarem Nur-Lese-Speicher), um es unmöglich zu machen, eine exakte Kopie meiner Hardware zu duplizieren und funktionsfähig zu machen. Indem Sie einzigartige ID EEPROMs in Ihr eingebettetes System einbeziehen, können auch Sie sich auf das Worst-Case-Szenario vorbereiten und das Fälschen von Designs verhindern.
Ein EEPROM ist eine Art von nichtflüchtigem Speicher, der nützlich ist, um kleine Datenmengen zu speichern. Es wird normalerweise über Inter-Integrated Circuit (I2C) oder Serial Peripheral Interface (SPI) an einen Mikrocontroller angeschlossen. EEPROM gibt es schon seit Jahrzehnten in der Elektronikszene und wird verwendet, um Parameter wie Konfigurationswerte zu speichern.
Ein Unique ID EEPROM ist ein EEPROM, das eine nicht löschbare ID enthält. Die Länge der Unique ID variiert von 32-Bit bis 128-Bit, abhängig vom Hersteller. Theoretisch gibt es keine realistische Möglichkeit, dass zwei EEPROM dieselbe ID teilen. Dies ist ähnlich dem Konzept einer einzigartigen Media Access Control (MAC) Adresse für Ihre internetfähigen Geräte.
In einem völlig ungeschützten eingebetteten System können Fälschungen leicht durch Reverse Engineering der PCB und Extrahieren der Firmware aus dem Mikrocontroller erstellt werden. Natürlich ist es selbst mit aktivierten Code-Schutzfunktionen immer noch möglich, die Firmware zu duplizieren, wenn auch schwieriger.
Die Einbeziehung eines Unique ID EEPROM in Ihr Design und die Implementierung von Verifizierungsverfahren in der Firmware helfen, Massenfälschungen zu verhindern. So setze ich es in meinen eingebetteten Systemen um:
Erstellen Sie eine einfache Firmware, die die einzigartige ID aus dem EEPROM liest und sie in eine Datei auf einer SD-Karte speichert. Diese Firmware ist nur dafür programmiert, die einzigartige ID abzurufen und wird später durch die eigentliche Anwendungsfirmware überschrieben.
Überprüfen Sie anhand der einzigartigen ID, um das Laden von gefälschten Programmen zu verhindern.
Dann erstellen Sie eine spezielle Funktion in der Anwendungsfirmware, um die einzigartige ID aus der Datei zu extrahieren und den Wert in den internen Flash-Speicher des Mikrocontrollers zu schreiben. Der Mikrocontroller muss dann die gespeicherte Datei auf der SD-Karte löschen, nachdem er sie sicher gespeichert hat.
In der tatsächlichen Anwendungsfirmware erstellen Sie eine Funktion, die die einzigartige ID des EEPROMs auf der PCB mit einer fest einprogrammierten EEPROM-ID im Flash-Speicher des Mikrocontrollers überprüft. Dies ermöglicht nur der kompilierten Firmware mit der richtigen fest einprogrammierten einzigartigen ID, auf einer bestimmten PCB zu funktionieren.
Wie bei jedem Design stehen Sicherheit und Bequemlichkeit immer an gegenüberliegenden Enden eines Spektrums. Die Durchführbarkeit Ihrer Methode zum Schutz vor Fälschungen hängt von der Art Ihrer Anwendungen und der voraussichtlichen Auswirkung des Fälschens auf Ihr Geschäft ab.
Der offensichtliche Vorteil der eindeutigen ID-Überprüfung ist, dass Ihr eingebettetes System nicht in großen Mengen gefälscht werden kann. Selbst wenn die Firmware extrahiert wird, führt deren Einspeisung in mehrere PCBs nicht dazu, dass eines der Geräte betriebsfähig wird. Abgesehen davon, den Mikrocontroller zur Selbstzerstörung zu bringen, ist dies die sicherste Schutzmaßnahme, die ich je implementiert habe.
Der Nachteil dieser Methode ist, dass die Produktion ein viel langsamerer Prozess sein wird, da dies das Herunterladen von Firmware zur Extraktion eindeutiger IDs und die Verwendung einer SD-Karte beinhaltet. Nachdem die eindeutige ID gespeichert ist, müsste der Produktionstechniker die Anwendungsfirmware einspeisen. Darüber hinaus sind EEPROMs mit eindeutiger ID im Allgemeinen teurer als ihre regulären Gegenstücke.
Erwarten Sie einen langwierigen, aber sicheren Prozess der Firmware-Einspeisung.
Wenn die Folgen von Fälschungen eine große Sorge für Ihr Unternehmen darstellen, ist das Platzieren eines einzigartigen ID EEPROMs der beste Weg, um Ihr Design zu schützen. Dies lässt sich einfach einrichten mit vielseitiger PCB-Designsoftware wie Altium Designer®. Wenn ein einzigartiger ID EEPROM nicht direkt in das Integrierte verfügbar ist, können Sie leicht einen mit einem Standard-Footprint erstellen.
Brauchen Sie mehr Tipps, um Ihr eingebettetes Systemdesign vor Fälschungen zu schützen?