Ich wäre dankbar für Vorschläge, wie die Durchsetzung von Lizenzschlüsseln oder die gleichzeitige Durchsetzung von Benutzergrenzwerten zu einem (UNIX-basierten) Softwareprodukt hinzugefügt werden kann, das - obwohl nicht explizit Open Source - der Endnutzer nominell Quellcode hat könnte denkbar leicht erhalten, weil die Server, die es laufen, auf ihren Voraussetzungen, etc.Mechanismus zur Durchsetzung von Lizenzen und/oder gleichzeitiger Nutzung für ein relativ offenes UNIX-Produkt?
sind Offensichtlich wecke ich weder, noch erwarte oder erwarte ich eine Technik, die von jemand hoch motiviert nicht umgangen werden kann, und/oder von 1337 h4x0rs, die einfach so gut sind. Der Sinn solcher Anti-Piraterie-Mechanismen liegt nicht darin, den Benutzer daran zu hindern, etwas zu tun, was er wirklich tun möchte, sondern einfach so nervig zu machen, dass es sich im Vergleich zur relativ einfachen Bezahlung nicht wirklich lohnt eine andere (billige) Lizenz - zumindest für einen Endnutzer von nur durchschnittlichen Fähigkeiten.
Das erfordert etwas Höherentwickeltes als bloße Sicherheit durch Dunkelheit (die Sie auch auslachen wird, vielleicht sogar unabsichtlich, ohne die Absicht, die Einstellung zu ändern), aber nicht annähernd so, wie es erforderlich ist ein Raketensilo. Gerade genug von etwas zu sagen, "Ja, dieses Produkt beschränkt wirklich den Gebrauch zu, was Sie kauften." Sollte nichts Interessantes genug sein, um jemanden zu motivieren, der nach Ruhm und Reichtum sucht, um einen Blogeintrag darüber zu veröffentlichen, wie man es auch im Idealfall knacken kann, obwohl das Nischen des Produkts und dessen Preiswürdigkeit für mich nicht so ist eine Sorge.
Die einzige echte Technik, die ich mir vorstellen kann, ist einige Routinen zu kompilieren, die für den Rest des Programms funktional notwendig sind, in ein statisches oder dynamisches binäres nachladbares Objekt und damit auch die Checks. Es ist notwendig, dass die Routine in einer untrennbaren Beziehung kritisch ist, anstatt eine künstliche Prüfung nur für diese bestimmte Bedingung, andernfalls könnte der Benutzer einfach gehen und den Aufruf der Funktion deaktivieren. Die Idee ist, dass das Deaktivieren des Aufrufs der Funktion auch andere unattraktive Konsequenzen hat.
Das ist nichts, was ein schlauer Hacker nicht zerlegen kann, und wenn die Funktion trivial genug ist, um in eine ansonsten zwecklose Binärdatei zu bauen, ist es natürlich trivial genug, auch außerhalb davon zu re-implementieren. Aber es ist mehr Aufwand, als ein typischer Endbenutzer durchmachen würde. Und natürlich, wieder, der Punkt ist nicht mechanisch Piraterie zu stoppen, sondern nur ein kleines Limit an Ort und Stelle setzen, so dass das Produkt nicht funktioniert rein auf dem Ehre-System, obwohl ich bin mir sicher, dass das für viele ausreichend ist Firmenkunden in den USA.
Ist dies ein allgemeiner Ansatz? Gibt es bessere?
Der Punkt ist nicht zu verhindern, dass irgendein Pirat es knackt. Es geht nicht darum, die wenigen User zu ärgern, die niemals in ihren wildesten Träumen ein einziges Ding pirschen würden - diejenigen, die niemals auch nur ein Stück Kaugummi geklaut haben. Der eigentliche Zweck ist es, die weite Mitte der Glockenkurve zu erfassen, wo die Antwort lautet: "Klar, ich werde Piraten - wenn es so einfach ist." Nicht gut, um es so einfach zu machen, dass es praktisch raubkopiert wird, oder? –
Das sagte, warum glaubst du, es wird die ehrlichen Benutzer verärgern? Die ehrlichen Benutzer wissen, dass sie für x-Lizenzen bezahlt haben. Warum sollten sie erwarten, dass das Programm mehr als x erlaubt? –
Es pisst sie an, weil das Schema immer schief geht - das Dongle-Passwort, die Lizenzdatei geht verloren, die Software muss kopiert werden, wenn ein neuer Server installiert wird usw. –