Manipulationssicherer eingebetteter Mikroprozessor

Ich entwickle kommerziell eingebettete Hardware mit Microchip dsPIC oder ähnlichen Prozessoren.

Die Firmware, die ich habe, ist manchmal sehr komplex und kostspielig und muss in der Hardware hacker- und manipulationssicher sein. Alle grundlegenden Softwareschutzmaßnahmen sind vorhanden, aber für 500 bis 1.000 US-Dollar kann der Hex-Code über mehrere ausländische Website-Dienste abgerufen werden, selbst wenn Sicherheitssicherungen vorhanden sind (die nur unbestimmte Manipulationen verhindern). Danach sind es nur noch wenige Monate und der Code kann mit einem Disassembler wie IDA Pro zurückentwickelt werden.

Wie kann ich das Hardwaredesign etwas besser schützen (kein militärischer Schutz erforderlich)?

Können Sie andere nicht lesbare Prozessoren oder vielleicht eine Ergänzung zu meinem bestehenden Design empfehlen?

Ich brauche nur wenige Funktionen zu verstecken, ich brauche nicht das ganze Produkt. Außerdem reicht es nicht aus, nur Daten in einem sicheren externen Speicher zu verstecken, ich muss ein Programm verstecken.

Update (basierend auf vielen Kommentaren): Ich habe dsPIC und 4 Vollzeitjahre an der Entwicklung von Firmware (wäre ziemlich anstrengend, es auf andere Weise von Grund auf neu zu machen):

1) Dieses Produkt wird bereits verkauft und Hacker haben Zugriff, wenn sie möchten

2) Die NEUE FIRMWARE ist noch nicht freigegeben. Enthält 5kB Code, den noch niemand von allen Mitbewerbern hat. Ich muss verhindern, dass irgendjemand es für etwa 12 Monate nach der Veröffentlichung leicht bekommt

3) Es gibt kein Budget, um sehr exotisch oder kompliziert zu werden, vielleicht zusätzlich 10 $ pro Produkt, plus oder minus

4) Eine Lösung wie eine zusätzliche SIM-Karte könnte ausreichen?

5) Die Funktion zum Ausblenden führt eine sehr knifflige Berechnung durch, die nicht dem Standard entspricht, um 16 Bytes zu entschlüsseln/verschlüsseln. Bekannte Prozesse können es nicht in 1 Jahr hacken, die Funktion wird benötigt, weshalb ich es ausblenden möchte.

6) Es macht mir nichts aus, ob es öffentlich sichtbar ist, wenn die Anfrage an „versteckte“ Hardware gesendet wird oder ob die Antwort öffentlich sichtbar ist. Muss nur den Prozess verbergen, der ihn berechnet, und kann sich nicht im dsPIC-Prozessor befinden.

