Quello che stai chiedendo di fare è cercare di fare è impossibile. Se la macchina può capire come eseguire un'applicazione, anche quella umana.
Ora, il tuo codice sorgente deve essere assolutamente leggibile a fini di manutenzione e audit, se la sicurezza è davvero una delle tue preoccupazioni principali.
Come per impedire alle entità malvagie di decodificare il tuo WAR, hai alcune opzioni, alcune più radicali.
-
Cambia il tuo metodo di consegna in software-as-a-service. Le entità ostili non vedono mai la tua GUERRA, ma assumono rischi aggiuntivi, in quanto la tua azienda sarà quella attaccata ora, non i tuoi clienti. Stai centralizzando anche i dati dei tuoi clienti, quindi una violazione di un cliente in un sistema progettato male interesserà tutti i clienti.
-
Utilizzare una qualche forma di gestione delle licenze all'interno dell'applicazione. Metti in chiaro che chiunque eluderà le restrizioni sarà a carico del tuo dipartimento legale. Il problema consiste nel rilevare quando qualcuno tenta di decodificare la tua WAR. Eliminando i controlli di auto-integrità casuali nel codice sorgente, alcuni potrebbero aiutare il telefono a casa, se falliscono, ma si trovano su basi instabili - gli autori di attacchi possono rimuoverli.
-
Vai a Open Source. Seriamente, vai all'open source e posizionati come consulente e SaaS come sopra. Ci sono dei seri vantaggi in questo, ad esempio la legge di Linus potrebbe entrare in gioco. Tuttavia, se il tuo algoritmo è un segreto commerciale, o la tua sicurezza si basa su Principio di Kerckhoffs , questa potrebbe essere una cattiva idea . Ovviamente, dovrai riprogettare i piani di cash flow attuali della tua azienda. Esistono anche diversi modelli di questo, ad esempio, edizioni commerciali ed edizioni professionali gratuite, o plug-in di pagamento.