Lega la chiave al computer

0

Ho un'applicazione server client. È possibile legare una chiave di crittografia ad alcuni computer (ad esempio il mio client) in modo tale che la chiave venga rubata. L'attaccante non sarà in grado di usare quella chiave da un altro computer?

es. un modo è lasciare che il server accetti le connessioni solo da alcuni IP specifici (nel caso in cui qualcuno abbia rubato la chiave, lui / lei non possa connettersi da altri PC). Ma questo non funzionerà se l'IP non è statico. Qualche altra idea in questa direzione?

    
posta 17.11.2015 - 08:19
fonte

1 risposta

1

Non c'è modo senza hardware aggiuntivo per fare ciò che non è elusivo. È il problema del DRM.

Potresti usare l'hardware che ha la chiave per generare il MAC. Questa è una proposta costosa, ma potrebbe valerne la pena se il contenuto / IP è sufficientemente prezioso.

Senza hardware aggiuntivo, la chiave di crittografia può essere spostata e le informazioni sul dispositivo possono essere modificate. Potrebbero esserci piattaforme in cui la chiave può essere bloccata (TPM, cryptochip), ma come ti fidi delle informazioni che il dispositivo condivide su questa chiave? Può sempre forgiare la chiave in userland manipolando il tuo programma. Anche se fornisci la chiave deve passare attraverso l'utente prima di arrivare al TPM o al Crytochip e può essere intercettato e rubato lì.

La soluzione migliore senza hardware a cui riesco a pensare è quella di includere le informazioni della macchina nel MAC e di avere controlli lato server per più client. Le informazioni sulla macchina sono perdonabili: qualcuno che esegue il debug della tua app sarà in grado di apprendere quali fattori stai utilizzando e di inserire degli hook che forgiano i valori che ti aspetti, quindi è insufficiente.

Se due o più indirizzi IP stanno facendo richieste simultanee, allora hai qualche indicazione che l'utente sta vagando o sta violando il limite del tuo singolo dispositivo. Avere un certo heurisic per un periodo di grazia su più IP equivale a bilanciare questo e limitare il rischio di bloccare un dispositivo legittimo.

Gli utenti saranno comunque in grado di utilizzare più dispositivi se hackeranno il tuo client-sode, ma non saranno in grado di usarli contemporaneamente, il che credo sia una restrizione più significativa nella pratica.

    
risposta data 18.11.2015 - 14:04
fonte

Leggi altre domande sui tag