|
|
Line 1: |
Line 1: |
− | Code obfuscation is emerging as a key asset in security by obscurity. It aims at hiding sensitive
| |
− | information in programs so that they become more difficult to understand and reverse engineer.
| |
− | Since the results on the impossibility of perfect and universal obfuscation, many obfuscation
| |
− | techniques have been proposed in the literature, ranging from
| |
− | simple variable encoding to hiding the control flow of a program.
| |
| | | |
− | In this talk, I will explain how we formally verified in Coq an advanced code obfuscation called control-flow graph flattening,
| |
− | that is used in state-of-the-art program obfuscators. Our control-flow graph flattening is a program
| |
− | transformation operating over C programs, that is integrated into the CompCert formally verified compiler.
| |
− | The semantics preservation proof of our program obfuscator relies on a simulation proof performed
| |
− | on a realistic language, the Clight language of CompCert.
| |
− | The automatic extraction of our program obfuscator into OCaml yields a program with competitive results.
| |