RSA Verschlüsselung für Aktivierunscode

beta20

Top Contributor
Hallo zusammen,

ich habe mir folgendes ausgedacht für die Aktivierung einer Software.
Zunächst hierzu auch die Frage: ist das Konzept verwendbar?

1) User bekommt eine Serial Key

2) Damit die Software läuft, muss er den Serial Key aktivieren: Hierzu schickt er den Serial Key an einen Webservice auf einem externen WebServer.
Nun wird:
Geprüft: Gibt es den Serial Key.
Wenn ja: Verschlüsselt er den Serial Key mit einem privaten Schlüssel.
Der private Schlüssel kennt nur der Webserver.

Der verschlüsselte Serial Key ist dann mein Aktivierungs Code. Dieser gibt der User dann in der Software ein und wird in der Datenbank gespeichert.


Wie kann ich das realsieren? Ich habe leider keine Beispiele mit dem privaten Schlüssel wirklich gefunden, sondern finde immer nur Beispiele in dem ein Zufallsschlüssel generiert wird.

Bitte um Hilfe.
 
K

kneitzel

Gast
Das ist doch z.B. in Java ist auch eine Insel relativ gut erklärt:
http://openbook.rheinwerk-verlag.de/java7/1507_22_006.html#dodtp44355202-8b70-416d-a198-9553468eed73

Den Key generierst Du natürlich nur einmal und sicherst diesen dann.

Da Du aber wohl Strings haben wirst und kein Stream, musst Du natürlich aus dem String ein Stream machen. Das kannst Du z.B. indem Du etwas machst wie new ByteArrayInputStream(myString.getBytes(charset)).

Und die Frage ist, wie Du das Byte-Array mit den verschlüsselten Daten dann sichern willst, damit Du das ggf. auch als Text übergeben kannst. Da wäre evtl. Base64 als Encoding interessant.

Ich hoffe, dass ich Dir mit den Informationen etwas helfen konnte.
 
X

Xyz1

Gast
Ist die Software dann auch mit dem verschlüsseltem Serial Key verschlüsselt???
Sorry, manchmal übertreibe ich es etwas. ;)
Ich kann mir das noch nicht so richtig vorstellen.
 

beta20

Top Contributor
Ich erkläre es gerne nochmal - weiß jedoch nicht warum das unfreundlich klang?!
Anyway:

1) Kunde kauft Lizenz
2) Es wird automatisch ein z.B. 25 stellige Serial Key generiert. Die Serial Key wird in einer Datenbank auf einem Webserver gespeichert
3) Kunde erhält eine Email mit diesem 25 stelligen Serial Key

4) Kunde muss die Software nun noch aktivieren
5) Kunde gibt den 25 stelligen Serial Key in eine Maske ein und klickt auf "Aktivieren".
6) Nun wird per Internet ein Webservice aufgerufen, der prüft ob die Serial Key schon in der DB steht. Zusätzlich habe ich vor, dann noch ein paar Infos von dem Rechner, der die Software aktivieren möchte, mitzugeben und die dann zusätzlich in die DB des Webservers zu speichern.

7) Auf dem Webserver wird der Serial Key nun mit meinem privaten Key (der auf dem Webserver sich befindet) verschlüsselt und bildet mir den Aktivierungscode.
8) Der Aktivierungscode wird dann im gleichen Zuge zurück an den PC geschickt, der die Aktivierung vornimmt.
9) Der Aktivierungscode wird dann in die DB der nun aktivierten Software gespeichert.


In regelmäßigen Abständen kann dann von der aktivierten Software eine Methode aufgerufen werden, die auf meinem Webserver prüft, ob die übermittelten PC - Daten (der ja in der DB stehen) mit dem Aktivierunscode noch übereinstimmen. (um sicherzustellen, dass die Serial Key nicht mehrfach verwendet wird).

Ist es jetzt klar geworden?
 
K

kneitzel

Gast
Also ich sehe erst einmal nur eine einfache Nachfrage und keine Unfreundlichkeit. Und prinzipiell ist das Konzept ok. Nur eben sind bei diesen Themen immer die gleichen Punkte, die da einspielen:
a) Sowas ist leicht auszuhebeln. Das kann man natürlich erschweren (So kann man das z.B. mit Tools wie Jar2Exe in eine Binary packen, die nicht mehr ganz so trivial zu entpacken ist - was aber immer noch geht.)
b) Hacker hacken die Applikation immer noch - den Kunden, die bezahlt haben, macht man das Leben schwerer
c) Der Code ist bei Dir immer gleich. Also muss man nur Serial-Code + Aktivierungscode leaken und schon hat man eine Version. Wenn man das alles verhindert durch "online checks" oder so, dann hat man das Problem, dass Kunden, die nicht online arbeiten, Probleme kriegen ...
....

