Ich bin auf der suche nach einem Dongle das in der Lage ist meinen
eigene Code auszufuehren um einen Teil der Anwedung in das Dongle
auszulagern. Es sollte per USB an den Rechner angeschlossen werden und
keine speziellen Treiber benoetigen. Notwendige Platformen sind Windows
und Linux. Desweiteren ist sowohl C++ als auch Java Code damit
abzusichern.
Bei meiner Rechereche bin ich bisher auf SenseLock gestossen. Gibt es
weitere Produkte?
Alternative waere statt einem fertigen Dongle ein MC-Board mit USB auf
dem ich eine eigene Firmware laufen lassen kann das ich problemlos las
Fertigmodul kaufen kann.
dongle suche schrieb:> Ich bin auf der suche nach einem Dongle das in der Lage ist meinen> eigene Code auszufuehren um einen Teil der Anwedung in das Dongle> auszulagern. Es sollte per USB an den Rechner angeschlossen werden und> keine speziellen Treiber benoetigen. Notwendige Platformen sind Windows> und Linux.
Nimm einen einfachen USB-Stick, formatiere ihn mit Fat32 und kopiere
deine .exe/.whatever drauf. Fertig.
dongle suche schrieb:> Desweiteren ist sowohl C++ als auch Java Code damit abzusichern.
Was meinst du mit absichern? Einen Kopierschutz? Das wäre natürlich
wieder ein ganz anderes Thema (da gibt es dutzende Anbieter im Netz).
Boris P. schrieb:> Was meinst du mit absichern? Einen Kopierschutz? Das wäre natürlich> wieder ein ganz anderes Thema (da gibt es dutzende Anbieter im Netz).
Natuerlich geht es um einen Kopierschutz. Vielleicht war das nicht
eindeutig aus meinen Formulierungen.
Es gibt tausende Anbieter aber bei den wenigsten kann man Teile seiner
Anwendung in den Prozessor des Dongles auslagern. Wir haben in der Firma
Dongles von diversen Anbietern. Deren wesentliche Sicherheitsfeature ist
die Pruefung ob das Dongle vorhanden ist. Das zu patchen ist nicht
besonders schwer. Ist ein Teil der Anwedung im Dongle realisiert steigt
der Aufwand deutlich an, da Funktionalitaet nachimplementiert werden
muss.
Die HASP haben einen geschützten Speicher, aber nur wenige kB. Ob dsas
wahnsinnig sicher ist, wage ich zu bezweifeln, für wenig Geld kann man
sich von nahezu allen Dongles Software Kopien mit virtuellem Dongle
Treiber im Internet erstellen lassen. Und auch sonst gibts USB Sniffer,
und der Key muss ja in der Hasp dll irgendwo hinterlegt sein. Und ganz
ohne Treiber geht sowas auch schwierig...
Christian R. schrieb:> Die HASP haben einen geschützten Speicher, aber nur wenige kB. Ob dsas> wahnsinnig sicher ist, wage ich zu bezweifeln, für wenig Geld kann man> sich von nahezu allen Dongles Software Kopien mit virtuellem Dongle> Treiber im Internet erstellen lassen. Und auch sonst gibts USB Sniffer,> und der Key muss ja in der Hasp dll irgendwo hinterlegt sein. Und ganz> ohne Treiber geht sowas auch schwierig...
Genau deswegen will ich Funktionalitaet in das Dongle auslagern.
dongle suche schrieb:> Genau deswegen will ich Funktionalitaet in das Dongle auslagern.
Na und? Irgendwann muss das ja mal in den RAM des PC, und auf dem Weg
dahin ist es zwar AES verschlüsselt, aber trotzdem angreifbar.
Christian R. schrieb:> dongle suche schrieb:>> Genau deswegen will ich Funktionalitaet in das Dongle auslagern.>> Na und? Irgendwann muss das ja mal in den RAM des PC, und auf dem Weg> dahin ist es zwar AES verschlüsselt, aber trotzdem angreifbar.
Anscheinend versteht keiner was ich will. Ich will das ein Teil meiner
Software NICHT auf dem PC laeuft sondern auf dem Prozessor des Dongles.
Ich will lediglich die Parameter einer Funktion an das Dongle
uebergeben, die Berechnungen sollen auf dem Dongle selbst stattfinden.
Das Ergebnis wird dann an den PC zurueck geschickt. Somit fehlt der
Software auf dem PC eine notwendiger Teil seiner Funktionalitaet.
dongle suche schrieb:> Ich will lediglich die Parameter einer Funktion an das Dongle> uebergeben, die Berechnungen sollen auf dem Dongle selbst stattfinden.> Das Ergebnis wird dann an den PC zurueck geschickt. Somit fehlt der> Software auf dem PC eine notwendiger Teil seiner Funktionalitaet.
- Arbeitest du für die NSA?
- ist deine SW >= 10000 € wert?
- gibts für deine SW ein breites "Publikum"?
- bist du paranoid?
Eine gut erhältliche Lösung: irgendein beliebiger SIM-Kartenleser und
eine aktive, programmierte SIM-Karte.
Selbst aufgebaut: Pic mit USB-Schnittstelle und das Programm
draufspielen.
Magnus M. schrieb:> dongle suche schrieb:>> Ich will lediglich die Parameter einer Funktion an das Dongle>> uebergeben, die Berechnungen sollen auf dem Dongle selbst stattfinden.>> Das Ergebnis wird dann an den PC zurueck geschickt. Somit fehlt der>> Software auf dem PC eine notwendiger Teil seiner Funktionalitaet.>> - Arbeitest du für die NSA?
Nein, dann muesste ich meine Programme nicht an Kunden ausliefern und
haette das Problem nicht. Im Gegenteil ich waere sogar froh wenn es sich
jeder freiwillig kopiert und installiert.
>> - ist deine SW >= 10000 € wert?>
Ob sie das Wert ist muss der Kunde entscheiden. Je nach Projekt liegen
die Softwarekosten deutlich ueber dem genannten Betrag.
> - gibts für deine SW ein breites "Publikum"?
Nein, wir bedienen einen sehr speziellen Nischenmarkt.
>> - bist du paranoid?
Nein, aber wir haben kreative Kunden die Rechner klonen, sich fehlende
Hardware vom guenstigsten Lieferanten nachkaufen und munter mit Lizenzen
jonglieren die sie nicht gekauft haben. Dann werden komische
Supportanfragen gestellt bei denen es leider nicht moeglich ist das
defekte System einzuschicken damit die Technik den Fehler analysieren
kann weil die Hardware ja nie bei uns gekauft wurde.
Helge A. schrieb:> Eine gut erhältliche Lösung: irgendein beliebiger SIM-Kartenleser> und> eine aktive, programmierte SIM-Karte.>> Selbst aufgebaut: Pic mit USB-Schnittstelle und das Programm> draufspielen.
Hast du Bezugsquellen/Hersteller fuer programmierbare Simkarten?
Eine Loesung in der Art des PIC mit USB hatte ich auch im Kopf. Das
ganze selbst zu realisieren ist aber zeitlich momentan schwierig.
Deswegen war ich auf der Suche nach einem Anbieter der so etwas fertig
liefert. Dann muesste ich nur noch meinen eigenen Code aufspielen und
mich nicht um den Rest kuemmern. Das ist bei kleinen Stueckzahlen
deutlich wirtschaftlicher.
Nimm einen USB AVR und lass den einen serialport emulieren (da gibt es
fertige Lösungen im lufa). Dann fängst du die Daten ab, verarbeitest
sie im AVR und lieferst sie durch den serialport zurück.
Dein Mehraufwand ist minimal (ein serialport ist wohl die faulste
Schnittstelle der Welt zum programmieren).
Und selbst wenn du einen echten dongleanbieter findest wirst du auch bei
dem um das Interface von denen rumarbeiten müssen (evtl sogar
komplizierter).
Und für die hw besorgst du dir einfach openkubus USB sticks, da ist
nämlich genau das drinnen (ein usb-avr und etwas Hühnerfutter).
Wenns zeitlich eng ist, schaue nach der dir am besten bekannten CPU.
Neben den genannten Pic und AVR gibts noch systeme von ST und NXP. Hier
ist was zum einlesen:
http://javacardforum.com/resources/faqs/#3
Hi.
Vielleicht ist das ja was fuer dich:
Mein relativ neues, vermutlich langzeit Projektchen
( http://matrixstorm.com/avr/avrstick )
Die Seite ist leider noch im Aufbau. Layout ist nur Prototyp und
haesslich, ich weiss - funktioniert aber zuverlaessig.
Kann mit allem programmiert werden, was AVR XMega Code generiert -
vermutlich KEIN Java.
Kann aber auch aus dem Browser heraus benutzt werden und braucht keine
zusaetzlichen Treiber oder Software...
Falls Fragen oder Feedback, gern - immer her damit.
MfG
dongle suche schrieb:> Ich will lediglich die Parameter einer Funktion an das Dongle> uebergeben, die Berechnungen sollen auf dem Dongle selbst stattfinden.> Das Ergebnis wird dann an den PC zurueck geschickt.
Warnung vor einem möglichen Denkfehler: so wie du das schilderst wären
alle Dongles gleich und austauschbar. Das erleichtert Nachbauversuche
und ist i.d.R. nicht erwünscht.
Georg
Es ist nicht möglich Code auf der Festplatte auszuführen. Das Gleiche
gilt für Dongles und andere Dingsbümser.
Wie bei jeder 08/15 Executeable holt das Betriebssystem den Code in den
Speicher und vergnügt sich erst dort damit.
Der beste Kopierschutz ist gute SW Pflege und Support.
Professionelle Software für Unternehmen ist (gerade in Nischenmärkten)
im seltensten Fall eine Fire and forget Kauflösung.
dongle suche schrieb:> sich fehlende> Hardware vom guenstigsten Lieferanten nachkaufen
Ihr verdient euer Geld indem ihr eure Kunden zwingt 08/15-Hardware von
euch überteuert zu kaufen? Stellt ihr medizinische Geräte her...??
Einen ollen PIC/AVR/... per USB anzuschließen bringt natürlich wenig,
denn die sind alle auslesbar (durch Auseinandernehmen und direktes
Auslesen des Flash). Erst recht wenns um viel Geld geht (so zB geschehen
mit den Segger J-Link Adaptern, die gibts für ein paar $ in China mit
der Original-Firmware drauf).
Vielleicht mal das Business-Modell von Kunden-Verarsche & Abzocke auf
ehrlichen Handel umstellen...?
Amateur schrieb:> Es ist nicht möglich Code auf der Festplatte auszuführen. Das> Gleiche> gilt für Dongles und andere Dingsbümser.> Wie bei jeder 08/15 Executeable holt das Betriebssystem den Code in den> Speicher und vergnügt sich erst dort damit.
Quatsch. Auf dem Dongle ist ein Mikrocontroller und der führt den Code
aus. Wo ist das Problem? Wieso soll der keinen Code ausführen können?
Mann muss halt beide Techniken kombinieren.
Einmal eine Freischaltung durch den richtigen Lizenzschlüssel, was wohl
eh nicht viel bringt wenn da alles gut geklont wird und halt die
Auslagerung wichtiger Berechnungen in eine externe geschützt Hardware.
Das Knowhow muss in der geschützten Hardware stecken, wer die dann
nachprogrammieren kann könnte eh das Projekt auch selber lösen.
Bei der externen Hardware (Dongle) muss man nur was wählen was nicht,
oder nur unter teuersten Aufwand auslesebar ist.
Branchenstandard und unangefochtener Markführer ist wohl Sentinel/Hasp -
Fast jede Software hier auf meiner Machine, die verdongelt ist, bring
einen solchen DingleDongle mit:
http://www.safenet-inc.de/software-monetization/sentinel-hasp-hardware-keys/?LangType=1031
Warum das Rad neu erfinden, wenn Millionenschwere Softwarehäuser auf den
Schutz durch dieses kleine Stück hardware und Code vertrauen?
Man sollte als Käufer auch an den Fall denken,
wenn der Hersteller verschwunden oder der Dongle kaputt ist! Ein guter
Update-Service ist besser, als der Kauf eines sinnlos aufwändig
verdongelten Geräts.
dongle suche schrieb:> Desweiteren ist sowohl C++ als auch Java Code damit> abzusichern.
Mit welcher Software soll auf dem Zielsystem programmiert werden?
praktiker schrieb:> Warum das Rad neu erfinden, wenn Millionenschwere Softwarehäuser auf den> Schutz durch dieses kleine Stück hardware und Code vertrauen?
Vielleicht weil wir die HASP III (lange zurück) innerhalb von 2 Stunden
geknackt haben (und nach 4h einen clone gebaut hatten) und die
Marketingversprechen damals auch keine anderen waren?
Der Rächer der Transistormorde schrieb:> Vielleicht weil wir die HASP III (lange zurück) innerhalb von 2 Stunden> geknackt haben (und nach 4h einen clone gebaut hatten) und die> Marketingversprechen damals auch keine anderen waren?
In welchem deutschen Unternehmen werden die Entwickler dafür bezahlt,
Kopierschutzverfahren zu knacken, so dass raubkopierte Software
eingesetz werden kann???
Ist das umgehen von Kopierschutzmaßnahmen an sich nicht auch schon
illegal?
Boris P. schrieb:> Der Rächer der Transistormorde schrieb:>> Vielleicht weil wir die HASP III (lange zurück) innerhalb von 2 Stunden>> geknackt haben (und nach 4h einen clone gebaut hatten) und die>> Marketingversprechen damals auch keine anderen waren?>> In welchem deutschen Unternehmen werden die Entwickler dafür bezahlt,> Kopierschutzverfahren zu knacken, so dass raubkopierte Software> eingesetz werden kann???
Wer sagt, dass er iwo angestellt war?
Vlt. haben die das in der Uni gemacht (reverse engineering ist eine sehr
gute Übung).
Max D. schrieb:> Wer sagt, dass er iwo angestellt war?> Vlt. haben die das in der Uni gemacht (reverse engineering ist eine sehr> gute Übung).
Wer sagt, dass er es nicht war?
Eine Software für mehrere tausend Euro bestellt man üblicherweise nicht
zum Spaß (schon garnicht als Student) ;-)
Boris P. schrieb:> Max D. schrieb:>> Wer sagt, dass er iwo angestellt war?>> Vlt. haben die das in der Uni gemacht (reverse engineering ist eine sehr>> gute Übung).>> Wer sagt, dass er es nicht war?> Eine Software für mehrere tausend Euro bestellt man üblicherweise nicht> zum Spaß (schon garnicht als Student) ;-)
Unis/Studenten kriegen docht meist schön günstige Lizenzen ;-)
Boris P. schrieb:> Ist das umgehen von Kopierschutzmaßnahmen an sich nicht auch schon> illegal?
Früher™ war das Umgehen von Kopierschutzmaßnahmen ("entdongeln") legal,
Wenn es dem Zweck diente die "Interoperabilität" wiederherzustellen.
z.B.: Drucker druckt hinter Parport-Dongle nicht ==> Software legal
entdonglebar.
Raubkopien oder den Dongle-Emulator weiterverteilen durfte man deshalb
trotzdem nicht...
Edit/Nachtrag: UrhG §69e müsste das gewesen sein.
H4x0r schrieb:> Erst recht wenns um viel Geld geht (so zB geschehen> mit den Segger J-Link Adaptern, die gibts für ein paar $ in China mit> der Original-Firmware drauf).
Mehr oder weniger ;-)...die Jungs bei Segger sind auch nicht doof und
erkennen den Clone. Der läuft dann kurze Zeit und was wars ;-).
Ich kann mich immer nur über die Leute wundern, die lieber einen J-Link
Clone kaufen, der nach kurzer Zeit nicht mehr funktioniert anstatt einen
J-Link EDU mit allen Lizenzen für 50,- Euro (und das sogar legal).
Als Kunde hasse ich Dongles, da sie im Störfall nur zusätzliche Probleme
machen! Gut erinnere ich mich an ein namhaftes CAD-Programm und viele
klapprige Dongels dazu. Wenn ich das heute benutzen wollte, hätte ich
nicht mal einen LPT-Anschluss dafür am NB!
Hallo - mal was anderes zum "Rumphilisophieren":
Was muss denn so ein Dongle minimal machen?
Ich hatte mir (speziell wenn ein AVR zum Einsatz kommen wuerde)
ueberlegt:
(Im wesentlichen RSA, aber so das es moeglichst SRAM schonend ist fuer
maximal grosse Zahlen, bei moeglichst kleinem AVR)
* Der AVR enthaelt im gelocktem Flash zwei z.B. 2048bit grosse Zahlen
f und N. (einen "private key" f und den Modulus N=p*q als Produkt zweier
Primzahlen p>2,q>2, p!=q)
* Die verdongelte Software am Hostende enthaelt zwei Zahlen: Den
Public-Key "e" und den Modulus "N". (Mit 1 = e*f (mod phi(N)),
phi(N)=(p-1)*(q-1) )
* Die verdongelte Software sendet regelmaessig 2048bit Zufallsdaten
"M" an den AVR. Dieser generiert ratenlimitiert (damit nicht ein "Hub"
gebaut wird, der mehrere Raubkopien versorgt) C=M^f (mod N) und sendet
es zurueck.
* Die Software rechnet C^e (mod N) und vergleicht das Ergebnis mit M.
Wenn gleich dann OK. Ansonsten Warnung und Programmende.
[* Fuer jede Lizens/Kaeufer kommt ein anderes N zum Einsatz...
...damit ein Aufschleifen und Auslesen des AVRs unlukrativer wird.]
[* der AVR wird am Maximaltakt/mit internen Takt betrieben, um ein
moegliches Uebertakten zur Erhoehung der Rate (damit wieder Hub) zu
erschweren. ]
Funktioniert so ein Schema? Reicht es um einigermassen sicher zu sein?
Ginge es auch einfacher? Denkbare Angriffe?
MfG
Boris P. schrieb:> Ist das umgehen von Kopierschutzmaßnahmen an sich nicht auch schon> illegal?
Nein.
Laut Rechtssprechung (siehe Musikindustrie) ist lediglich das umgehen
eines wirkungsvollen Kopierschutzes nicht erlaubt.
Das wirkungsvoll ist dabei der entscheidene Unterschied zu deiner
Formulierung.
Amateur schrieb:> Es ist nicht möglich Code auf der Festplatte auszuführen.
Schon beim C64 gab es Programme, die rechenintensive Aufgaben auf das
Diskettenlaufwerk ausgelagert haben, da der darin befindliche Prozessor
schneller war als der des Rechners selbst.
> Das Gleiche gilt für Dongles und andere Dingsbümser.
Warum sollte sowas nicht möglich sein? Wenn es einen Prozessor hat, kann
es auch Code ausführen.
Kaj schrieb:> Laut Rechtssprechung (siehe Musikindustrie) ist lediglich das umgehen> eines wirkungsvollen Kopierschutzes nicht erlaubt.> Das wirkungsvoll ist dabei der entscheidene Unterschied zu deiner> Formulierung.
Das habe ich auch nie verstanden. Offenbar haben Juristen ein anderes
Verständnis von Logik als andere Menschen (oder zumindest als ich). Für
mich ist ein Kopierschutz dann wirkungsvoll, wenn man ihn nicht umgehen
kann.(*) Ergo: Es ist dir nur dann verboten, einen Kopierschutz zu
umgehen, wenn du ihn nicht umgehen kannst.
* Das Gesetz formuliert das etwas verklausulierter:
"Technische Maßnahmen sind wirksam, soweit durch sie die Nutzung eines
geschützten Werkes oder eines anderen nach diesem Gesetz geschützten
Schutzgegenstandes von dem Rechtsinhaber durch eine Zugangskontrolle,
einen Schutzmechanismus wie Verschlüsselung, Verzerrung oder sonstige
Umwandlung oder einen Mechanismus zur Kontrolle der Vervielfältigung,
die die Erreichung des Schutzziels sicherstellen, unter Kontrolle
gehalten wird."
( http://www.gesetze-im-internet.de/urhg/__95a.html )
Rolf Magnus schrieb:> die die Erreichung des Schutzziels sicherstellen
Das ist auch nicht klarer. Mit normaler Logik betrachtet heisst das,
wenn ich einen Kopierschutz knacke, habe ich automatisch auch die
Berechtigung dazu geschaffen, denn er ist ja nicht mehr wirksam bzw.
stellt das Schutzziel nicht mehr sicher.
Solche Zweideutigkeiten können aber durchaus beabsichtigt sein: in einem
solchen Fall gewinnen die teureren Anwälte.
Georg
Georg schrieb:> Das ist auch nicht klarer. Mit normaler Logik betrachtet heisst das,> wenn ich einen Kopierschutz knacke, habe ich automatisch auch die> Berechtigung dazu geschaffen, denn er ist ja nicht mehr wirksam bzw.> stellt das Schutzziel nicht mehr sicher.
Eben. Offenbar haben Juristen nicht viel mit Logik am Hut ;-)
> Solche Zweideutigkeiten können aber durchaus beabsichtigt sein: in einem> solchen Fall gewinnen die teureren Anwälte.
Den Verdacht habe ich auch. Man sichert sich den Job, indem man Gesetze
unscharf und eigentlich unlogisch formuliert. So kann dann vor Gericht
ausgiebig darüber diskutiert werden, wie das zu interpretieren und
insbesondere auf den aktuellen Fall anzuwenden ist, und das jedesmal
aufs Neue. Entweder ist das der Grund, oder man hat die Praktikanten die
Gesetzestexte schreiben lassen.
Das ist wie beim Luftfahrtgesetz die Definition von Luftfahrzeugen, nach
der auch Modellflugzeuge eine Haftpflicht-Versicherung brauchen. Nimmt
man das Gesetz wörtlich, so ist auch eine Papierschwalbe
versicherungs-pflichtig.
Guest schrieb:> H4x0r schrieb:>> Erst recht wenns um viel Geld geht (so zB geschehen>> mit den Segger J-Link Adaptern, die gibts für ein paar $ in China mit>> der Original-Firmware drauf).>> Mehr oder weniger ;-)...die Jungs bei Segger sind auch nicht doof und> erkennen den Clone. Der läuft dann kurze Zeit und was wars ;-).
Ja. Aber es ist bewiesen dass sich der Flash auslesen lässt. Beim J-Link
sichert die PC-Software das über die Serial ab, aber der OP will wohl
kaum einen Dongle verwenden der die PC-Software absichern soll und
selber von der PC-Software abgesichert werden muss?!
> Ich kann mich immer nur über die Leute wundern, die lieber einen J-Link> Clone kaufen, der nach kurzer Zeit nicht mehr funktioniert anstatt einen> J-Link EDU mit allen Lizenzen für 50,- Euro (und das sogar legal).
Wo gibts denn einen EDU für 50€ mit allen Lizenzen? Meiner (auch 50€)
erlaubt zB kein J-Flash :-/
Will nur vorsorglich drauf hinweisen, dass Virtualisierung schon länger
ziemlich im Trend liegt und sich die mit Dongles mitunter so schlecht
verträgt, dass Donglezwang zum Killerkriterium bei der Softwareauswahl
werden kann.
Stephan B. schrieb:> Die Software rechnet C^e (mod N) und vergleicht das Ergebnis mit M.
Und genau diesen Vergleich patcht man aus der Software raus.
Schutz ausgehebelt.
Kopierschutz funktioniert nicht und kann prinzipbedingt nicht
funktionieren. Lasst es sein und gängelt eure ehrlichen Kunden nicht mit
nervigen Dongles. Die unehrlichen Kunden haben alle Vorteile und die
ehrlichen Kinden sind die verarschten.
Rabe schrieb:> Kopierschutz funktioniert nicht und kann prinzipbedingt nicht> funktionieren.
Wie (fast?) alles in der Crytographie: Es soll nur erschweren. Einen
Zeitgewinn/Zeitvorteil verschaffen.
Man kann die jeweiligen Stellen im Maschienencode des Hostprogramms
verschleiern (http://de.wikipedia.org/wiki/Obfuscator).
Ich meine sogar mal ein Paper gelesen zu haben, wo theoretische
Informatiker meinten, das dies analog perfekt zum OTP geht.
Da will ich mich abe rnicht drauf festnageln lassen.
Ist auf jeden Fall besser als einfach von vornherein jedne Zugriff zu
ermoeglichen.
MfG
Stephan B. schrieb:> Wie (fast?) alles in der Crytographie:
Kopierschutz hat nichts mit Crypto zu tun, auch wenn Sie Crypto
stellenweise verwenden.
Ausgehebelt wird es meistens an der Stelle, die nichts mit Crypto zu tun
hat. Z.b. die Abfrage, ob das Programm wegen falschem Dongle beendet
wird, wird einfach rausgepatcht. Und dagegen kann man prinzipbedingt
nichts machen. Auch Obfuscatoren oder ähnliches helfen nicht.
Verschleierten Code kann man mit einem ganz normalen Compiler
(Optimierer) entschleiern. Der wirft die meisten Verschleierungen dann
einfach wieder raus, weil sie unnötiger Code sind.
Rabe schrieb:> Auch Obfuscatoren oder ähnliches helfen nicht.
Naja, das halte ich fuer quatsch.
Denn ersteinmal muss jemand diese Stellen identifizieren, um Sie zu
patchen.
Nur weil das bisher immer ging (Nachlaessigkeit der Firmen?, Bisheriger
Technikstand?), heisst das nicht, das es im Generellen geht.
Es gilt: Man kann die Funktion eines Programmes (oder Teile davon) nicht
aus seinem Quellcode/Maschienencode generell ermitteln.
(D.h. nicht fuer alle Instanzen dieses Problems koennen Loesungen
gefunden werden.)
http://www.wired.com/2014/02/cryptography-breakthrough/
Rabe schrieb:> Alles was man automatisch verschleiern kann, kann man auch wieder> entschleiern. Denn das ist genau was die Optimizer von Compilern machen.
Nachtrag: Sollte es immer gehen (davon bin ich noch nicht ueberzeugt ob
Umkehrung berechenbar ist):
Aber der Aufwand dafuer kann/ist verschieden.
Das ist dann wie in der asym. Crytographie.
>Sollte es immer gehen
Nein. Immer und vollständig geht es natürlich nicht. Genau wie ein
normaler Compiler einen gegebenen Code auch nicht 100% optimal
optimieren kann. Aber man kann es hinreichend deobfuskieren, um den Code
wieder lesbar zu bekommen. Das reicht.
Stephan B. schrieb:> Man kann die jeweiligen Stellen im Maschienencode des Hostprogramms> verschleiern
Man muss aber garnicht den ganzen Code untersuchen, sondern speziell was
kurz vorm Beenden des Programms oder dem Eintritt in eine Endlosschleife
passiert ist. Also erst mal tracen.
Georg
Bau doch nen USB Stick mit nem STM32F4 drauf. Da lagerst du alle
möglichen Funktionen quer beet drauf aus. Diese müssen ja nichtmal
besonders kompliziert sein, hauptsache hier und da was. Das sollte
reichen, damit es praktisch unmöglich wird das ganze
nachzuprogrammieren, man müsste ja ziemlich genau wissen was die
entsprechenden Funktionen genau machen. Damit jeder Stick einzigartig
wird schreibst du in den OTP noch einen Lizenzkey, der auch ausgelesen
werden kann oder per Asym. Crypto validiert, was dir da auch immer mehr
zusagt.
Du musst nur bedenken, Dongles sind doof (Gehen kaputt, Virtualisierung
geht nicht gut, etc) und jemand muss das Ding entwickeln. Außerdem ist
das natürlich auch nicht 100% sicher, ist alles nur obfuscation.
Falls deine Kunden vernünftige Internetanbindung haben könntest du auch
den Dongle wahlweise durch die mindestens genauso verhasste Cloud
ersetzen.
(Theoretische) kompette Sicherheit gibt es glaube ich nur, wenn die
Hardware komplett vertrauenswürdig ist, also eine Chain of Trust
implementiert. Eventuell hilft an der Stelle auch TPM weiter? Das wurde
doch für solche Anwendungen entwickelt.
Webanwendung und als Anbieter selbst hosten ist der einfachste
Kopierschutz - Dann läuft beim Endkunden kaum Code und man kann auf
Obfuszieren, etc. verzichten und kann Fehler auch noch leichter
debuggen.
Allerdings sind Webanwendungen nicht in allen Fällen auch sinnvoll
umsetzbar ;D
dongle suche schrieb:> Nein, aber wir haben kreative Kunden die Rechner klonen, sich fehlende> Hardware vom guenstigsten Lieferanten nachkaufen und munter mit Lizenzen> jonglieren die sie nicht gekauft haben. Dann werden komische> Supportanfragen gestellt bei denen es leider nicht moeglich ist das> defekte System einzuschicken damit die Technik den Fehler analysieren> kann weil die Hardware ja nie bei uns gekauft wurde.
Da hilft nur, eine bessere Kundschaft ;-)