- When an end user purchases a program, the software developer
requests the user’s processor serial number, and then contacts the
authority to obtain the public key for that serial number. - The program binaries are encrypted using the public key and shipped
or transmitted to the end user. - The end user runs the encrypted program, and the crypto-processor
decrypts the code using the internally stored decryption key (the user’s
private key) and stores the decrypted code in a special memory region
that is not software-accessible. - Code is executed directly from this (theoretically) inaccessible memory.
While at first it may seem as though merely encrypting the protected program
and decrypting it inside the processor is enough for achieving security, it really
isn’t. The problem is that the data generated by the program can also be used to
expose information about the encrypted program (see “Cipher Instruction Search
Attack on the Bus-Encryption Security Microcontroller” by Markus G. Kuhn
[Kuhn]. This is done by attempting to detect environmental changes (such as
memory writes) that take place when certain encoded values enter the processor.
Hiding data means that processors must be able to create some sort of com-
partmentalized division between programs and completely prevent processes
from accessing each other’s data. An elegant solution to this problem was pro-
posed by David Lie et al. in “Architectural Support for Copy and Taper Resis-
tant Software” [Lie] and a similar approach is implemented in Intel’s
LeGrande Technology (LT), which is available in their latest generation of
processors (more information on LT can be found in Intel’s LaGrande Technol-
ogy Architectural Overview[Intel4]).
This is not a book about hardware, and we software folks are often blinded
by hardware-based security. It feels unbreakable, but it’s really not. Just to get
an idea on what approaches are out there, consider power usage analysisattacks
such as the differential power analysisapproach proposed by Paul Kocher,
Joshua Jaffe, and Benjamin Jun in “Differential Power Analysis” [Kocher].
These are attacks in which the power consumption of a decryption chip is
monitored and the private key is extracted by observing slight variations
in chip power consumption and using those as an indicator of what goes
on inside the chip. This is just to give an idea on how difficult it is to protect
information—even when a dedicated cryptographic chip is involved!
Digital Rights Management
The computer industry has obviously undergone changes in the past few
years. There are many aspects to that change, but one of the interesting ones
has been that computers can now deal with media content a lot better than
Piracy and Copy Protection 319