Ich muss in der Lage sein zu verhindern, dass andere mein im Flash abgelegtes Programm kopieren, möchte aber trotzdem in der Lage sein, in das EEPROM zu schreiben.
Ich habe die Sperrbits ausprobiert, indem ich sie auf Modus 3 (0x3C) gesetzt habe. Aber das hindert mich daran, in das EEPROM zu schreiben.
Gibt es eine Möglichkeit, das Lesen des Flashs zu verhindern, während das Schreiben in das EEPROM weiterhin zulässig ist?
REF: https://electronics.stackexchange.com/a/53293
und insbesondere: http://web.engr.oregonstate.edu/~traylor/ece473/lectures/fuses.pdf
Es kann möglich sein, einen "Mode not 2" alias "Mode 1 xor 2" mit LB1 als 1 und LB2 als 0 einzustellen.
Implikation: Eine unternehmungslustige Person sollte in der Lage sein, die durch den aktivierten Status von LB1 implizierte Programmierfähigkeit zu verwenden, um LB2 auf 1 zurückzusetzen
Unabhängig davon, durch "Klemmen" (Abgreifen) des blinkenden Datenstroms (vermutlich über ein USB-Kabel) können die hochgeladenen Daten gesehen werden (trivial und buchstäblich mit einem Oszilloskop - eine Person könnte auf diese Weise RS232-Daten für niedrige (< <75) Baudraten und ist das visuelle Analogon zur akustischen Fähigkeit, Morsezeichen zu verwenden, bei denen Absender sogar an ihrer "Faust" identifiziert werden konnten)
wenn diese hochgeladenen Daten also vor dem Flashen NICHT entschlüsselt werden, dann muss der interne Bootloader modifiziert werden, um sie zu entschlüsseln, ... und wenn Teile des Bootloaders durch einen in den Flash-Upload-Daten verschlüsselten Schlüssel entschlüsselt werden müssen ...
Ein geheimer externer Schlüssel, ein Passwort, startet den obigen Prozess, sodass ein "kalter" Chip ansonsten nutzlos ist
diese Technik verhindert nicht das Kopieren, aber sie verhindert die Verwendbarkeit der Kopie
Nicht zuletzt stellt die Verschleierung nicht nur den Eindringling, sondern auch den authentischen Autor vor eine Herausforderung
Nein, da ist kein. Erwägen Sie das Hinzufügen eines externen I 2 C- oder SPI-EEPROM/Flash, wenn Sie extern beschreibbaren Speicherplatz benötigen, während der integrierte Programm-Flash nicht lesbar ist. Dies löst nicht nur Ihr unmittelbares Problem, sondern bietet Ihnen auch viel mehr Platz zum Speichern Ihrer gelieferten oder generierten Daten.
Hier ist, wie ich es gelöst habe. Es funktioniert vielleicht nicht für jeden in meiner Situation, aber das war gut genug für meine Bedürfnisse. Da ich durch Modus 3 eingeschränkt bin, habe ich mich für Modus 3 entschieden (Lesen und Schreiben für Flash und Eeprom verhindern). Daher werde ich den Kunden mein Programm + die Daten in einer verschlüsselten Datei zur Verfügung stellen, die nur von meiner Desktop-Anwendung geöffnet werden kann, die sie entschlüsselt und sowohl das Programm als auch die Daten bereitstellt und sie wieder auf dem Chip sperrt. Der einzige Nachteil bei dieser Lösung ist die Zeit, die zum Hochladen auf Flash und EEPROM benötigt wird (~40-45 Sekunden), während das Hochladen auf das EEPORM allein etwa 10 bis 15 Sekunden dauert. Andererseits hat diese Lösung den zusätzlichen Vorteil, dass sie die Übermittlung von Aktualisierungen an mein Programm innerhalb derselben Operation ermöglicht.
Danke für jeden Vorschlag. Ich werde sie vielleicht in Zukunft ausprobieren, wenn ich Zeit zum Experimentieren habe.
Rev
Jippie
T Tuba
Chris Stratton