Java Birthmarks —Detecting the Software Theft—

  • Authors:
  • Haruaki Tamada;Masahide Nakamura;Akito Monden;Ken-Ichi Matsumoto

  • Affiliations:
  • The authors are with the Graduate School of Information Science, Nara Institute of Science and Technology, Ikoma-shi, 630--0101 Japan. E-mail: harua-t@is.naist.jp;The authors are with the Graduate School of Information Science, Nara Institute of Science and Technology, Ikoma-shi, 630--0101 Japan. E-mail: harua-t@is.naist.jp;The authors are with the Graduate School of Information Science, Nara Institute of Science and Technology, Ikoma-shi, 630--0101 Japan. E-mail: harua-t@is.naist.jp;The authors are with the Graduate School of Information Science, Nara Institute of Science and Technology, Ikoma-shi, 630--0101 Japan. E-mail: harua-t@is.naist.jp

  • Venue:
  • IEICE - Transactions on Information and Systems
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

To detect the theft of Java class files efficiently, we propose a concept of Java birthmarks, which are unique and native characteristics of every class file. For a pair of class files p and q, if q has the same birthmark as p's, q is suspected as a copy of p. Ideally, the birthmarks should satisfy the following properties: (a) preservation -- the birthmarks should be preserved even if the original class file is tampered with, and (b) distinction -- independent class files must be distinguished by completely different birthmarks. Taking (a) and (b) into account, we propose four types of birthmarks for Java class files. To show the effectiveness of the proposed birthmarks, we conduct three experiments. In the first experiment, we demonstrate that the proposed birthmarks are sufficiently robust against automatic program transformation (93.3876% of the birthmarks were preserved). The second experiment shows that the proposed birthmarks successfully distinguish non-copied files in a practical Java application (97.8005% of given class files were distinguished). In the third experiment, we exploit different Java compilers to confirm that the proposed Java birthmarks are core characteristics independent of compiler-specific issues.