Abstract

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.

Journal
IEEE Transactions on Professional Communication
Published
2005-02-01
DOI
10.1109/tdsc.2005.24
CompPile
Open Access
Closed
Topics
Export

Citation Context

Cited by in this index (0)

No articles in this index cite this work.

References (43)

  1. Internet Explorer 6: Digital Certificates
  2. 10.1145/191177.191183
  3. 10.1007/3-540-61996-8_49
  4. 10.1007/3-540-47870-1_10
  5. 10.1007/3-540-47870-1_9
Show all 43 →
  1. 10.1109/SP.2005.2
  2. 10.1007/3-540-68671-1_4
  3. 10.1109/TSE.2002.1027797
  4. 10.1007/10958513_1
  5. 10.1007/10958513_27
  6. A Generic Attack on Hashing-Based Software Tamper Resistance
  7. UltraSPARC III Cu User’s Manual
  8. The Linux Kernel Archives
  9. Programming Environments Manual: For 32-Bit Implementations of the PowerPC Architecture
  10. AMD64 Architecture Programmer’s Manual. vol. 2, System Programming
  11. IA-32 Intel Architecture Software Developer’s Manual
  12. ARM Documentation—ARM Processor Cores
  13. IA-32 Intel Architecture Software Developer’s Manual, vol. 3: System Programming Guide, c…
  14. Homepage of PaX
  15. Alpha Architecture Handbook
  16. Enhancing Software Tamper-Resistance Via Stealthy Address Computations
  17. 10.1007/3-540-68671-1_6
  18. 10.1007/3-540-36415-3_26
  19. Software Protection: Myth or Reality?
  20. Establishing the Genuinity of Remote Computer Systems
  21. The Inevitability of Failure: The Flawed Assumption of Security in Modern Computing Envir…
  22. NGSCB: A Trusted Open System
  23. 10.1145/782814.782838
  24. 10.1016/S1389-1286(98)00019-X
  25. Trusted Computing Group
  26. 10.21236/ADA419599
  27. 10.1145/643477.643479
  28. Side Effects Are Not Sufficient to Authenticate Software
  29. An Analysis of Proposed Attacks against Genuinity Tests
  30. 10.1145/1030083.1030103
  31. 10.1109/SECPRI.2004.1301329
  32. 10.1145/1030083.1030125
  33. Trusted Platfrom Module (TPM) Main Specification
  34. AVFS: An On-Access Anti-Virus File System
  35. Copilot—A Coprocessor-Based Kernel Runtime Integrity Monitor
  36. 10.1007/3-540-44456-4_7
  37. A Security Architecture for Survivability Mechanisms
  38. MIPS32 Architecture for Programming