Abstract [eng] |
Software piracy is copying and distributing of software illegally and without permission. This problem is not new but effective protective measures against it until today are not developed. Therefore, in 2011 illegal software has been downloaded for more than 60 billion USA dollars and that amount is growing every year. After software threats’ analysis we found out that the biggest problem is reverse engineering. Measures which can help to solve this problem we divided into software-based and hardware-based protection. After software-based protection analysis we found out that one of best measures against reverse engineering is code encryption or packaging and one of the best hardware-based protection tools is using of dongle keys. After analysis of advantages and disadvantages of software-based and hardware-based protection we developed method against software piracy. This method relies on the encryption of critical (most valuable) program modules and its safe execution in a safe device. In this paper, as a safe device we will use smart cards. These devices were chosen for their low cost and high level of safety. After implementation of simulated method we found out that decryption of module, which size is ~6KB, in smart card takes only 2% of the total program execution time, so this task does not have significant impact on program execution time. The biggest impact on increasing of protected program execution time have the module performance (59,37% of the total time), license decryption with private key (14.33% of the total time) and communication among protected program and smart card (14,88% of the total time). To reduce the execution time of the protected program we should first optimize these three program codes. Also we found out that the execution of protected program is slower 4 times than the execution of program without any protection. In summary we could say, that our proposed method of protection against piracy could serve to reduce the level of piracy, but execution critical program modules in smart card increases execution time. |