Freier Node lock code für Linux

N

nathan2225

Jungspund
Hi,

ich würde gerne einige Features meines Programms (läuft auf einem embedded Linux) erst mittels Freischaltcode zugänglich machen.

Kennt wer eine freie Software, die mir so etwas ermöglichen würde, also aus einer MAC-Adresse und einer feature-nummer einen hash generieren kann, den ich dann in der laufenden Software checken kann, ob der zum laufenden System (MAC-Adresse) passt ?
Ich kenne die flexlm tools, so was in der Art stelle ich mir da vor ..

LG
Robert
 
Was hat denn das eine mit dem anderen zu tun?
 
Stimmt, die Antwort gehörte eigentlich zu einem anderen Thread. Diesen hier hatte ich bisher noch nichtmal besucht. *verwirrtbin* :think:
 
Ich freue mich ja prinzipiell über Antworten, wenn mir auch der Inhalt nicht weitergeholfen hat ;-)
 
Eine simple Möglichkeit ist ein Hash auf Shared-Secret Basis. Kodiere die freizuschaltenden Features irgendwie, z. B. als HexString, in dessen Binärdarstellung jedes Bit für ein Feature steht. Den Freischalt-Code generierst Du offline als MD5 von "MAC+Featurevektor+SharedSecretString". Als Freischaltcode übermittelst Du den String "Featurevektor+MD5".

Das Problem ist natürlich, dass der Verifikationscode gleich dem Erzeugungscode ist und Du den Key-Generator gleich mitlieferst.

Verbessern lässt sich das, indem Du einen digital signierten MD5-Hash verwendest: Du verschlüsselst den MD5 Hash von "MAC+Featurevektor" mit einem privaten Schlüssel und lieferst "Featurevektor+SignedMD5" aus. Auf dem Gerät bildest Du den regulären MD5-Hash aus "MAC+Featurevektor" nochmal und vergleichst ihn mit dem entschlüsselten Ergenbis von SignedMD5. Entschlüsselt wird der Hash mit dem öffentlichen Schlüssel, den Du z. B. direkt in den Code einbetten kannst.

Hier ist eine Open Source Implementierung diverser Crypto-Algorithmen in C: http://beecrypt.sourceforge.net/.
GnuPG hat auch eine schlanke DSK-Implementierung: http://www.gnupg.org/download/index.en.html
 
Zuletzt bearbeitet:
Ja danke, gute Ansätze !

Ich habe mich mittlerweile auf openssl eingeschossen und expermimentiere mit

RSA_public_(de/en)crypt(lic_bin_len, lic_bin, result, rsa, PADDING)

das funkt schon ganz gut, wenn man sich mal durch die wirklich seeehr dürftige Beschreibung durchgearbeitet hat.

Kann schon unique feature hashes generieren und verifizieren !

Danke
 

Ähnliche Themen

Rollei Mini Wifi Camcorder

Wine Soundprobleme mit SoundMAX AD1986A unter Linux (Asus M2NPV-VM)

IBM T22, Debian Etch 4, X-server start nach Neuinstall

Zurück
Oben