Abstract
Critical and privacy-sensitive applications of smart and connected objects such as health-related objects are now common, thus raising the need to design these objects with strong security guarantees. Many recent works offer practical hardware-assisted security solutions that take advantage of a tight cooperation between hardware and software to provide system-level security guarantees. Formally and consistently proving the efficiency of these solutions raises challenges since software and hardware verifications approaches generally rely on different representations. The paper first sketches an ideal security verification solution naturally handling both hardware and software components. Next, it proposes an evaluation of formal verification methods that have already been proposed for mixed hardware/software systems, with regards to the ideal method. At last, the paper presents a conceptual approach to this ideal method relying on ProVerif, and applies this approach to a remote attestation system (SMART).
Similar content being viewed by others
Notes
Available at https://gitlab.eurecom.fr/Aishuu/smashup.
References
Allamigeon, X., Blanchet, B.: Reconstruction of attacks against cryptographic protocols. In: 18th IEEE Workshop on Computer Security Foundations, 2005 (CSFW-18, 2005) (2005)
Apvrille, L., Roudier, Y.: SysML-Sec: A SysML environment for the design and development of secure embedded systems. In: APCOSEC 2013 (2013)
Arias, O., Davi, L., Hanreich, M., Jin, Y., Koeberl, P., Paul, D., Sadeghi, A.R., Sullivan, D.: HAFIX: hardware-assisted flow integrity extension. In: 52nd Design Automation Conference (DAC) (2015)
Armstrong, R.C., Punnoose, R.J., Wong, M.H., Mayo, J.R.: Survey of existing tools for formal verification. Tech. rep., Sandia National Laboratories (2014)
Biere, A., Cimatti, A., Clarke, E., Zhu, Y.: Symbolic model checking without BDDs. In: Tools and Algorithms for the Construction and Analysis of Systems (1999)
Blanchet, B.: An efficient cryptographic protocol verifier based on prolog rules. In: Proceedings 14th IEEE Computer Security Foundations Workshop, 2001 (2001)
Blanchet, B., Smyth, B., Cheval, V.: Automatic Cryptographic Protocol Verifier, User Manual and Tutorial. CNRS, Departement dInformatique, Ecole Normale Superieure, Paris (2015)
Brumley, D., Jager, I., Avgerinos, T., Schwartz, E.: BAP: a binary analysis platform. In: Proceedings of the 23rd International Conference on Computer Aided Verification (2011)
Camurati, P., Prinetto, P.: Formal verification of hardware correctness: introduction and survey of current research. Computer 21(7), 8–19 (1988)
Clarke, E., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement. In: Computer Aided Verification (2000)
Clarke, L.: A system to generate test data and symbolically execute programs. IEEE Trans. Softw. Eng. 2(3), 215–222 (1976)
Clocksin, W., Mellish, C.S.: Programming in PROLOG. Springer, New York (2003)
Danger, J.L., Guilley, S., Porteboeuf, T., Praden, F., Timbert, M.: HCODE: hardware-enhanced real-time CFI. In: Proceedings of the 4th Program Protection and Reverse Engineering Workshop (2014)
Davidson, D., Moench, B., Ristenpart, T., Jha, S.: FIE on firmware: finding vulnerabilities in embedded systems using symbolic execution. In: Proceedings of the 22nd USENIX Security Symposium (USENIX Security 13) (2013)
Dolev, D., Yao, A.C.: On the security of public key protocols. IEEE Trans. Inf. Theory 29(2), 198–208 (1983)
D’Silva, V., Kroening, D., Weissenbacher, G.: A survey of automated techniques for formal software verification. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 27(7), 1165–1178 (2008)
Dullien, T., Porst, S.: REIL: A Platform-Independent Intermediate Representation of Disassembled Code for Static Code Analysis (2009). http://www.zynamics.com/downloads/csw09.pdf
El Defrawy, K., Francillon, A., Perito, D., Tsudik, G.: SMART: secure and minimal architecture for (establishing a dynamic) root of trust. In: Proceedings of the Network and Distributed System Security Symposium (NDSS), San Diego (2012)
Fox, A., Myreen, M.: A trustworthy monadic formalization of the ARMv7 instruction set architecture. In: Interactive Theorem Proving (2010)
Hong, S., Oguntebi, T., Casper, J., Bronson, N., Kozyrakis, C., Olukotun, K.: A case of system-level hardware/software co-design and co-verification of a commodity multi-processor system with custom hardware. In: Proceedings of the Eighth IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (2012)
Kern, C., Greenstreet, M.R.: Formal verification in hardware design: a survey. ACM Trans. Des. Autom. Electron. Syst. 4(2), 123–193 (1999)
Koeberl, P., Schulz, S., Sadeghi, A.R., Varadharajan, V.: TrustLite: a security architecture for tiny embedded devices. In: Proceedings of the Ninth European Conference on Computer Systems (2014)
Kroening, D., Sharygina, N.: Formal verification of systemC by automatic hardware/software partitioning. In: Proceedings of the 2nd ACM/IEEE International Conference on Formal Methods and Models for Co-Design (2005)
Noorman, J., Agten, P., Daniels, W., Strackx, R., Van Herrewege, A., Huygens, C., Preneel, B., Verbauwhede, I., Piessens, F.: Sancus: low-cost trustworthy extensible networked devices with a zero-software trusted computing base. In: Presented as part of the 22nd USENIX Security Symposium (USENIX Security 13) (2013)
Queille, J.P., Sifakis, J.: Specification and verification of concurrent systems in CESAR. In: Proceedings of the 5th Colloquium on International Symposium on Programming (1982)
Schlich, B.: Model checking of software for microcontrollers. ACM Trans. Embed. Comput. Syst. 9(4), 36 (2010)
Schmidt, B., Villarraga, C., Fehmel, T., Bormann, J., Wedler, M., Nguyen, M., Stoffel, D., Kunz, W.: A new formal verification approach for hardware-dependent embedded system software. IPSJ Trans. Syst. LSI Des. Methodol. 6, 135–145 (2013)
Semeria, L., Ghosh, A.: Methodology for hardware/software co-verification in C/C++. In: Proceedings of the Asia and South Pacific Design Automation Conference, 2000 (ASP-DAC 2000) (2000)
Subramanyan, P., Arora, D.: Formal verification of taint-propagation security properties in a commercial SoC design. In: Design, Automation and Test in Europe Conference and Exhibition (DATE) (2014)
Villarraga, C., Schmidt, B., Bormann, J., Bartsch, C., Stoffel, D., Kunz, W.: An equivalence checker for hardware-dependent embedded system software. In: 2013 Eleventh IEEE/ACM International Conference on Formal Methods and Models for Codesign (MEMOCODE) (2013)
Villarraga, C., Schmidt, B., Bao, B., Raman, R., Bartsch, C., Fehmel, T., Stoffel, D., Kunz, W.: Software in a hardware view: new models for hw-dependent software in soc verification and test. In: 2014 International Test Conference (2014)
Acknowledgements
This work was partly funded by the French Government (National Research Agency, ANR) through the “Investments for the Future” Program reference #ANR-11-LABX-0031-01. Finally, we would like to express our gratitude to Bruno Blanchet for his precious help and patient contribution to our understanding of ProVerif, and to our anonymous reviewers for their insightful comments.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Lugou, F., Apvrille, L. & Francillon, A. SMASHUP: a toolchain for unified verification of hardware/software co-designs. J Cryptogr Eng 7, 63–74 (2017). https://doi.org/10.1007/s13389-016-0145-2
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s13389-016-0145-2