Implementation Lizensierung Problematik ...



  • Hallo miteinander ...

    Mir gehen grad bissi die Ideen aus (ist ja auch Montag morgen ... )

    Ich soll (schnell) einen Lizenzierungs Mechanismus entwickeln / bauen / hinschustern ­čÖé

    Zeil ist es, einzel Lizenzen freizuschalten, auf nen System was nicht am Internet h├Ąngt, bzw auch gar kein Netzwerk haben kann. Freischaltung kann extern erfolgen ├╝ber Schl├╝ssel austausch irgendwie (f├╝r mich nicht relevant).
    Also bis dahin alles kein Problem.

    Um das zu entwickeln brauch ich aber nen Secret, was eindeutig das Ger├Ąt identifiziert, und wenns geht sich nicht so oft ├Ąndert ^^

    Dazu kommen noch paar schwierigkeiten ...

    Es soll nur eine Library abgesichert werden, das binary wird nicht von uns erstellt ...
    Schlussel wird also nur in der API ├╝bergeben.
    Ich hab somit keine root rechte und keine Installation ... unsere Lib soll nur in ein verzeichnis geworfen werden und funktionieren.
    Ich hab kaum wissen ueber Filesystem.
    Momentan ists nen Ubuntu ... kann aber s├Ąter was ganz anderes sein ... also linux kernel weiss ich, das wars dann.
    (wir bekommen die entwicklungs-Kits und muessen die Lib dementsprechend anpassen/neu compilieren)

    CPU ist nen COrtex A irgendwas also armv7 Befehlssatz.

    CPU Id -> gibts nicht. Hat zwar ne ID in den eigenschaften, aber auf den Eval Boards die wir haben ist das immer 0000000000

    GPU ist nen Nvidia Kepler Chipsatz.
    GPU ID, keine Bib liefert mir bisher irgendwas ... hab opencl, cuda, opengl zur verf├╝gung, aber keiner liefert mir da was
    (nvml nicht verf├╝gbar)

    BLKID - keine Ahnung ob die Eindeutig ist. Das teil arbeitet mit aufgel├Âteten SSD's von nem SPeicher ger├Ąt kann ich im proc verzeichniss ne UUID lesen sogar als User, keine ahnung ob das standard ist. Normal sollt man doch da nur als root rankommen ?

    MAC - Anbindung per USB festverdrahtet. MAC's sind programmierbar.

    Externe Hardware (USB Dongle) ist ebenfals undenkbar ...

    Mir gehen langsam die Ideen aus ...

    Also 100% sicher muss das nicht sein, aber auf der gegenseite, also die die damit arbeiten, sind Embedded entwickler und keine herk├Âmlichen User.
    Es geht auch nicht um Millionen oder Milliarden sondern wenige Installationen.
    (Momentan m├Âchten wir nur serienbetrieb eher ausschliessen)

    Hat wer noch ideen was man f├╝r hernehmen kann ?

    Ciao ...



  • Mal auf die Schnelle folgender Ansatz:

    Du richtest eine (verschl├╝sselte) Datei ein. In diese Datei schreibst du den
    UserName des Anwendersystems und den Schl├╝ssel. Die Anwendung oder
    die Lib pr├╝ft die Datei. Bei falschen Angaben wird die Lib deaktiviert.



  • Danke, aber genau das wird nicht funktionieren ...

    Das sind keine herk├Âmmlichen PC's sondern embedded HW, im End-Stadium dann eher Steuerger├Ąte als Computer. Die laufen in Ihrem System (Netzwerk biotop, Fahrzeug in dem Falle) v├Âllig autark und abgekoppelt vom rest der welt. Es wird nicht nur M├Âglich sein, sondern sogar angestrebt sein, das die systeme so identisch wie m├Âglich sind ^^
    Anmeldung, Login, Identifikation gibts nicht in der Form ...
    Macs intressieren auch keinen, koennen auch identisch sein, f├╝r das System kein problem.

    Ciao ...



  • Kommst du an die Festplatten-ID ran?



  • Kommst du an die Festplatten-ID ran?

    BLKID - keine Ahnung ob die Eindeutig ist. Das teil arbeitet mit aufgel├Âteten SSD's von nem SPeicher ger├Ąt kann ich im proc verzeichniss ne UUID lesen sogar als User, keine ahnung ob das standard ist. Normal sollt man doch da nur als root rankommen ?

    Also festplatte im herkoemmlichen sinn hat der nicht.
    Er hat Sata ports(unbelegt), keine Ahnung wie die angebunden sind, weil pci sollt der nicht haben ...
    Er hat aufgel├Âteten Flashspeicher .... /dev/mmcblk0 (f├╝rs boot image)
    daf├╝r bekomm ich auch ne blkid.
    Keine ahnung ob die eindeutig ist ... hat sowas im orginal ne Serial ID wie ne Festplatte ?
    (Hab leider nur 1 eval board normal da)

    2. Problem dabei:
    Ich krieg das Zeugs nur als root ....
    blkid laeuft allerdings mit gesetzten setuid bit.
    ├╝ber libblkid krieg ich die infos leider nur wenn die Anwendung mit (E)Uid=0 laeuft.

    Ciao ...



  • Funktioniert das?

    #define _GNU_SOURCE
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char **argv)
    {
       FILE *cpuinfo = fopen("/proc/cpuinfo", "rb");
       char *arg = 0;
       size_t size = 0;
       while(getdelim(&arg, &size, 0, cpuinfo) != -1)
       {
          puts(arg);
       }
       free(arg);
       fclose(cpuinfo);
       return 0;
    }
    

    http://stackoverflow.com/questions/9629850/how-to-get-cpu-info-in-c-on-linux-such-as-number-of-cores

    Ich kenne mich mit Linux nicht aus. Unter Windows ist es aber so, dass einige Informationen auch als Normalbenutzer auslesbar sind.



  • cat /proc/cpuinfo

    processor       : 0
    model name      : ARMv7 Processor rev 3 (v7l)
    Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 
    CPU implementer : 0x41
    CPU architecture: 7
    CPU variant     : 0x3
    CPU part        : 0xc0f
    CPU revision    : 3
    
    processor       : 1
    model name      : ARMv7 Processor rev 3 (v7l)
    Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 
    CPU implementer : 0x41
    CPU architecture: 7
    CPU variant     : 0x3
    CPU part        : 0xc0f
    CPU revision    : 3
    
    processor       : 2
    model name      : ARMv7 Processor rev 3 (v7l)
    Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 
    CPU implementer : 0x41
    CPU architecture: 7
    CPU variant     : 0x3
    CPU part        : 0xc0f
    CPU revision    : 3
    
    processor       : 3
    model name      : ARMv7 Processor rev 3 (v7l)
    Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32                                                
    CPU implementer : 0x41                                                                                                                    
    CPU architecture: 7                                                                                                                       
    CPU variant     : 0x3                                                                                                                     
    CPU part        : 0xc0f                                                                                                                   
    CPU revision    : 3                                                                                                                       
    
    Hardware        : p1859                                                                                                                   
    Revision        : 0000                                                                                                                    
    Serial          : 0000000000000000                                                                                                        
    Processor       : ARMv7 Processor rev 3 (v7l)
    

Log in to reply