1. A method for resisting attempts to tamper with the structure or function of a computer program, the computer program running on a first computer system and being designed to carry out one or more specified tasks, the method including: detecting an attempt to tamper with the structure or function of the computer program, including: sending a message stamped with time-stamp information to a second computer system, the time-stamp information including a time offset, wherein the second computer system periodically receives the time-stamp information from the first computer system, and determines a difference between the time stamp information and a local time at the second computer system, and wherein a difference between the time stamp information and the local time at the second computer system greater than a predetermined amount is treated as an indication of an attempt to tamper with the structure or function of the first computer system; receiving, at the first computer system, from the second computer system, an indication of attempted tampering; delaying an additional response to detected tampering by at least a first predefined period of time following detection of attempted tampering; responding to detected tampering by using one or more countermeasures.