Softwarelizenzen sowie Lizenzierungsmodelle und zeigt, wie beide erfolgreich dazu genutzt werden können, die eigene Anwendung zu schützen. Große Teile des Inhalts sind vor circa einem halben Jahr als Video-Training bei Pluralsight erschienen. In einigen Teilbereichen ist dieses Buch eine Weiterführung der behandelten Themengebiete und wird zusätzlich dem vielfach geäußerten Wunsch gerecht, die Inhalte auch in gedruckter Form zur Verfügung zu stellen. Neben theoretischen Aspekten wird auch die Implementierung von Methoden und Frameworks gezeigt und daraufhin untersucht, ob deren Einsatz lohnenswert ist. Einige dieser Methoden und Frameworks sind der Unique Finger Print, der Software Protector und Portable.Licensing. Schwerpunktmäßig werden die Themengebiete rund um die Implementierung von Lizenzmodellen für Desktop- oder Netzwerkanwendungen behandelt. Die Lizenzierung von Cloud- oder Web-Diensten gehört nicht zum Fokus dieses devbooks. Viele der Themen sind dennoch allgemeingültig oder übertragbar, da auch bei den genannten Anwendungsgebieten lokale oder verteilte Lizenzen nützlich sind.
Beginnen möchte ich gerne mit einer Aussage, die ich vor einiger Zeit gelesen habe. Leider ist mir die Quelle abhandengekommen. Dennoch lassen mich die Sätze nicht mehr los, weil sie eindrucksvoll beschreibt, warum so viel Software illegal kopiert wird.
„Ich finde es nicht überraschend, dass soviel Software geklaut wird. Wir sind eine Kultur von anonymen Dieben. Wir mogeln bei den Steuern, rippen Filme und kopieren Spiele. Warum sollte das in anderen Bereichen des Softwarebusiness anders sein? Ich kenne Menschen, die ihren Lebensunterhalt mit dem Schreiben von Software verdienen und trotzdem die Software anderer klauen, es aber nicht als Diebstahl begreifen. Sie haben eher den Begriff des ‚Teilens‘ im Hinterkopf. Wenn Personen eine Software umsonst bekommen können, werden es einige tun. Immer. Legal oder nicht.“
Diese Aussage ist frei aus dem Englischen übersetzt und nicht von mir. Trotzdem kenne ich den beschriebenen Personenkreis. Vor allem diejenigen, die ihren Lebensunterhalt damit verdienen und dennoch kommerzielle Software von anderen stehlen. Es hat etwas Schizophrenes an sich, zu denken, sich so aus der Gleichung herausnehmen zu können.
Lizenzierung – das unterschätze Thema
Das Thema Lizenzen und Lizenzierungsmodelle treibt jeden Entwickler um. Nicht nur bei kommerzieller Software, sondern auch im Open-Source-Bereich. Wird ein Softwareprodukt verkauft, spielt der finanzielle Aspekt eine sehr große Rolle. Wer möchte schon, dass seine Software „einfach so“ kopiert und genutzt wird? Zum Beispiel bei der einen Ideen, die einen Businessbereich oder einen bestimmten Markt aufrollen könnte. Investitionen wollen geschützt werden. Und das bitte nicht über Softwarepatente, insbesondere wenn sie trivial sind, sondern über eine ausgereifte, durchdachte und kundenfreundliche Lizenzierung sowie ein gutes Lizenzmodell.
Im Open-Source-Bereich ist es eher die Frage, wo der eigene Quelltext zum Einsatz kommen darf und wo nicht. Zusätzlich zu der Frage, ob der eigene Name genannt werden muss und ob eine Veränderung des Source-Codes erlaubt ist.
Schwerpunkt dieses devbooks ist der kommerzielle Einsatz von Software. Denn die Entwicklung eines ausgereiften Softwareprodukts ist teuer. Insbesondere bei der Entwicklung eines vollständig neuen Produktes. Aber auch mit der Zeit fließt immer mehr Aufwand in eine Software. Diese Kosten müssen wieder hereingespielt werden, um die weitere Entwicklung zu finanzieren.
Bei den beschriebenen Frameworks zur Unterstützung und Implementierung von Lizenzmodellen wurde allerdings darauf geachtet, Bibliotheken und Komponenten auszuwählen, die als Open-Source-Software zur Verfügung stehen. Geld einzusparen ist nicht der Hauptgrund. Es geht auch oder vor allem darum, Einblick in die Implementierung nehmen zu können. Im Hinblick auf die Sicherheit ist das nicht zu unterschätzen.
Aus den genannten Gründen gibt es immer einen Zeitpunkt, zu dem die Frage aufkommt, wie das Produkt geschützt werden soll. Welche Lizenzierungsstrategie ist die beste? Welche Möglichkeiten gibt es überhaupt, die eigene Software zu schützen? Diese Fragen sind essentiell, wenn es um den Verkauf von Software geht. Ganz gleich, ob ein Team hinter der Entwicklung steht oder eine einzelne Person.
Lizenzierung im Wandel der Zeit
Die ganze IT-Branche ist ständig im Umbruch. Was auf Technologie im Allgemeinen zutrifft, gilt für Software im Speziellen umso mehr. Denn Software lässt sich leicht beziehungsweise leichter anpassen als andere Komponenten wie beispielsweise Hardware.
Durch den schnellen Wandel hat sich die Frage, wie Softwareprodukte lizenziert werden können, grundlegend geändert.
Bei Disketten in den 70er Jahren war das Unterfangen noch kein so großes Problem. Natürlich wurden auch diese schon kopiert, allerdings war der Markt deutlich kleiner und die Software meistens für größere Unternehmen und spezielle Situationen angepasst. Software in hohem Wert zu kopieren war zwar möglich, allerdings selten praktisch, da es nicht viel Verwendung dafür gab.
In den 80er Jahren änderte sich das schlagartig. Die Computertechnik war immer verbreiteter und auf dem Markt erschien immer mehr Standardsoftware. Und eine Eigenschaft von Standardsoftware ist es nun mal, in vielen Situationen eingesetzt werden zu können. So stieg auch die Verbreitung ebendieser Produkte, was sie zu einem deutlich lohnendere Ziel für Raubkopien machte. Disketten waren nach wie vor einfach zu kopieren und die aufkommende CD war gerade erst im Begriff, in der Musikindustrie als digitaler Speicher für Musik Fuß zu fassen. Vom einfachen Kopieren durch Endanwender ganz zu schweigen. Eine klassische Maßnahme war es damals, Hardware-Keys zur Sicherung der Software zu verwenden. Diese Keys sind vielleicht besser bekannt unter den Namen Hardware-Dongles beziehungsweise einfach nur Dongles. Der USB-Anschluss war zwar noch lange nicht erfunden – er kam erst gegen Mitte der 90er Jahre – doch auch serielle Anschlüsse eignen sich gut dazu, Dongles anzuschließen und über die Software abgefragt zu werden.
Die hohe Verbreitung der Personal Computer führte in den 90er Jahren dazu, dass sich die Art und Weise der Softwarelizenzierung das erste Mal grundlegend ändern musste. Hardware-Dongles sind zwar ein gutes Mittel, für Standardsoftware bedeuten sie aber einen hohen Aufwand und hohe Kosten. Denn jeder Anwender und jede Anwenderin brauchten ebenso einen Dongle. Alleine Windows 95, veröffentlicht im August 1995, wurde in den ersten drei Monaten nach Verkaufsstart 45 Millionen Mal verkauft [1]. OEM Versionen, also direkt beim Kauf von Computern vorinstallierte Versionen von Windows 95, noch gar nicht eingerechnet. All diese Installationen hätten mit einem Dongle abgesichert werden müssen. Dabei schlägt nicht nur die Produktion und der Versand mit hohen Kosten zu Buche, sondern auch die Wartung. Denn auch Hardware-Dongles können Defekte aufweisen und müssen dann ersetzt werden. Ein weiterer Grund, warum diese Art der Lizenzierung immer weiter in den Hintergrund gedrängt wurde. Eine weitere Fehlerquelle konnte und wollte man sich nicht ans Bein binden. Wer als Hersteller von Softwareprodukten also erfolgreich den Sprung von den 80ern in die 90er Jahre schaffen wollte, musste sich etwas anderes einfallen lassen. Herausgekommen ist, bei der überwiegenden Zahl der Hersteller, die sogenannte softwarebasierte Lizenzierung. Dabei sorgt das Produkt selbst dafür, dass der eingegebene Schlüssel den korrekten Erwerb bestätigt. Wie auch immer dieser Schlüssel aussehen mag. Mal sind es mehr, mal weniger Zeichen und auch die Komplexität schwankt, wenn nur Zahlen, nur Buchstaben oder eine Kombination von beidem zum Einsatz kommt.
Diese softwarebasierte Lizenzierung ist die am weitesten verbreitete Lizenzierungsart. Zumindest in der Hinsicht, dass ein – wie auch immer gearteter – Schlüssel bei der Installation der Software eingegeben werden muss. Hin und wieder, beispielsweise bei Windows, ist es auch möglich, den Schlüssel nach der Installation anzugeben. Dann läuft das Produkt in einer Art Testversion. Zwar ohne funktionelle Beschränkungen, aber zeitlich begrenzt.
Mit der immer stärkeren Verbreitung von Internetanschlüssen ist im neuen Jahrtausend eine weitere Lizenzierungsart hinzugekommen. Softwareschlüssel sind immer noch stark verbreitet und dominieren den Markt. Allerdings werden diese Schlüssel nicht mehr nur von der Software an sich – mithilfe von Algorithmen, überprüft – sondern auch bei Online-Servern verifiziert. Dieser Umstand wird von vielen Kunden gerne auch als Online-Zwang bezeichnet: Viele Produkte laufen ohne Internetverbindung gar nicht mehr. Entweder es wird eine Verbindung