WaterRPG: A Graph-based Dynamic Watermarking Model for Software Protection

Software watermarking involves embedding a unique identifier or, equivalently, a watermark value within a software to prove owner's authenticity and thus to prevent or discourage copyright infringement. Towards the embedding process, several graph theoretic watermarking algorithmic techniques encode the watermark values as graph structures and embed them in application programs. Recently, we presented an efficient codec system for encoding a watermark number $w$ as a reducible permutation graph $F[\pi^*]$ through the use of self-inverting permutations $\pi^*$. In this paper, we propose a dynamic watermarking model, which we call WaterRPG, for embedding the watermark graph $F[\pi^*]$ into an application program $P$. The main idea behind the proposed watermarking model is a systematic use of appropriate calls of specific functions of the program $P$. More precisely, for a specific input $I_{key}$ of the program $P$, our model takes the dynamic call-graph $G(P, I_{key})$ of $P$ and the watermark graph $F[\pi^*]$, and produces the watermarked program $P^*$ having the following key property: its dynamic call-graph $G(P^*, I_{key})$ is isomorphic to the watermark graph $F[\pi^*]$. Within this idea the program $P^*$ is produced by only altering appropriate calls of specific functions of the input application program $P$. We have implemented our watermarking model WaterRPG in real application programs and evaluated its functionality under various and broadly used watermarking assessment criteria. The evaluation results show that our model efficiently watermarks Java application programs with respect to several watermarking metrics like data-rate, bytecode instructions overhead, resiliency, time and space efficiency. Moreover, the embedded watermarks withstand several software obfuscation and optimization attacks.

[1]  Stavros D. Nikolopoulos,et al.  Multiple encoding of a watermark number into reducible permutation graphs using cotrees , 2012, CompSysTech '12.

[2]  Raghuraj Singh,et al.  An Efficient Software Watermark by Equation Reordering and FDOS , 2011, SocProS.

[3]  Genevieve Arboit,et al.  A Method for Watermarking Java Programs via Opaque Predicates , 2002 .

[4]  Christian S. Collberg,et al.  Software watermarking via opaque predicates: Implementation, analysis, and attacks , 2006, Electron. Commer. Res..

[5]  Ramarathnam Venkatesan,et al.  A Graph Theoretic Approach to Software Watermarking , 2001, Information Hiding.

[6]  Michael Stepp,et al.  Dynamic path-based software watermarking , 2004, PLDI '04.

[7]  Stavros D. Nikolopoulos,et al.  Encoding watermark integers as self-inverting permutations , 2010, CompSysTech '10.

[8]  Stavros D. Nikolopoulos,et al.  A dynamic watermarking model for embedding reducible permutation graphs into software , 2013, 2013 International Conference on Security and Cryptography (SECRYPT).

[9]  Christian S. Collberg,et al.  Watermarking, Tamper-Proofing, and Obfuscation-Tools for Software Protection , 2002, IEEE Trans. Software Eng..

[10]  Christian S. Collberg,et al.  Software watermarking: models and dynamic embeddings , 1999, POPL '99.

[11]  Stavros D. Nikolopoulos,et al.  Evaluating the WaterRpg software watermarking model on Java application programs , 2013, PCI '13.

[12]  Christian S. Collberg,et al.  Error-correcting graphs for software watermarking , 2003 .

[13]  Stavros D. Nikolopoulos,et al.  An Efficient Graph Codec System for Software Watermarking , 2012, 2012 IEEE 36th Annual Computer Software and Applications Conference Workshops.

[14]  Changle Zhang,et al.  Spread spectrum-based fragile software watermarking , 2011, The 16th North-East Asia Symposium on Nano, Information Technology and Reliability.

[15]  David Notkin,et al.  An Empirical Study of Java Dynamic Call Graph Extractors , 2001 .

[16]  Jasvir Nagra,et al.  Threading Software Watermarks , 2004, Information Hiding.

[17]  Katsuro Inoue,et al.  A practical method for watermarking Java programs , 2000, Proceedings 24th Annual International Computer Software and Applications Conference. COMPSAC2000.

[18]  Ingemar J. Cox,et al.  A Secure, Robust Watermark for Multimedia , 1996, Information Hiding.

[19]  Jean-Jacques Quisquater,et al.  Robust Object Watermarking: Application to Code , 1999, Information Hiding.

[20]  Stavros D. Nikolopoulos,et al.  An Embedding Graph-based Model for Software Watermarking , 2012, 2012 Eighth International Conference on Intelligent Information Hiding and Multimedia Signal Processing.

[21]  Susan L. Graham,et al.  Gprof: A call graph execution profiler , 1982, SIGPLAN '82.

[22]  Patrick Cousot,et al.  An abstract interpretation-based framework for software watermarking , 2004, POPL.

[23]  Gang Qu,et al.  Analysis of watermarking techniques for graph coloring problem , 1998, 1998 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (IEEE Cat. No.98CB36287).

[24]  Jeffrey D. Ullman,et al.  Flow graph reducibility , 1972, SIAM J. Comput..

[25]  Michael Stepp,et al.  More on graph theoretic software watermarks: Implementation, analysis, and attacks , 2009, Inf. Softw. Technol..