Software Watermarking: Progress and Challenges

In this paper, we present a brief survey on software watermarking methods that explains the prospects and constraints of most software watermarking algorithms. We introduce a detailed classification of the existing software watermarking techniques, the associated attack models, along with a review of the current software watermarking tools. The reader can find a clear research path on software watermarking from 1996 to till date. We also critically analyzed the strength and weakness of the existing watermarking schemes and explored the research gaps where the future researchers can concentrate.

[1]  David A. Wagner,et al.  From Weak to Strong Watermarking , 2007, TCC.

[2]  Hua Jiang,et al.  Software Watermarking Algorithm by Coefficients of Equation , 2009, 2009 Third International Conference on Genetic and Evolutionary Computing.

[3]  Josef Pieprzyk,et al.  Fingerprints for Copyright Software Protection , 1999, ISW.

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

[5]  Qinghua Zheng,et al.  Software Plagiarism Detection with Birthmarks Based on Dynamic Key Instruction Sequences , 2015, IEEE Transactions on Software Engineering.

[6]  Ibrahim Kamel,et al.  A robust software watermarking for copyright protection , 2009, Comput. Secur..

[7]  Armand Navabi,et al.  The evaluation of two software watermarking algorithms , 2005, Softw. Pract. Exp..

[8]  William Zhu Informed Recognition in Software Watermarking , 2007, PAISI.

[9]  Fenlin Liu,et al.  A Chaos-Based Robust Software Watermarking , 2006, ISPEC.

[10]  Christian S. Collberg,et al.  Dynamic graph-based software fingerprinting , 2007, TOPL.

[11]  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.

[12]  Radu Sion,et al.  On Watermarking Numeric Sets , 2002, IWDW.

[13]  Nathaniel John Nystrom,et al.  BYTECODE-LEVELANALYSIS AND OPTIMIZATION OF JAVA CLASSES , 1998 .

[14]  M. Shirali-Shahreza,et al.  Software Watermarking by Equation Reordering , 2008, 2008 3rd International Conference on Information and Communication Technologies: From Theory to Applications.

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

[16]  Ying Zeng,et al.  Robust Software Watermarking Scheme Based on Obfuscated Interpretation , 2010, 2010 International Conference on Multimedia Information Networking and Security.

[17]  Neil J. Hurley,et al.  Securing Java through software watermarking , 2003, PPPJ.

[18]  Christian S. Collberg,et al.  A Functional Taxonomy for Software Watermarking , 2002, ACSC.

[19]  Lala Septem Riza,et al.  Birthmark-Based Software Classification Using Rough Sets , 2017 .

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

[21]  Woody Sherman,et al.  Improved Docking of Polypeptides with Glide , 2013, J. Chem. Inf. Model..

[22]  Debin Gao,et al.  Software Watermarking using Return-Oriented Programming , 2015, AsiaCCS.

[23]  Clark Thomborson,et al.  Manufacturing cheap, resilient, and stealthy opaque constructs , 1998, POPL '98.

[24]  Ying Zeng,et al.  Software Watermarking Through Obfuscated Interpretation: Implementation and Analysis , 2011, J. Multim..

[25]  Christian S. Collberg,et al.  Software Watermarking Through Register Allocation: Implementation, Analysis, and Attacks , 2003, ICISC.

[26]  Jens Palsberg,et al.  Experience with software watermarking , 2000, Proceedings 16th Annual Computer Security Applications Conference (ACSAC'00).

[27]  Jayme Luiz Szwarcfiter,et al.  Full Characterization of a Class of Graphs Tailored for Software Watermarking , 2019, Algorithmica.

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

[29]  Hongxia Wang,et al.  On the analysis of software watermarking , 2010, 2010 2nd International Conference on Software Technology and Engineering.

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

[31]  William Zhu,et al.  Recognition in software watermarking , 2006, MCPS '06.

[32]  Armand Navabi,et al.  The evaluation of two software watermarking algorithms: Research Articles , 2005 .

[33]  Akito Monden,et al.  Dynamic Software Birthmarks to Detect the Theft of Windows Applications , 2004 .

[34]  William Zhu,et al.  Concepts and techniques in software watermarking and obfuscation , 2007 .

[35]  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).

[36]  Qing Wei,et al.  A fragile software watermarking algorithm for content authentication , 2009, 2009 IEEE Youth Conference on Information, Computing and Telecommunication.

[37]  Zhe Chen,et al.  Semantic-integrated software watermarking with tamper-proofing , 2018, Multimedia Tools and Applications.

[38]  Christian S. Collberg,et al.  Graph-Based Approaches to Software Watermarking , 2003, WG.

[39]  Zhe Chen,et al.  Hidden Path: Dynamic Software Watermarking Based on Control Flow Obfuscation , 2017, 22017 IEEE International Conference on Computational Science and Engineering (CSE) and IEEE International Conference on Embedded and Ubiquitous Computing (EUC).

[40]  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).

[41]  Fei-Yue Wang,et al.  A Survey of Software Watermarking , 2005, ISI.

[42]  Mila Dalla Preda,et al.  Software Watermarking: A Semantics-based Approach , 2017, NSAD@SAS.

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

[44]  Zhu Jianqi,et al.  A Novel Dynamic Graph Software Watermark Scheme , 2009, 2009 First International Workshop on Education Technology and Computer Science.

