Schutz eigener Software vor Raubkopien - Lizensierungsmodell



  • Hallo,

    danke erstmal für die bisherigen antworten

    @benutzer2

    // jedoch (mal vorausgesetzt es läuft alles so wie du dir das vorstellst, was
    // ich stark bezweifle) wirst du jede menge ärger mit den kunden bekommen bzw.
    // wird dein system sicher viele kunden davon abhalten dein programm zu kaufen.

    Ich musste so etwas ähnliches mal für ein Großunternehmen programmieren. Das umzusetzten ist nicht weiter schwierig.

    @all

    Wie raspo schon sagt, mit nem kopierschutz möglich viele leute abhalten, nur ist es auch schon recht hart, wenn eine anwendung nur auf einem pc läuft. ich könnte wohl unsere webseite so programmieren, dass man die software auch für andere rechner freischalten könnte. das ist z.b. gut, da es verschiedene lizenzen gibt.

    @unix-tom

    nun komme ich auch auf deinen gedanken, also den nutzer die möglichkeit geben, z.b. 5x die software unter einer anderen hardware laufen zu lassen. vor jedem programmstart wird eine online abfrage gemacht ob die lizenz noch gültig ist, so dass zur zeit auch immer nur eine version laufen kann. die support probleme, würden sich durch eine sehr benutzerfreundliche weboberfläche auslagern lassen. und einige anfragen werden ja immer mal kommen. ich bin eh nen fan von dingen die automatisiert ablaufen.

    @Sgt. Nukem

    ja, das mit der demo ist so ne sache, da ich keine lust habe, zwei versionen zu verwalten. ferner ist das bei meiner anwendung auch problemantisch, da ein absicherung wie z.b.

    if (anz > MAXNUMBERS)
    {
    leider nicht möglich
    break;
    }

    auch habe ich nicht die zeit mich vor allem zu schützen. aber wenn das nun jemand cracken will, ist mir das auch egal, solange es nicht alle tun. ansonsten lade ich jeden monat ne neue exe datei hoch, wo die variablen andere namen haben und einige zeilen vertauscht sind 🙂

    Ich fasse nochmal mein Modell zusammen:

    1. Kunde kommt auf meine Website und kann sich eine Demo Version laden, die später nach Kauf freigeschaltet wird.

    2. Wenn der Kunde eine Lizenz kaufen will, wird er zu ShareIt geleitet, über die ich die gesammte Abwicklung ausführen werden. Die sind ja recht günstig.

    3. Sobald der Kunde bei ShareIt bezahlt hat, wird auf meiner Website der Kunde freigeschaltet, dies geschieht automatisch. Nach Bezahlung erhält der Kunden ebenfalls automatisch eine Email, wo steht wie alles abläuft.

    4. Der Kunde wählt in meiner Software den Menüpunkt Lizenz. Wenn die Software bereits freigeschaltet ist, wird es da stehen. Andernfalls wird eine n stellige Zahl angezeigt, die auf jeden PC anders ist. (id aus hardwaredaten). nun wird nen link zu unser seite angezeigt wo der kunde sich einloggen kann und seine anwendung freischalten kann. der kunde gibt also die id ein und es kommt nen key zurück. dieser wird in der software eingegeben und fertig. auf unser website kann der kunde jederzeit sehen wie oft er noch die hardware wechseln darf.

    (im notfall, können wir wenn ne kunden anfrage kommt, die zahl 5 auch ändern, bzw. manche kunden dauerfreischalten)

    5. Wenn beim Programmstart die Hardware ID zum Schlüssel passt und die Online Abfrage unser Website ergibt, das dies der aktuelle schlüssel ist, dann sind alle Funktionen freigeschaltet. andernfalls ist es halt wieder ne demo.

    Gibst an diesem Modell irgendwas, was nicht gut ist? ich denke grad, wenn man es einfach und sehr verständlich macht, dann werden die kunden das auch hinrkiegen. und soviel support bleibt hoffentlich nicht übrig 🙂

    Bitte wieder um eure Meinung.

    Philipp



  • kingruedi schrieb:

    Andere Möglichkeit wär eine Hardwarelösung, da verstehe ich eh nicht, warum das mittlerweile nicht umgesetzt wurde. TCPA ist ja schon ein Anfang. Aber wenn jeder Rechner einen Chipkarten-Leser hätte, könnte man bei der Software einfach eine Chipkarte mitliefern, die man zur Verifizierung einlegen muss. Ok das wär bei Shareware in der Regel auch nicht durchsetzbar, wegen der Herstellungskosten.

    Und was soll das bringen? Die Chipkarte kann man genauso emulieren oder kopieren wie eine CD-ROM/DVD.



  • dgdfgdf schrieb:

    kingruedi schrieb:

    Andere Möglichkeit wär eine Hardwarelösung, da verstehe ich eh nicht, warum das mittlerweile nicht umgesetzt wurde. TCPA ist ja schon ein Anfang. Aber wenn jeder Rechner einen Chipkarten-Leser hätte, könnte man bei der Software einfach eine Chipkarte mitliefern, die man zur Verifizierung einlegen muss. Ok das wär bei Shareware in der Regel auch nicht durchsetzbar, wegen der Herstellungskosten.

    Und was soll das bringen? Die Chipkarte kann man genauso emulieren oder kopieren wie eine CD-ROM/DVD.

    Ich rede nicht davon, dass man irgend so einen 08/15-Chipkarten Leser an den Rechner anschließt, sondern von den Konzepten, die in TCPA angedacht werden. Zum Beispiel, dass man den Code dann erst durch die Chipkarte beim auslesen durch den Prozessor entschlüsselt. Man kann da ja ganze Algorithmen drauf auslagern und nicht nur Daten.



  • Wie soll dein System ohne Internetanschluss funktionieren?



  • Hi,

    wer kein Internet hat, kann die Anwendung

    a) nicht runterladen
    b) nicht gebrauchen

    das ist so, wie leute die online banking machen wollen und kein pc und internet haben.

    philipp



  • Hi,

    wenn du eine einfache Lösung suchst, könnte man es doch auch so machen,
    dass du eine DLL runterladen lässt.

    Ist die DLL (noch) nicht vorhanden, ist die Software im "Demo"-Modus.

    Geht er deinen Schritt mit der Registrierung/Payment usw. wird z.B. sein
    "Rechnername+nummervonirgendwasvonderhardware" zu einer Unique-ID errechnet.
    Diese ID zusammen mit einer gültigen Emailadresse vom Kunden wird gespeichert.

    Der Kunde erhält die benötigte DLL und die Software wird voll funktionsfähig.
    Die DLL sollte sich allerdings selbst löschen, sobald eine gewisse Anzahl
    von Hardwareänderungen vorgenommen wurde+der Rechnername ein anderer ist.

    So kann der Kunde die DLL auch nicht einfach weitergeben, wenn er das Prinzip
    durchschaut hat, da ja "Rechnername+nummervonirgendwasvonderhardware" nicht die ID bilden die auf ihn zutrifft 😃

    Anhand der Emailadresse könntest du dann später, wenn es wirklich notwendig ist
    (neuer PC beim Kunden), feststellen wer da häufiger nach neuen Freischaltungen fragt.

    Chris 😃



  • Du hast ne große Sicherheitslücke in deinem Programm: du schilderst dein Vorgehen für die Sicherung hier

    sowas sollte man nicht tun *g*

    abgesehen davon ist die Überprüfung immer leicht zu entfernen für nen geübten Cracker, wenn es sich um ne vollständige Version handelt, man muss ja nur die Abfragen überschreiben und jeder wird es sowieso nicht können sondern nur sehr wenige.
    Wenn deine Anwendung nicht gerade nen Verkaufsschlager wird, wird sich auch niemand die Version über P2P organisieren können und wenn man jdm. ne Kopie an nen Kumpel
    gibt fällt das ja nicht so ins Gewicht.



  • kingruedi schrieb:

    Ich rede nicht davon, dass man irgend so einen 08/15-Chipkarten Leser an den Rechner anschließt, sondern von den Konzepten, die in TCPA angedacht werden. Zum Beispiel, dass man den Code dann erst durch die Chipkarte beim auslesen durch den Prozessor entschlüsselt. Man kann da ja ganze Algorithmen drauf auslagern und nicht nur Daten.

    Dir ist klar, das bei Software mit Dongles (wie z. B. Cubase SX 2, USB-Dongle, knapp 1.000,- EUR) die Dongle-Abfrage einfach "rausgepatcht" wird, ja?

    Ein Dongle ist ein Kopierschutz-Stecker, der zum Betrieb der (legalen) Software an den PC gesteckt sein muß.

    Also wenn so eine Abfrage schlichtweg rausgepatcht werden kann, wird das mit Deinem "Chipkarten-Leser" genauso möglich sein...



  • TCPA ist eine Möglichkeit. Eine andere wäre, wichtige Funktionen in Hardware zu implementieren und diese immer von der Hardware ausführen zu lassen.



  • Von daher ist es am wichtigsten, dass du deine Executables selbst so gut wie möglich schützt.
    Es geht darum dem Cracker möglichst viel Arbeit zu machen, so daß er es sein lässt.

    1. Packen/Verschlüsseln der Exe mit einem Exe-Packer/Crypter (wehrt schon unerfahrene Cracker ab). billige Möglichkeit: UPX
    2. Mehrere voneinander unahängige Überprüfungeroutinen. Dann muss der Cracker auch mehrere knacken. ( kostet den Cracker Zeit und Nerven)
    3. Lass deine Software laufende Debuggerprozesse erkennen und führe dann sinnlosen Code aus. (Verwirrt den Cracker u.U. extrem)
    4. Sämtliche String-Literale die du für die Anwendung heranziehst aus eine externen verschlüsselten Quelle ziehen. (Erschwert dem Cracker die Rückverfolgung von MessageBoxen wie "Ungültiger Lizenzschlüssel")

    Wenn du das alles machst muss deine Software schon sehr teuer und toll sein, dass sich jemand die Wochen dafür Zeit nimmt das Ding zu cracken. 🙂



  • Philipp HB schrieb:

    wer kein Internet hat, kann die Anwendung

    a) nicht runterladen
    b) nicht gebrauchen

    Hat er irgendwo geschrieben, dass seine Anwendung nur mit Internetzugang Sinn macht? Warum soll ich sie nicht auf einen Datenträger packen können und damit zu einem anderen PC gehen und sie von dort installieren?

    Desweiteren wird wohl der ein oder andere immer etwas mistrauisch sein, wenn es darum geht etwas über das Internet zu registrieren.



  • Hallo,

    wenn ich schon schreibe, dass niemand die Anwendung braucht der kein Internet hat, macht es auch keinen Sinn die Anwendung via Datenträger zu kopieren und fust 4 fun auf nem anderen PC zu installieren. Ferner würde aus der Vollversion dann wieder eine demo werden 🙂

    Die Zielgruppe an die sich die Anwendung richtet hat keine scheu sich im Internet zu registrieren. Und wer es nicht möchte, soll sich das Produkt von der Konkurrenz für ca. 500 Euro kaufen. Das ist für völlig egal. Bei mir kostet es weniger als 50 Euro und wer das nutzen will muss halt nach meinen Regeln tanzen.

    Immerhin will ich mir in 4 Wochen ein Sportcoupe kaufen 🙂

    Philipp



  • Dann sag mal an um welche Software es sich handelt bzw. was die macht.



  • SirLant schrieb:

    Du hast ne große Sicherheitslücke in deinem Programm: du schilderst dein Vorgehen für die Sicherung hier

    sowas sollte man nicht tun *g*

    Sicherheit, die auf Geheimhaltung basiert ist keine. Irgendwann kommt's sowieso raus. Deshalb ist es besser seine Sicherheitskonzepte offen zu legen.

    Beispiel Passwort-Verschlüsselung: Zum Glück liegen die ganzen Verfahren offen und sämtlichen klugen Köpfen dieser Welt bietet sich die Möglichkeit sie zu knacken. Übertrieben gesagt: Mit meinem geheimen xor 255 - Verfahren habe ich genau so lange Schutz, wie keiner gemerkt hat, daß es das ist. Danach wird's blöd.



  • Jester schrieb:

    Sicherheit, die auf Geheimhaltung basiert ist keine. Irgendwann kommt's sowieso raus. Deshalb ist es besser seine Sicherheitskonzepte offen zu legen.

    Nicht wirklich einleuchtend. 🙂

    kingruedi schrieb:

    Ach, tu dir einen gefallen und komm nicht auf die dumme Idee die Kopierschutzfunktionen in irgend welche dynamischen Librarys auszulagern und die dann am besten noch copyprotection oder check_serial zu nennen 😉

    Aber eigentlich keine schlechte Idee, wenn Du sowieso eine DLL mitlieferst, daß Du diese die EXE und die EXE die DLL checken lässt (CRC z.B.).

    Philipp HB schrieb:

    @Sgt. Nukem

    [...]

    auch habe ich nicht die zeit mich vor allem zu schützen. aber wenn das nun jemand cracken will, ist mir das auch egal, solange es nicht alle tun.

    Das Problem ist ja leider, daß normalerweise nicht jeder für sich crackt, sondern es viele faule Leute gibt, die einfach die Cracks der anderen benutzen... 😃



  • Philipp HB schrieb:

    Hallo,

    wenn ich schon schreibe, dass niemand die Anwendung braucht der kein Internet hat, ...

    und was ist mit Leuten ohne Flatrate? Oder gar mit Dialup-Verbindungen? Mit denen hinter Firewalls, auf die sie keinen Einfluss nehmen koennen (z. B. auf der Arbeit), oder die das Programm auf 'ner LAN-Party ohne I-net-Anschluss verwenden wollen?



  • Interessant zu dem Thema (die ganzen Verlinkungen bitte beachten)
    http://developers.slashdot.org/article.pl?sid=04/09/13/1357202&tid=156&tid=98&tid=8

    @Hepi

    Dir ist klar, das bei Software mit Dongles (wie z. B. Cubase SX 2, USB-Dongle, knapp 1.000,- EUR) die Dongle-Abfrage einfach "rausgepatcht" wird, ja?

    Wie gesagt, ich rede hier nicht von so etwas simplen, sondern von etwas in die Richtung, die Software ist verschlüsselt und wenn die CPU den Code ausliest, dann wird das über Chipkarte entschlüsselt. Da kannst du nicht so einfach die Abfrage entfernen, da keine Abfrage in dem Code vorhanden ist bzw. du an den Code noch nicht einmal rankommst.

    Obwohl irgend wann bastelt sich ein Freak ein Gerät, was dann die Schnitstelle zur CPU mitprotokolliert 😉 Das ist eben ein Kampf. Macht A etwas neues, zieht B nach (A und B je nach belieben durch "der Cracker" oder "der Kopierschützer" ersetzen :)). Aber so ist das leben. Ansonsten wären beide Parteien ohne Arbeit 😉

    @Sargent

    Aber eigentlich keine schlechte Idee, wenn Du sowieso eine DLL mitlieferst, daß Du diese die EXE und die EXE die DLL checken lässt (CRC z.B.).

    Ich denk mal für einen guten Cracker ist das ein Kinderspiel. Wahrscheinlich hat der schon ein Tool, dass einfach von allen Dateien die üblichen Checksummen (CRC,MD,SHA,...) erstellt und die Dateien danach untersucht. Genauso wie er wahrscheinlich ohne Problem UPX etc. erkennt.



  • Eine der wahrscheinlich sichersten Methoden ist, wie rapso schon sagte, wichtige Kernfunktionen auf einen Server auszulagern.

    Der große Nachteil ist natürlich dann die Geschwindigkeit des Programms und die Auslastung+Traffic Deines Servers. 😉



  • Hi,

    ich habe bei meiner Anwendung schon nachgedacht, ob die sache mit dem Internet ratsam ist. und es ist egal ob man flatrate hat oder nicht. das passt alles schon.

    ich habe schon 2x den punkt genannt. wenn ich 1x im monat meine exe datei ändere, also variablen namen und codeteile verschrieben, dann muss doch jeden monat nen neuer crack geschrieben werden?

    also nochmal für alle. es ist keine anwendung die jeder haben will und jeder braucht. es richtig sich an zwei-drei zielgruppen. es ist auch keine anwendung um megareich zu werden, aber reicht um sich nen traum zu erfüllen. und wenn da jemand crackt, gut, dann macht er das, aber dies will ich halt mit wenig aufwand minimieren.

    Und bisher hatten die Antworten immer mehr mit Cracks zu tun, meine Frage bezog sich aber ehr auf mein Modell, wie weit das gut ist, oder was man besser machen könnte. Vielleicht hat da dann noch jemand eine idee.

    philipp



  • Mach es doch einfach so wie du meinst.

    Immerhin will ich mir in 4 Wochen ein Sportcoupe kaufen

    Das meinst du doch jetzt nicht ernst. 🙄 Wird wohl eher ein kleiner
    gebrauchter was 😃 😉


Anmelden zum Antworten