Nunca he usado sockets web, pero estoy trabajando en un marco PHP que tiene una función de transmisión integrada. Esta transmisión utiliza tecnologías web-sockets llamadas Redis y Pusher. El flujo de trabajo de esta transmisión es el siguiente:
1 Server publishes data on a channel say Test-channel when some appropriate event is fired
2 We retrieve data through Javascript using channel name on client side.
Ahora quiero usar este mecanismo de transmisión para implementar el chat privado como el de Facebook. El problema que estoy viendo en esto es la privacidad. Es posible cambiar el nombre del canal en javascript para recuperar mensajes de otros si determinamos el nombre del canal de otros o si aplicamos permutaciones para el nombre del canal y los escuchamos en el cliente con javascript.
He creado una nueva solución para evitar este problema de privacidad y quiero sus sugerencias de expertos o también puede recomendarlo con otros enfoques. Los pasos están abajo:
1 When users come online, assign him random channel name and encryption key
2 This channel name and encryption key is known by only server and the receiver's browsers
3 Sender do not know the channel name and encryption key, he posts message on server with receivers unique id or username
4 Server saves the message into database, encrypts it with receiver's key and sends on his channel
5 Receiver will receive message on his channel and decrypt it with his key.
¿Este enfoque es correcto? Si no, ¿cuál debería ser el enfoque alternativo y eficiente? ¿Qué tipo de vulnerabilidades podría haber allí?
Las ediciones apropiadas, los comentarios y las respuestas serán muy apreciados.