[45]  Miodrag Potkonjak,et al.  Hiding Signatures in Graph Coloring Solutions , 1999, Information Hiding.

[46]  Tareek M. Pattewar,et al.  Software birthmark based theft detection of JavaScript programs using agglomerative clustering and Frequent Subgraph Mining , 2014, 2014 International Conference on Embedded Systems (ICES).

[47]  Chunfu Jia,et al.  Software Watermarking Using Support Vector Machines , 2015, 2015 IEEE 39th Annual Computer Software and Applications Conference.

[48]  Hongxia Jin,et al.  Self-validating Branch-Based Software Watermarking , 2005, Information Hiding.

[49]  Aida Erfanian,et al.  A novel watermarking method for Java programs , 2013, SAC '13.

[50]  Yin Ke,et al.  A Robust Dynamic Software Watermarking , 2009, 2009 International Conference on Information Technology and Computer Science.

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

[52]  Yang-Xia Luo,et al.  Dynamic Graph Watermark Algorithm Based on the Threshold Scheme , 2008, 2008 International Symposium on Information Science and Engineering.

[53]  Vinod Vaikuntanathan,et al.  Publicly Verifiable Software Watermarking , 2015, IACR Cryptol. ePrint Arch..

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

[55]  Siu-Ming Yiu,et al.  Heap Graph Based Software Theft Detection , 2013, IEEE Transactions on Information Forensics and Security.

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

[57]  Angelos D. Keromytis,et al.  Hydan: Hiding Information in Program Binaries , 2004, ICICS.

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

[59]  G.C.M. Silvestre,et al.  Dependency in software watermarking , 2004, Proceedings. 2004 International Conference on Information and Communication Technologies: From Theory to Applications, 2004..

[60]  Roberto Giacobazzi,et al.  Hiding Software Watermarks in Loop Structures , 2008, SAS.

[61]  Stavros D. Nikolopoulos,et al.  Graph-structured Watermarking using Bitonic Sequences of Self-inverting Permutations , 2016, PCI.

[62]  Stavros D. Nikolopoulos,et al.  Efficient Encoding of Watermark Numbers as Reducible Permutation Graphs , 2011, ArXiv.

[63]  Gaurav Gupta,et al.  Software Watermarking Resilient to Debugging Attacks , 2007, J. Multim..

[64]  Fenlin Liu,et al.  Exception Handling-Based Dynamic Software Watermarking , 2018, IEEE Access.

[65]  Athanasios V. Vasilakos,et al.  A novel watermarking method for software protection in the cloud , 2012, Softw. Pract. Exp..

[66]  Jianfeng Chen,et al.  An Improved Software Watermarking Scheme Based on PPCT Encoding , 2016, 2016 9th International Symposium on Computational Intelligence and Design (ISCID).

[67]  Stavros D. Nikolopoulos,et al.  WaterRPG: A Graph-based Dynamic Watermarking Model for Software Protection , 2014, ArXiv.

[68]  Christian S. Collberg,et al.  Sandmark--A Tool for Software Protection Research , 2003, IEEE Secur. Priv..

[69]  Christian S. Collberg,et al.  On the Limits of Software Watermarking , 1998 .

[70]  Koen De Bosschere,et al.  Hybrid static-dynamic attacks against software protection mechanisms , 2005, DRM '05.

[71]  Gaurav Gupta,et al.  A Low-Cost Attack on Branch-Based Software Watermarking Schemes , 2006, IWDW.

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

[73]  Sebastian Danicic,et al.  A survey of static software watermarking , 2011, 2011 World Congress on Internet Security (WorldCIS-2011).

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

[75]  Guangli Xiang,et al.  A method of software watermarking , 2012, 2012 International Conference on Systems and Informatics (ICSAI2012).

[76]  Jayme Luiz Szwarcfiter,et al.  A randomized graph-based scheme for software watermarking , 2014, Anais do XIV Simpósio Brasileiro de Segurança da Informação e de Sistemas Computacionais (SBSeg 2014).

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

[78]  Stavros D. Nikolopoulos,et al.  Encoding watermark numbers as cographs using self-inverting permutations , 2011, CompSysTech '11.

[79]  Alon Itai,et al.  Software Fingerprinting , 2006, 2006 International Conference on Information Technology: Research and Education.

[80]  Wee Keong Ng,et al.  Function Level Control Flow Obfuscation for Software Security , 2014, 2014 Eighth International Conference on Complex, Intelligent and Software Intensive Systems.

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

[82]  Weixu Chen,et al.  Software Watermarking for Java Program Based on Method Name Encoding , 2017, AISI.

[83]  William Zhu,et al.  Extraction in software watermarking , 2006, MM&Sec '06.

[84]  Christian S. Collberg,et al.  Software watermarking in the frequency domain: Implementation, analysis, and attacks , 2005, J. Comput. Secur..

[85]  Miodrag Potkonjak,et al.  Fingerprinting intellectual property using constraint-addition , 2000, DAC.

[86]  Zetao Jiang,et al.  A Software Watermarking Method Based on Public-Key Cryptography and Graph Coloring , 2009, 2009 Third International Conference on Genetic and Evolutionary Computing.

[87]  Ingemar J. Cox,et al.  Watermarking applications and their properties , 2000, Proceedings International Conference on Information Technology: Coding and Computing (Cat. No.PR00540).