¿Cómo instalar el cliente de forma segura?

3

Estoy escribiendo un programa en PHP que envía datos de un maestro a muchos clientes (todos los sitios web de Joomla). Cuando se instala el software cliente, debe enviar un mensaje al maestro identificándose, y luego el maestro responderá con información de configuración (incluida una clave que se usará para verificar las futuras comunicaciones).

¿Cuál es la mejor manera de activar esta conexión de forma segura? Actualmente, el maestro tiene una base de datos con URL de cliente permitidas, y para que se instale un cliente, debe agregarse manualmente a la base de datos. Me gustaría usar un sistema que elimine el error humano, pero aparte de leer el publicación de Horror de codificación , soy completamente nuevo en esto.

Principalmente estoy buscando el modelo conceptual que tendré que implementar. Me gustaría que esta sea una experiencia de aprendizaje. Las bibliotecas ayudarían, pero quiero saber por qué estoy haciendo lo que estoy haciendo.

    
pregunta SomeKittens 22.06.2012 - 15:06
fuente

1 respuesta

2

Tu pregunta me parece un poco ambigua porque no entiendo lo que quieres exactamente a través de ella. ¿Desea los pasos teóricos que debe seguir o los algoritmos y bibliotecas prácticos para su idioma particular que puedan ayudarlo a hacerlo?

Si es una guía general sobre cómo hacer que la arquitectura de cliente-servidor se base en la seguridad del software, aquí hay una buena lectura: enlace

Según tengo entendido, usted desea un método para autenticar automáticamente una licencia y agregar el I.P. de la computadora específica. a su base de datos de direcciones IP permitidas?

Una buena manera de hacer esto es usar un algoritmo simple de SALT + Hashing en el que:

  1. Cada instalación viene con un ID de producto.
  2. Este cliente debe pasar esta ID de producto única al servidor cada vez antes de usarla, en la que el servidor toma la ID del producto, verifica si es válida y luego genera un código de acceso (basado en la sal única de ese día dependiente diga la fecha y md5 de la sal + prodID).
  3. Este ID de acceso se agrega a la tabla de acceso y se devuelve al cliente. De esta manera, todos los días en la primera ejecución se verificará la validez del cliente.

¿Por qué este enfoque es bueno? Este enfoque te deja el método de validez. Es decir. Cuando obtiene el prodID, puede garantizar varias cosas como:

  • ¿Alguna otra computadora ha intentado usar esta ID de producto hoy?
  • ¿Se utiliza esta ID de producto por primera vez? En ese caso almacene la IP
  • Si no se usa por primera vez, ¿se permite el cambio de IP? Si es así, ¿con qué frecuencia?

Editado:

Muy bien, cambiaremos un poco el procedimiento anterior para que funcione. Supongo que desea utilizarlo en una especie de sistema de licencias.

  1. Configure su sistema de pago para generar un producto o ID de licencia para una compra exitosa. Este ID puede ser cualquier cosa, pero recuerde almacenarlo en su base de datos.
  2. Cuando el cliente ejecuta la extensión de Joomla por primera vez, obtenga la extensión de Joomla para tomar el ID del producto una vez, y almacenarlo localmente. Luego pásalo al servidor para registrarte.
  3. En el servidor, nuestra tabla de productos tendrá dos columnas (pID, URL). Si el producto tiene una URL nula, colocamos nuestra URL en el registro donde pID = Nuestro pID Si no, y nuestra URL no es la URL existente, tenemos una instalación no autorizada de una instalación en una ubicación separada de la original. Se tendría que usar un método separado para volver a validarlo.
respondido por el Rohan Durve 22.06.2012 - 15:24
fuente

Lea otras preguntas en las etiquetas