Connection encryption
Posted: 24 Jun 2010, 20:28
Hello,
we have recevied a couple of questions about encryption (using TLS/SSL or similar) using SFS2X. Since this seems to be a "hot topic" we would like to discuss the details here and gather some feedback and suggestions.
SmartFoxServer 2X uses a highly efficient binary protocol which is already designed and ready to support encryption, so we think to support it eventually, although maybe not in the first releases.
However in the course of the last years we have done lots of research and built several encryption prototypes and have found that, in actuality, encryption uses quite a bit of resources and doesn't seem to add remarkable security improvements.
Even a super secure and super encrypted connection can be prone to cheating and misuse if the server side code doesn't sanitize input correctly or if it doesn't apply strong validation. More in general the whole system (server, framework, api, custom server side code) must be all inherently secure to guarantee a certain amount of real safety. In this list of priorities we don't feel that the connection encryption stands in the first positions in terms of importance.
Let's start from some basic things: multiplayer game users are connected via a persistent socket. The possibility that someone spies on the game connection and hijacks it to inject bad data and make the User loose is highly unlikely. If someone did that to me it would mean that my whole system is compromised and remotely controllable. Not only this is difficult to perform but can't be done "en masse", plus the idea that the system is in the hand of someone else would have ramifications that would go far beyond the multiplayer cheating.
Don't get me wrong we're still interested in implementing the feature but after a long analysis we have decided to move it to a lower priority.
Ok, someone would say "And the competition?" Sure maybe the competition is boasting about some "encryption superpowers" but I would really like to understand what it really boils down to. In our research we have found very few ideas. Most of the stuff we've seen is just marketing hype.
Finally also please consider that the idea of running multiplayer apps and games over a full SSL session is unreal because the protocol is quite heavy and much slower, plus many of the server updates (room counts, users coming/going, room join...) don't contain any sensible data, so there would be significant resource waste.
I have many more doubts as regards the real efficacy of SSL-like encryption for game servers but I'll stop here and wait for your feedback.
The real purpose of this this is to hear the reasons why you think it would make a difference and in which scenario(s) you would use it.
Thanks
we have recevied a couple of questions about encryption (using TLS/SSL or similar) using SFS2X. Since this seems to be a "hot topic" we would like to discuss the details here and gather some feedback and suggestions.
SmartFoxServer 2X uses a highly efficient binary protocol which is already designed and ready to support encryption, so we think to support it eventually, although maybe not in the first releases.
However in the course of the last years we have done lots of research and built several encryption prototypes and have found that, in actuality, encryption uses quite a bit of resources and doesn't seem to add remarkable security improvements.
Even a super secure and super encrypted connection can be prone to cheating and misuse if the server side code doesn't sanitize input correctly or if it doesn't apply strong validation. More in general the whole system (server, framework, api, custom server side code) must be all inherently secure to guarantee a certain amount of real safety. In this list of priorities we don't feel that the connection encryption stands in the first positions in terms of importance.
Let's start from some basic things: multiplayer game users are connected via a persistent socket. The possibility that someone spies on the game connection and hijacks it to inject bad data and make the User loose is highly unlikely. If someone did that to me it would mean that my whole system is compromised and remotely controllable. Not only this is difficult to perform but can't be done "en masse", plus the idea that the system is in the hand of someone else would have ramifications that would go far beyond the multiplayer cheating.
Don't get me wrong we're still interested in implementing the feature but after a long analysis we have decided to move it to a lower priority.
Ok, someone would say "And the competition?" Sure maybe the competition is boasting about some "encryption superpowers" but I would really like to understand what it really boils down to. In our research we have found very few ideas. Most of the stuff we've seen is just marketing hype.
Finally also please consider that the idea of running multiplayer apps and games over a full SSL session is unreal because the protocol is quite heavy and much slower, plus many of the server updates (room counts, users coming/going, room join...) don't contain any sensible data, so there would be significant resource waste.
I have many more doubts as regards the real efficacy of SSL-like encryption for game servers but I'll stop here and wait for your feedback.
The real purpose of this this is to hear the reasons why you think it would make a difference and in which scenario(s) you would use it.
Thanks