Download A generic attack on hashing-based software tamper

Transcript
Chapter 1
Introduction and Overview
Software vendors, developers, administrators, and users require mechanisms to ensure
that their applications are not modified by unauthorized parties. Most commonly, this
need is satisfied through the use of technologies that compute checksums of program
code. For example, checksums are used in signed code systems such as Microsoft’s
Windows Update [56] to ensure the integrity and authenticity of downloaded programs
and patches. Checksums, in the form of one-way hashes, are also used to periodically
check on-disk code integrity in systems such as Tripwire [47].
While these mechanisms are useful for protecting against third-party attackers
and some kinds of malicious software, they are of little use to developers who wish
to protect their applications from modifications by users, administrators, or installed
malicious software. Tamper resistance attempts to prevent modifications to software.
There are numerous applications of tamper resistance, including:
1. An application developer attempting to employ copy-protection in an application will protect the copy-protection algorithm with software tamper resistance
mechanisms.
2. A developer will employ tamper resistance in a game to prevent against mali1