T6: An operating system for TrustZone based Trusted Execution Environment(TEE) in ARM-based systems

Introduction

T6 is an open source operating system for Trusted Execution Environment(TEE) in mobile devices using ARM hardware security extension: TrustZone, which supports legacy operating systems(Android, Linux, etc.) to run simultaneously and provides a strong security property for the legacy operating systems. T6 aims to provide an easy-to-use trusted computing platform for research community, a product-quality TEE for mobile device providers.

Background

The increasing popularity and openness of smartphones stimulate a broad range of products and companies as well as wide spread of malware. Compared to the popularity of smartphones, however, few of them provide a general and strong solution for protecting user secrets and sensitive application data. Existing solutions include Apple Touch ID and Samsung KNOX take a great step, but they keep the door closed to research community, which hinder the development progress in this area. In hardware, ARM proposed its security extension TrustZone several years ago and few researchers take the opportunity further forward. T6 tries to close this gap by providing a general, open source solution using TrustZone for research community.

Features of T6

The following are the features of T6:

Feature T6
TrustZone Extensions Provide general API
Rich legacy OS Support Android, and other Unix like OS
TEE API support Global Platform TEE API
Crypto API PolarSSL and hardware crypto
POSIX API Partial of libC
Task isolation Kernel-User mode and address isolation
Multitask Support
Dynamic third party trustlet loading Support
Secure network connection Yes
Secure User Input Yes
Secure Display Yes
Code base( code size) About 6K LOC
Supported development board Samsung Exynos4,Samsung Exynos5,Versatile Express,ARM Fast Models
Virtualization In progress
Secure Boot In progress

Source code of T6

The latest T6 source code is available via
git clone git://liwenhaosuper.com/t6.git

The source code is licensed under GNU GPL

Feedback

If you are interested in using T6 or have used T6, I would love to hear from you. If there's anything that I can do to make T6 easier to adopt, or any interesting features could be added, I'd like to hear about it.

contact me via liwenhaosuper (liwenhaosuper AT gmail.com)