progger: Schutz

Ich programmiere eine Android-App die Daten mit einem Programm auf dem Server austauscht. Dieses Programm möchte ich kostenlos (nicht Open Source!) bereit stellen. Die App soll ein paar Cent kosten.
Mir ist es auch egal, wenn jemand den Quelltext des Webprogramms anschaut. Gibt es jedoch eine Möglichkeit, die man nicht umgehen kann, damit das Webprogramm nur arbeitet, wenn die Daten von meiner App kommen?

Ich hatte die Idee, weiß jedoch nicht wie ich es umsetzen soll, dass der Webserver des "Kunden" extra mit meinem Server Daten austauscht. Und nur wenn mein Server OK sagt speichert der Server des Kunden die Daten. Sonst gibt er eine Fehlermeldung aus.

Ist das überhaupt möglich? Wenn ja wie?

Ich möchte das machen, damit man sich nicht einfach eine App selbst schreibt und somit alles kostenlos hat. Der Preis für das Webprogramm soll also in dem Preis der App enthalten sein.

Schon mal jetzt danke für die Antworten.

  1. Mahlzeit,

    Ich programmiere eine Android-App die Daten mit einem Programm auf dem Server austauscht.

    Dieses Programm möchte ich kostenlos

    Aha

    Die App soll ein paar Cent kosten.

    Hä? Was jetzt, kostenlos oder doch nicht? Oder Server kostet und jedes Endgerät muss zahlen? na Hurra ...

    Gibt es jedoch eine Möglichkeit, die man nicht umgehen kann, damit das Webprogramm nur arbeitet, wenn die Daten von meiner App kommen?

    Nein. Jeden Schutz kann man umgehen.

    Ich hatte die Idee, weiß jedoch nicht wie ich es umsetzen soll, dass der Webserver des "Kunden" extra mit meinem Server Daten austauscht. Und nur wenn mein Server OK sagt speichert der Server des Kunden die Daten. Sonst gibt er eine Fehlermeldung aus.

    Also machst du es von einer Internetverbindung abhängig, dass deine App funktioniert? Ja, das nenn ich benutzerfreundlich ...

    Ist das überhaupt möglich? Wenn ja wie?

    So, wie du gesagt hast, deine App fragt deinen Server, der gibt das Ok und die App arbeitet.
    Sowas nennt sich "Lizenzprüfung" und wird von einigen Anbietern gemacht, denen die Benutzerfreudlichkeit scheiss egal ist.

    Ich möchte das machen, damit man sich nicht einfach eine App selbst schreibt und somit alles kostenlos hat. Der Preis für das Webprogramm soll also in dem Preis der App enthalten sein.

    Wenn du glaubst, das hält jemanden ab, der Ahnung hat, muss ich dich enttäuschen.

    Ich könnte dir jetzt schon aufzeigen, welche Möglichkeiten es gibt, aber da du deine App in PHP schreiben willst (zumindest hast du das als Rubrik gewählt) muss ich passen, ich hab noch nie ne mobile App in PHP umgesetzt weil ich keine AShnung hab, ob das technisch überhaupt geht. Dazu brauchst du ja auf dem Endgerät nen PHP-Interpreter.
    Ausserdem ist PHP ein Script, bei dem der Quelltext einsehbar ist.

    Du hast also zu allererst ein Konzeptproblem.

    --
    42
    1. Also so wie ich das verstehe will hier niemand eine App in PHP programmieren. Er möchte von einer APP Daten an einen Webserver schicken und dieser verarbeitet sie mit php. In welcher Sprache die App ist blieb offen.

      ---------

      Ein Schutz wäre eine Verschlüsselung. In der Web-Welt gäbe es da HTTPS. Bei Apps müsste es etwas vergleichbares geben, wobei das nur geraten ist. Ich kann noch nicht mal das Smarphone meiner Frau bedienen :(.

      Gruß
      Smarphonobiker
      T-Rex

      1. Mahlzeit,

        Ein Schutz wäre eine Verschlüsselung. In der Web-Welt gäbe es da HTTPS.

        Und was genau würde das jetzt bringen? Am Client und am Server liegen die Daten im Klartext vor, lediglich die Übertragung erfolgt verschlüsselt.

        --
        42
        1. Und was genau würde das jetzt bringen? Am Client und am Server liegen die Daten im Klartext vor, lediglich die Übertragung erfolgt verschlüsselt.

          Hajo, dass war doch die Frage.

          "Mir ist es auch egal, wenn jemand den Quelltext des Webprogramms anschaut. Gibt es jedoch eine Möglichkeit, die man nicht umgehen kann, damit das Webprogramm nur arbeitet, wenn die Daten von meiner App kommen?"

          Wenn die Daten verschlüsselt sind, kann man einen Hash mitschicken bzw. eine Authentifizierung initialisieren.

          Gruß
          App und zu
          T-Rex

          1. Mahlzeit,

            Hajo, dass war doch die Frage.

            Nein, er will die Funktion der Software von einem externen Server abhängig machen.

            Wenn die Daten verschlüsselt sind, kann man einen Hash mitschicken bzw. eine Authentifizierung initialisieren.

            Und wenn sie unverschlüsselt sind, kann ich auch nen Hash mitsenden.

            Also nochmal: Was soll das bringen?

            --
            42
    2. Also machst du es von einer Internetverbindung abhängig, dass deine App funktioniert? Ja, das nenn ich benutzerfreundlich ...

      Die Internetverbindung braucht die App sowieso...

      So, wie du gesagt hast, deine App fragt deinen Server, der gibt das Ok und die App arbeitet.
      Sowas nennt sich "Lizenzprüfung" und wird von einigen Anbietern gemacht, denen die Benutzerfreudlichkeit scheiss egal ist.

      Ich wollte nicht prüfen, ob die App rechtens verwendet wird sondern das Programm auf dem Server.

      ----------------        ----------------
      | Mein Server  | <----->| Server Kunde |
      ----------------        ----------------
                                     ^
                                     |
                              ----------------
                              |     App      |
                              ----------------

      aber da du deine App in PHP schreiben willst

      Die App schreibe ich in Java. Ich habe PHP gewählt, da ich denke das Problem liegt beim Server und somit PHP.

      Du hast also zu allererst ein Konzeptproblem.

      Wie sollte ich denn das Webprogramm lizenzieren bzw. schützen? Geht nicht.

      1. Mahlzeit,

        Die Internetverbindung braucht die App sowieso...

        Also kann deine Serversoftware ausschliesslich auf einem Server mit Internetverbindung installiert werden? Geschlossenes Intranet ist ausgeschlossen?

        Ich wollte nicht prüfen, ob die App rechtens verwendet wird sondern das Programm auf dem Server.

        Und wieso glaubst du, dass ein Server nicht bei einem anderen anfragen kann ob die Lizenz stimmt?

        Die App schreibe ich in Java. Ich habe PHP gewählt, da ich denke das Problem liegt beim Server und somit PHP.

        Nein, das Problem liegt bei deinem Konzept.

        Wie sollte ich denn das Webprogramm lizenzieren bzw. schützen? Geht nicht.

        Verdammt. Dann solltest du das schnellstens über alle möglichen Kanäle verbreiten. Bisher sind zig Millionen Programmierer und Marketingleute, ja sogar Anwälte und Richter völlig anderer Meinung. Bisher sind zig Millionen Werbanwendungen lizensiert worden.

        Wie gesagt, du hast ein Konzeptproblem. Ein Stichwort dazu hast du bekommen, sei dir aber im Klaren, wenn dein Server aus irgendeinem Grund nicht erreichbar ist, kannst du ggf. Schadenersatzpflichtig werden, wenn durch das Nichtfunktionieren des Kundenservers durch fehlende Abfragemöglichkeit deines Servers ein Schaden entsteht.

        Ich will nicht sagen, du sollst es lassen (auch wenn ich der Meinung bin, ein gutes Lizenzmodell ist mehr wert als eine ständige Abfrage eines Servers, die ausgehebelt werden kann) aber überleg dir gut was du machst udn such dir nen guten Anwalt der deine Verträge aufsetzt.

        BTW: Dass durch den offenen Quellcode in PHP eine solche ABfrage relativ problemlos ausgehebelt werden kann, ist dir klar?

        --
        42
        1. BTW: Dass durch den offenen Quellcode in PHP eine solche ABfrage relativ problemlos ausgehebelt werden kann, ist dir klar?

          Deshalb diese Frage hier.
          Nehmen wir mal an ich würde die App kostenlos machen und nur Geld für die Webanwendung verlangen. Wie könnte ich das kontrollieren, wenn das deiner Meinung nach möglich ist? Es kann ja gut sein, dass ich das (bis jetzt noch) nicht weiß...

          1. Mahlzeit,

            Nehmen wir mal an ich würde die App kostenlos machen und nur Geld für die Webanwendung verlangen. Wie könnte ich das kontrollieren, wenn das deiner Meinung nach möglich ist? Es kann ja gut sein, dass ich das (bis jetzt noch) nicht weiß...

            Nur mal so als Ansatz: Du könntest die Software nur auf Bestellung ausliefern. Dann hast du Kontrolle drüber, wer sie bekommt. Wenn sie dann illegal weitergegeben wird, bleibt dir nur noch juristisches Vorgehen aufgrund einer Lizenz.

            Ansonsten ist für dein Vorhaben PHP völlig ungeeignet, ausser du bietest die Software als Dienst an und gibst sie gar nicht aus der Hand.

            Ich wundere mich nur etwas über deine angepeilte Zielgruppe, wenn du erstmal davon ausgehst, die geben deine Software illegal weiter. Seriöse Firmen sind dann also nicht deine Kunden, vorallem wenn die Software nur ein paar Cent kosten soll.

            Ja, es gibt einige Ansätze um PHP-Code zu veschlüsseln bzw. zu kompilieren. Aber das setzt besondere Serverkonfigurationen voraus und somit wird deine Zielgruppe automatisch kleiner.

            Achja .... Kontrolle einer Lizenz. Du könntest z.B. einen Anwalt beauftragen, nach Verstössen zu suchen und ihn mit 25% beteiligen. Gängige Praxis.

            --
            42
            1. Ansonsten ist für dein Vorhaben PHP völlig ungeeignet, ausser du bietest die Software als Dienst an und gibst sie gar nicht aus der Hand.

              Wäre es da auch möglich zu sagen, dass ich für entstehende Schäden durch z.B. Serverausfall nicht hafte?

              1. Mahlzeit,

                Wäre es da auch möglich zu sagen, dass ich für entstehende Schäden durch z.B. Serverausfall nicht hafte?

                Klar. Du kannst auch reinschreiben, dass der Käufer dir nen Trip zum Mond zahlen muss.
                Für dich relevanter dürfte sein, ob dir jemand den Vertrag unterschreibt.

                Immerhin ist dein Server für die Funktion nicht nötig sondern nur für eine Lizenzprüfung. Damit besteht technisch keine Notwendigkeit, die Software zu deaktivieren, wenn dein Server ausgefallen ist.
                Der Hersteller von Confixx hatte vor seinem Verkauf viel Spass mit Schadenersatzansprüchen, weil die Lizenzserver ständig ausgefallen sind. Und das war ne Firma mit vielen Programmierern und vielen Anwälten.

                --
                42
                1. Also würde ich sagen, dass das Webprogramm auf meinem Server bleibt und die Nutzer dann zahlen und einen Login bekommen. Mit dem kann man dann auch die App nutzen.
                  Könnte ich dann für event. entstehende Schäden belangt werden (als Privatperson)? Auch wenn ich in der Lizenz sage, dass ich nicht dafür aufkomme?

                  1. Mahlzeit,

                    Könnte ich dann für event. entstehende Schäden belangt werden (als Privatperson)?

                    Wenn du etwas gegen Geld anbietest, bist du keine Privatperson mehr. Dann brauchst du auch ein Gewerbe und musst Steuern zahlen. Kann es sein, dass du noch reichlich jung bist?

                    Auch wenn ich in der Lizenz sage, dass ich nicht dafür aufkomme?

                    Wenn dir das bestätigt wird (Unterschrift o.ä.) hast du vielleicht Glück. Wenn dir aber Fahrlässigkeit oder Vorsatz nachgewiesen wird (und dazu kann es reichen, dass du zuwenig Wissen zum Betreiben eines Servers hast), hilft dir das gar nichts.

                    Da es hier aber um juristische Probleme geht und ich kein Anwalt bin, kann ich dir dazu eh nichts verbindliches sagen. Das kann maximal ein Fachanwalt. Also frag einen solchen.

                    --
                    42
                    1. Da es hier aber um juristische Probleme geht und ich kein Anwalt bin, kann ich dir dazu eh nichts verbindliches sagen. Das kann maximal ein Fachanwalt. Also frag einen solchen.

                      Was wäre für so ein Problem der richtige Anwalt?

                      1. Mahlzeit,

                        Was wäre für so ein Problem der richtige Anwalt?

                        Der deines geringsten Misstrauens. Da ich nur wenige kenne, kann ich dir da nicht helfen.

                        Und mal ehrlich, eine solche Frage lässt mich echt an deiner Geschäftsfähigkeit zweifeln. Alternativ willst du mich verarschen.

                        --
                        42
      2. Hallo,

        Ich wollte nicht prüfen, ob die App rechtens verwendet wird sondern das Programm auf dem Server.

        ----------------        ----------------
        | Mein Server  | <----->| Server Kunde |
        ----------------        ----------------
                                       ^
                                       |
                                ----------------
                                |     App      |
                                ----------------

        Der Kunde bekommt eine individuelle Softwarelizenz. Diese Nutzungsbedingungen legen fest, was der Kunde darf und was nicht. Zum Beispiel die Software auf seinen eigenen Servern installieren und nutzen, aber nicht weitergeben. Das ist ein gültiger Vertrag.

        Ob du noch weitere rechtliche und technische Beschränkungen einbaust, bleibt dir überlassen. Das kann z.B. ein individueller Lizenzschlüssel sein, der mit jedem API-Request übertragen werden muss und validiert wird. Das kann ein Anmeldeprozess und ein schriftlicher Vertrag sein, den du mit dem Kunden schließt, bevor er eine Kopie der Software bekommt. Das kann eine kleine Lizenzgebühr sein.

        Sehr viel Software ist quelloffen, aber unterliegt solchen Lizenzbedingungen. Effektiv verhindern, dass eine Software kopiert und verwendet wird, ist technisch schwierig und lohnt sich in einem solchen Maßstab meist nicht.

        Grüße
        Mathias

        1. Das Projekt richtet sich eher an Firmen als an Privatpersonen. Von daher würde ich mal denken, dass die sich dann auch an solche Verträge halten.
          Müssen diese Verträge unbedingt mit Unterschrift abgeschlossen werden oder reicht da auch im Internet ein Häkchen + Button?

          1. Moin,

            Das Projekt richtet sich eher an Firmen als an Privatpersonen. Von daher würde ich mal denken, dass die sich dann auch an solche Verträge halten.

            im Wesentlichen vermutlich schon. Schwarze Schafe gibt's natürlich überall.

            Müssen diese Verträge unbedingt mit Unterschrift abgeschlossen werden oder reicht da auch im Internet ein Häkchen + Button?

            Verträge können i.A. formlos geschlossen werden; selbst eine mündliche Einigung kann als Vertrag gelten. Das Problem ist nur die Nachweisbarkeit (und zwar für beide Parteien) für den Fall, dass einer sich nicht an die Vereinbarungen hält.

            Wenn du deinen "Vertrag" per Haken-Setzen und Online-Abschluss machst, solltest du diese Daten zum einen sorgfältig speichern (manipulationssicher wäre schön), zum andern aber: Wie stellst du sicher, dass nicht irgendein Spaßvogel die Leistung im Namen der Just For Fun GmbH bestellt? Du hast ja keinerlei Kontrolle oder Nachweis darüber, wer *wirklich* am Rechner sitzt und sich da vergnü... äh, verklickt.

            Insofern: Schriftlich wäre vorteilhaft; eine gegenseitige Bestätigung per e-Mail wäre das allermindeste, was ich vorsehen würde.

            So long,
             Martin

            --
            Eine Nonne kommt in den Himmel. An der Pforte fragt Petrus: "Wer bist du?" - "Ich bin die Braut Jesu." Petrus stutzt einen Moment, ruft dann nach hinten: "He Freunde, habt ihr schon gehört? Der Juniorchef will heiraten!"
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            1. Mahlzeit,

              manipulationssicher wäre schön

              leider ist das aber völlig unmöglich.

              --
              42
              1. Mahlzeit,

                manipulationssicher wäre schön

                leider ist das aber völlig unmöglich.

                Würde eine E-Mail an mich und den Kunden reichen?

          2. Hallo,

            Müssen diese Verträge unbedingt mit Unterschrift abgeschlossen werden oder reicht da auch im Internet ein Häkchen + Button?

            In einer Softwarelizenz räumt der Urheber anderen Personen Nutzungsrechte ein. Das fällt m.W. unter das Urheberrecht. Mit dem Download und der Installation erklärt sich der Nutzer damit einverstanden. Das ist rechtlich bindend und der Nutzer muss nichts unterschreiben.

            Da es hier allerdings um die Nutzung des Services geht, den dein Server anbietet, wäre eine Zusatzvereinbarung sinnvoll, da die bloße Nutzung einer HTTP-basierten API m.W. nicht unter das Urheberrecht fällt. In deinem Fall würde ich die Online-API als Teil der Software sehen, da sie ohne die API vermutlich nicht vollständig funktioniert. Wenn du hier rechtlich auf der sicheren Seite sein willst, auch bezüglich Haftung und Gewährleistung, solltest du einen schriftlichen Vertrag aufsetzen und den anwaltlich prüfen lassen. Als Basis können verbreitete Softwarelizenzen dienen.

            Disclaimer: YANAL und dies ist kein Rechtsberatung.

            Grüße
            Mathias