Datenübertragung zu PHP script signieren?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datenübertragung zu PHP script signieren?

    Hallo,

    ich habe mal eine einfache Frage :-)

    Ich programmiere gerade eine Software für Windows. Diese ist zur Zeit als Freeware verfügbar. Ich bin aber der Meinung, dass diese Software gut genug ist um damit Geld zu verdienen.
    http://www.skittel.de/hpprojekte/p2s/index.html

    Als Kopierschutz möchte ich, dass man die Software per Internet aktivieren muss. Dazu steht mir ein 1und1 Server mit Apache, PHP und MySQL zur verfügung.

    Das ganze sollte im Rahmen bleiben. Ich möchte eine Lösung die einfach ist aber effektiv.

    Ich wollte das so machen, als dass jede Lizenz in der DB hinterlegt ist und das Programm beim 1. Start die Lizenz per PHP abfragt.

    C: http://www.skittel.de/p2s/activate?Licence=0810067
    S: OK
    oder
    S: Lizenz abgelaufen

    Soweit so einfach.
    Nun sollte es aber nicht zu einfach sein.
    Böse Person A installiert WAMP, gibt ihr die passene IP und erstellt eine PHP Seite die immer "OK" zurückliefert.

    das einfachste was mir einfiel ist MD5
    C: http://www.skittel.de/p2s/activate?L...067&ID=1234556
    S: OK|654321

    Der Client schickt noch eine zufällige Zahl mit.
    Der Server macht aus "DIESIST" Licence ID "GEHEIM" die MD5 und liefert Sie zurück.
    Der Client vergleich das

    Oder gibt es da was besseres/einfacheres?

    Vielen Dank für Tipps

    Stefan

  • #2
    PHP kann auch verschlüsseln.

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      PHP kann auch verschlüsseln.
      Das würde nur sinn machen, wenn ich die Identität des Servers feststellen könnte. SSL oder ähnliches steht mir aber nicht zur Verfügung.
      Wie aufwendig ist puclic/secret key mit PHP?

      Kommentar


      • #4
        Das würde nur sinn machen, wenn ich die Identität des Servers feststellen könnte. SSL oder ähnliches steht mir aber nicht zur Verfügung.
        Warum? Muss ja nicht gleich SSL sein.

        Client sendet verschlüsselte Anfrage, Server entschlüsselt und antwortet auch verschlüsselt, Client entschlüsselt diese wiederum und entscheidet ob gültig oder nicht.

        Musst mal gucken, was 1&1 dir da bietet.

        ansonsten kannst du natürlich auch einfach die Anfrage hashen. Und die Checksumme mitschicken. Der Server antwortet genauso.

        Der Algorithmus ist nur dem Server und der Software bekannt.
        Zuletzt geändert von TobiaZ; 07.10.2008, 23:31.

        Kommentar


        • #5
          Original geschrieben von TobiaZ
          Warum? Muss ja nicht gleich SSL sein.
          Client sendet verschlüsselte Anfrage, Server entschlüsselt und antwortet auch verschlüsselt, Client entschlüsselt diese wiederum und entscheidet ob gültig oder nicht.
          Hast Du da mal Infos zu oder einen Link?

          Original geschrieben von TobiaZ
          ansonsten kannst du natürlich auch einfach die Anfrage hashen. Und die Checksumme mitschicken. Der Server antwortet genauso.
          Der Algorithmus ist nur dem Server und der Software bekannt.
          Das wäre ja das mit der MD5 wie mir das im Augenblick vorschwebt

          Kommentar


          • #6
            Hast Du da mal Infos zu oder einen Link?
            mcrypt fällt mir so spontan ein, ist aber schon Jahre her, dass ich mich da PHP-Seitig mit beschäftigt habe...

            Das wäre ja das mit der MD5 wie mir das im Augenblick vorschwebt
            Mal davon abgesehen, dass der MD5 Algorithmus relativ bekannt ist, der Hash sogar nem ungeübten Nutzer ins Auge springt und deine Checksumme somit jederzeit erzeugt werden kann...

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              Mal davon abgesehen, dass der MD5 Algorithmus relativ bekannt ist, der Hash sogar nem ungeübten Nutzer ins Auge springt und deine Checksumme somit jederzeit erzeugt werden kann...
              Aber nur wenn er den String kennt den ich davor und dahinter klebe
              Der Server macht aus ("DIESIST" + Licence + ID "GEHEIM") die MD5 und liefert Sie zurück. so kann ich sicherstellen dass der server richtig ist.

              Kommentar


              • #8
                Somit ist dein Algorithmus aber nicht mehr MD5 sondern ein neu von dir definierter Algorithmus, also genau das, was ich beschrieben habe!

                Kommentar


                • #9
                  Hey,

                  was wäre denn mit der Möglichkeit die Seriennummer zurück zuschicken?
                  Mich würde es stören, wenn ein Programm, welches ins Internet connecten muss jedesmal noch gleich eine andere Abfrage mit ausführt.

                  Lass doch die Überprüfung der Seriennummer und die Laufzeit im Programm selbst drinn.

                  Aktivieren muss man es übers Internet, wenn der Name und der Key richtig sind, dann wird eine interne Seriennummer zurückgeschickt, die die Software freischaltet.
                  In diese Seriennummer kannst du dann ja noch einmal den Namen, die Laufzeit oder sonstiges reinschreiben.
                  Und jedesmal, wenn die Seriennummer ungültig wird, connected er erneut zu deinem Server und wenn die Lizenz noch gültig ist, bekommt er eine neue Seriennummer.

                  Den Key könntest du auch als "externe" Seriennummer ausweisen, also das Passwort, das der Benutzer erhält.

                  Aber denk daran, wie viel du den Benutzern zumuten darfst ;-)


                  Soweit meine Überlegungen...

                  gruß
                  Piremilok

                  Kommentar


                  • #10
                    Du hast das ganze in Ansätzen bereits beschrieben, aber der Vollständigkeit und Information halber hier nochmal die korrekte technische Bezeichnung inklusive möglicher Angriffsvektoren: http://de.wikipedia.org/wiki/Challen...hentifizierung
                    [FONT="Helvetica"]twitter.com/unset[/FONT]

                    Shitstorm Podcast – Wöchentliches Auskotzen

                    Kommentar


                    • #11
                      sehr interessanter beitrag.
                      vielen dank dafür.

                      gruß
                      Piremilok

                      Kommentar

                      Lädt...
                      X