Skip to main content
Log in

SMASHUP: a toolchain for unified verification of hardware/software co-designs

  • Special Section on Proofs 2015
  • Published:
Journal of Cryptographic Engineering Aims and scope Submit manuscript

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).

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1

Similar content being viewed by others

Notes

  1. http://www.synopsys.com/Tools/Verification/hardware-verification/emulation/Pages/zebu-server-asic-emulator.aspx.

  2. http://www.mentor.com/products/fv/seamless/.

  3. http://www.carbondesignsystems.com/soc-designer-plus.

  4. http://www.veripool.org/wiki/verilator.

  5. http://vlsi.colorado.edu/~vis/.

  6. http://nusmv.fbk.eu/.

  7. http://www.cadence.com/products/fv/enterprise_simulator/pages/default.aspx.

  8. http://www.synopsys.com/Tools/Verification/FormalEquivalence/Pages/Formality.aspx.

  9. Available at https://gitlab.eurecom.fr/Aishuu/smashup.

References

  1. Allamigeon, X., Blanchet, B.: Reconstruction of attacks against cryptographic protocols. In: 18th IEEE Workshop on Computer Security Foundations, 2005 (CSFW-18, 2005) (2005)

  2. Apvrille, L., Roudier, Y.: SysML-Sec: A SysML environment for the design and development of secure embedded systems. In: APCOSEC 2013 (2013)

  3. 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)

  4. 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)

  5. 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)

  6. Blanchet, B.: An efficient cryptographic protocol verifier based on prolog rules. In: Proceedings 14th IEEE Computer Security Foundations Workshop, 2001 (2001)

  7. Blanchet, B., Smyth, B., Cheval, V.: Automatic Cryptographic Protocol Verifier, User Manual and Tutorial. CNRS, Departement dInformatique, Ecole Normale Superieure, Paris (2015)

  8. 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)

  9. Camurati, P., Prinetto, P.: Formal verification of hardware correctness: introduction and survey of current research. Computer 21(7), 8–19 (1988)

    Article  Google Scholar 

  10. Clarke, E., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement. In: Computer Aided Verification (2000)

  11. Clarke, L.: A system to generate test data and symbolically execute programs. IEEE Trans. Softw. Eng. 2(3), 215–222 (1976)

    Article  MathSciNet  Google Scholar 

  12. Clocksin, W., Mellish, C.S.: Programming in PROLOG. Springer, New York (2003)

    Book  MATH  Google Scholar 

  13. 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)

  14. 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)

  15. Dolev, D., Yao, A.C.: On the security of public key protocols. IEEE Trans. Inf. Theory 29(2), 198–208 (1983)

    Article  MathSciNet  MATH  Google Scholar 

  16. 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)

  17. 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

  18. 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)

  19. Fox, A., Myreen, M.: A trustworthy monadic formalization of the ARMv7 instruction set architecture. In: Interactive Theorem Proving (2010)

  20. 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)

  21. Kern, C., Greenstreet, M.R.: Formal verification in hardware design: a survey. ACM Trans. Des. Autom. Electron. Syst. 4(2), 123–193 (1999)

    Article  Google Scholar 

  22. 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)

  23. 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)

  24. 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)

  25. 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)

  26. Schlich, B.: Model checking of software for microcontrollers. ACM Trans. Embed. Comput. Syst. 9(4), 36 (2010)

    Article  Google Scholar 

  27. 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)

    Article  Google Scholar 

  28. 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)

  29. 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)

  30. 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)

  31. 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)

Download references

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

Authors

Corresponding author

Correspondence to Florian Lugou.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s13389-016-0145-2

Keywords

Navigation