Security question #6
-
Hello, Thank you for this excellent sample project! My goal is to have my client app connect to my asp .net core game service in PlayFab, which is deployed as a Windows Process. I use SignalR for the connection and this works great over HTTP. Switching to HTTPS makes it not work for the reasons you've mentioned. I now have a domain and will set up this reverse proxy to allow HTTPS connections between the client and the reverse proxy. The part I'm confused about is, what type of connection is going on between the reverse proxy and the service in PlayFab's VM? If it is an unsecured SignalR connection, isn't that still a significant problem? I can see how we reduced the risk by letting the client securely connect, but the connection between the reverse proxy and VM is still vulnerable. Pardon my ignorance, but is this how most games do it? I'm assuming many games need highly performant and secured connections from client all the way to the service without breaks in between. Please let me know if I'm mistaken. I appreciate the help! -Jonathan |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
Hi Jonathan, The connection between the proxy server and PlayFab hosted VM is a standard websocket.
It's not a problem from a security standpoint, since we consider the PlayFab VM to be within a trust boundary behind the reverse proxy. An important detail in the implementation is that the client is unaware of the connection details between the reverse proxy and PlayFab VM. This is because the client passes a session ID to the reverse proxy, which is used to call RequestMultiplayerServerDetails and resolve the session's FQDN without exposing any of these details to the client. If you're concerned about the unencrypted traffic from reverse proxy to PlayFab VM, you may be able to setup a self-signed cert and select a port accepting WSS connections in your game server. This isn't recommended however, since the cost of re-encrypting traffic and maintaining these certs on the reverse proxy and game server don't seem to outweigh the benefits.
I just want to re-iterate that a reverse proxy solution is not the most ideal and is only necessary for browser clients. Our team is aware of this unfortunate limitation, and we're hoping to offer a better solution at the platform level eventually. |
Beta Was this translation helpful? Give feedback.
-
Thanks, Austin! |
Beta Was this translation helpful? Give feedback.
Hi Jonathan,
The connection between the proxy server and PlayFab hosted VM is a standard websocket.
It's not a problem from a security standpoint, since we consider the PlayFab VM to be within a trust boundary behind the reverse proxy.
An important detail in the implementation is that the client is unaware of the connection details between the reverse proxy and PlayFab VM. This is because the client passes a session ID to the reverse proxy, which is used to call RequestMultiplayerServerDetails and resolve the session's FQDN without exposing any of these details to the client.
If you're concerned about the …