Oberste Sicherheitsregel: Sprechen Sie niemals über Sicherheit. Mein Rat wäre , einen Spezialisten für Prozessorsicherheit zu beauftragen, anstatt auf einer öffentlichen Website zu fragen.
Jim: Ein guter. Trotzdem suche ich nach einem Konzept, nicht nach einer Lösung. Ich bin selbst ein Reverse-Engineer, und alles auf Basis-CPUs kann ich reverse-engineeren - ich suche nach Prävention oder um es schwieriger zu machen, aber nicht in dem Stil, es in Epoxid oder ähnliches zu vergießen (das verzögert es nur 1 Tag )
Einige Mikroprozessoren haben eine Sicherung, die das Auslesen des Codes verhindert. Google MSP430 security fusefür ein Beispiel.
user1831847: das funktioniert nicht wirklich, siehe die Frage und 1.000 $ (ich habe es selbst mit meinem eigenen sicheren Code gesehen)
Dann ist es, wie Sie wissen, nicht so einfach - selbst auf Mikroprozessoren, die "sicher" sind. Wenn Sie genügend Ressourcen darauf werfen, ist fast alles knackbar. Zumindest wenn Sie einen Dritten beauftragen, können Sie ihn immer verklagen, wenn etwas schief geht ;)
Klagen ... Viele Male versucht. Stoppt nicht das Kopieren von Produkten, kostet nur RIESIG, ohne dass jemand gewinnt. Außerdem funktioniert die Klage wirklich nur in den USA/Kanada.
@Jim Dearden 2. Regel, Sicherheit durch Unklarheit ist keine Sicherheit. Es wäre jedoch eine gute Idee, einen Spezialisten zu beauftragen. Kerl. Sicherheit ist nie absolut, sondern immer ein Faktor von Zeit und Geld. Können Sie uns unter diesen Bedingungen einen Hinweis darauf geben, welches Schutzniveau Sie suchen?
Wenn Sie so etwas wie Online-Authentifizierung nicht haben, denke ich, dass Sie ziemlich SOL sind. Wie Sie sagen, ist es billig genug, einfache Schutzmaßnahmen aufzuheben (sie können die Kapselung entfernen und verschiedene Techniken verwenden, um Schutzmaßnahmen zu deaktivieren, zu umgehen oder neu zu verdrahten, wenn nichts Einfacheres funktioniert). Sie können die Sicherheits-SE ausprobieren. Wenn Ihr Produkt gut ist, wird es kopiert, und selbst wenn Sie die Firmware sichern könnten, wie schwer wäre es wirklich , sie neu zu schreiben? Ein Großteil der Kosten liegt in der Bestimmung der Spezifikationen und so weiter, die der Kopierer nicht tun muss.
Ich denke, dass mehr Informationen über Sicherheitskriterien benötigt werden. Wie akzeptabel ist es, dass die Sicherheitssysteme das Produkt versehentlich deaktivieren? Wie viel können Sie in Selbstzerstörungssysteme investieren? Wie viele Sicherheitsebenen möchten Sie? Die Liste geht weiter und weiter und weiter.
Was ist mit den verschiedenen Smartcard-Systemen?
Eine Möglichkeit wäre, die Public-Key-Authentifizierung zu verwenden und ein Stück Code zu verschlüsseln. Bewahren Sie dann den Entschlüsselungsschlüssel in einem sehr flüchtigen Speicher auf, der sich selbst löschen könnte, wenn er manipuliert wird. Ich habe das bei FPGA-Firmwares gesehen. Es gibt Methoden, um festzustellen, ob die Schachtel geöffnet wird oder ob jemand an dem Epoxid arbeitet, was hilfreich sein könnte. POS-Demontagevideos können eine Idee geben. Für Code ist es natürlich komplizierter. Wenn ich mich richtig erinnere, können PICs nichts aus dem Datenspeicher ausführen?
Ich habe die ursprüngliche Frage aktualisiert, um viele Kommentare oben anzusprechen
Schönes Video über Methoden auf MSP430 und moderner Hochglanz von TI zu diesem Thema.
Danke Video ist schön. Es zeigt im Grunde, warum ich mir Sorgen mache. Es gibt jedoch eine einfachere Methode: Zahlen Sie 1.000 $ und fast jeder Chip wird für Sie ausgelesen (Sie erhalten eine Binärdatei). Aus diesem Grund versuche ich, einen Abschnitt des Binärcodes zu verstecken, was bedeutet, dass er nicht in einen normalen Chip programmiert werden kann, Sicherheitssicherungen hören nicht auf zu lesen, was es nur sehr unpraktisch macht.
Wenn es nicht in den Kern des Chips eingebaut ist, sollte es ziemlich trivial sein, Smartcards usw. Einfach ungeschützte Anweisungen über eine Schnittstelle in einen ungeschützten Chip einspeisen.
Ein paar Monate? Unternehmen mit Millionenbeträgen lassen ihre Produkte innerhalb von Stunden hacken. Sie verbringen Monate bis Jahre damit, sich einzusperren, um sie am Tag der Freilassung besiegt zu haben? Das ist heutzutage die allgemeine Lebensdauer der Sicherheit, bei der Aktienprozessoren unverschlüsselten Code über schnüffelbare Busse ausführen.
Wenn alles, was Sie wissen oder wissen wollen, Microchip dsPIC ist, müssen Sie sich Microchip besorgen und sehen, was sie bieten. Höchstwahrscheinlich ist ein OTP die beste Wahl, vorausgesetzt, es kann nicht gelesen werden, ähnlich wie FPGAs oder CPLDs dies tun oder versuchen zu tun.
Vielleicht möchten Sie einen Blick auf die Kryptographie werfen. crypto.stackexchange.com/questions/43272/…
Das Hinzufügen einer Smartcard (SIM-Karte oder eine andere Form) ist eine Möglichkeit, aber nicht der beste Ansatz für diesen Fall. Smartcard kommuniziert über ISO7816, was kein schnelles Protokoll ist. Es gibt einige auf Hochgeschwindigkeit basierende Sicherheitsauthentifizierungschips (z. B. AT97SC3205). Wenn Sie Ihren Prozessor ändern können. STM32F423 von ST usw. Auch in einigen TI-Produkten wie der Concerto-Familie habe ich zuvor eine Sicherheitsfunktion namens ECSL & CSM gesehen, die Code-Reverse-Engineering verhindern.
Vielleicht möchten Sie sich mit der Verschleierung Ihres Codes befassen. Verhindert nicht das Auslesen der Binärdatei, erschwert jedoch das Umkehren der Binärdatei.

Antworten (2)

Es gibt darauf spezialisierte Firmen. Atmel war einer von ihnen, ebenfalls in Sicherheit. Sie haben spezielle Hardware, die Ihren Bedürfnissen entsprechen kann. Aber wenn Sie wirklich wollen, dass es funktioniert, seien Sie bereit, die gesamte Kette von ihrem Asic-Lager bis zu Ihrer Produktionsstätte mit Tresoren und Wachen für die Sicherheitscodes zu sichern. Andernfalls verdienen Sie nur 1.000 $ für den Versuch von 10.000 $, während Sie eigentlich mindestens 1 Mio. $ benötigen.

Ich höre, was du meinst. 1 Mio. $ ist in Ordnung, wenn das Produkt für 10 Mio. $/Jahr verkauft wird, was nicht mein Fall ist. Aber die sichere Hardware ohne Tresore und Wächter könnte ausreichen. Für diese zusätzliche Rechensicherheit benötige ich nur eine kleine CPU.
Dann feuer die Wachen :)
Basierend auf Ihrem Update-Call in Secure.
Gregory: Tut mir leid, ich verstehe nicht, was du mit "innerhalb sicher" meinst
VORSICHTIG! Der Link zu insidesecure wurde von meinem Antivirenprogramm blockiert, da es versuchte, einen Trojaner zu installieren. Falsch positiv? Wer weiß? Aber das ist das erste Mal, dass mir das passiert ist.
Bei mir ist es nicht passiert

Forscher am MIT haben eine Möglichkeit entwickelt, den Code mathematisch zu verschlüsseln, aber die Ausgabe gleich zu halten. Die Funktion wird nur ausgeführt, wenn Sie ihr den richtigen Schlüssel geben, der von Zeit zu Zeit heruntergeladen werden kann.

Dies könnte für Sie nützlich sein: http://spectrum.ieee.org/computing/software/scrambled-code-keeps-software-safe

Obwohl dies noch keine praktische Lösung ist, danke ich Ihnen für eine interessante lehrreiche Lektüre.