[MUD-Dev] Trusting the client, encrypting data

Ola Fosheim Grøstad <olag@ifi.uio.no> Ola Fosheim Grøstad <olag@ifi.uio.no>
Thu Nov 27 15:17:20 CET 2003

I've suggested something similar, a long time ago, but will try
again. Hoping for some discussion.

One core problem in virtual worlds with a large user-base is that
there are no surprises as the client has access to the entire
database which is static. This is viewed as necessary in real-time
interaction as the responsiveness of the internet is not guaranteed.

A solution to this is to presend data in a neighbourhood arround the
location currently occupied by the avatar. Unfortunately this will
let a hacked client expose any surprises "behind locked doors" and
thus give hard-core users an unfair advantage.

However, this can easily be solved by (symmetrically) encrypting
data on a cell-by-cell basis using unique keys for each cell. The
problem is then reduced to sending the decryption key in a timely

How do you achieve timeliness? I would suggest sending a datagram
(could be a TCP/IP fake in order to circumvent router priorities as
you only need 32-64 bits to be transferred) down 2-3 different
connections. Is this sound given the net topology? Or are the
bottlenecks usually near the end-user?  Comments
appreciated. Another solution is to rely on next generation network
protocols sending only keys with top priority in order to limit
costs, but I am not sure when this will become a reality. Anyone?

  (Note: Encrypted data shared by multiple users could also be sent
  over HTTP in order to take advantage of caching proxies. You
  should also distinguish between encrypted chunks with short-term
  and long-term data, but that goes without saying.)

Ola - http://folk.uio.no/olag/
MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the mud-dev-archive mailing list