RakNet 2.23 has been released. This adds a ton of new security features that basically make you immune to: Packet tampering 3rd party packet decoding, including by statistical analysis Replay attacks Unauthorized connections This is all done with one function, InitializeSecurity, which you must call before you call Initialize, Start, or Connect. I was able to do this with only a max of 16 extra bytes per transfer unit (which may be many user packets) and a small amount of CPU usage. So there's not much reason not to use it except... The public key generator code I am using basically sucks. I will replace it in a later version. For now, key generation will be very slow.