Nothing Special   »   [go: up one dir, main page]

Skip to main content
Log in

Software Watermarking: Progress and Challenges

  • Review Article
  • Published:
INAE Letters Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1

Similar content being viewed by others

References

  • Alitavoli M, Joafshani M, Erfanian A (2013) A novel watermarking method for java programs. In: Proceedings of the 28th Annual ACM Symposium on Applied Computing SAC '13. ACM, New York, NY, USA, pp 1013–1018

  • Arboit G (2002) A method for watermarking java programs via opaque predicates. ACM, Montreal, Canada, pp 102–110

    Google Scholar 

  • Balachandran V, Keong NW, Emmanuel S (2014) Function level control flow obfuscation for software security. In: Eighth International Conference on Complex, Intelligent and Software Intensive Systems. IEEE, pp 133–140

  • Bento L, Boccardo D, Machado R, de Sá VGP, Szwarcfiter JL, Duque de Caxias R (2004) A randomized graph-based scheme for software watermarking. In: Information and Computater Systems Security. ACM, pp 30–41

  • Bentoa LM, Boccardob DR, Machadob RC, de Sáa VGP, Szwarcfitera JL (2014) Full characterization of a class of graphs tailored for software wateramrking. submitt J Comput Syst Sci

  • Bhattacharya S, Cortesi A (2010) Zero-knowledge software watermarking for c programs. In: Advances in communication, network, and computing, IEEE Computer Society, p 282–286

  • Chan PP, Hui LC, Yiu SM (2013) Heap graph based software theft detection. IEEE Transactions on Information Forensics and Security 8(1):101–110

    Article  Google Scholar 

  • Chen J, Dai S, Chen J (2016) An improved software watermarking scheme based on ppct encoding. In: Computational intelligence and design. IEEE, pp 341–344

  • Chen J, Li K, Wen W, Chen W, Yan C (2017a) Software watermarking for java program based on method name encoding. In: Advanced intelligent systems and informatics, Springer, pp 865–874

  • Chen Z, Jia C, Xu D (2017b) Hidden path: dynamic software watermarking based on control flow obfuscation. In: Computational science and engineering (CSE) and embedded and ubiquitous computing (EUC), vol. 2, IEEE, p. 443–450

  • Chen Z, Wang Z, Jia C (2017c) Semantic-integrated software watermarking with tamper-proofing. Multimed Tools Appl 77(9):11159–11178

    Article  Google Scholar 

  • Chionis I, Chroni M, Nikolopoulos SD (2013) A dynamic watermarking model for embedding reducible permutation graphs into software. In: Security and Cryptography (SECRYPT), IEEE, p 1–12

  • Chionis I, Chroni M, Nikolopoulos SD (2013) Evaluating the waterrpg software watermarking model on java application programs. In: Informatics, ACM, p 144–151

  • Chionis I, Chroni M, Nikolopoulos SD (2014) Waterrpg: a graph-based dynamic watermarking model for software protection. arXiv:1403.6658

  • Chroni M, Nikolopoulos SD (2010) Encoding watermark integers as self-inverting permutations. In: Computer systems and technologies, ACM, p 125–130

  • Chroni M, Nikolopoulos SD (2011) Efficient encoding of watermark numbers as reducible permutation graphs. arXiv: 1110.1194

  • Chroni M, Nikolopoulos SD (2011) Encoding watermark numbers as cographs using self-inverting permutations. In: Computer systems and technologies, ACM, p 142–148

  • Chroni M, Nikolopoulos SD (2012) An efficient graph codec system for software watermarking. In: Computer software and applications, IEEE, p 595–600

  • Chroni M, Nikolopoulos SD (2012) An embedding graph-based model for software watermarking. In: Intelligent information hiding and multimedia signal processing, IEEE, p 261–264

  • Claudiu C (1999) Static software watermarking pp. 2–4

  • Cohen A, Holmgren J, Vaikuntanathan V (2015) Publicly verifiable software watermarking. IACR Cryptology 2015:373

    Google Scholar 

  • Collberg C, Carter E, Debray S, Huntwork A, Linn C, Stepp M (2004) Dynamic path-based software watermarking. Programming Language Design and Implementation 39:107–118

    Google Scholar 

  • Collberg C, Huntwork A, Carter E, Townsend G, Stepp M (2009) More on graph theoretic software watermarks: implementation, analysis, and attacks. Inform Softw Technol 51(1):56–67

    Article  Google Scholar 

  • Collberg C, Jha S, Tomko D, Wang H (2004) Uwstego: a general architecture for software watermarking. Tech. rep

  • Collberg C, Kobourov S, Carter E, Thomborson C (2003) Error-correcting graphs for software watermarking. In: Graph theoretic concepts in computer science, Springer, p 156–167

  • Collberg C, Myles G, Huntwork A (2003) Sandmark-a tool for software protection research. IEEE Secur Priv 99(4):40–49

    Article  Google Scholar 

  • Collberg C, Sahoo TR (2005) Software watermarking in the frequency domain: implementation, analysis, and attacks. J Comput Secur 13(5):721–755

    Article  Google Scholar 

  • Collberg C, Thomborson C (1998) On the limits of software watermarking. CS Dept, Auckland Univ, Tech. rep

  • Collberg C, Thomborson C (1999) Software watermarking: models and dynamic embeddings. In: Principles of programming lang., ACM, New york, p 311–324

  • Collberg C, Thomborson C, Low D (1998) Manufacturing cheap, resilient, and stealthy opaque constructs. In: Principles of programming lang., ACM, p 184–196

  • Collberg CS, Thomborson C (2002) Watermarking, tamper-proffing, and obfuscation: tools for software protection. IEEE Trans Softw Eng 28:735–746

    Article  Google Scholar 

  • Collberg CS, Thomborson C, Townsend GM (2007) Dynamic graph-based software fingerprinting. ACM Trans Program Lang Syst (TOPLAS) 29(6):35

    Article  Google Scholar 

  • Cousot P, Cousot R (2004) An abstract interpretation-based framework for software watermarking. In: Principles of programming languages, ACM, p 173–185

  • Cox IJ, Miller ML, Bloom JA (2000) Watermarking applications and their properties. In: Information technology: coding and computing, IEEE, p 6–10

  • Curran D, Cinneide M.O, Hurley N, Silvestre G (2004) Dependency in software watermarking. In: Information and communication technologies: from theory to applications, IEEE, p 311–324

  • Curran D, Hurley N, Cinneide MO (2003) Securing java through software watermarking. In: Principles and practice of programming in Java, ACM, p 145–148

  • Dalla Preda M, Giacobazzi R, Visentini E (2008) Hiding software watermarks in loop structures. In: Static analysis, Springer, p 174–188

  • Davidson R, Myhrvold N (1996) Method and system for generating and auditing a signature for a computer program. US Patent 5,559,884

  • El-Khalil R, Keromytis AD (2004) Hydan: hiding information in program binaries. In: Lopez J, Qing S, Okamoto E (eds) Information and communications security. ICICS 2004. Lecture notes in computer science, vol 3269. Springer, Berlin, Heidelberg, pp 187–199

    Google Scholar 

  • Fallis A (2013) Dynamic software watermarking by alering the numeric results of the program. J Chem Inform Modeling 53:1689–1699

    Article  Google Scholar 

  • Gil J, Gorovoy A, Itai A (2006) Software fingerprinting. In: Information technology: research and education, p 69–73

  • Gupta G, Pieprzyk J (2006) A low-cost attack on branch-based software watermarking schemes. In: Digital watermarking, Springer, p 282–293

  • Gupta G, Pieprzyk J (2007) Software watermarking resilient to debugging attacks. J Multimed 2(2):10–16

    Article  Google Scholar 

  • Hamilton J, Danicic S (2011) A survey of static software watermarking. In: World congress on internet security, IEEE, p 100–107

  • He Y (2002) Tamperproofing a software watermark by encoding constants. Master’s thesis CS Dept, Auckland Univ

  • Hopper N, Molnar D, Wagner D (2007) From weak to strong watermarking. In: Theory of cryptography, Springer, p 362–382

  • Jiang Z, Zhong R, Zheng B (2009) A software watermarking method based on public-key cryptography and graph coloring. In: Genetic and evolutionary computing, Springer, p 433–437

  • Jianqi Z, YanHeng L, KeXin Y (2009) A novel dynamic graph software watermark scheme. In: Education Technology and Comp. Sci., vol. 3, pp. 775–780. IEEE

  • Kamel I, Albluwi Q (2009) A robust software watermarking for copyright protection. Comput Secur 28(6):395–409

    Article  Google Scholar 

  • Ke-xin Y, Ke Y, Jian-qi Z (2009) A robust dynamic software watermarking. In: Information technology and computer science, vol. 1, IEEE, p 15–18

  • Kumar K, Kehar V, Kaur P (2015) A comparative analysis of static java bytecode software watermarking algorithms. African J Comput ICT 8(4):201–208

    Google Scholar 

  • Liu F, Lu B, Luo X (2006) A chaos-based robust software watermarking. In: Information security practice and experience, Springer, p 355–366

  • Luo YX, Cheng JH, Fang DY (2008) Dynamic graph watermark algorithm based on the threshold scheme. In: Information science and engineering, ISISE’08, vol. 2, IEEE, p 689–693

  • Ma H, Lu K, Ma X, Zhang H, Jia C, Gao D (2015) Software watermarking using return-oriented programming. In: Information, computer and communications security, ACM, p 369–380

  • Madou M, Anckaert B, De Sutter B, De Bosschere K (2005) Hybrid static-dynamic attacks against software protection mechanisms. In: Digital rights management, ACM, p 75–82

  • Mishra A, Kumar R, Chakrabarti P (2008) A method-based whole-program watermarking scheme for java class files. J Artic

  • Monden A, Iida H, Matsumoto K, Torii K, Inoue K (2000) A practical method for watermarking java programs. In: 24th international computer software and applications conference, pp 191–197, October 25–28, 2000

  • Mpanti A, Nikolopoulos SD (2016) Graph-structured watermarking using bitonic sequences of self-inverting permutations. In: Informatics, ACM, p 131–136

  • Myles G, Collberg C (2004) Software watermarking through register allocation: implementation, analysis, and attacks. In: Lim JI, Lee DH (eds) Information security and cryptology - ICISC 2003. ICISC 2003. Lecture notes in computer science, vol 2971. Springer, Berlin, Heidelberg, pp 274–293

    Google Scholar 

  • Myles G, Collberg C (2006) Software watermarking via opaque predicates: implementation, analysis, and attacks. Elec Commerce Res 6(2):155–171

    Article  Google Scholar 

  • Myles G, Collberg C, Heidepriem Z, Navabi A (2005) The evaluation of two software watermarking algorithms. Softw Pract Exp 35(10):923–938

    Article  Google Scholar 

  • Myles G, Jin H (2005) Self-validating branch-based software watermarking. In: Info. hiding, Springer, p 342–356

  • Nagra J, Thomborson C (2004) Threading software watermarks. In: Info. hiding, Springer, p 208–223

  • Nagra J, Thomborson C, Collberg C (2002) A functional taxonomy for software watermarking. In: Australian computer science communications, vol. 24, Australian Computer Society, Inc, p 177–186

  • Nazir S, Shahzad S, Riza LS (2017) Birthmark-based software classification using rough sets. Arabian J Sci Eng 42(2):859–871

    Article  Google Scholar 

  • Nystrom NJ (1998) Bytecode level analysis and optimization of java classes. Master’s thesis

  • Palsberg J, Krishnaswamy S, Kwon M, Ma D, Shao Q, Zhang Y (2000) Experience with software watermarking. In: Computer security applications. IEEE, pp 308–316

  • Patel SJ, Pattewar TM (2014) Software birthmark based theft detection of javascript programs using agglomerative clustering and frequent subgraph mining. In: Embedded systems (ICES), IEEE, p 63–68

  • Pieprzyk J (1999) Fingerprints for copyright software protection. In: Information security. ISW 1999. Lecture Notes in Computer Science, vol 1729. Springer, Berlin, Heidelberg, pp 178–190

  • Preda MD, Pasqua M (2017) Software watermarking: a semantics-based approach. Electron Notes Theoretical Comput Sci 331:71–85

    Article  MATH  Google Scholar 

  • Qu G, Potkonjak M (1998) Analysis of watermarking techniques for graph coloring problem. In: Computer-aided design, ACM, p 190–193

  • Qu G, Potkonjak M (1999) Hiding signatures in graph coloring solutions. In: Info. Hiding, vol. 1768, pp. 348–367. Springer

  • Qu G, Potkonjak M (2000) Fingerprinting intellectual property using constraint-addition. In: Annual design automation, ACM, p 587–592

  • Sha Z, Jiang H, Xuan A (2009) Software watermarking algorithm by coefficients of equation. In: Genetic and evolutionary computing, Springer, p 410–413

  • Sharma B, Agarwal R, Singh R (2012) An efficient software watermark by equation reordering and fdos. In: Soft computing for Prob. Sol., Springer, p 735–745

  • Shirali-Shahreza M, Shirali-Shahreza S (2008) Software watermarking by equation reordering. In: Information and communication technologies: from theory to applications, IEEE, p 1–4

  • Sion R, Atallah M, Prabhakar S (2002) On watermarking numeric sets. In: Digital watermarking, Springer, p 130–146

  • Stern JP, Hachez G, Koeune F, Quisquater JJ (2000) Robust object watermarking: application to code. In: Info. hiding, Springer, p 368–378

  • Tamada H, Okamoto K, Nakamura M, Monden A, Matsumoto Ki (2004) Dynamic software birthmarks to detect the theft of windows applications. In: Future software technology, vol. 20

  • Thaker S (2004) Software watermarking via assembly code transformations. Ph.D. thesis, S. J. S. University

  • Thomborson C, Nagra J, Somaraju R, He C (2004) Tamper-proofing software watermarks. In: Proceedings of the second workshop on Australasian information security, data mining and web intelligence, and software internationalisation, vol. 32. pp 27–36

  • Tian Z, Zheng Q, Liu T, Fan M, Zhuang E, Yang Z (2015) Software plagiarism detection with birthmarks based on dynamic key instruction sequences. IEEE Trans Softw Eng 41(12):1217–1235

    Article  Google Scholar 

  • Venkatesan R, Vazirani V, Sinha S (2001) A graph theoretic approach to software watermarking. In: Info. hiding, vol. 2137, Springer, p 157–168

  • Wang Y, Gong D, Lu B, Xiang F, Liu F (2018) Exception handling-based dynamic software watermarking. IEEE Access 6:8882–8889

    Article  Google Scholar 

  • Xu G, Xiang G (2012) A method of software watermarking. In: Systems and Informatics, IEEE, p 1791–1795

  • Yong W, Yixian Y (2004) A software watermark database scheme based on ppct. CIHW, 2004

  • Yu Z, Wang C, Thomborson C, Wang J, Lian S, Vasilakos AV (2012) A novel watermarking method for software protection in the cloud. Softw Prac Exp 42(4):409–430

    Article  Google Scholar 

  • Zaidi SJH, Wang H (2010) On the analysis of software watermarking. In: Software technology and engineering, IEEE, vol. 1, p 1–26

  • Zeng Y, Liu F, Luo X, Yang C (2010) Robust software watermarking scheme based on obfuscated interpretation. In: Multimedia information networking and security (MINES), IEEE, p 671–675

  • Zeng Y, Liu F, Luo X, Yang C (2011) Software watermarking through obfuscated interpretation: implementation and analysis. J Multimed 6(4):329–340

    Article  Google Scholar 

  • Zhu J, Wei Q, Xiao J, Wang Y (2009) A fragile software watermarking algorithm for content authentication. In: Information, computing and telecommunication, IEEE, p 391–394

  • Zhu W (2007) Informed recognition in software watermarking. In: Intelligence and security informatics, Springer, p 257–261

  • Zhu W, Thomborson C (2006) Extraction in software watermarking. In: Multimedia and security, ACM, p 175–181

  • Zhu W, Thomborson C (2006) Recognition in software watermarking. In: Contents protection and security, MCPS ’06, ACM, p 29–36

  • Zhu W, Thomborson C, Wang FY (2005) A survey of software watermarking. In: Intelligence and security informatics, Springer, p 454–458

  • Zhu WF (2007) Concepts and techniques in software watermarking and obfuscation. Ph.D. thesis, ResearchSpace@ Auckland

  • Zong N, Jia C (2015) Software watermarking using support vector machines. In: Computer software and applications, vol. 2, IEEE, p 533–542

Download references

Acknowledgements

This work was supported in part by the TCS Research Fellowship Award, granted to Ayan Dey and TEQIP Phase-III project of the University of Calcutta.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ayan Dey.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Dey, A., Bhattacharya, S. & Chaki, N. Software Watermarking: Progress and Challenges. INAE Lett 4, 65–75 (2019). https://doi.org/10.1007/s41403-018-0058-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s41403-018-0058-8

Keywords

Navigation