White Box
White Box
White Box
Cryptography, as was used in ancient biblical times, offered a technique in which text was manually substituted within a message as a means of hiding its original content. Many years later, during the Second World War, cryptography was extensively used in electro-mechanical machines (such as the infamous Enigma machine). Nowadays, cryptography is ever more pervasive heavily relying on computers supported by solid mathematical basis.
THE NEED FOR WHITE-BOX CRYPTOGRAPHY This is a common problem for software based applications running on PCs, IPTV set-top boxes and other data consuming devices attempting to enforce DRM. By actively monitoring standard cryptographic APIs or memory dumps, hackers are then able to extract the key(s) whenever used. One example of a successful memory-based key extracting attack has enabled the BackupHDDVD tool to copy the content of a protected DVD and remove the DRM from Windows protected media content.
The White Box Challenge The notion of keeping valuable information such as licensing and other trade secrets hidden while operating in a fully transparent environment poses various challenges: How to encrypt or decrypt content without directly revealing any portion of the key and or the data? How to perform strong encryption mechanisms knowing that hackers can observe and or alter the code during execution?
The Concept of White Box Cryptography White box cryptography went head to head with the abovementioned traditional security models. As opposed to previous implementations where the attacker was only given a Black box, i.e. access to inputs and outputs and to the cryptographic algorithm under attack and assumed zero visibility into internal workings, White box provided full visibility instead. White box cryptography techniques aim at protecting software implementations of cryptographic algorithms against key recovery even if the attacker has full control over the machine performing the encryption especially useful in the DRM arena.
White Box Cryptography The White box scenario, in contrast with previously described scenarios, handles far more severe threats while assuming hackers have full visibility and control over the whole operation. Hackers can freely observe dynamic code execution (with instantiated cryptographic keys) and internal algorithm details are completely visible and alterable at will. Despite of this fully transparent methodology, White box cryptography integrates the cipher in a way that does not reveal the key. It is therefore clear that algorithms built for both Black and Grey box models are impractical in the face of operating on non-trusted hosts. Understandably, hackers will not try to break the cipher by only using the means available in Black and Grey box scenarios, instead they will observe the execution when the unprotected key is used directly stealing it. Traditional cryptography algorithms, as exposed in the White box scenario, assume the presence of the key as part of the implementation. The White box cryptography algorithm is protected in the White box scenario, as the key is not present in memory and cannot be extracted not even dynamically. Choosing the most appropriate, most secure cryptographic model is therefore the sole line of defense against malicious threats precisely what White box cryptography attempts to achieve.
Conclusion
The overall security of a protected application is highly dependent on the implementation itself i.e. solely taking a strong cryptographic algorithm does not provide any security if it is not used in the context it was designed fornot using White box cryptography in a White box setup greatly helps hackers reverse engineer the protected software. Most common attacks have attempted to exploit software security flaws and not weaknesses in the cryptographic algorithms but lately the attackers have recognized the vulnerability of classical cryptography in the open PC environment. It is implicit that software protection must receive specific attention throughout the design and implementation stages in addition to being continuously enhance as part of the product life cycle and the release of new versions. In addition to White box cryptography, additional complementary security measures should be used to further strengthen the overall protection scheme. Security comes at a certain cost and, as a direct result, cannot be air tight. It is therefore crucial to properly evaluate the required security level as dictated by the application itself i.e. the value of what needs to be protected in conjunction with the incurred losses assumed by neglecting potential risks.