Kopierschutz auf EEProm



  • hallo zusammen

    Main Problem:
    Ich suche eine möglichkeit mein I2C-EEProm vor kopien zu schützen.
    Ich lese Daten in meinem Programm über I2C aus dem EEProm aus. Da die Daten wichtig für mein Programm sind, und nicht manipuliert werden sollten,
    suche ich eine möglichkeit, die zumindest das blanke kopieren des EEProm verhindert, oder bemerkbar machen.
    Da kopieren sowieso nicht verhindert werden kann, und man davon ausgehen muss, dass das EEProm Bit für Bit kopiert wird, suche ich eine möglichkeit wie ich das erkennen kann.
    gibts da möglichkeiten?

    ➡ Zu Bemerken ist noch, dass das EEProm keinerlei "spezielle" Sektoren hat.

    mfg
    BigNeal



  • Wieso verschlüsselst du die Daten auf dem EEPROM nicht einfach und dein Programm entschlüsselt sie vor Verwendung? Sofern das Programm, das die Daten entschlüsselt frei verfügbar ist, wird es natürlich auch hier Möglichkeiten geben, die Daten unauthorisiert zu entschlüsseln.
    Ansonsten würde es wohl nur die Möglichkeit geben, andere ICs zu verwenden, die die Daten nur nach Übergabe eines Schlüssels auslesen lassen. Ob es sowas aber in Serienproduktion gibt, weiß ich nicht.



  • masterofx32 schrieb:

    Wieso verschlüsselst du die Daten auf dem EEPROM nicht einfach und dein Programm entschlüsselt sie vor Verwendung?

    hmmm.. habe das wohl etwas falsch betohnt 🙂 das problem ist mehr, dass man erkennen soll, wan ein EEProm kopiert wurde.
    Und deshalb bringt mir verschlüsseln nichts. 😞

    masterofx32 schrieb:

    Ansonsten würde es wohl nur die Möglichkeit geben, andere ICs zu verwenden, die die Daten nur nach Übergabe eines Schlüssels auslesen lassen. Ob es sowas aber in Serienproduktion gibt, weiß ich nicht.

    Solche sachen gibts alles. aber das EEProm ist leider festvorgegeben... Ich weiss ist müll, um aber meinen ehemaligen Lehrer zu zitieren: "Ist so, weil ist so!"

    mfg
    BigNeal



  • Gieß das EEPROM mit Kunstharz ein.

    Wenn das EEPROM keine spezielle Lesesperre oder Authentifizierung unterstützt (gemäß JTEC gibt's sowas), hast Du anders keine Chance.

    READ ONLY MEMORY!!!

    Ansonsten kannst Du noch mit Obfuscating arbeiten, d.h. die Adressleitungen/Datenleitungen des EEPROMS vertauschen, so daß die Ablage der Daten im Speicher durchmischt ist. Das wäre für Dich neutral, aber jemand kann nur 1:1 Kopien machen, aber die Daten nicht (so einfach) interpretieren.

    Einem ernsthaften Angriff hält das nicht stand, aber als 1st level defense wäre es ok.



  • Geht es nun darum, die Daten vor Manipulation zu schützen oder Raubkopien zu verhindern? Soll es im zweiten Fall mit forensischen Methoden oder durch dein Programm/Schaltung erkannt werden können, ob die Daten eine Kopie sind?
    Die Manipulations-"sicherheit" wäre ja mit Verschlüsselung gegeben. Um festzustellen, ob die Daten kopiert wurden bräuchte man entweder eine Unterscheidungsmöglichkeit zwischen normalem Auslesen im Betrieb und Auslesen zum Kopieren oder man muss versuchen, analoge Daten irgendwie unterzubringen, die bei binärem Auslesen und konventionellen Schreiben eines neuen EEPROMs verloren gehen würden, ich halte aber beide nicht für realisierbar.



  • Marc++us schrieb:

    Wenn das EEPROM keine spezielle Lesesperre oder Authentifizierung unterstützt (gemäß JTEC gibt's sowas), hast Du anders keine Chance.

    Also ich kenn bloss JTAG und JEDEC. Du meinst wohl letzteres, oder? Und das mit der Auslesesperre kannte ich bisher nur von GAL-Bausteinen, damit man die Logik nicht extrahieren kann. Aber was soll das bei einem ROM bringen?



  • Hehe, ja, JEDEC war's, ich saß vor dem Computer und überlegte mir die ganze Zeit JTAG, JTAG, aber das war's nicht, irgendwas mit E... 🙂

    Ich hatte noch keinen solchen Baustein für EEPROM in der Hand, aber ich habe es in einer Elektronikzeitschrift gesehen (bei Mikrocontrollern mit integriertem EEPROM gibt's das ja ohnehin mit Auslesesperre), da muß sich das lesende Gerät mit einer Art Zertifierung anmelden, um die Adressleitungen freizuschalten. Ich nehme an, daß die intern einfach den Schlüssel noch mal mit den Daten verknüpfen, aber wie sicher das ist, keine Ahnung.

    Ich sag doch, Kunstharz. 🙂

    Obwohl, man kann in China Maschinchen kaufen, die Kunstharz von Platinen fräsen können, damit man die Bausteine freilegen kann. ⚠



  • Marc++us schrieb:

    Ich hatte noch keinen solchen Baustein für EEPROM in der Hand, aber ich habe es in einer Elektronikzeitschrift gesehen (bei Mikrocontrollern mit integriertem EEPROM gibt's das ja ohnehin mit Auslesesperre), da muß sich das lesende Gerät mit einer Art Zertifierung anmelden, um die Adressleitungen freizuschalten. Ich nehme an, daß die intern einfach den Schlüssel noch mal mit den Daten verknüpfen, aber wie sicher das ist, keine Ahnung.

    Ah, O.K.. Das ist mir neu.

    Marc++us schrieb:

    Ich sag doch, Kunstharz. 🙂

    Obwohl, man kann in China Maschinchen kaufen, die Kunstharz von Platinen fräsen können, damit man die Bausteine freilegen kann. ⚠

    😃



  • TactX schrieb:

    Marc++us schrieb:

    Ich hatte noch keinen solchen Baustein für EEPROM in der Hand, aber ich habe es in einer Elektronikzeitschrift gesehen (bei Mikrocontrollern mit integriertem EEPROM gibt's das ja ohnehin mit Auslesesperre), da muß sich das lesende Gerät mit einer Art Zertifierung anmelden, um die Adressleitungen freizuschalten. Ich nehme an, daß die intern einfach den Schlüssel noch mal mit den Daten verknüpfen, aber wie sicher das ist, keine Ahnung.

    Ah, O.K.. Das ist mir neu.

    gibt auch solche wo du nichts auslesen kannst (nichtmal zertifiziert+beten), nur schreiben, sind extra dafür gemacht ;)...sowas in der art soll auf der xbox360 cpu sein.



  • rapso schrieb:

    gibt auch solche wo du nichts auslesen kannst (nichtmal zertifiziert+beten), nur schreiben, sind extra dafür gemacht ;)...sowas in der art soll auf der xbox360 cpu sein.

    Sag niemals "nie". Aber das sind dann Speicher, die in Mikrocontrollern integriert sind, da ist das einfacher, da man die Adressleitungen der EEPROMs nicht nach Außen führen muß. Der Zugriff ist dann nur von der CPU innerhalb des gleichen Chips möglich.

    So Sachen gibt's u.a. von Motorola und Texas Instruments.



  • Hi

    Ohne eine zusätzliche Datenquelle seh ich da schwarz. Wie soll das Programm festellen, das sich seine Datenquelle verändert hat, wenn er nichts hat gegen das er irgendwie Prüfen kann. Es würde eine halbwegs eindeutige Signatur ja reichen ggf die Seriennummer des Gerähtes ( fals die nicht gerade selber im EEPROM steht ) oder irgend welche anderen halbwegs eindeutigen Kennungen von anderen Bausteinen z.B. MAC des Netzwerkkontrollers, Revisiononsns / Sehreinnummer des Controllers selber oder anderer Bausteine, wenn sich diese auslesen lassen.

    Oder den Baustein tauschen. Aus der ecke der Chipkarten gibt es einige Bausteine, die sich zwar auslesen lassen, aber nur durch setzen einer pin überschreiben lassen. auch gibt es die möglichkeit bestimmte bereiche zu "fixieren". Solche bausteine sollte es auch als IC geben. Problem ist halt, das das wieder mit kosten verbunden ist, und die datendichte nicht gerade riesig ist. wenn ich da an die 64kBit karte denke mit der ich arbeite und an die 64mBit Bausteine mit SPI interface die es seit kurtzem am markt gibt.

    gruss

    Termite

    ps. I2C-EEPROM Bausteine sind über den I2C - Bus angebunden. Da lassen sich keine Daten / Adressleitungen drehen da das Interface nur aus Clock und Datenleitung besteht. Auserdek könnte ja nach typ auch die Manipulation der Adressleitungen problme bereiten, wenn der Baustein nur einen sogenanten Blockerase hat.


Anmelden zum Antworten