Da gibt es sehr viele Dinge, die da mit einspielen. Die Frage ist daher, wie schützenswert ist etwas? Ist die Gefahr so groß, dass Raubkopien das Geschäft zerstören? (Oft ist dem nicht so. So man gute Qualität und Support bietet wollen Leute das Produkt auch nutzen und geben durchaus Geld aus). Aber da ich keine Details kenne, ist das so nicht wirklich zu beantworten.

Mein Gefühl ist derzeit aber: Da Du ja noch nicht zu tief im Java drin steckst bezweifle ich etwas, dass Du da eine so schützenswerte Sache entwickeln wirst. Statt dich mit diesem Thema zu beschäftigen würde ich die Zeit und Ressourcen lieber in das Produkt selbst stecken. (Aber das ist auch nur ein einfacher Eindruck, der sich bei mir gebildet hat. Ich kenne Dich nicht und kann Dich nicht beurteilen. Daher mag dieser Eindruck auch komplett falsch sein! Und die Position, die ich hier einnehme ist garantiert auch nicht unbestritten. Da gibt es also garantiert auch andere Standpunkte mit vernünftigen Argumenten dafür!)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Caeser Verschlüsselung ganz einfach(nicht für mich) Java Basics - Anfänger-Themen 6
U Cäsar Verschlüsselung Java Basics - Anfänger-Themen 8
Camoflasche RSA Verschlüsselung Java Basics - Anfänger-Themen 0
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
M Verschlüsselung mit replace() Java Basics - Anfänger-Themen 35
P Cäsear verschlüsselung irgendwas passt noch nicht Java Basics - Anfänger-Themen 2
A Methoden Cäsar-Verschlüsselung Java Basics - Anfänger-Themen 13
E Einfache Java Verschlüsselung Java Basics - Anfänger-Themen 4
N Erste Schritte JFrame Caesar-Verschlüsselung Java Basics - Anfänger-Themen 23
Y Caesar Verschlüsselung Fehler Java Basics - Anfänger-Themen 4
Ä Cäsar-Verschlüsselung Java Basics - Anfänger-Themen 5
N Caesar Verschlüsselung Java Basics - Anfänger-Themen 2
L Interpreter-Fehler RSA Verschlüsselung Fehler Java Basics - Anfänger-Themen 2
M Erste Schritte Verschlüsselung von text Java Basics - Anfänger-Themen 21
M Erste Schritte Verschlüsselung / Login-Sicherheit Java Basics - Anfänger-Themen 8
D Eine einfache Verschlüsselung schreiben Java Basics - Anfänger-Themen 3
A Vigenere Verschlüsselung Java Basics - Anfänger-Themen 2
T Array Verschlüsselung Java Basics - Anfänger-Themen 5
Z Cäsar-Verschlüsselung Java Basics - Anfänger-Themen 1
V Permutation, Verschlüsselung Java Basics - Anfänger-Themen 19
H Cäsar-Verschlüsselung Java Basics - Anfänger-Themen 1
S Caesar Verschlüsselung Start Hilfe Java Basics - Anfänger-Themen 4
K Symmetrische Verschlüsselung von TextArea Java Basics - Anfänger-Themen 7
U Problem mit Verschlüsselung Java Basics - Anfänger-Themen 2
C Frage zu RSA-Verschlüsselung Java Basics - Anfänger-Themen 3
Y Applet: Verschlüsselung Java Basics - Anfänger-Themen 3
H Caesar-Verschlüsselung - Was stimmt nicht? Java Basics - Anfänger-Themen 6
V Ceasar Verschlüsselung Java Basics - Anfänger-Themen 9
D Verschlüsselung mit Java Java Basics - Anfänger-Themen 8
F Problem: Verschlüsselung von String in Array Fehler Java Basics - Anfänger-Themen 2
C Verschlüsselung Java Basics - Anfänger-Themen 8
R Frage zu Cäsar - Verschlüsselung! Java Basics - Anfänger-Themen 10
I Rc4 Verschlüsselung in BlueJ Java Basics - Anfänger-Themen 18
D Verschlüsselung Java Basics - Anfänger-Themen 4
C Compiler-Fehler Verschlüsselung Java Basics - Anfänger-Themen 2
B byte-weise Verschlüsselung Java Basics - Anfänger-Themen 6
S Caesar-Verschlüsselung Problem/Frage Java Basics - Anfänger-Themen 4
D Java Password verschlüsselung Java Basics - Anfänger-Themen 6
P RSA Verschlüsselung kleines Problem Java Basics - Anfänger-Themen 5
R Verschlüsselung von String Java Basics - Anfänger-Themen 4
J Cäsar Verschlüsselung Java Basics - Anfänger-Themen 12
G Verschlüsselung und Entschlüsselung von Texten Java Basics - Anfänger-Themen 7
D Java Verschlüsselung Java Basics - Anfänger-Themen 8
O Verschlüsselung mit Cipher & Key Java Basics - Anfänger-Themen 9
A Vigenere Verschlüsselung Java Basics - Anfänger-Themen 2
K Cäsar-Verschlüsselung Java Basics - Anfänger-Themen 1
S Hill Verschlüsselung Java Basics - Anfänger-Themen 10
A Einfache java Verschlüsselung HILFE Java Basics - Anfänger-Themen 3
W Xor-Verschlüsselung Java Basics - Anfänger-Themen 15
Y verschlüsselung Java Basics - Anfänger-Themen 10
T Frage zur Verschlüsselung (RSA) Java Basics - Anfänger-Themen 6
A Java Verschlüsselung/Cipher Java Basics - Anfänger-Themen 12
S Verschlüsselung Key Splitting Java Basics - Anfänger-Themen 2
B Again, Verschlüsselung Java Basics - Anfänger-Themen 3
L Frage zur Verschlüsselung in java Java Basics - Anfänger-Themen 3
D Verschlüsselung Java Basics - Anfänger-Themen 4
A verschlüsselung Java Basics - Anfänger-Themen 7
G Vergleich bei MD5-Verschlüsselung Java Basics - Anfänger-Themen 3
zilti md5-Verschlüsselung? Java Basics - Anfänger-Themen 7
L Caesar-Verschlüsselung programmieren Java Basics - Anfänger-Themen 12
Lazybone Vigenere Verschlüsselung funktioniert nicht richtig Java Basics - Anfänger-Themen 8
S XOR-Verschlüsselung Java Basics - Anfänger-Themen 5
U "Einfache Verschlüsselung" Java Basics - Anfänger-Themen 17
K Verschlüsselung Java Basics - Anfänger-Themen 8
E Verschlüsselung mithilfe von Array Java Basics - Anfänger-Themen 2
S SHA? Hashcodes, Blowfish Verschlüsselung Java Basics - Anfänger-Themen 7
L Java und PGP Verschlüsselung, wie...??? Java Basics - Anfänger-Themen 2
M Code aus IntelliJ in "Textform" für Word-Paper? Java Basics - Anfänger-Themen 10
G Icon für App Java Basics - Anfänger-Themen 1
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
V Durchschnittliche Volatility in Prozent für 4 Stunden berechnen Java Basics - Anfänger-Themen 14
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
C negamax-Algorithmus für Tic-Tac-Toe spielt manchmal falsch Java Basics - Anfänger-Themen 10
D Apache HTTPClient für alle Fälle Java Basics - Anfänger-Themen 41
J Layout Manager, welcher ist der Richtige für mein Program? Java Basics - Anfänger-Themen 1
J Fehlermeldung unverständlich für Jakarta Java Basics - Anfänger-Themen 17
M Minimax-Algorithmus für Vier gewinnt Java Basics - Anfänger-Themen 11
M GUI für Vier-Gewinnt. Java Basics - Anfänger-Themen 4
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
Ostkreuz Counter für Booleanwerte Java Basics - Anfänger-Themen 8
B Regex Ausdrücke für Monate Java Basics - Anfänger-Themen 7
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
K loop pausieren für eine bestimmte Anzahl? Java Basics - Anfänger-Themen 1
Jxhnny.lpz Randomisier für Buttons Java Basics - Anfänger-Themen 13
W Intuitive interface für Komponenten Java Basics - Anfänger-Themen 4
M "Class<T> clazz" im Constructor - auch für int möglich? Java Basics - Anfänger-Themen 7
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
I Code für Bezahlsystem (auch bei Offline Aktivität) Java Basics - Anfänger-Themen 7
U jUnit 5 Test für eine addMethode Java Basics - Anfänger-Themen 18
M monte carlo Algorithmus für 4 gewinnt Java Basics - Anfänger-Themen 12
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
izoards Sortier Algorithmus für Bounding Box Elememte Links nach Rechts und von Oben nach Unten Java Basics - Anfänger-Themen 33
M generate Methode für Streams Java Basics - Anfänger-Themen 6
I Datenmodell für "Tags" Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben