Java-Anwendung nach Lizenz oder Schlüssel schützen [geschlossen]

7

Ich möchte eine Desktop-Anwendung erstellen, die nur auf Computern mit Schlüssel oder Lizenz ausgeführt wird. Wie kann dies erreicht werden?

    
Ahmed Aswani 05.06.2012, 11:36
quelle

3 Antworten

19

Das hängt ganz davon ab, wie sicher Sie es machen wollen ...

Das Problem mit Java ist, dass Sie es kompilieren können. Also, wenn jemand wollte, könnten sie Ihre Software herunterladen, rückwärts kompilieren und dann die Sicherheit, die Sie eingerichtet haben, entfernen (und sie dann neu verteilen, wenn sie es wollten).

Das ist nur ein Problem, wenn Sie vorhaben, in den Massenmarkt zu gehen, und der Verkauf und die Piraterie wären tatsächlich ein Problem.

Wenn Sie sich darüber keine Gedanken machen, können Sie entweder online oder offline nachsehen.

Die Firma, mit der ich arbeite, verwendet die Online-Methode; Es gibt ein paar Schritte:

EDIT: Ich habe seitdem geändert, wie das funktioniert, da der alte Weg ein Wartungs-Albtraum war.

  1. Eine Lizenzdatei
    • (das kann enthalten, was immer Sie wollen in der Realität, es muss nur für jeden Benutzer einzigartig sein. Die meisten Leute gehen normalerweise mit General Tracht;
    • name
    • company
    • email
    • und dann ein key . das ist die Art von Dingen, die man oft sieht.
  2. Das Programm erzeugt einen Hash aus der Lizenzdatei.
    1. speichert alle Daten aus der Lizenzdatei in einer Zeichenfolge
    2. Übergeben Sie die Zeichenfolge an eine Hash-Funktion Diese Seite kann Ihnen zeigen, wie.
  3. Lassen Sie das Programm online überprüfen (auf Ihrem Server). Die Daten werden in einer HTML-Anfrage (post / get / json / was immer Sie wollen) verschlüsselt und an Ihre Lizenzprüfungsseite gesendet, die dann die Daten überprüft. In den Daten ist eine zufällig generierte Zeichenfolge enthalten, die von der Bestätigungsseite verwendet wird, um ein anderes Kennwort zu generieren. Dies wird dann an das Programm zurückgegeben, das auch die Zufallszeichenfolge verwendet hat, um sein eigenes Passwort zu erzeugen. Wenn die beiden übereinstimmen, wird das Programm gestartet.

Um die Schlüssel zu generieren, verwenden Sie einfach die gleiche Funktion und laden Sie den Hash dann auf Ihren Server.

Wenn Sie möchten, dass es offline ist, könnten Sie die Hashes in den Code einbeziehen, den ich vermute, und dort gegen sie prüfen.

Ich sollte jedoch darauf hinweisen, dass ich auf keinen Fall ein Sicherheitsexperte bin. Ich entwickle mich nur für eine Firma als Teil einer Doktorarbeit, und genau so habe ich es gemacht.

Bearbeiten: Dieses Bild könnte hilfreich sein:

Zweiter Schnitt:

Ich habe jetzt "Offline-Verifikation" in den Prozess aufgenommen. Es ist nicht wirklich Offline-Verifikation, es verwendet nur den Benutzer als Proxy - sie müssen auf andere Weise auf das Internet zugreifen.

es funktioniert so:

  1. keine Internetverbindung gefunden: Geben Sie dem Benutzer einen vierstelligen Code
  2. Benutzer geht zur Offline-Verifizierungsseite (auch für den mobilen Einsatz optimiert)
  3. Benutzer wählt aus der Dropdown-Liste
  4. aus, welche Software er verwendet
  5. Der Benutzer gibt seinen Benutzernamen ein (in diesem Feld werden Einträge gespeichert)
  6. Benutzer gibt den Code ein, den das Programm ihnen gegeben hat und sendet
  7. Webseite bietet einen 4-stelligen Code, den sie dann in das Programm eingeben, und es beginnt.
  8. Programm fügt der Lizenzdatei einige spezielle Daten hinzu, was bedeutet, dass dieser Vorgang nicht für die nächste Woche / Monat / wie lange wiederholt werden muss.

Jedes Mal, wenn das Programm online erfolgreich verifiziert wird, fügt es auch ein Offline-Zugangspasswort zur Lizenzdatei hinzu, was bedeutet, dass es gegen temporäre Internetausfallzeiten robust ist und nur funktioniert, wenn das Internet länger als eine Woche / Monat / wie lange es auch funktioniert.

    
will 05.06.2012, 12:00
quelle
1

Es hängt davon ab, wie viele Kunden Sie haben und den Verteilungsmodus auch. Sie können einen Lizenzserver verwenden, aber dies erfordert eine Internetverbindung für den Kunden. Sie können USB-Dongles auch verwenden, um die Lizenzierung zu verwalten.

Es gibt kein perfektes System, um Kompromisse zwischen Einfachheit, Aufwand und Preis zu machen.

    
jocelyn 05.06.2012 11:43
quelle
1

Sie können die Lizenzierung einer Maschine mit macIP online verfolgen. Selbst in Windows können Sie in der Registrierung schreiben, es gibt keine API, aber Sie können es tun. Find Snippet unten, um die Registrierung zu lesen -

%Vor%

Und in Klassenebene, wenn Sie verschleiern wollen proGuard .

    
Subhrajyoti Majumder 05.06.2012 12:00
quelle

Tags und Links