Who guards the guards? Formal validation of the arm v8-M architecture specification

11Citations
Citations of this article
34Readers
Mendeley users who have this article in their library.

Abstract

Software and hardware are increasingly being formally verified against specifications, but how can we verify the specifications themselves? This paper explores what it means to formally verify a specification. We solve three challenges: (1) How to create a secondary, higher-level specification that can be effectively reviewed by processor designers who are not experts in formal verification; (2) How to avoid common-mode failures between the specifications; and (3) How to automatically verify the two specifications against each other. One of the most important specifications for software verification is the processor specification since it defines the behaviour of machine code and of hardware protection features used by operating systems. We demonstrate our approach on ARM’s v8-M Processor Specification, which is intended to improve the security of Internet of Things devices. Thus, we focus on establishing the security guarantees the architecture is intended to provide. Despite the fact that the ARM v8-M specification had previously been extensively tested, we found twelve bugs (including two security bugs) that have all been fixed by ARM.

Author supplied keywords

Cite

CITATION STYLE

APA

Reid, A. (2017). Who guards the guards? Formal validation of the arm v8-M architecture specification. Proceedings of the ACM on Programming Languages, 1(OOPSLA). https://doi.org/10.1145/3133912

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free