380 likes | 1.5k Views
White-Box Cryptography. Outline. Motivation White-Box Cryptography White-Box Implementation White-Box In Practice Conclusion. Motivation. Cryptography is widely used nowadays, attack still exists. Black-Box Attack Model White-Box Attack Model. Black-Box Attack Model.
E N D
Outline • Motivation • White-Box Cryptography • White-Box Implementation • White-Box In Practice • Conclusion
Motivation Cryptography is widely used nowadays, attack still exists. • Black-Box Attack Model • White-Box Attack Model
Black-Box Attack Model • Tries to deduce the key from a list {(plaintext, ciphertext)}
Black-Box Attack Model • Side-channel Attack • Executing time • Electromagnetic radiation • Power consumption
White-Box Attack Model • Attacker has full control over software execution • Full access to the implementation of cryptography algorithm • Full access to the platform: CPU calls, memory, registers, etc. • Binary completely visible • Can manipulate the execution
White-Box Attack Model • Target for attack • Implementation of cryptography • Secret key
White-Box Attack Example • Key Whitening Attack • Zero lookup tables(such as S-box) using hex editor • Getting output of penultimate operation • Original AES key easily be derived
White-Box Attack Example • Entropy Attack • Object: Computer Memory • Keys: usually chose by random generator • Code: contains structure
White-Box Attack Example • Format Analysis • Analyze binary code
White-Box Attack Example • Code Boot Attack • Applicable to Bitlocker, TrueCrypt, FileVault • TrueCrypt boot loader • Password entered at boot time • Disk encryption key needs to be stored in memory • Attack: exploit data remanency property of DRAM, cooling increase time • Removed & inserted into another hacked machine to read data, such as crypto keys
Outline • Motivation • White-Box Cryptography • White-Box Implementation • White-Box In Practice • Conclusion
Object • Hide a cryptography key in a white-box implementation
A Naive Example • Implement a cipher as one big lookup table • No more information ‘leaks’ from the set of {(plaintext, ciphertext)} • Lookup Table size: For n-bit block cipher, size would be n*2n bit • 32 bit: 232*32 bit =237 bit=4 GBytes • Using a network of lookup table instead void encrypt (uint32_t* plaintext, uint32_t* ciphertext) { char S[] = { 0x9e37b8e9, 0xaf48c9fa, 0x8d26a7d8, … }; /* Sbox */ ciphertext = S[plaintext]; }
What is White-Box Cryptography? • Definition • Dwb(m): need ONE input • Dk(m): need TWO input • Essentially, Dwb(m) is the exclusive edition of Dk(m) with specific cipher key.
What is White-Box Cryptography? • Main Idea • Embed both the fixed key & random data in a composition. • Hard to derive the original key. • Attacker knows which crypto algorithm • Attacker knows where in the memory • Attacker knows where in the application
What is White-Box Cryptography? • State of Art • Unfortunately, there is no white-box cryptography proved to be secure • Current best method: hide keys according to characteristics of the specific crypto algorithm • Only white-box DES & AES published • Both have been broken • No academic paper on asymmetric primitives
What is White-Box Cryptography? • State of Art • Interesting: • After some company buying white-box crypto solutions, they mix their own crypto, which is not recommended in crypto application. • For white-box crypto, this is reasonable. • Security of white-box crypto depends on how hard the cipher key is hidden, not the cipher primitives.
Outline • Motivation • White-Box Cryptography • White-Box Implementation • White-Box In Practice • Conclusion
First White-Box Implementation • Chow et al. 2002. A White-Box DES Implementation for DRM Applications • Chow et al. 2002. White-Box Cryptography and an AES Implementation
Original DES • Basic operations: Replacing, Changing places, XOR • Chow, et al.: Transform to randomized networked lookup tables closely related to the crypto key
White-Box DES • Transform a cipher into a series of key-dependent lookup tables. • Secret key is hard-code into the lookup tables • Protected by randomization techniques
Lookup Tables Example • Lookup Tables: define every input & output • Any finite function can transform to a lookup table • Table A: Replacing Operation • Table B: XOR Operation • Table C: Negative Operation
Lookup Tables Example • All basic primitives in DES transform into lookup tables:
Divide and Conquer • Attacker may recognize every lookup table and analyze each basic operation. • Mix 3 tables into 1 big lookup table:
Divide and Conquer • BUT, the lookup table will become very huge. • For n bits input & m bits output, 2n×m bits is required. • Solution: we need a series of networked lookup tables: L1 ◦ L2 ◦ L3 ◦ …
Partial Evaluation • Chow, et al. adopted partial evaluation to mix crypto keys with algorithm. • Dskey(m) Dwb(m) • In DES: • Some operation is fixed (e.g. changing place) Corresponding lookup tables are fixed -------- not affected by crypto keys • Some operation is NOT fixed (e.g. replacing using crypto key) Corresponding lookup tables are NOT fixed -------- affected by crypto keys • Attacker can distinguish the unfixed lookup tables by analyzing each table • We need to randomize every lookup table • Making distinguishing more difficult
Internal Encodings • Considering 3 consecutive lookup tables in the network: L3◦L2◦L1, L2 contains some key information. • e.g. L2(x)=x⊕k • Every lookup table is available to the white-box attacker • The key information can be extracted directly • e.g. L2(0)
Internal Encodings • Countermeasure: Add internal encoding: • b1, b2: randomization operations • b1-1, b2-1: opposite operations • L’3◦ L’2◦ L’1= L3◦b2-1◦b2◦ L2◦b1-1◦b1◦ L1= L3◦ L2◦ L1 • Now, L’2 does not leak any key information • Attacker have to analyze all 3 encoded tables to gain information
Outline • Motivation • White-Box Cryptography • White-Box Implementation • White-Box In Practice • Conclusion
Code Lifting • Attacker: No need to know internal details, just need API. • Embed the white-box implementation into his App. • Still encrypt/decrypt data as having the key.
External Encodings • Same as Internal Encodings. • But not between 2 blocks inside cryptography implementation • But outside • Annihilating encoding somewhere else • e.g. incorporate into the decryption functions
Traitor Tracing • Object: Detect who has been sharing code (pirate) • Use case: DRM • Insert fingerprints into white-box implementation • Can also be used in software tamper resistance • Malware instructions can be detected • Any modification leads to lookup tables collapse
Conclusion • Being used in real-world application, mainly DRM apps. • Although academic attacks have been published • No attacks on commercial white-box implementation have been seen. • White-box cryptography still in its early days • Requires further research before being widely adopted.