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)
    

Anmelden zum Antworten