There is a long tradition of copy protection and rights management associated with software products. Among the many techniques used, one of the most common is license enforcement: every copy of the software has an associated digital "license" that gives the user permission to run the software. When the software starts up, it checks this license and if it is not valid, refuses to run. a) Suppose the "license" is just a digitally signed file listing a hostname and expiration date; the verification key is built into the executable. How would you go about circumventing this kind of license check?
b) Now suppose that the "license" is actually a piece of hardware that responds to cryptographic challenges at regular intervals. The hardware device, has a certificate signed by the rights owner, whose public key is built into the software. How does this affect circumvention?