Formal Analysis of Security Data Paths in RTL Design Ziyad Hanna, PhD, Chief Architect, VP of Research Jamil R. Mazzawi, Consulting Services Manager HVC 2012 - Haifa Verification Conference, November 8, 2012 Introduction Introduction (Cont.) Source: Constructive and Destructive Aspects of Hardware Security for the Internet of Things. Prof. Christof Paar, presented at Intel’s Symposium: Computer Security: Modeling and Validation, 5 Nov 2012 Introduction (Cont.) Agenda  Why security path verification  Security path verification overview  Usage examples  Conclusion Why Security Path Verification  Why do people care • Many systems (cell phones, game console etc.) contains secure information • Vulnerability will likely lead to unauthorized access of secure data • The potential loss (direct or indirect) is very large  Where is the vulnerability • Software encryption algorithm • Hardware where secured areas can be accessed without going through the proper encryption paths  Why is there hardware vulnerability • Integrating IP’s create an unexpected paths to access secure areas • Addition of test-logic creates paths to the outputs What Do People Do Today  System Architecture • Moving secured areas in to isolation • Analyzing data-flow on the whole system • Manually identify potential structural paths and insert blocking conditions  System integration • Investigate (often with a structural analysis tool) each structural path to ensure that they are false path  Very tedious and ad hoc • Only be able to look at a small subset of trace • Rather subjective and no clear checking mechanism • Difficult to get real sense of completeness Security Path Verification overview  Identify any unintentional path to/from secured areas • Use of Path sensitization technology (see next) • User specifies secure area and illegal sources and destinations for the data inside this area – Optional: User can specify blocks through which data is allowed to propagate • Waveforms show illegal propagations found Secure Area  Potential Savings • Time savings – weeks vs months • Verify all paths and able to understand progress • Completeness, not just subjective determination of correctness Usage example 1  Verify that data in secure register does not propagate to AXI interface without going through encryption block Secure Register Encryption Block AXI Secure Interface Usage example 1 (cont’d)  Verify that data in secure register does not get overwritten by any data on AXI interface Secure Register Encryption Block AXI Secure Interface Path sensitization technology  Path sensitization technology: • This technology introduces a new type of property: path cover, which has a source signal and a destination signal – • No SVA equivalent for this property! By proving this property, data at the source of the path is tainted. Then, Jasper formally verifies if it is possible to cover tainted data at the destination • When the property is covered, a waveform displays how data can propagate from source to destination • The property can also be determined to be unreachable, which means that it is not possible for data to propagate from source to destination Example: Path cover from B to C Data at B is tainted Can tainted data show up at C? Waveforms Taint generated at the source Red highlighting: Data reached destination Black-Box with Connectivity abstraction  During Security Verification, blocks can be black-boxed with a special qualification about whether tainted data is allowed to go through the black-box or not  This allows the user to selective black-box modules and tune the verification so only meaningful paths are found  This feature is important to guarantee the scalability of this verification while still keeping results sound Standard black-boxes: Tainted data does not go through Black-box with connectivity abstraction: Tainted data is allowed to go through Usage example 2  Verify that data read from ROM does not propagate to some key points of the design top Master 0 Master 1 Interconnect Slave 0 RAM Slave 1 Slave 2 ROM Slave 3 Usage example 3  Verify that data from secure area never propagates to CPU register memory if “protected mode” is set to 0 Slave CPU Protected Mode =0 Secure Area Register Memory Usage example 4  The design is a small network, consisting of external memory, external secure ROM, two CPUs and some internal elements.  The Encrypt/Decrypt slaves receive cryptography keys from the Key Manager (a master) and encrypts/decrypts data written to some of its memory locations  The Key Manager reads the keys from the ROM and transfers it to the slaves after reset  The goal is to verify that there is no undesired leak of this key to other parts of the system, such as CPU and external memory  Bus protocol is simple request/acknowledge Design Overview top Master 0: CPU0 Master 1: CPU1 Master 2: Key Mgr Interconnect Slave 0: ROM Interface ROM Slave 1: Encrypt Slave 2: Decrypt Slave 3: RAM Interface External RAM Reading the keys from the ROM to the slaves top Master 0: CPU0 Master 1: CPU1 Master 2: Key Mgr Interconnect Slave 0: ROM Interface ROM DK EK Slave 1: Encrypt Slave 2: Decrypt EK DK Slave 3: RAM Interface External RAM Valid encryption or decryption top Master 0: CPU0 Master 1: CPU1 Master 2: Key Mgr Interconnect Slave 0: ROM Interface DK EK ROM EK DK Slave 3: RAM Interface External RAM Check 1: ROM leak top Master 0: CPU0 Master 1: CPU1 Master 2: Key Mgr Interconnect Slave 0: ROM Interface ROM DK EK Slave 1: Encrypt Slave 2: Decrypt Slave 3: RAM Interface External RAM Check 2: Illegal key overwrite top Master 0: CPU0 Master 1: CPU1 Master 2: Key Mgr Interconnect Slave 0: ROM Interface ROM EK DK Slave 3: RAM Interface External RAM Check 2: Illegal key overwrite top Master 0: CPU0 Master 1: CPU1 Master 2: Key Mgr Interconnect Slave 0: ROM Interface ROM EK DK Slave 3: RAM Interface External RAM Check 2: Illegal key overwrite from wrong ROM address top Master 0: CPU0 Master 1: CPU1 Master 2: Key Mgr Interconnect Slave 0: ROM Interface EK DK Slave 3: RAM Interface address!=0 ROM External RAM Conclusion: Security Path Verification  Verify the lack of functional paths to/from secure areas of a design  Based on path sensitization technology  Requirements are not expressible by regular SVA assertions, therefore not possible with standard FV tools  Special black-boxing to allow scalability to bigger designs  Easy debug with special highlighting in the waveform