KeyLink uses USB memory keys to store and forward data. The file system on the key stores ‘frozen’ packets that would otherwise have been sent on an end-to-end connection. With security enabled, all data is encrypted with a per-user cryptographic key so that no user can read any other user’s data. Moreover, if a key is lost, no one can read any data on the key. Keylink allows multiple keys to be used and these can be plugged into a proxy or any of the clients in arbitrary orders.