My major hiccup with making this a game server is still security; I
acknowledge that many users won't be needing a high security
workhorse, I'd also rather not be responsible for allowing game
hackery;
Most servers should have SSL set up prior to installing Marjor.am
(almost always an extra cost), but I want something to exist even
without SSL protection; My proposition is coming up with a way to use
RSA or some other asymmetric cipher, as it would be much more
difficult to break, even in an open-source game; My proposition is the
following:
First run of game, game generates public and private RSA key;
Game produces encrypted public RSA key using AES encryption (shared
key, known by server)
Game sends public key to server, which returns its public RSA key and
saves the game's public key in a database
Game then makes all future requests by encrypting them with server's
RSA key.
Issues:
RSA encryption does not appear to be completely functional in Unity3D,
but they may be libraries written by others, and worst case, I have
found javascript implementations of it that could be written as a
Unity script
The RSA key is locally encrypted with AES, meaning that the shared key
is visible in the source; I will need to meditate on how to get around
that