Dynamic Self-checking Techniques for Improved Tamper Resistance Bill Horne Lesley Matheson Casey Sheehan Robert E.Tarjan Presented by YAN MIN (Jasmine)
Outline Introduction Algorithm design Detail Conclusion and future work
Introduction What is self-checking? :Static self-checking :Dynamic self-checking
Introduction (Continued) Protecting client-side software running in an untrusted host. It is designed to be used in conjunction with other tamper- resistance techniques, integrated with copy-specific static software watermarking.
Algorithm Design Components :testers correctors Process 1.Source-code processing -- testers 2.Object-code processing -- --shuffle blocks --insert correctors --associate corrector and tester interval 3.Installation-time processing -- compute watermark values -- compute corrector values -- form patches -- prepare fully functional executable
Detail Tester Design 1. Linear Hash Functions invertibility h 0( d )=0 ( d : an interval of data) h i ( d )= c *( d i+ h i-1( d )) (0<i ≤n), (c≠0) h (i-1)( d )= h i ( d ) / c – d i h i( d ), h n( d ) summarizability : recurrence h h o (x, d )=x, h i (x, d )= c *( d i+ h i-1(x, d ))
Detail (continued) d : a constant vector, x : variable h n (x, d )= a n ( d ) x + b n ( d ) a 0 ( d )=1, b 0 ( d )=0 a i ( d ) = c*a i-1( d ), b i( d )= c *( d i + b i-1( d )) (0< i <=n) a n, b n, h n 2. Construction and Customization 3. Tester Placement
Detail (continued) Interval Construction 1. Corrector Placement executable – based insertion methods 1. k = number (usable basic blocks ) / number (correctors) 2. remove ‘ un-net ’ correctors 3. insert correctors as dead code 4. when : basic block shuffling completed 5. where : after each k basic blocks
Detail (Continued) 2.Interval Definition s i : c i-1 and c i e n-i+2: c n+k-i and c n+k-i+1 (1<i≤ k) two points:. c i-1~ c i (k<i ≤ n) c k+i –- I i k-1 correctors : discard
Detail (continued) 3. Assignment of Testers to Intervals --objectives: coverage, security three observations: 1. every byte is tested by k testers. 2,3 the tester graph
Conclusion and Future Work Protecting client-side software running in an untrusted host Future Work: Building a stealthier response mechanism Modifying and simplifying the corrector insertion step …… Questions:How does it work if it does not use watermark values (no correctors)?