Seguridad de transmisión de datos PHP / Ajax

-1

Estoy aprendiendo sobre los mecanismos de seguridad web. He desarrollado el siguiente sistema. en PHP y JavaScript:

asumiendo que tengo una página llamada: messages.php que es un sistema de chat en tiempo real.

  1. primero cuando se carga la página, se genera un ID de página y luego se almacena una clave de cifrado en una sesión llamada $_session["key".page_id] . el uso de page_id hace posible usar una clave de cifrado única para cada página "messages.php" abierta en el navegador. La clave de cifrado y la identificación de la página también se reproducen en la página de esta manera: var key = [generated_key_stored_in_session] y var page_id = [generated_page_id] .
  2. cuando el usuario envía un mensaje, primero se cifra mediante AES con la variable key como clave de cifrado. después del cifrado, el mensaje cifrado y la variable page_id se enviarán al servidor con el método POST utilizando Ajax.
  3. Ahora el servidor recibe los datos y carga la clave de cifrado de la sesión con el page_id recibido. y el mensaje recibido será descifrado y almacenado en la base de datos.
  4. Y ahora el servidor genera una nueva clave que establece un $_session["key".page_id] con eso y luego hace eco de la nueva clave de cifrado que será recibida por Ajax y se usará para un mayor cifrado.

Creo que este método no es seguro porque la clave de cifrado se transfiere como texto y es posible leerlo con las herramientas del monitor de tráfico.

He leído sobre el almacenamiento de la clave en un archivo JavaScript y envío el archivo al cliente. ¿Cómo es este método?

¿Cuál es la mejor manera de enviar la clave? y ¿cómo puedo implementar el sistema de clave pública / clave privada aquí?

    
pregunta Agha 25.07.2014 - 18:18
fuente

1 respuesta

0

La biblioteca jsencrypt implementa el cifrado RSA en javascript, que puede ser lo que usted desea, pero parece que está intentando crear más. Implementación de cifrado básico con fines educativos. Yo sugeriría leer la fuente de esta biblioteca e intentar extraer piezas que serían relevantes para su proyecto.

    
respondido por el user1786575 29.07.2014 - 18:18
fuente

Lea otras preguntas en las etiquetas