Ho bisogno di implementare qualcosa di simile a un server di licenza. Questo dovrà essere installato fuori sede presso la sede dei clienti e dovrà comunicare con altre applicazioni presso il sito dei clienti (le applicazioni che utilizzano le licenze) e un'applicazione in esecuzione nel nostro centro di hosting (per la segnalazione e ottenere informazioni sulla licenza).
La mia domanda è come impostare questo in un modo in cui mi posso fidare:
- Il server delle licenze è davvero la nostra applicazione e non qualcosa che lo simula; e
- Non esiste un "uomo nel mezzo" (cioè un proxy o qualcosa che altera il traffico).
La prima cosa che ho pensato era di usare con i certificati client e questo avrebbe risolto almeno 2. Tuttavia, quello che mi preoccupa è che qualcuno decompila (questo è costruito in .NET) il server delle licenze, altera alcuni la logica e la ricompensa. Questo sarebbe difficile da rilevare da entrambe le applicazioni di connessione.
Questo non deve essere assolutamente sicuro poiché abbiamo un numero limitato di clienti con cui abbiamo un rapporto di fiducia. Tuttavia, voglio renderlo più difficile di un semplice decompilare / ricompilare il server delle licenze. Voglio principalmente proteggere da un dipendente o un nipote del capo che cerca di essere intelligente.