Tenemos un sistema de licencias en el que nuestro software, un producto comercial que vendemos a las personas, se pone en contacto con nuestro servidor de licencias cuando comienza a funcionar correctamente.
Se pone en contacto con nuestra URL de licencia y pasa un archivo XML firmado con nuestra clave pública. Verificamos la firma con nuestra clave privada, creamos un archivo XML para enviarlo y lo firmamos con nuestra clave privada. La aplicación luego usa la clave pública para verificar que es nuestra y actúa en la respuesta.
Estamos considerando permitir que la URL y la clave pública se sobrescriban con los valores establecidos en la configuración de la aplicación. La anulación de la URL se usaría para permitir a los clientes probar nuestro nuevo servidor de licencias. Anular la clave pública es manejar el caso donde nuestra clave privada se conoce y tenemos que cambiarla.
Sin embargo, me sorprende que alguien pueda anular ambos para que apunten a su servidor con su clave pública y ahora les ha dado a todos la posibilidad de omitir nuestro cheque.
¿Esto es un agujero en el sistema? Y si es así, ¿es una mala idea permitir que cualquiera de los dos sea anulado? Si podemos anular con seguridad cualquiera de los dos, pero solo uno, creo que la clave pública es la que permite la configuración en el archivo de configuración.
¿O hay otra manera de hacer todo esto?