2009-02-26 2 views
4

Im Allgemeinen würde ich gehen, indem Sie etwas und zufällig in das ROM-Image und verwenden Sie das als ein Seed, um den EEPROM-Inhalt zu verschlüsseln, um die Extraktion zu stoppen und nach Image-Mod neu zu programmieren.Sicherung EEPROM-Daten gegen Änderung

Ein offensichtlicher Fehler scheint zu sein, dass dies nicht aufhören zu manipulieren in Form von den externen EEPROM-Chip durch einen leeren ersetzen ... oh Blick zurück zum ersten Mal Zustand, lassen Sie fragen, um Schlüssel zu sparen!


Auswahl der Komponenten ist keine Option für mich, die Hardware-Plattform ist bereits definiert. Der EEPROM wird während der Lebensdauer des Geräts als Konfiguration und Zustandsänderung programmiert, so dass das Trennen der Löschleitung ebenfalls ein No-Go ist.

Ich suchte nach Meinung über mögliche Lösungen, um die Fälschung eines Neuzustandes (Erstlauf) zu verhindern, da dies die Funktionalität ermöglichen würde, die sensiblen Daten zu speichern und das Gerät zu entsperren.

Ich bin zuversichtlich, dass eine Blockchiffre (ECB-Modus) ausreicht, um die sensiblen Daten zu sichern, vielleicht übertrieben! Dieser Ansatz zusammen mit mehreren Kopien, Salzen eines und nicht das andere sollte es finanziell unwirtschaftlich machen, Geld und Zeit zu setzen, um diesen Maßnahmen zu begegnen.

+0

Lesen Sie 'Fooled von Randomness' und Sie werden wissen, wie zufällig, was Sie denken," zufällig "ist :) – dirkgently

+0

Ich dachte über die Qualifizierung meiner" Random "aber dachte es unnötig, aber es scheint, ich sollte. Ich werde mir die Empfehlung ansehen, ich bin sicher, dass ich etwas Interessantes finden werde. Aber mir ist klar, was zufällige und zufällige Verschlüsselung bedeutet. – Oliver

Antwort

5

Einige Gedanken: Wenn von ‚Sicherung gegen unbefugte Veränderungen‘ Meinen Sie, dass Sie eine solche Manipulation erkennen können, dann können Sie

  1. eine Prüfsumme über die gesamte eeprom erzeugen, nur die App starten, wenn die Prüfsumme in Ordnung ist
  2. Verwenden Sie einen zusätzlichen Chip, der eine eindeutige Nummer bietet, verwenden Sie diese Nummer, um den Inhalt des Eeproms zu verschlüsseln
  3. Speichern Sie alle Ihre Informationen an mehreren Stellen in der Eeprom (zweimal, wenn Sie nur eine Änderung erkennen, dreimal wenn Sie möchten den manipulierten Wert erkennen und ablehnen und die Werte 'immer noch korrekt' verwenden.

Aber wenn man die Manipulationen an erster Stelle verhindern will, müssen Sie mechanische Schutzvorrichtungen verwenden - heiß den ganzen Chip kleben, sperren Sie das Gehäuse Ihres pcb, ...

3

Float den Löschstift und Epoxy den ganzen Chip auf die Platine? Verwenden Sie einen PROM?

Wenn Sie das Bild nicht ändern möchten, machen Sie es unmöglich zu ändern.

2

Wenn Hardware-Maßnahmen aus sind , und Sie sind mit einer Software-Ansatz stecken, und die Sache, die das EEPROM liest kann public-key algorithms handhaben, dann könnten Sie einen öffentlichen Schlüssel signierten Datenblock im EEPROM verwenden (nehmen Sie Ihre EEPROM-Daten, vor einem festen Block mit die Länge der Daten und ein sicherer Hash der Daten, die mit dem privaten Schlüssel verschlüsselt wurden.

Dies erfordert, was auch immer den EEPROM-Inhalt verwendet, um es mit dem entsprechenden öffentlichen Schlüssel zu validieren (offensichtlich nicht in den gleichen EEPROM). Algorithmen mit öffentlichem Schlüssel sind rechnerisch recht teuer, weshalb es schwierig ist, diesen Ansatz für Mikrocontroller zu rechtfertigen.


Wenn man die Menschen nicht von Manipulationen an der Hardware stoppen können, aber Sie können verwendet werden, welche Hardware Sie wählen, Sie könnten auch einen sicheren EEPROM, wie die Maxim DS28CN01 verwenden (obwohl ich muss zugeben, ich hasse Maxim denn ihre Teile sind teuer und haben lange Vorlaufzeiten und sind oft Vaporware, bis genug Leute Bestellungen für sie machen, um ihre Teile zu machen) oder Atmel's AT88SC series.

+1

alles in Ordnung, Herr. -1, vielleicht könntest du deine Meinung kommentieren? –