Frage

Ich möchte eine Anwendung verteilen, sondern Lizenzschlüssel haben, dass sie eingeben zu entsperren. Was ist ein guter Algorithmus ist einen kurzen Schlüssel zu erstellen, die über Informationen enthalten, welche Version sie erworben haben, sowie zusätzliche Dinge wie Dauer der Lizenz, etc.

Ich weiß, das Schutz geknackt werden kann, aber es hält ehrlich Leute ehrlich. Ich kann oder nicht Online-Aktivierung implementieren, aber ich bin vor allem mit einem guten Weg, diese Schlüssel zu erzeugen.

Wir alle diese Situation gesehen haben, was Algorithmus funktioniert am besten? Sollte ich fragen Sie nach einem Klarnamen des Benutzers und der Verwendung, die einen Produktschlüssel aus ihrer eigenen Informationen beruhen zu schaffen?

Gibt es ein System, das verwendet werden kann es fast unmöglich zu machen, einen gültigen Schlüssel zu generieren?

Vielleicht eine öffentliches / privates Schlüsselpaar Verschlüsselung Situation, in der nur der Hersteller, die privaten Schlüssel hat und die Daten können mit einem öffentlichen Schlüssel überprüft werden, aber der öffentliche Schlüssel nicht missbraucht werden kann gültige Schlüssel erstellen.

Da dies ein Produktschlüssel ist, wäre es toll, wenn es recht kurz ist, 64 Zeichen oder vielleicht 128 max, aber je kürzer, desto besser, 32 oder weniger wäre toll.

War es hilfreich?

Lösung

Sie haben nicht gesagt, auf welcher Plattform Sie sind, aber hier ist ein in Microsoft .NET:

http://jclement.ca/devel/dotnet/reallysimplelicensing.html

  

Diese Seite dokumentiert eine sehr einfache   Genehmigungssystem, das Sie verwenden können, mit   Ihre .NET-Anwendung. Es ist beabsichtigt   als ziemlich sicher, einfach zu implementieren   und einfach zu erweitern. Die Probe-Version   Damit können Sie die Lizenzdateien zur Verfügung zu stellen   mit einem Client-Namen in ihnen eingebettet   aber man kann es leicht erweitern hinzufügen   andere identifizierende Informationen, Maschinen   Bindungen, Ablaufdaten, etc.

     

Dieses Schema macht Gebrauch von Microsoft   RSA Bibliothek und XML-Signierstunde. Grundsätzlich gilt   Sie setzen, was Sie in eine XML wollen   Dokument und das Dokument unterschreiben. Dann   Sie können diese Datei auf Ihrem liefern   Kunden und die Anwendung kann lesen   die Lizenzinformationen aus, dass   Datei. Da die Datei digital   unterzeichnet können die Lizenzdatei nicht   manipuliert, wenn Sie lassen Sie Ihre   private Schlüssel (die Sie wirklich   nicht tun sollte).

Andere Tipps

Kein Internetzugang und Schuss Tasten

In Bezug auf serielle Schlüsselgröße gibt es einen Kompromiss zwischen kurzen / Menschen lesbaren Tasten ( weniger sicher ) und lange Schlüssel mit oder möglicherweise Lizenzdateien ( sicherer ).

Wenn Sie kurz und für Menschen lesbare Tasten mögen, die Sie erlauben, Dinge zu speichern, wie Ablaufdatum und Funktionen, können Sie SKGL verwenden zusammen mit Software-Schutz, die beide Open-Source ( https://help.cryptolens.io/faq/what-is-skgl ).

Allerdings ist der Nachteil, dass sie höchstwahrscheinlich symmetrisch verwenden Kryptographie und / oder speichern Sie den Schlüsselerzeugungsalgorithmus in der Anwendung. Dies bedeutet, dass der Benutzer Ende versuchen kann, den Verschlüsselungsschlüssel und / oder den Algorithmus zu finden (siehe http://www.codeproject.com/Articles/764610/Licensing-systems-in-NET ).

Internetzugang (oder offline mit Aktivierungsdateien)

Eine bessere Alternative ist ein Cloud-basiertes System zu verwenden, die den Überblick über alle Lizenzschlüssel halten und ermöglicht es Ihnen, diese jederzeit zu ändern.

Wenn Sie ein Web-basiertes Lizenzierungssystem haben, können Sie die Schlüssel halten kürzer und nicht zu speichern, müssen Informationen innerhalb des eigentlichen Schlüssels (das ist der Fall bei den meisten Offline-basierten Systemen).

Darüber hinaus werden Sie in der Lage sein, mehr Lizenzmodelle zu unterstützen, zum Beispiel, Abo-basiertes Modell.

Die Lösungen sind:

  • bauen ein solches System selbst -. Was viel Zeit in Anspruch nehmen und Sie von den Kernfunktionen der App ablenken

  • Um ein bestehendes Open-Source-System als Ausgangspunkt verwenden - obwohl es verlockend sein könnte, da es Open Source ist und kostenlos, es wird einige Zeit dauern, sie in den Cloud zu bringen + configure es auf Ihre Bedürfnisse + warten. die Open-Source-Systeme, die ich beobachtet habe neigen in der Funktionalität sehr breit sein, die Komplexität beiträgt.

  • an Dritte auslagern -. Der Nachteil ist, dass die meisten von ihnen nicht kostenlos sind

In meinen Augen sollte das gesamte Verfahren an einen Dritten ausgelagert werden, die bei der Entwicklung dieser speziellen Komponente spezialisiert ist. Sobald Sie skalieren, müssen Sie die Lizenz Logik ändern. Anstatt es selbst zu entwickeln, stehen die Chancen, dass der Dritte bereits dieses Szenario unterstützt.

Es gibt mehrere Lösungen gibt ( stellen Sie sicher, für diejenigen zu suchen, die Web-basierte sind ), Cryptolens ein Beispiel. Wenn Sie eine .NET-Anwendung entwickeln, hier ist Schritt für Schritt Beispiel: https: // Hilfe. cryptolens.io/examples/key-verification .


Hinweis . Ich bin der Autor von SKGL / Software-Schutz, der Artikel über Lizenzsysteme und Cryptolens

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top