The most widely deployed mobile virtualization solution
Traditional embedded applications involved stand alone, self-sufficient hardware and software, running embedded OSes (RTOSes and kernels) with application-specific user interfaces (or no UI at all). These systems were definitively hardware-centric, with software content comprising tens to perhaps hundreds of thousands of lines of code (50-500 KLoC).
Today’s embedded designs combine ubiquitous connectivity and enterprise-class OSes (Linux, Windows, etc.) with rich desktop-style graphical user interfaces and host increasingly complex software loads that easily top ten million lines of code (10 MLoc). As such, modern intelligent devices face the very same security challenges as desktop and server systems:
They must also meet challenges to their physical security (probing physical connectors, “cooking,” case cracking, etc.) and service requirements for Digital Rights Management (DRM), secure financial transactions (via NFC, etc.) and a range of other protections for content and user identity.
The embedded tools and OS industry has been slow to respond to these and other evolving security requirements. The response from traditional players has been to “bolt on” point solutions to these threats and exploits on top of legacy RTOS platforms. Such legacy embedded software evolved from simple kernels optimized for lightweight execution on 16 and early 32-bit CPUs and often lack even rudimentary robustness conferred by hardware-based memory management.
Conversely, suppliers of embedded versions of enterprise-type embedded OSes respond by relying upon enterprise-type security mechanisms. They defer to security measures taken by the communities and ecosystems surrounding Linux, BSD, and Windows – not an approach appropriate for life-critical and mission-critical applications.
Ultimately, the key to building secure intelligent mobile devices and other embedded applications is to start with an inherently reliable and robust foundation, one that offers: