![]() |
Verschlüsselung von Delphi zu SPS
Hallo,
ich suche einen Verschlüsselungsalgorithmus mit dem ich in einer Dephi Anwendung eine 10-stellige Zahl verschlüssele, sie an eine SPS sende und dort wieder entschlüssele. Dabei darf es nicht möglich sein den Schlüssel zu berechnen wenn die unverschlüsselte und verschlüsselte Zahl bekannt sind. Also: z1: bekannte Zahl k: unbekannter Schlüssel x1: bekannter verschlüsselte Zeichenfolge z2: bekannte Zahl k: hoffentlich immernoch unbekannter Schlüssel x2: unbekannte verschlüsselte Zeichenfolge Anforderung ist also das x2 nicht berechnet werden darf, obwohl z1, x1 und z2 bekannt sind. Somit sollte RC4 schon mal wegfallen. RSA ist mit 100 bis 200stelligen Primzahlen auf der SPS nicht durchführbar. AES? Scheint mir auch nicht einfach auf einer SPS zu implementieren zu sein, außerdem verwendet das ebenfalls wie RC4 S-Boxen, womit ich mir unsicher bin ob die im ersten Fall (z1, x1 bekannt) diese S-Box nicht berechnet werden kann. Alternative wäre eine eigene leicht zu implementierende Verschlüsselung einzubauen, aber das wird mit Sicherheit keine große Sicherheit bieten. |
AW: Verschlüsselung von Delphi zu SPS
|
AW: Verschlüsselung von Delphi zu SPS
Kopierschutz, nehme ich mal an? Klingt arg danach. Ich empfehle dir, laß es. Wenn du mit SPSen arbeitest, ist das in einem Bereich wo rechtliches Vorgehen allgemein effektiver sein sollte (Firmen, zumal in Europa sind da meist vorsichtig).
Hatte mal für eine Firma gearbeitet, die speziell für Glaswerke Vorrichtungen (inklusive Anpassung an die lokalen Gegebenheiten) anbieten, welche die Emissionen und (entsprechend) den Verbrauch senken. Habe immernoch Kontakt zu denen über nen Freund und mir scheint, daß bei denen die das Knowhow hätten es zu reversen der Wille nicht da wäre (wg. möglicher rechtlicher Schritte), bei den Firmen die da aber keine Skrupel hätten das Knowhow schon fehlt ;) (Die Firma arbeitet weltweit) Ansonsten nochmal generell zu Verschlüsselungen. Was du versuchst ist Unsinn und ohnehin nicht machbar. Du kannst es maximal schwerer machen, aber sicher nicht unmöglich sowas zu knacken (und jetzt nur bezogen auf die Verschlüsselung). Wenn hier jemand mit einer Lösung kommt, dann kann es nur Voodoo sein. Der Grund ist daß du nicht gleichzeitig dem Kunden trauen und mißtrauen kannst. Und dabei ist es egal ob symmetrische oder asymmetrische Verschlüsselung zum Einsatz kommt. Da die SPS und der SCADA-Rechner vermutlich beide beim Kunden stehen hat der jeden Zugriff den er braucht. Nehmen wir mal an du benutzt eine PPK-Verschlüsselung bei der SPS und SCADA jeweils den öffentlichen Schlüssel der anderen Seite und ihren eigenen privaten Schlüssel haben. Siehste das Problem? Der Kunde hat Zugriff auf beide privaten Schlüssel (wenn auch vielleicht mit etwas Aufwand). Die meisten Kopierschutzsysteme (jetzt nicht nur auf die Verschlüsselung bezogen) leiden unter genau diesem Problem. Das ist auch der Grund weshalb die DVD/CD-Schutzmechanismen so ausgefeilt sind. Man versucht immer weiter zu erschweren, übersieht aber das eigentlich unübersehbare: wenn es beim Kunden funktionieren soll, muß der über die Technik (oder den Schlüssel oder oder oder ...) verfügen um es zum Laufen zu bekommen. Und das ist der Knackpunkt. |
AW: Verschlüsselung von Delphi zu SPS
gammatester: Danke, vom Umfang her genau das was ich wollte, allerdings schwer vorzustellen dass es nicht einfach knackbar sein soll (auf den ersten Blick)
Assarbad: Richtig, dabei handelt es sich um einen Kopierschutz. Um genauer zu sein soll die Delphi Applikation eine Datei einlesen die eine verschlüsselte Zahl enthält die auf jeder SPS einmalig ist. Diese verschlüsselte Zahl soll nun auf die SPS übertragen werden, damit diese sich dann frei schalten kann. Der private Schlüssel steckt also in der kompilierten Software der Delphi-Anwendung und der SPS und ist dem Kunden somit nicht (leicht) zugänglich. Dass das alles nicht 100%ig sicher ist, ist klar. Einen fähigen Kryptologen oder Hacker wird das wohl nicht aufhalten. Ich möchte bloss nicht direkt zum cracken einladen in dem ich es gar nicht verschlüssele oder so, dass es sehr einfach ist es zu entschlüsseln. Wie du schon sagst geht es nur darum es schwierig-er zu machen. |
AW: Verschlüsselung von Delphi zu SPS
Zitat:
|
AW: Verschlüsselung von Delphi zu SPS
:wall:
Zitat:
Aber ist egal, wenn es nur darum geht hier ein Placebo zu haben, dann haste das ja nun (@Friday). Ich weiß ja nicht welche Sorte SPS das ist und welches Framework verwendet (bzw. Bus, Profibus?) wird, aber mir war so, als hätten viele SPSen auch eine Seriennummer. Kannste die nicht verwenden? Ist mindestens genauso leicht zu hacken, aber definitiv einfacher zu implementieren. Nachtrag: Zitat:
|
AW: Verschlüsselung von Delphi zu SPS
Zitat:
EDIT: Die einzig "sichere" Lösung wäre eine asymetrische Verschlüsselung bei der, der Public Key in der Datei mit der verschlüsselten Nummer drin ist. Aber eine RSA Verfahren wird in der SPS nicht realisierbar sein (bzw wahrscheinlich schon, aber mit erheblichem Aufwand und großen Ressourcen Kosten). Eine so schlanke einfache verschlüsselung wie XTEA wird es asymetrisch wohl nicht geben. |
AW: Verschlüsselung von Delphi zu SPS
Exe-Packer sind auch kein Hindernis mehr.
|
AW: Verschlüsselung von Delphi zu SPS
Zitat:
Was ich damit sagen will ist vor allem, daß es völlig irrelevant ist ob du XTEA benutzt oder einfach XOR. Am Ende ist beides gleich knackbar, da du aufgrund dessen wie du es einsetzt in beiden Fällen die Schlüssel mitliefern mußt. Systembedingt, sozusagen. Nur XOR ist eben noch leichter als XTEA zu implementieren. |
AW: Verschlüsselung von Delphi zu SPS
Zitat:
Zitat:
|
AW: Verschlüsselung von Delphi zu SPS
Zitat:
Zitat:
Zitat:
Ja, ich bin da Pragmatiker. Die meisten Reverser sind das :zwinker: ... "jedes Mittel ist recht". Egal ob aus reiner Neugier (für privat), Gier nach Ruhm (sog. "Sicherheitsforscher") oder ob nun der böse Cracker der dein Programm unfreundlicherweise kostenlos an andere weitergibt. Zitat:
|
AW: Verschlüsselung von Delphi zu SPS
Wenn das eine S7 ist, dann les dir doch einfach per SZL einige Informationen raus (Seriennummer, Firmware, Ausgabestand, evtl. Produktionsdatum, usw). Da gibt es schon ein paar Infos, aber sicher bekommst du das ganze nicht, zumal man das Programm ja einfach aus der SPS zurücklesen kann. Bei der S7 fehlen zwar Kommentare und Symbole aber man wird den Schlüssel finden.
|
AW: Verschlüsselung von Delphi zu SPS
Zitat:
Das Zusammenstellen des Schlüssels zur Laufzeit klang schon beim tippen nicht sehr vielversprechend, das wär dann wohl so ungefähr bei der Haustür Tesa-Film vors Schloss kleben und sich sicher fühlen. Aber egal, das Problem ist ja keines wenn ich die verschlüsselte Zahl direkt weiter reiche (weiss gar nicht mehr warum ich die im Delphi Programm überhaupt entschlüsseln wollte). Zitat:
Ausser er ist vielleicht auch ein Reverser aus Passion ;) |
AW: Verschlüsselung von Delphi zu SPS
Zitat:
Zitat:
... gut gut, dann muß ich auch noch CPU usw. kennen aber im Zweifelsfall habe ich die Software dafür ja schon zur Hand (weil ich ja bspw. zur Firma gehören würde). Zitat:
Viel Erfolg! ;) |
AW: Verschlüsselung von Delphi zu SPS
Zitat:
du übersiehst da noch eine Gefahr von einer ganz anderen Seite: wenn das heisst, bei einem beliebigen Fehler am PC (angeblich kommt das vor) läuft eine Maschine nicht mehr nur wegen eines Kopierschutzes, die ansonsten betriebsbereit wäre, bekommst du einen Schadensersatzprozess an den Hals, den du wirtschaftlich nicht überleben wirst. Und das zu Recht. Da du für die Funktion des Kopierschutzes rechtlich geradestehen musst, wirst du auf nicht absehbare Zeit einen 24h-Service zur sofortigen Behebung entsprechender Probleme einrichten müssen. Der Kopierschutz dient ausschliesslich deinen Interessen, der Kunde muss daher einen dadurch bedingten Ausfall keineswegs als schicksalhaft hinnehmen. Gruss Reinhard |
AW: Verschlüsselung von Delphi zu SPS
Zitat:
|
AW: Verschlüsselung von Delphi zu SPS
Zitat:
wenn dieser beliebige Fehler eine Verbindung zwischen PC und SPS verhindert, wäre ein Teil der Funktionalität deaktiviert, richtig, aber dieser Teil ist sowieso nur in Verbindung mit dem PC verwendbar (Fernwartung/Fernsteuerung). Die Maschine an sich funktioniert auch ohne Freischaltung. Die Aktivierung soll also nur dazu dienen dass die SPS nicht mit einer Software kommuniziert die keine gültige Lizenzdatei hat. Der Fall dass die Verbindung läuft, aber nur der Kopierschutz auf einmal nicht mehr frei geschalten wird, kann nur an einem (plötzlich) falschen Freischaltcode liegen, was nur passieren könnte wenn die Lizenzdatei korrupiert wird (Virus, Festplattenhardwarefehler, ...). Von daher sehe ich da kein Problem. Dass der Kunde eine Kopie der Lizenzdatei aufbewahren sollte eigentlich selbstverständlich sein, aber kann man ja dennoch in die AGB schreiben. Zitat:
|
AW: Verschlüsselung von Delphi zu SPS
Eigentlich suchst du eine Möglichkeit deine Software zu schützen. Das kannst du einfach über die Seriennummer der CPU machen oder du suchst dir was anderes für deine Software (z.B. einen Dongle, usw.).
|
AW: Verschlüsselung von Delphi zu SPS
Zitat:
Habe das dann mal für den "Eigenbedarf" (computertechnisch weitgehend unbedarftes Familienmitglied aus dem engsten Familienkreis) gemacht (vor fünf bis sieben Jahren) und einen Dongle durch Software ersetzt. Die Software läuft heute (nach Umzug) auf einem Rechner der nichtmal einen LPT hat noch immer fröhlich. Zugegeben, der Hersteller hatte dann irgendwann einen USB-Dongle als Ersatz geschickt, aber natürlich nur gegen vorherige Herausgabe des alten LPT-Dongles. Das hätte unter anderen Umständen eine zweitägige Zwangspause bedeutet. :zwinker: Übrigens war das Knacken nicht deswegen so einfach weil das Prinzip oder die Hardware fehlerhaft ist, sondern weil die meisten Entwickler faul sind und es nicht korrekt implementieren. Wenn ich eben nur einen Wert aus dem Dongle abfrage, ist das leicht knackbar. Aber erleichtert hat es mir auch der Donglehersteller doch auch, weil die Anbindung an den Dongle eben in Software passiert und glücklicherweise über eine DLL lief, statt über statisch gelinkten Code. Im letzteren Fall hätte man vermutlich schon einen Filtertreiber schreiben müssen (was ich zuerst auch gedacht hatte). Es wurde dann nur eine DLL. Ich mußte dazu nicht ein einziges Byte der "geschützten" Software ändern und dennoch ist der Dongle jetzt in Software implementiert und der echte liegt sicher in einem Tresor :stupid: Zitat:
|
AW: Verschlüsselung von Delphi zu SPS
Zitat:
Aber 100% Sicherheit gibt es nicht. |
AW: Verschlüsselung von Delphi zu SPS
Zitat:
Da ich die Software nicht einschränken will (beliebig viele Instanzen auf beliebig vielen Computern), sondern nur die Maschinen die die Fernwarten freigeschalten haben, ist die Überprüfung in der SPS der einzige sinnvolle Weg soweit ich sehe. Und den Kunden zu zwingen immer online zu sein will ich auch nicht. Sonst wär ich ja genauso schlimm wie Microsoft ;) Ja die Seriennummer überprüfe ich ja auch, das ist im Grunde (evtl einige Zusatzinformationen inkl. Salt) die Zahl die es zu verschlüsseln bzw von der SPS entschlüsseln gilt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz