Estoy investigando métodos de autenticación de software que son fáciles pero seguros de implementar en mis propios proyectos.
IDEAS: Pasos para autenticar aplicaciones
La aplicación se ejecuta desde una unidad USB, ya que nunca se instala en ninguna computadora.
- Cada vez que se ejecuta, el software inicia información como la ID de hardware USB y tal vez una ID única para la aplicación se recopila y de alguna manera se inserta de forma segura en una cadena similar a una clave de activación.
- Esta cadena se pasa luego como un parámetro a una función de PHP donde se invierte (lado del servidor) y se verifica el contenido en una base de datos para verificar que la aplicación se ejecutó desde una llave USB 'autorizada' y no se copió de una a otra. otra (ya que la ID de H / W cambiaría y no coincidiría con la de la base de datos): efectivamente, esto minimizaría la posibilidad de que un cliente obtenga dos "licencias de software" que funcionen.
Preguntas
La idea es poder recuperar las columnas de la fila en la base de datos, que coincida con el ID de HW particular y el secreto único de la aplicación ubicará la fila correcta. El PHP se usa para verificar si otras entradas en esa fila también coinciden con otros valores, como si la clave HW está caducada o no. Sin embargo, , para evitar que el usuario use el mismo parámetro de cadena cada vez, debería ser aleatorio y casi imposible de calcular / adivinar, pero enlazar a la misma ubicación en la base de datos.
Ahora estoy considerando el cifrado en lugar del hash (para el beneficio de mantener los datos), ya que se puede descifrar usando una clave maestra en el servidor. Entiendo que el hash solo se convierte en una dirección y tal vez no estaba expresando el escenario correctamente antes de esta edición, así que espero que las cosas se hayan vuelto un poco más claras. ¿Podría alguien guiarme en la dirección correcta? ¿Cómo se hace esto?
Realmente agradecería cualquier comentario e ideas sobre cómo hacer que esto suceda correctamente.