Domanda

Quali consigli può dare per un sistema che deve effettuare le seguenti operazioni:

Caricare i Plugins (ed eventualmente eseguire di loro), ma sono 2 metodi di caricamento di questi plugin:

  • Caricare solo autorizzato plugin (sviluppato dal proprietario del software)
  • Carico di tutti i plugin

E abbiamo bisogno di essere ragionevolmente sicuro che i titolari del plugin sono il vero affare (non modificato).Tuttavia tutti i plugin devono essere in separate assemblee.Ho cercato l'uso di potenti assembly con nome sicuro per i plug-in, con la chiave pubblica memorizzati nel caricatore applicazione, ma a me questo sembra un modo troppo facile per modificare la chiave pubblica all'interno del caricatore di applicazione (se l'utente è stato così inclinato), a prescindere da qualsiasi offuscamento del caricatore di applicazione.Più sicuro di idee?

È stato utile?

Soluzione

Fondamentalmente, se stai inserendo il tuo codice sulla macchina di qualcun altro, non c'è alcuna garanzia assoluta di sicurezza.

Puoi guardare tutti i tipi di trucchi per la sicurezza, ma alla fine il codice è sulla loro macchina, quindi è fuori dal tuo controllo.

Quanto perdi se l'utente finale carica un plugin non autorizzato?

Altri suggerimenti

  

Quanto perdi se l'utente finale carica un plugin non autorizzato?

È vero che ciò non accadrà spesso, ma quando / se succede perdiamo molto e anche se capisco che non produrremo nulla di sicuro al 100%, voglio renderlo abbastanza difficile da scoraggiare le persone dal farlo .

La cosa fastidiosa di andare con un semplice caricamento dinamico con un nome sicuro, è che tutto ciò che serve è una semplice modifica letterale di stringa all'interno dell'app loader per caricare qualsiasi altro assembly anche se i plug-in sono firmati.

puoi ampliare la tua domanda: " come posso proteggere i miei assiemi .net dal reverse engineering? "

la risposta è: non puoi. per coloro che non l'hanno ancora visto, basta cercare "riflettore" ed eseguirlo su qualche ex ingenuo.

(a proposito, questa è sempre la risposta per il codice che è fuori dalle tue mani, purché tu non abbia un hardware en / decryption inviato con esso),

l'offuscamento cerca di rendere il reverse engineering più difficile (costa più denaro) dello sviluppo, e per alcuni tipi di algoritmi ha successo.

Firma gli assiemi.

  

Firma con nome sicuro o denominazione sicura,   fornisce un componente software a livello globale   identità unica che non può essere falsificata   da qualcun altro. Vengono usati nomi forti   per garantire quel componente   dipendenze e configurazione   le istruzioni vengono mappate esattamente a destra   componente e versione del componente.

http://msdn.microsoft.com/ it-it / library / h4fa028b (VS.80) aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top