This will provide a secure boot and a trusted execution environment to enable a secure and trustworthy use of the platform for all the stakeholders. The stakeholder will be able to verify security properties locally and remotely in order to establish and maintain trust between each other based on the health and configuration of the software stack. A challenge will be to keep the process dynamic rather than being setup at deployments.
Security mechanism in software have been proven to be by-passable therefore a hardware root of trust is required to guarantee that the trusted computing base (TCB: responsible for security management on the platform) is integral and not replace or compromised.
ARM provides with the trustzone technology, which provides a root of trust (a crypto key on chip) apart from a trusted execution environment to establish a root of trust. Open Mobile Terminal Platform specifies this in "OMTP Trusted Environment: OMTP TR0" and "OMTP Advanced Trusted Environment: OMTP TR1"
The mobile business model has multiple stakeholders. Device manufacturer, network operator, Owner that can be the user or an enterprise. Then we have third party service providers. Stakeholders' resources are consumed or used on the platform and it is necessary for the stakeholder to verify that the platform is in a trusted state while doing usage or consumption. The mandatory owner/stakeholders have a mobile remotely trusted module (MRTM), while others have a mobile locally trusted module. These are clearly specified by the TCG MPWG. Remote attestation and local verification are the important mechanisms that are first priority followed by a sealing mechanism.
Virtualization is not a feasible technique for mobile platforms there MAC serves as a good scheme for domain or stakeholder engine isolations and interfaces between stakeholder engines. SELinux can do this neatly.
This is a generic use case where open provisioning will be the focus, which makes is different than other available or to become available solutions. This way we solve the basic issues of trusted computing where the rights management is handled according to the business deal between stakeholders rather than totally being in control of the manufacturer or the operator.
1. Initially provide a secure boot
2. Use TPM/MTM emulator to enable TCG standards ... the tricky part ...
3. Provide sealing and remote attestation apart from Integrity measurement architecture (already in kernel needs to be enabled at configure time). It is made to work with hardware tpm but we will sort out how to make it work with our design and trustzone.
4. Develop a verification module for local use.
Points number 2 and 3 have been tested on prototypes while 1 and 4 are in progress. We are sorting out how to use trustzone to enable a trusted/secure boot, while the verification agent takes some time although the design is simple.