schützen Java Anwendung von Lizenz-oder Schlüssel
Möchte ich eine desktop-Anwendung, die läuft nur auf Rechnern, die über Schlüssel oder Lizenz.
Wie dies erreicht werden kann?
- Ist eine online-Prüfung (z.B. bei jedem Start) eine option?
- Ja, ich denke, Ihre app wird wahrscheinlich geknackt werden, denn jedes Ding ist auf Kundenseite.
- Genügend Anstrengung aber, dies ist der Fall für alles, was...
- Es ist nicht wirklich der Fall für cloud-Dienste (gut, es sei denn, Sie hacken es, die auslösen können Menschen chase nachdem Sie).
- Yah ich weiß, kaufen, er hat nicht gesagt, wenn dies ist eine client-side-oder cloud-basiert
- Es ist eine desktop-app und soll offline arbeiten
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies hängt ganz davon ab, wie sicher man es machen will...
Das problem mit Java ist, dass Sie Umgekehrt kann es kompilieren. Also, wenn jemand wollte, Sie konnte Ihre download-software, reverse compile es, und entfernen Sie dann, was die Sicherheit, die Sie haben (und dann verteilen Sie es, wenn Sie wollten).
Dies ist nur ein problem, wenn Sie planen, gehen Masse auf den Markt und verkaufen Sie, und Piraterie wäre in der Tat ein problem sein.
Wenn Sie nicht besorgt über diese, dann können Sie entweder für online-oder offline-Prüfung.
Der Firma arbeite ich mit verwendet die online-Methode; es gibt ein paar Schritte:
EDIT: ich habe seitdem geändert, wie das funktioniert, denn der alte Weg war ein Wartungs-Albtraum.
name
company
email
key
. d.h. dieJDU8-AJS9-88DF-SASF-ASF9
Art von Sache, die Sie oft sehen.Zum generieren der Schlüssel, nur mit der gleichen Hash-Funktion, und laden Sie dann den hash auf den server.
Wenn Sie wollen, dass es offline sein, Sie könnte auch die hashes in der code, den ich denke, und überprüfen gegen Sie gibt.
Ich soll jedoch darauf hingewiesen, dass ich nicht bin ein security-Experte mit allen Mitteln, die ich entwickeln gerade für ein Unternehmen als Teil eines Ph. D.-und das ist nur, wie ich es gemacht habe.
Edit: das Bild könnte hilfreich sein:
Zweiter Edit:
Habe ich jetzt inklusive "offline-überprüfung" in den Prozess. Es ist nicht wirklich offline-Prüfung wird der Benutzer als proxy - Sie benötigen Zugriff auf das internet eine andere Art und Weise.
funktioniert es so:
jedes mal, wenn das Programm erfolgreich überprüft online, es fügt auch eine offline-Zugriff Kennwort ein, um die Lizenz-Datei, was bedeutet, es ist robust gegen temporary internet Ausfallzeiten, und wird nur aufhören zu arbeiten, wenn das internet down ist für mehr als eine Woche/Monat/wie lange es bis zu arbeiten.
machine fingerprint
mit verschiedenen details der hardware, die ist besser als die Verwendung von MAC-Adressen (die gefälschte). Wenn wir ignorieren, reverse compilation und das mag, dann verwenden Sie ein ausreichend starkes hashing-Algorithmus, ich denke, es sollte in Ordnung sein.Können Sie verfolgen, Lizenzierung von einer Maschine mit macIP auf online . Auch in windows kann man schreiben in der Registrierung, es gibt keine api, aber noch können Sie es tun. Finden snippet Balg zu Lesen registry -
Und in der Klasse level, wenn Sie wollen, zu verschleiern verwenden proGuard .
es hängt davon ab, wie viele Kunden Sie haben möchten und die Verteilung Modus auch. Sie können eine Lizenz server haben, aber dies erfordert eine internet-Verbindung für den Kunden. Sie können auch USB-dongles zu verwalten Lizenzierung.
Es gibt kein perfektes system, das Sie brauchen, um einen comproise zwischen Einfachheit, Aufwand und Preis.