{'fraction_non_alphanumeric': 0.02240413614821198, 'fraction_numerical': 0.0, 'mean_word_length': 5.0, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Diversiteit voor softwarebescherming Diversity for Software Protection

Openness has arguably been an enabler for the widespread proliferation of the PC (Personal Computer) platform. At the same time, it has left software vulnerable. This is a growing concern as software more and more contains or controls access to valuable information. For example, medical and financial information may be stored digitally. The intellectual property of movies, music and pictures may be protected by software-based DRM (Digital Rights Management) systems. Furthermore, some users modify software to alter the behavior intended by the provider. For example, they may circumvent copy restriction mechanisms or they may modify a game to become invulnerable. When the adversary has full control over the environment running the software, he can inspect and modify the software at will. In the presence of such a malicious host, it is only a matter of time before the software is broken. While most defenses are about delaying the first attack, we focus on minimizing the impact of a successful attack through diversity. As such, this work is an acknowledgment that attacks will continue to emerge. It is useful in business models that can tolerate a limited number of (temporarily) cracked copies. Without diversity, the number of attacked copies increases very fast as soon as one attack is crafted. This attack can be reused quickly and easily because it does not have to guess much about other targets; they are essentially the same. By introducing artificial diversity, we can delay the spread of an attack. As a result, information learned from one copy may not be applicable to other copies and automated attacks may only be successful on one or a limited number of copies. Furthermore, diversity allows us to discriminate between different versions. Therefore, we can limit the usability of an attack over time by no longer providing access to updates, extra functionality, online services and content to copies that are known to be compromised. Another application of diversity is message encoding. By linking different versions to different users, traitor tracing can be facilitated. This technique is referred to as fingerprinting. Alternatively, diversity can be used for steganography, i.e., as a covert communication channel.