Software protection: myth or reality?
Lecture notes in computer sciences; 218 on Advances in cryptology---CRYPTO 85
The design and implementation of tripwire: a file system integrity checker
CCS '94 Proceedings of the 2nd ACM Conference on Computer and communications security
Building a high-performance, programmable secure coprocessor
Computer Networks: The International Journal of Computer and Telecommunications Networking - Special issue on computer network security
Architectural support for copy and tamper resistant software
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
Watermarking, tamper-proffing, and obfuscation: tools for software protection
IEEE Transactions on Software Engineering
ACM Transactions on Internet Technology (TOIT)
Tamper Resistant Software: An Implementation
Proceedings of the First International Workshop on Information Hiding
Oblivious Hashing: A Stealthy Software Integrity Verification Primitive
IH '02 Revised Papers from the 5th International Workshop on Information Hiding
Dynamic Self-Checking Techniques for Improved Tamper Resistance
DRM '01 Revised Papers from the ACM CCS-8 Workshop on Security and Privacy in Digital Rights Management
Protecting Software Code by Guards
DRM '01 Revised Papers from the ACM CCS-8 Workshop on Security and Privacy in Digital Rights Management
AEGIS: architecture for tamper-evident and tamper-resistant processing
ICS '03 Proceedings of the 17th annual international conference on Supercomputing
A security architecture for survivability mechanisms
A security architecture for survivability mechanisms
Proceedings of the 11th ACM conference on Computer and communications security
Attestation-based policy enforcement for remote access
Proceedings of the 11th ACM conference on Computer and communications security
A Generic Attack on Checksumming-Based Software Tamper Resistance
SP '05 Proceedings of the 2005 IEEE Symposium on Security and Privacy
Establishing the genuinity of remote computer systems
SSYM'03 Proceedings of the 12th conference on USENIX Security Symposium - Volume 12
Avfs: an on-access anti-virus file system
SSYM'04 Proceedings of the 13th conference on USENIX Security Symposium - Volume 13
Side effects are not sufficient to authenticate software
SSYM'04 Proceedings of the 13th conference on USENIX Security Symposium - Volume 13
Copilot - a coprocessor-based kernel runtime integrity monitor
SSYM'04 Proceedings of the 13th conference on USENIX Security Symposium - Volume 13
Protecting online games against cheating
NetGames '06 Proceedings of 5th ACM SIGCOMM workshop on Network and system support for games
Design methods for security and trust
Proceedings of the conference on Design, automation and test in Europe
Key evolution-based tamper resistance: a subgroup extension
ASIACCS '07 Proceedings of the 2nd ACM symposium on Information, computer and communications security
Mechanism for software tamper resistance: an application of white-box cryptography
Proceedings of the 2007 ACM workshop on Digital Rights Management
Virtual machine-provided context sensitive page mappings
Proceedings of the fourth ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Remote Attestation on Legacy Operating Systems With Trusted Platform Modules
Electronic Notes in Theoretical Computer Science (ENTCS)
Enhanced Security by OS-Oriented Encapsulation in TPM-Enabled DRM
Information Security and Cryptology
Remote attestation on legacy operating systems with trusted platform modules
Science of Computer Programming
The Long-Short-Key Primitive and Its Applications to Key Security
IWSEC '08 Proceedings of the 3rd International Workshop on Security: Advances in Information and Computer Security
Hypervisor support for identifying covertly executing binaries
SS'08 Proceedings of the 17th conference on Security symposium
Remote software protection by orthogonal client replacement
Proceedings of the 2009 ACM symposium on Applied Computing
Trading-off security and performance in barrier slicing for remote software entrusting
Automated Software Engineering
A graph game model for software tamper protection
IH'07 Proceedings of the 9th international conference on Information hiding
Towards tamper resistant code encryption: practice and experience
ISPEC'08 Proceedings of the 4th international conference on Information security practice and experience
Self destructive tamper response for software protection
Proceedings of the 6th ACM Symposium on Information, Computer and Communications Security
Security versus energy tradeoffs in host-based mobile malware detection
MobiSys '11 Proceedings of the 9th international conference on Mobile systems, applications, and services
An attack on SMC-based software protection
ICICS'06 Proceedings of the 8th international conference on Information and Communications Security
Hi-index | 0.00 |
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.