Come utilizzare TPM per identificare un computer per scopi di licenza?

4

Sono stato incaricato di utilizzare TPM per aggiungere un sistema di licenze a un progetto software esistente. L'idea è di utilizzare TPM per identificare in modo univoco il computer (che esegue GNU / Linux, probabilmente CentOS / RHEL / Fedora) in modo che il file di licenza possa essere utilizzato solo su quel computer. Prima di conoscere TPM avremmo usato una composizione di indirizzo MAC, ID della scheda madre e altri codici seriali presenti per provare ad identificare univocamente il computer, ma la maggior parte di questi non era a prova di manomissione.

Ho letto di TPM ma sono un po 'confuso riguardo alle molteplici funzionalità che sembra offrire. Per quanto ne so, l'uso della chiave di approvazione o della chiave di identità di attestazione è il tasto qui (gioco di parole), ma a parte questo non sono sicuro di come procedere o anche se in realtà sono corretto nel mio approccio. Forse c'è un modo più semplice per fare ciò che sto cercando.

    
posta José Tomás Tocino 21.07.2016 - 19:47
fonte

1 risposta

1

Poiché stai per eseguire un sistema operativo open source, l'attestazione non funzionerà in modo affidabile. Il TPM sarà in grado di attestare fino al caricatore del sistema operativo, ma dopo questo, l'attestazione diventa difficile in quanto il software open source è facile da modificare.

Suggerirei di utilizzare la chiave di identità di attestazione, per creare una firma di attestazione remota (TPM_Quote) e quindi utilizzare un servizio cloud per ospitare la maggior parte delle applicazioni.

L'app client funge semplicemente da "interfaccia stupida" al server cloud e TPM_Quote viene inviato al server come "accesso". Questo può anche essere usato per negoziare una "chiave di sessione" che solo il TPM e il tuo server possono utilizzare per crittografare / decrittare.

Questo significa che un cracker può copiare la tua applicazione fino a quando le mucche tornano a casa, non importa, dato che il tuo server non accetterà un TPM_Quote da un sistema manomesso.

Ciò semplifica anche la revoca delle licenze in caso di uso improprio, ad esempio se un cliente abusa, ad esempio, di una licenza personale prestando l'accesso RDP / VNC al computer a persone esterne ai locali dei clienti.

Si noti che l'applicazione non crittografata deve ancora essere disponibile per il sistema operativo host, quindi indipendentemente dalle funzionalità del TPM che si utilizzano, sarà comunque crackabile fintanto che la verifica viene eseguita localmente. Anche se si utilizza l'attestazione con memoria sigillata e memoria a tendina, un cracker sarà ancora in grado di decifrare l'applicazione, poiché la memoria sigillata e la memoria a tendina possono contenere solo dati, non codice eseguibile. (sì, è possibile avere un codice eseguibile ad esempio per la memoria a tendina, ma affinché il sistema operativo host sia in grado di eseguirlo, è necessario spostarlo all'esterno della memoria a tendina).

Ecco perché è necessario utilizzare un servizio cloud, in modo da poter applicare lo stato non manomesso del computer client da una posizione centrale a cui un cracker non può accedere fisicamente e quindi ospitare l'applicazione su questa posizione, quindi anche se il cracker ha accesso completo al codice sorgente lato client, non possono usufruire del servizio in questione.

    
risposta data 22.07.2016 - 02:49
fonte

Leggi altre domande sui tag