Patent ID: 6889209

Claim:
A method for supervising usage of software on a user device comprising the steps of: computing, by a supervising program within said user device, a first hash function value of a tag table; sending, by said supervising program, a call-up message to a guardian center, said call up message comprising said first hash function value, an identifier value of said tag table, and a second hash function value of said tag table sent in a previous call-up message; verifying, by said guardian center, that said hash function value of said tag table sent in said previous call-up message is a most recently stored value in a list of hash function values stored by said guardian center and associated with said identifier value of said tag table; upon successful verification by said guardian center, appending said received first tag table hash function value to said list of hash function values associated with said identifier value of said tag table; and sending, by said guardian center, a continuation message to said supervising program, said continuation message comprising a superfingerprint and a portion of said call-up message to detect and halt the duplication of a tag table on several user devices; said superfingerprint comprising a list of hash functions resulting from hashes performed on software, a weight value W which defines how many times the supervising program should run, program P and conditions that the supervising program must hold in order to run P, and computer programs used by the supervising program to detect invalidly running software.