Rook

paul.l.vines {at} gmail.com

This work is to be presented last year at the Workshop on Privacy in the Electronic Society (WPES'15) in October.

Rook is a censorship-resistance platform for transferring data covertly between parties by hiding the data in the traffic of online games. The related paper can be viewed here.

The basic outline of Rook's function is:

  • Rook runs between the application and OS and intercepts packets
  • Rook hides data be altering outgoing packets without making them violate the game network protocol
  • Rook receives data by inspecting incoming packets for data hidden by another Rook user
  • Data is hidden according to a table of previously seen valid values to prevent impossible data from being sent (and thus easily detected)

Rook is fairly generalizable to many different games, including UDP or TCP-based network protocols. The main requirements are:

  • A direct connection between two Rook users (so either a P2P game or a game allowing private servers)
  • A code module that specifices which pieces of the game packets can be altered and in what ways (essentially a reverse-engineering of the core game network protocol)