Step 7 Laufzeitbegrenzung (Shareware like) einer Anlage über x Tage mit Codeeingabe

Waelder

Level-2
Beiträge
964
Reaktionspunkte
117
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Miteinader,

ich habe einen Kunden der hat in der SPS (S7-300 S7 Classic) folgende Funktion :

"Bezahlkontrolle"

Der Endkunde ist über diese Funktion informiert.

Nach einer Laufzeit von 90 Tagen sollen alle Antriebe geregelt in einen sicheren Zustand "auf aus" verfahren (das ist bereits alles geklärt und getestet)
Die Antriebe sollen nun nicht mehr nicht mehr einschaltbar sein.
Bisher hatte ich einen Zähler in der SPS gemacht der nach x Tagen diese Funktion ausgelöst hat. Beim einschalten des Antriebs durch die Visualisierung wurde dann auch im Motorenbaustein verhindert ihn erneut zu starten.
In der Visu wurde gleichzeitig ein Meldefenster eingeblendet den Lieferant (mein Kunde) anzurufen um einen Code zu erfragen. Anschliessend konnte die Anlage nach Eingabe des richtigen Codes wieder normal betrieben werden. Das war aber nur 1x möglich.

Den betreffenden Baustein zum verriegeln und alle anderen FB-FCs wurden per Know How Protectet oder jetzt auch "Block Privacy" gemacht. Leider lässt sich das bei DBs umgehen. Der Knoff Hoff Schutz kann ja ausgehebelt werden.

Jetzt ist folgendes passiert : Ein russischer Kunde hat dieses einfache System ausgehebelt indem er eine Automationsfirma beauftragt hatte das Programm zu Hacken. Irgendwann hat er die Bits zum Freischalten gehabt. Das war wohl geringer wie die offene Rechnung zu begleichen.

Wir sind z.Zt an 2 Anlagen am Programmieren.

Eine läuft mit WinCC 7.3. Im WinCC können wir das fast alles innerhalb von WinCC regeln mit geschütztem Code.

Die zweite Anlage ist WinCC TIA V13 dort ist das aber nicht so möglich.

Mein Kunde wünscht sich nun eine sichere "Bezahlkontrolle". Sie sollte die Bezahlfunktion mindestens 5x ausführen können und auch annähernd sicher sein.

Hat von euch jemand eine Idee wie man das einigermassen sicher in der S7-300 regeln könnte ?

Und bitte hier nicht über den Sinn oder Unsinn einer Verriegelten Anlage diskutieren. Das wurde schon des Öfteren an anderen Stellen gemacht. Diese Funktion wird von meinem Kunden so gewünscht.

Grüsse Wälder
 
Ich hab mal eine Lösung gesehen bei der eine umgebaute E/A-Baugruppe für sowas verwendet wurde.
Leider find ich den Link dazu nicht mehr.

Gruß
Dieter
 
Unsicherheit verbreiten

Wir haben auch immer wieder mal so ein Problem. Welche Strategie gegen Hacken bietet sich für uns an?

1. Laufzeitbegrenzung, die muss an verschiedenen Stellen programmiert sein, unabhängig und unterschiedlich (Datum, Starts, aktive Zeiten, etc).

