Abbiamo un sistema di licenze in cui il nostro software, un prodotto commerciale che vendiamo alle persone, contatta il nostro server di licenze quando inizia a ottenere un OK per l'esecuzione.
Contatta l'URL della licenza e restituisce un file XML firmato con la nostra chiave pubblica. Verifichiamo la firma con la nostra chiave privata, costruiamo un file XML da inviare e firmiamo con la nostra chiave privata. L'app utilizza quindi la chiave pubblica per verificare che ci provochi e agisca sulla risposta.
Stiamo cercando di consentire l'override dell'URL e della chiave pubblica con i valori impostati nella configurazione dell'app. L'override dell'URL verrebbe utilizzata per consentire ai clienti di testare il nostro nuovo server delle licenze. Sostituire la chiave pubblica è gestire il caso in cui la nostra chiave privata diventa nota e dobbiamo cambiarla.
Tuttavia, mi sembra che qualcuno possa ignorare entrambi per fare in modo che puntino al server usando la loro chiave pubblica e ora hanno dato a tutti la possibilità di ignorare il nostro assegno.
È un buco nel sistema? E se è così, è una cattiva idea permettere di essere sovrascritto? Se possiamo tranquillamente ignorarne uno, ma solo uno, penso che sia la chiave pubblica a consentire l'impostazione nel file di configurazione.
O c'è un altro modo per fare tutto questo?