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.
Außerdem würden wir dann in regelmäßigen Abständen, beispielsweise bei der Wartung der Automation, den Key ändern und die Produktion anpassen.
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.
Den Ansatz mit der Signatur hätte ich noch nicht bedacht.
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?
J. Baldauf schrieb: > eventuell an einem Beipiel etwas verdeutlichen? suche doch einfach mal bei google. ("digitale Signatur") http://de.wikipedia.org/wiki/Digitale_Signatur Wie viele bytes bekommt du denn in einen Barcode rein?
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?
Das könnte man hinbekommen aber der Charme eines Öffentlichen-Keys in der SPS wäre ja weg oder verstehe ich jetzt etwas falsch?
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.
Bitshuffling z.B. ccrp sollte für die SPS kein problem darstellen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.