[Thema] Lizenzsystem für Web-Applikation

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von razgoolyy, 13. November 2007 .

Schlagworte:
  1. 13. November 2007
    Lizenzsystem für Web-Applikation

    Moin moin...

    Also ich bin heute zum Schluss einer Web-Applikation gekommen, nun wird von mir verlangt das ich ein Lizenzsystem einbaue.

    Das System muss wie folgt funktionieren:

    Klient kauft z.B. 10 Lizenzen, dass heisst also die Applikation kann 10 Benutzer haben. (Die Applikation verwendet eine DB)

    Eigentlich doch ganz eifach bis dahin... nun wie kann ich das realisieren?

    Ich habe mir gedacht ich setze den Lizenzschlüssel aus AnzahlLizenzen, Klientname und Kaufdatum zusammen und lege den Lizenzschlüssel verschlüsselt in der DB ab.

    Nun das Problem:
    Die App. ist mit Ruby On Rails geschriben, das heisst, nichts ist wirklich kompiliert, so wie PHP halt, der Code ist schön sichtbar!
    Deshalb wird es nicht schwer für jemanden der einwenig programmieren kann das System zu knacken.

    Etwas zu machen das unknackbar ist, ist nicht möglich in meinem Fall das ist mir schon bewusst.
    Aber es so schwer zu machen wie möglich wäre natürlich mein Ziel..

    Ich hoffe ich krieg von euch gute Ideen

    mfg

    razgoolyy
     
  2. 13. November 2007
    AW: Lizenzsystem für Web-Applikation

    heyhey

    hm, warum net bereits einen kleinen algorithmus entwickeln, wo du klientname, anzahl lizenzen und datum bereits in zahlen oder so umwandelst, und dann dieser verkauft wird?? oder wie funktioniert dann das mit der überprüfung in der DB wieviele man haben darf, ist das ein serverseitigs porgramm oder wird das auch per php gemacht??

    mfg
     
  3. 13. November 2007
    AW: Lizenzsystem für Web-Applikation

    ja es ist serverseitig...
    Das mit der überprüfung dachte ich mir so, dass befor ein neuer benutzer erstellt wird checkt das programm den Lizenzschlüssel ab, dort sieht es wieviel benutzer es haben darf und handelt dan dem entsprechend...

    Ja das mit dem algorithmus wolte ich schon machen weis aber eben euch noch nicht genau wie und was... oder kannst du mir mal näher erklären wie du das meinst "in zahlen umwandeln" ^^

    mfg
     
  4. 13. November 2007
    AW: Lizenzsystem für Web-Applikation

    hm, also ein simpel einfaches beispiel wäre zum beispiel, wenn der lizenzschlüssel folgerndermassen aussieht:

    3 stellen für lizenzanzahl, 20 stellen für name und 8 stellen für datum, wobei beim namen die buchstaben durch die entsprechende stelle im abc ersetzt werden (A ist zum beispiel 1, B2 etc.) und der rest mit nullen aufgefüllt wird.

    Bsp: Hans Muster kauft 15 lizenzen am 9.5.2008

    liz auffüllen ( 8stellen ) M( 13 ) u( 21 ) s( 19 ) t( 20 ) e( 05 ) r( 18 ) 9 5 2008
    015|00000000132119200518|09052008

    dieser code kannst du ja bei bedarf noch mit einer einfachen vorprogrammierten open-source verschlüsselung versehen oder so.
     
  5. 13. November 2007
    AW: Lizenzsystem für Web-Applikation

    Ich geb dir nen Tipp,
    ich weis aber nicht in wie weit das realisierbar ist ;P ^^

    Vllt legst du einen Lizenzschlüssel dort ab, und die eigentliche Validierung des Codes lässt du aber auf DEINEM Server ablaufen,
    sprich der Key wird per API sonstwas an deinen Server gesendet.
    DORT wird gecheckt ob er ok ist und wenn ja liefert dein Server ein TRUE wenn nicht ein FALSE.
    Oder sowas halt =)


    Ansonsten vllt ne kommerzielle Lösung wie Zends Code-Verschlüsseler für PHP.
     
  6. 13. November 2007
    AW: Lizenzsystem für Web-Applikation

    Mach dir doch ne Datenbank auf, auf deinem Server.

    Aufbau:

    ID | Schlüssel | Anzahl


    ID: Ganz einfach Primärschlüssel
    Schlüssel: Den Schlüssel den du einfach so generieren lassen kannst
    Anzahl: Anzahl der Lizensen

    Der Eintrag in die Datenbanken wird automatisch beim Kauf der Software gemacht.
    Der Benutzer muss beim Client nurnoch bspw. seinen Key eingeben und Online diesen Key prüfen lassen.

    Das so als Grundprinzip wie ich es bei meinen Programmen immer gemacht habe, die ich verkauft habe.

    Nen "Lizensgenerator" brauchst du damit nicht, lass dir einfach nen 32 Zeichen langen Zufallscode als Key generieren und den in der Datenbank ablegen - damit hat sich das erledigt und das vermeindliche "Cracken" zur Erstellung eines Keygens fällt flach, weil der Key nach keinem bestimmten Algo erstellt wird.


    Liebe Grüße
     
  7. 13. November 2007
    AW: Lizenzsystem für Web-Applikation

    Ja sowas habe ich nun.. gibt sone methode von ruby ich lasse jedes zeichen in hexa umwandeln..
    Hier ein beispiel:
    Key_schlüssel: 10-11-2007-X10-AEF
    Key_code: 31-30-2d-31-31-2d-32-30-30-37-2d-58-31-30-2d-41-45-46
    werde das mit den bindestrichen noch àndern^^

    Also lege ich nun 10-11-2007-X10-AEF mit SHA-1 verschlüsselt in die DB und bei der überprüfung lasse ich den key_code zurückwandeln in key_schlüssel und mache den vergleich..

    ist das genug sicherheit wird ja selten vorkommen das die programmieren können, denn die welche es können werden ja wohl kaum unsere software kaufen sondern eine eigene basteln ^^

    Das wäre natürlich die Perfekte Lösung... aber wie gesagt, man sieht den code => login daten für server.. da kann jeder seine anzahl lizenzen so verändern wie er si gerade benötigt..

    mfg
     
  8. 13. November 2007
    AW: Lizenzsystem für Web-Applikation

    Falsch da:
    Man kann dem Benutzer nur lese Rechte erteilen.

    Dann sollte der Code BTW durch den PHP / Ruby Code validiert werden, weil der Leseberechtigkte Kunde sonst seinen Schlüssel gegen einen anderen der auch in der DB sein könnte tauscht.
    Oder du gibst jedem Kunden ne eigene DB ( auch nicht rssourcen lastig und ok ) und dann hat er nur lese rechte auf seinen eigenen Key. =)
     
  9. 13. November 2007
    AW: Lizenzsystem für Web-Applikation

    Naja, mach das prüfen über bspw. ne PHP Schnittstelle.

    bspw. http://www.deinedomain.de/licensecheck.php?key=000000000000000000

    Und das PHP Script returned dann einfach True für "Ja kannst es benutzen" oder False für "Nö Maximum erreicht".

    Clientseitig musst es halt nur schön umständlich verpacken, sodas eine quelltextabänderung umständlich wird.
    Auf dem Server kann dir keiner rumfuschen, machst es ja über PHP und da kann keiner irgendwelche Logindaten auslesen.

    Dazu machst du vll noch ne Clienterkennung in dein Programm rein was die Leute dann runterladen bzw. anwenden, damit du auch sehen kannst wie viele Lizensen gerade in Benutzung sind.

    Dafür empfiehlt sich dann bspw. die Generierung eines Hardwarekeys oder ähnlichem, damit kannst nen PC eindeutig identifizieren.


    Grüße
     
  10. 13. November 2007
    AW: Lizenzsystem für Web-Applikation

    Mhh ...
    sorry ich nehme alles zurück was ich und defcon gesagt haben.
    Denn:

    Es ist richtig das derjenige im Code schreiben kann?
    Wenn ja ist es eh unmöglich mal abgesehen von Zend und den kommerziellen Lösungen.

    Weil was würde den Kunden daran hindern die Funktion zur Validierung nicht einfach mal zu löschen oder einfach die Funktion so umzuschreiben das IMMER true hervorgeht.
    Ohne den check auf seinem Server.

    Wenn du mich fragst ist es das Sicherste ( wenn es soooo schütztenswert ist ) die Application auf deinem Server zu lassen und so die Zugriffe zu beschränken.



    Smoki


    Vielleicht helfen dir folgende Links:

    PHTML Encoder Download | Das Download Archiv

    PHP Encoder, protect PHP scripts with SourceGuardian and bytecode

    Home - PHP Encoder, protection, installer and performance tools from ionCube

    Protect PHP - Obfuscate your code with PHP Processor


    Alles Software die den Code verschlüsselt, und manche bieten auch Lizenzlösungen an
     
  11. 13. November 2007
    AW: Lizenzsystem für Web-Applikation

    @Smokers

    Ja deshalb sage ich ja, wenn er es so freigeben möchte sollte er die Sicherheitsabfragen bzw. Lizensabfragen im Client sehr umständlich verpacken, um es vermeindlichen Crackern "schwer" zu machen, wobei es bei Scriptsprachen ja wohl mehr ein Witz ist, soetwas zu "cracken".

    Grüße
     
  12. 13. November 2007
    AW: Lizenzsystem für Web-Applikation

    genau so ist es...
    Der chef hier hat eben entschieden das nicht er auch noch hosten will für die app. also haben wir nur einen hoster gesucht für die app. aber der Klient wird ja dan zugriff darauf haben auf seinen account beim hoster...

    danke für die links

    Ja genau hierrum geht es, es sehr umständlich zu verpacken.. aber wie?

    danke schon mal für eure hilfe bis hier her.

    mfg
     
  13. 13. November 2007
    AW: Lizenzsystem für Web-Applikation

    Jau,... schei**
    hab ich net weiter gedacht. ^^ xD
    Scheiss Arbeit lenkt mich ab hier ;P

    Mhh ja aber selbst wenn er es umständlich verpackt müsste er rein theoretisch nur an der Stelle wo die Abfrage kommt ob "true" is , löschen / oder aus der

    function if(1==1) {
    }
    machen.
    ODER noch einfacher....
    einfach die Datenbankdaten die zur Abfrage genutzt werden aufn localhost
    umschreiben und die Datenbank nach-emulieren.

    Alles , vielleicht helfen ihm die Encoder / Decoder oben weiter.
    Das is auch die einzige Variante wo ich mit ziemlich sicher bin das sie funzen ^^°
     
  14. 13. November 2007
    AW: Lizenzsystem für Web-Applikation

    - Encoden / Decoden zum unkenntlich machen
    - Sicherheitsabfragen ob die Lizens auch validiert bzw echt ist in mehreren Funktionen / Prozeduren / Sub Funktionen / Sub Prozeduren verpacken und so oft wie nur möglich aufrufen
    - Verwirrende Variablenbezeichnungen (sei es mal einfach nur Buchstabensalat oder wichtig erscheinende Namen wie "Systemkonfiguration" oder ähnliches) wählen für Sicherheitsabfragen


    Ich hatte früher in MSL, auch ner billig Scriptsprache für mIRC, das selbe Problem und schlussendlich hab ich die Sicherheitsabfragen in wirklich viele Funktionen verpackt und die Funktionen für diese Abfrage einfach mehrfach unter einem anderen Prozedurnamen hab laufen lassen.

    Aber dennoch lässt sich sagen, dass diese Sicherheitsabfragen mehr Kindergarten sind wenn der Benutzer sie einsehen kann.
    Für Scriptsprachen muss man dazu nicht einmal programmieren können, da sich das Prinzip und der Aufbau von selbst erklärt.



    Grüße
     
  15. 13. November 2007
    AW: Lizenzsystem für Web-Applikation

    Sieht wohl eher aussichtslos aus um es wirklich sicher zu machen..
    Finde keine de/encoder für ruby on rails.
    (bin aber da auf was interesanntes gestossen, RoR nimmt zu ^^ :
    src: ionCube :: View topic - Popularity - PHP down, Ruby on rails on the UP! )

    werde ich es halt so machen wie Defc0nX sagt... buchstabensalat und solches ^^

    mfg
     
  16. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.