1. A method for maintaining remote data, the method comprising the following steps, in any suitable order: running an authenticated program on a trusted platform; binding a first register and a second register on said trusted platform to said authenticated program; storing a random secret in said first register, and insuring that only said authenticated program can read said random secret while said binding is in effect; storing a unique integer value in a second register on said platform, and insuring that only said authenticated program can write to said second register while said binding is in effect; deriving cipher keys from said first register and said second register; maintaining exclusive access to a persistent data structure; protecting said persistent data structure with said cipher keys; parsing said persistent data structure into a list of controlled values, and modifying said controlled values based on commands from remote owners; accepting a command from an authenticated server; changing one of said controlled values, pursuant to said command; changing said unique value in said second register to a distinct value; loading said persistent data structure, and extracting a previously-saved second register value; comparing said previously-saved second register value against the current value of said second register; and refusing to decrypt if the values do not match.