Hallo Zusammen,
ich habe leider keinerlei Erfahrung was Kryptographie betrifft und stehe
nun vor folgender Situation und erhoffe mir Hilfe und Tipps.
Situation bisher:
Aus Access heraus wird mittels VBA ein Barcode erzeugt.
Barcode wird auf Produkt gedruckt.
Automation liest Barcode ein und erkennt Produkt.
Um Produktpiraten das Leben schwerer zumachen soll es nun wie folgt
ablaufen:
Access verschlüsselt mittels kundenspezifischen Passwort Informationen
und
erstellt Barcode.
Barcode wird auf Produkt gedruckt.
Automation (SPS bisher in AWL programmiert) entschlüsselt Barcode und
erkennt Produkt.
Den String mittels VBA zu verschlüsseln ist nicht das Größte Problem
dort stehen Libaries und Online-Tutorials zur Verfügung. Das
Entschlüsseln auf der SPS scheint mir der Knackpunkt zu sein.
Bisher hätte ich eine XOR-Verschlüsselung für am einfachsten gehalten,
jedoch sehe ich auch dort die Schwachpunkte durch den sich nicht
Ändernen Key.
Gibt es einfache Alternative Verfahren oder könnte man die
XOR-Geschichte sicher machen indem man den Quellcode auf der SPS
schützt?
> Um Produktpiraten das Leben schwerer zumachen soll es nun wie folgt> ablaufen:
und wie willst du nun verhindert das die Produktpiraten einfach einen
vorhanden Barcode kopieren?
Die Produktzusammensetzung ändert sich täglich, so das die Informationen
im Barcode sich auch ändern. Wir haben nur die Befürchtung, dass andere
Firmen Produkte für die Automation erstellen und somit nur noch unsere
Automation benötigen nicht das Zubehör.
ich versteht das Problem noch immer nicht.
Warum erzeugt du denn nicht eine Zufälligen Barcode. Dieser wird aber
gespeichert und die SPS gleicht mit der Liste ab ob diese barcode gültig
ist.
Verschlüssung ist glaube ich nicht die Lösung diese Problems. Wenn
überhaupt geht es um "echtheit" und dafür gibt es Signaturen. Man
brechnet also über den Barcode eine prüfsumme mit einem geheimen
schlüssel. Beim Prüfen vom Barcode prüft man dann mit dem öffentlichen
schlüsseln ob die Barcode "echt" ist.
Dann ist aber immer noch das Problem, das man einen vorhanden barcode
kopieren kann.
Die Frage ist, wiviel zeichen man in dem Barcode speichern kann.
Könntest du "(...)Man
brechnet also über den Barcode eine prüfsumme mit einem geheimen
schlüssel. Beim Prüfen vom Barcode prüft man dann mit dem öffentlichen
schlüsseln ob die Barcode "echt" ist."
eventuell an einem Beipiel etwas verdeutlichen?
Hey,
ich hab mich etwas eingelesen und scheinbar ist
Public-Key-Verschlüsselung/Digitale Signatur genau das was ich bräuchte
und wollte.
Der Barcode ist kann max 40 Zeichen enthalten.
Bei der Umsetzung sehe ich nur größere Probleme gerade was die SPS
angeht.
J. Baldauf schrieb:> Der Barcode ist kann max 40 Zeichen enthalten.
das wird eng, für RSA braucht man mindestens 1024bit (128byte). So langt
ist denn meines wissens auch immer die Signatur.
Gibt es denn kein einfacheres/unsicheres Verfahren mit dem man eine
Digitale Signatur erzeugen kann?
In erster Linie soll es ja nur die Nach-Produktion erschweren und
natürlich auch schnell Umsetzbar sein für uns.
J. Baldauf schrieb:> In erster Linie soll es ja nur die Nach-Produktion erschweren und> natürlich auch schnell Umsetzbar sein für uns.
Ich denke ja, das es einfacher ist eine Zufallsbarcode zu ereugen und
jeweils mit einer Datenbank abzugleichen.
Der Barcode enthält bisher natürlich auch Informationen die nicht
wegfallen dürfen und die SPS ist leicht auslesbar und hat auch keine
Verbindung zu einer Datenbank.
J. Baldauf schrieb:> Der Barcode enthält bisher natürlich auch Informationen die nicht> wegfallen dürfen und die SPS ist leicht auslesbar und hat auch keine> Verbindung zu einer Datenbank.
dann musst du halt die "unsichere" Variante wählen und dir selber eine
art Prüfzumme über die Felder ausdenken und diese dann Prüfen.
wenn du z.b. 4byte frei hast, dann kannst du eine CRC32 über die Daten +
einen Key berechnen, diesen speicherst du dann ein den Barcode mit ab.
Ob dir das sicher genug ist kann ich nicht beurteilen, für einen
ersthaften angriff recht es zumindest nicht.
Schaffst eine CRC32 in der SPS zu brechnen?
J. Baldauf schrieb:> Das könnte man hinbekommen aber der Charme eines Öffentlichen-Keys in> der SPS wäre ja weg oder verstehe ich jetzt etwas falsch?
ja. Du hättest nur im Access und der SPS einen Key (der aber ebend
gleich ist)
Und dann könnte ich auch die noch einfachere Variante mit XOR nehmen.
Das wären auf der SPS nur ein paar Zeilen.
Schade, jetzt wüsste man ne Ideale Methode (Digitale Signatur) und
scheiterst an der Hardware und meinem Können :)
J. Baldauf schrieb:> Und dann könnte ich auch die noch einfachere Variante mit XOR nehmen.> Das wären auf der SPS nur ein paar Zeilen.
xor ist nun wirklich exterm einfach zu knacken. Dann wenigsten ein
CRC32.
> Schade, jetzt wüsste man ne Ideale Methode (Digitale Signatur) und> scheiterst an der Hardware und meinem Können :)
gibt ja auch 3d Barcodes - dort passt das rein. Und das Können kann man
durch lernen erweitern.
Die Ver und Endschlüsselung könnte man ja auch auslagern. Z.B. an einem
Comport der SPS (über Erweiterungsmodul) einen eigenen Microkontroller
hängen der den Barcodeinhalt von der SPS bekommt und dan einfach ein OK
oder nicht OK zurücksendet.
Das Hauptbroblem sehe ich aber immer noch im einfachen Kopieren des
Codes.
Jeder Code darf ja nur einmal vorkommen, wie soll ein Oflinesystem sowas
sicherstellen?
Der externe Kriptoprozzesor könnte da ja eine Tabelle verwalten, nur die
muß dann wohl auch irgendwan mal wieder aufgefüllt werden.
Macht ihr die Wartung der Kundenanlagen?
Eigendlich habt ihr ja das gleiche Problem wie die Hersteller von
Druckern die möglichts Fremdtinte verhindern wollen.
Jürgen D. schrieb:> Jeder Code darf ja nur einmal vorkommen, wie soll ein Oflinesystem sowas> sicherstellen?
man vergibt einen laufenden Nummer, und legt einfach fest das die
aktuelle nicht kleiner als der vorgänger sein darf.
Eine weitere Möglichkeit wäre es, die Seriennummer der SPS (oder etwas
anderes, diese eineindeutig kennzeichnendes) zum Entschlüsseln zu
verwenden.
Dann muss das mit dem Barcode gekennzeichnete Ding gezielt für die
jeweilige SPS-Installation codiert sein, und damit ist eine Kopie des
Barcodes an jeder anderen SPS-Installation nutzlos.
Eine Mehrfachverwendung gleicher Barcodes an ein und der selben SPS
sollte auch leicht verhinderbar sein, die kann sich ja merken, welche
Seriennummern der anzuschließenden Geräte sie schon kennt.
Andererseits sollte man sich auch mal zurücklehnen und überlegen, ob all
der Aufriss wirklich nötig ist -- ist denn der Kundenkreis mit so
deutlicher "krimineller Energie" ausgestattet, daß so ein
Sicherungsverfahren benötigt wird?
Das mit der laufenden nummer muß nicht unbedingt klappen, wenn ich das
richtig verstanden habe geht es um Verbrauchmaterial das der Maschiene
zugeführt wird und wo überwacht werden soll das es orginal ist. Wie bei
meinem Beispiel die Druckerpatronen. Durch eine Lagerhaltung können da
durchaus die Reihenfolge geändert werden.
Da ihr ja die Wartung macht währe ja vieleicht ein Verfahren ähnich der
TAN Listen bei Onlieüberweisungen denkbar.
Jede Prüfnummer ist nur einmal gültig. Eine neue Liste lädt ihr dann bei
der nächsten Wartung hoch.
Allzu lange Romane lassen sich sowieso nicht in einem Barcode
verstecken. Es sei denn du benutzt den neuen Quadratischen.
Sperrst Du das Auslesemodul in der SPS gegen das Auslesen, so bleibt für
den Unkundigen nur eine Zahlenkolonne, deren Interpretation von außen
nicht möglich ist. Willst Du auf Nummer sicher gehen, verodere das Ganze
noch mit deiner Lieblingsprimzahl und, was ganz wichtig bei solchen
Kapriolen ist, sperre das Ganze nach jedem Durchlauf für einige Zeit.
Eine Produktion wird nicht im Sekundentakt umgestellt. Ein erneuter
Versuch nach 0,5 Sekunden ist also als versuchter Einbruch zu werten und
kann also in jedem Falle als Fehler gewertet werden. Solange Du Deinen
Schlüssel nicht außen draufpappst, sollte ein solches System, mit
normalen Mitteln, nicht zu knacken sein.
Wie schon angesprochen ist das Auslesen der SPS eine große Schwäche.
Kennt den jemand eine Möglichkeit bei Steuerungen von EPIS das Auslesen
zu verhindern?
J. Baldauf schrieb:> Wie schon angesprochen ist das Auslesen der SPS eine große Schwäche.
ich fand die Idee von Jürgen D. gut, die Entschlüsselung extern zu
machen. Wie ist denn der Barcodescanner an die SPS angebunden? Wenn er
per RS232 angebunden ist, dann könnte man ja auch eine "black box"
zuwischen schalten die den barcode entschlüsselt und ihn dann einfach
weiterreicht.
Eine eigene Frage?
Dieser Thread ist über 13 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.