Issue No.02 - April-June (2005 vol.2)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TDSC.2005.24
Self-hashing has been proposed as a technique for verifying software integrity. Appealing aspects of this approach to software tamper resistance include the promise of being able to verify the integrity of software independent of the external support environment, as well as the ability to integrate code protection mechanisms automatically. In this paper, we show that the rich functionality of most modern general-purpose processors (including UltraSparc, x86, PowerPC, AMD64, Alpha, and ARM) facilitate an automated, generic attack which defeats such self-hashing. We present a general description of the attack strategy and multiple attack implementations that exploit different processor features. Each of these implementations is generic in that it can defeat self-hashing employed by any user-space program on a single platform. Together, these implementations defeat self-hashing on most modern general-purpose processors. The generality and efficiency of our attack suggests that self-hashing is not a viable strategy for high-security tamper resistance on modern computer systems.
Index Terms- Tamper resistance, self-hashing, checksumming, operating system kernels, processor design, application security, software protection.
Paul C. van Oorschot, Anil Somayaji, Glenn Wurster, "Hardware-Assisted Circumvention of Self-Hashing Software Tamper Resistance", IEEE Transactions on Dependable and Secure Computing, vol.2, no. 2, pp. 82-92, April-June 2005, doi:10.1109/TDSC.2005.24