2. Laufzeitbegrenzung schlägt statistisch zu, mal die eine, mal die andere und nie nach exakt der selben Zeit, (Spannen von Monaten, die gewürfelt werden, also 6 Monate Ziel kann heute 6 Monate 3 Tage, 12 Stunden, 10 Minuten und 22,3 sekunden bedeuten, Morgen würde aber statistisch etwas mit 8 Monaten und gequetschte zuschlagen. Übermorgen, weil nach dem 6.Monat das 7.mal gestartet...

3. Wenn Dateien oder irgendwie Zeitstempel vorhanden sind, nachschauen, ob irgendwo eine Zeit in der Zukunft liegt, merken aber erst später statistisch reagieren.

4. Verschiedene Reaktionen auslösen. Immer andere, so dass das Programm "instabil" wirkt. Z.B. Bedientasten gelegentlich ignorieren, Kommunikation zu Partnern auf Checksummen Fehler laufen lassen, sprich durch "eben gings noch, dann kurz Fehler, jetzt wieder alles gut", das so ein paar mal je Woche, nervt den "Kunden", der nicht gezahlt hat. Divisionen durch null nicht abfangen aber provozieren, sind auch schön nervig.

5. Falsche Fehlermeldungen, Diagnosen mit der Bitte den Kundendienst zu kontaktieren ...

6. Kunden die einmal aufgefallen sind, werden NIE wieder beliefert.

7. Achtung bei Medizin Projekten, hier kommt der Staatsanwalt, wenn man so etwas gemacht hat, weil es Personen gefährden kann. Hier habe ich vor Jahren einmal bei einem Prototypen eines Zahnarztstuhls mein Geld nicht so bekommen, wie vereinbart. Gerade noch die Kurve gekratzt, als ich die Kausalität zwischen sonderbarem Verhalten und meinen offenen Forderungen ins Spiel brachte. (danach kam Strategie Punkt 6 von oben zur Geltung)
 
Noch hat eine PLC kein Hardwaredongle, obwohl auch diese gehackt werden, und jede Softwaresicherung kann geöffnet werden.
Es kommt nur auf den Aufwand an.
Mit einer SoftPLC auf einem Beckhoff IPC habe ich einmal eine Lösung über das OS realisert.
Bestimmt nicht 100% sicher, aber der Aufwand war wohl zu hoch oder das Programm so schlecht?, dass mir kein Hack unter die Augen gekommen ist oder auch jemand einen solchen gesehen hat.

Also nicht nach Russland liefern oder solche Verträge aufsetzen lassen, dass, wenn am Programm gedreht wird / wurde, es auch einklagbar ist.
Jetzt kommt bestimmt gleich: das geht nicht....
Also wir haben mit einem Hersteller aus China uns gestritten, denn die haben MEINEN Softwarefehler kopiert, und wir haben Recht bekommen.
In Europa verkaufen die jetzt nicht mehr.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab mal neun Kollegen gefragt ob er sich noch erinnern kann an die Lösung mit der modifizierten Karte.
Gemeinsam haben wir es wieder zusammemgebracht:
Es wurde eine 16DIO Karte modifiziert.
Von jeweils einem Eingangsbyte und einem Ausgangsbyte wurden die LEDs deaktiviert und an Anschlüssen irgendwelche Reserve bzw. Fiktive Optionen angeschlossen.
Dann kam eine kleine Schaltung mit einem Mikrokontroller rein. Auf ein bestimmtes Ausgangsmuster antwortet der Mikrocontroller mit einem bestimmten Eingangsmuster.
So was lässt sich leicht im Programm verstecken.

Musst halt mal eine 300er DIO-Karte zerlegen.

Gruß
Dieter
 
Es wurde eine 16DIO Karte modifiziert.
Von jeweils einem Eingangsbyte und einem Ausgangsbyte wurden die LEDs deaktiviert und an Anschlüssen irgendwelche Reserve bzw. Fiktive Optionen angeschlossen.
Dann kam eine kleine Schaltung mit einem Mikrokontroller rein. Auf ein bestimmtes Ausgangsmuster antwortet der Mikrocontroller mit einem bestimmten Eingangsmuster.
So was lässt sich leicht im Programm verstecken.
Halte ich für äußerst fraglich, ob sich der Aufwand lohnt wenn der Rest des Programms S7-like quasi im Klartext vorliegt. Wenn man das Fehlverhalten kennt, ist die Ursache meiner Meinung nach schnell gefunden. Wenn das Programm mit einem richtigen Schutz versehen ist (wurde Block Privacy schon geknackt?), bringt es keinen Sicherheitsgewinn.
 
Waren beim konkreten Fall wo euch das System geknackt wurde denn nicht alle Bausteine geschützt?

Wenn Datenbausteine bzw. deren Inhalte nicht über die "Block Privacy" versteckt werden können, wäre es möglich die Daten selber mir einem entsprechenden Verschlüsselungsverfahren zu verstecken. Entweder irgendwas einfaches mit ein paar XORs, oder je nach Reserven in der SPS auch etwas sicheres aber noch relativ kompaktes und schnelles wie Blowfish.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine andere Idee wäre die notwendigen Daten in nicht genutzten Parametern eines FUs oder Servoverstärkers zu verstecken.
Die Ansteuerung kann man gut in einem geschützten FB packen. Anstelle eines Passworts reicht es vielleicht wenn die Beschleunigungsrampe nach x-Tagen auf einen bestimmten Wert gestellt werden muss.

Gruß
Dieter
 
Wenn ich so eine Aufgabenstellung hätte dann würde ich auch versuchen, dass irgendwie aus der SPS auszulagern (also z.B. ein PC-Programm o.ä. das einen bestimmten Handshake mit einem SPS-Programmteil erzeugt der wiederum eine Art Freigabe bewirkt). Ob man das aber (auf SPS-Basis) wirklich absolut unüberbrückbar hinbekommt wage ich zu bezweifeln. Zu irgend einem Zeitpunkt ergibt das Ganze ja (wie auch bei einer Dongle-Abfrage) nichts Anderes als eine Anfrage, die von irgendwoher kommt und die einen Antwort in irgendeiner Form erwartet welche am Ende wahrscheinlich nur ein TRUE oder FALSE zurück liefert (und das ist mit der entsprechenden Mühe immer hack-bar).

Gruß
Larry
 
Zurück
Oben