<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xml:lang="en" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CSSE</journal-id>
<journal-id journal-id-type="nlm-ta">CSSE</journal-id>
<journal-id journal-id-type="publisher-id">CSSE</journal-id>
<journal-title-group>
<journal-title>Computer Systems Science &#x0026; Engineering</journal-title>
</journal-title-group>
<issn pub-type="ppub">0267-6192</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">38664</article-id>
<article-id pub-id-type="doi">10.32604/csse.2023.038664</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>The Trade-Off Between Performance and Security of Virtualized Trusted Execution Environment on Android</article-title>
<alt-title alt-title-type="left-running-head">The Trade-Off Between Performance and Security of Virtualized Trusted Execution Environment on Android</alt-title>
<alt-title alt-title-type="right-running-head">The Trade-Off Between Performance and Security of Virtualized Trusted Execution Environment on Android</alt-title>
</title-group>
<contrib-group>
<contrib id="author-1" contrib-type="author">
<name name-style="western"><surname>Doan</surname><given-names>Thien-Phuc</given-names></name></contrib>
<contrib id="author-2" contrib-type="author">
<name name-style="western"><surname>Chau</surname><given-names>Ngoc-Tu</given-names></name></contrib>
<contrib id="author-3" contrib-type="author">
<name name-style="western"><surname>Park</surname><given-names>Jungsoo</given-names></name></contrib>
<contrib id="author-4" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Jung</surname><given-names>Souhwan</given-names></name><email>souhwanj@ssu.ac.kr</email></contrib>
<aff id="aff-1"><institution>Soongsil University</institution>, <addr-line>Seoul, 06978</addr-line>, <country>Korea</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Souhwan Jung. Email: <email>souhwanj@ssu.ac.kr</email></corresp>
</author-notes>
<pub-date date-type="collection" publication-format="electronic">
<year>2023</year></pub-date>
<pub-date date-type="pub" publication-format="electronic">
<day>31</day>
<month>3</month>
<year>2023</year>
</pub-date>
<volume>46</volume>
<issue>3</issue>
<fpage>3059</fpage>
<lpage>3073</lpage>
<history>
<date date-type="received"><day>23</day><month>12</month><year>2022</year></date>
<date date-type="accepted"><day>24</day><month>2</month><year>2023</year></date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2023 Doan et al.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Doan et al.</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_CSSE_38664.pdf"></self-uri>
<abstract>
<p>Nowadays, with the significant growth of the mobile market, security issues on the Android Operation System have also become an urgent matter. Trusted execution environment (TEE) technologies are considered an option for satisfying the inviolable property by taking advantage of hardware security. However, for Android, TEE technologies still contain restrictions and limitations. The first issue is that non-original equipment manufacturer developers have limited access to the functionality of hardware-based TEE. Another issue of hardware-based TEE is the cross-platform problem. Since every mobile device supports different TEE vendors, it becomes an obstacle for developers to migrate their trusted applications to other Android devices. A software-based TEE solution is a potential approach that allows developers to customize, package and deliver the product efficiently. Motivated by that idea, this paper introduces a <bold>VTEE</bold> model, a software-based TEE solution, on Android devices. This research contributes to the analysis of the feasibility of using a virtualized TEE on Android devices by considering two metrics: computing performance and security. The experiment shows that the <bold>VTEE</bold> model can host other software-based TEE services and deliver various cryptography TEE functions on the Android environment. The security evaluation shows that adding the <bold>VTEE</bold> model to the existing Android does not add more security issues to the traditional design. Overall, this paper shows applicable solutions to adjust the balance between computing performance and security.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Mobile security</kwd>
<kwd>trusted execution model</kwd>
<kwd>virtualized trusted execution environment</kwd>
<kwd>hypervisor</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1"><label>1</label><title>Introduction</title>
<p>Nowadays, it is common for people to store personal information and make financial transactions on their mobile devices. Because of that reason, the mobile ecosystem becomes a profitable attraction for hackers and malicious application developers. Such a problem holds a great impact on Android, which is one of the most popular Operating Systems (OS) for mobile. So far, many solutions have been introduced and applied to the Android operating system for leveraging security. Those solutions include software-based solutions such as SEAndroid, Android Binder, and Google Mobile Services (GMS), and hardware-based solutions such as TEE.</p>
<p>The research on securing memory started with a series of inventions by Texas Instrumentation in the 1980s [<xref ref-type="bibr" rid="ref-1">1</xref>,<xref ref-type="bibr" rid="ref-2">2</xref>]. The next invention is <italic>secure execution,</italic> introduced by Nokia, which provides a standard processor with the ability to implement both secure and insecure OSs [<xref ref-type="bibr" rid="ref-3">3</xref>,<xref ref-type="bibr" rid="ref-4">4</xref>]. In 2004, ARM introduced TrustZone as a security system for their architecture [<xref ref-type="bibr" rid="ref-5">5</xref>]. With the use of hardware-enforced security, mobile devices armed with TrustZone can reduce the domain of the attacks to normal applications. Until now, as ARM dominated most of the Android-based mobile market, TrustZone has been widely deployed as a TEE environment for Android devices.</p>
<p>Although hardware-based TEEs such as TrustZone could ensure high-level security, these solutions also highly depend on many different hardware technologies and TEE system providers. Although most Android devices use the ARM architecture, there are still candidates for Intel Atom processors in the market [<xref ref-type="bibr" rid="ref-6">6</xref>]. Because of that, TEE services that were originally developed for TrustZone will not be available on Intel devices. On the other hand, the authors in [<xref ref-type="bibr" rid="ref-7">7</xref>] have provided a categorization of TrustZone-assisted TEE systems in which multiple of them are able to support Android devices. It is also noticeable that most of the TEE systems provided in the paper are proprietary. Since most of the TEE systems are proprietary, it is costly for an Original Equipment Manufacturer (OEM) to deploy their secured apps into Android devices. Different types of TEE platforms and systems also limit OEM developers from providing cross-platform trusted services. In the case of ordinary developers, they have no or limited access to TEE functionality, and there is also no alternative solution for hosting their security services.</p>
<p>Software-based TEE, on the other side, gives more flexibility in deployment, especially mobile device systems. Mobile devices, and their accompanying operating systems, such as Android, are reaching a certain level of complexity where multiple security errors in such software are inevitable. For example, from the beginning of 2021 to October 2021, there have been more than 385 CVEs related to Android, some of which allow privilege escalation, allowing bad guys to control mobile devices remotely without the need to give user permission (indirectly). Rapid delivery of patches is only a temporary solution, while developing solutions that better protect the system is the long-term way. Limited access to and development of security features using hardware-based TEEs is hindering the continued evolution of the protection solution.</p>
<p>This study was conducted with the motivation to develop a new research direction on Android-based virtualized TEE. In order to enhance a non-OEM friendly environment, VTEE was designed with less hardware dependency. The model only requires virtualization-supported hardware (i.e., hypervisor mode enabled), which is available by default in most modern Android chipsets. As far as our best knowledge, this is the first work to implement virtualized TEE environment for the Android platform. VTEE model is designed to be a broker service that responds to TEE service requests. The responses can be returned from either software-based or hardware-based TEEs, depending on the current hardware status. By combining the model with virtualization technology, VTEE can provide an isolated environment for hosting another software-based TEE, such as Open-TEE. In this way, VTEE provides much more flexibility for developing new trusted applications on demand, which is hardly done with previous solutions. The contributions for this paper are as follows:
<list list-type="bullet">
<list-item><p>A broker model named <bold>VTEE</bold> is proposed to solve the availability issue of existing hardware-based TEE that causes a major obstacle in developing security features that take advantage of TEE on the system by combining it with a software-based solution.</p></list-item>
<list-item><p>This research also proposes methods to adjust and analyze the trade-off between <italic>performance</italic> and <italic>security</italic> of <italic>software-based</italic> TEE solutions for the Android platform. The demonstration shows that the <italic>computational overhead</italic> and <italic>security</italic> are acceptable while executing the VTEE model on the Android environment.</p></list-item>
</list></p>
<p>The paper is organized as follows. Section 2 contains knowledge about TEE architecture and components. The section also includes related works on hardware-based and software-based TEE. Section 3 contains the detailed design of the proposed model. Section 4 provides the evaluation and experiment results of the proposed model, including the overhead, performance, and efficiency of VTEE. Section 5 concludes the paper with future research plans for the VTEE project.</p>
</sec>
<sec id="s2"><label>2</label><title>Related Works</title>
<sec id="s2_1"><label>2.1</label><title>Introduction to TEE Architecture</title>
<p>TEE architecture and design have been explained in various documentation [<xref ref-type="bibr" rid="ref-8">8</xref>&#x2013;<xref ref-type="bibr" rid="ref-10">10</xref>]. A common TEE design contains a normal world (or non-secure, also known as Rich Execution Environment in some documents) and an isolated environment called a secure world. Each of the normal and secure worlds has its operating system and kernel. An application that runs inside a secure world is referred to as a Trusted Application (TA). On the other hand, an application running in the regular operating system is called an Untrusted Application (UA).</p>
<p>The TEE drivers are designed as Linux kernel drivers located under<monospace>/dev/</monospace>, and the drivers are named differently between TEE platforms. For Qualcomm&#x2019;s Secure Execution Environment (QSEE), the TEE driver is named <italic>qseecom</italic> [<xref ref-type="bibr" rid="ref-11">11</xref>]. Trustonic is another vendor of TrustZone that provided TEE drivers under the name <italic>mobicore</italic> [<xref ref-type="bibr" rid="ref-12">12</xref>]. Other projects such as Portable Trusted Execution Environment (<italic>OpTEE</italic>), <italic>OpenTee</italic>, and <italic>Intel Software Guard Extensions (SGX)</italic> also provided their own Linux drivers [<xref ref-type="bibr" rid="ref-9">9</xref>,<xref ref-type="bibr" rid="ref-13">13</xref>&#x2013;<xref ref-type="bibr" rid="ref-15">15</xref>]. Trusted execution environments, such as TrustZone and Intel SGX, could gain control of hardware resources and isolate those from the normal world. Because of that design, TEEs are able to prevent attacks from the normal world to the processes that interact with the isolated resources.</p>
</sec>
<sec id="s2_2"><label>2.2</label><title>Levels of Security in Android</title>
<p>In this section, this work provides an explanation of security layers in Android where trusted execution regions are placed at the highest security level. <xref ref-type="fig" rid="fig-1">Fig. 1</xref> illustrates the four main security layers in Android.</p>
<fig id="fig-1"><label>Figure 1</label><caption><title>Android security levels</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CSSE_38664-fig-1.tif"/></fig>
<p>The order of Security Levels (SL) is increasing from the highest layer to the lowest layer (Secure mode). At the application level, protections are made through Android components such as IPC binder and Dalvik/ART runtime. The malicious apps can also be filtered out by GMS.</p>
<p>The next level of security in an Android device is provided from the Operating system (OS) level with Discretionary Access Control (MAC). Based on the document about Linux Security Framework (LSF) written by Wright and others [<xref ref-type="bibr" rid="ref-16">16</xref>], the LSM hook is a module that provides MAC along with Discretionary Access Control (DAC). In normal Linux, there are many options for MAC, such as AppArmor (for Debian distribution), SELinux (for Redhat distribution), and more. For Android, the MAC option is a modified version of SELinux, which is called as SEAndroid. From Android 10, the control group (Cgroup) is also a part of the security layer for controlling the resources of a specific process or thread.</p>
<p>The Hypervisor (HYP) mode is the next privileged level in ARM architecture which is higher than kernel privilege at the OS level. Hyp mode is used for hosting the hypervisor code in a secure CPU state [<xref ref-type="bibr" rid="ref-17">17</xref>]. However, the HYP mode still has a lower security level than the TEE design since it only supports CPU protection. On the other hand, TEE could support various resource protection, including memory, GPU, and other security elements.</p>
</sec>
<sec id="s2_3"><label>2.3</label><title>Hardware-Based TEE</title>
<p>Hardware-based TEEs, as illustrated in <xref ref-type="fig" rid="fig-2">Fig. 2a</xref>, have been invented by various CPU vendors and deployed in mobile devices for several years. TrustZone, a System-on-Chip (SoC) security solution for securing applications and data, was introduced in 2004 and officially released by ARM in 2005 [<xref ref-type="bibr" rid="ref-18">18</xref>]. In 2016, Intel introduced another hardware-based TEE solution in the name of Intel SGX [<xref ref-type="bibr" rid="ref-15">15</xref>]. As for the open-source community, Open OpTEE is a project developed and supported by Linaro Limited [<xref ref-type="bibr" rid="ref-14">14</xref>]. The project is commonly known since it supports various development boards as well as Quick Emulation (QEMU) environment. Andix OS is another open-source TEE project that mainly serves research purposes on TrustZone [<xref ref-type="bibr" rid="ref-19">19</xref>].</p>
<fig id="fig-2"><label>Figure 2</label><caption><title>Hardware-based and software-based TEE architecture</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CSSE_38664-fig-2.tif"/></fig>
</sec>
<sec id="s2_4"><label>2.4</label><title>Software-Based TEE</title>
<p>Software-based solutions is more attentive to solve limitations of hardware-based ones. Firstly, it is cheaper to have software-based solutions deployed because it doesn&#x2019;t depend on specified hardware requirements such as ARM TrustZone, Intel SGX. Secondly, deploying software-based one is easier to add new function when non-OEM developer need to add special security functions to their application.</p>
<p>Software solutions for deploying TEE are mostly built on top of virtualization environments, as shown in <xref ref-type="fig" rid="fig-2">Fig. 2b</xref>. A virtualizing OS is run by the host system to provide trusted applications for securely computing and processing sensitive data. Previous researchs on developing software-based TEE environment could be categorized as follows.</p>
<p><bold>Intra-privilege isolation:</bold> known as same-privilege isolation, where the virtualized TEE is located in same security level to the rich world application. Not many studies focus on this approach due to less security provided. Related techniques proposed to enhance isolation for virtualization in ARM platforms [<xref ref-type="bibr" rid="ref-20">20</xref>,<xref ref-type="bibr" rid="ref-21">21</xref>].</p>
<p><bold>Inter-privilege isolation:</bold> there are couple of techniques proposed to deploy isolation environment using ARM platform [<xref ref-type="bibr" rid="ref-22">22</xref>,<xref ref-type="bibr" rid="ref-23">23</xref>]. These techniques leverage the CPU separation of ARM HYP mode to provide isolation. Li et al. [<xref ref-type="bibr" rid="ref-24">24</xref>] proposed a smaller trusted computing base (TCB) size than using KVM in term of line-of-code with the goal of protecting integrity and confidentiality for virtual machines running in cloud platform. Open-TEE which provides a software-based TEE environment followed by the Global Platform Standard [<xref ref-type="bibr" rid="ref-9">9</xref>]. In CCS &#x2019;19, Zhao et al. introduced SecTEE [<xref ref-type="bibr" rid="ref-25">25</xref>], their Software-based architecture, which was built on top of OP-TEE. SecTEE could resist side-channel attacks self-sufficiently with its software-based enclave architecture. Another approach presented by Lee et al. is SofTEE [<xref ref-type="bibr" rid="ref-26">26</xref>]. Their solution provides a memory isolation space by separating the kernel into the normal and secure worlds, which is inspired by the ARM TrustZone.</p>
<p>In short, software-based TEE environments have been developed for different purposes using various approaches. However, these works didn&#x2019;t show the way to adjust between the security and performance of virtualized TEE solutions. Furthermore, virtualized TEE solutions are mostly implemented for cloud computing but are limited to Android platforms.</p>
</sec>
</sec>
<sec id="s3"><label>3</label><title>Motivation and Proposed Model</title>
<sec id="s3_1"><label>3.1</label><title>Motivation</title>
<p>On the one hand, Hardware-based solutions rely on chipset technological support such as TrustZone, SGX, etc., which might lead to the difficulty for OEM developers to provide cross-platform trusted services. On the other hand, current software-based approaches, to our best knowledge, have not supported Android mobile devices, the most popular in the mobile market [<xref ref-type="bibr" rid="ref-27">27</xref>]. Motivated by the existing problems, this study introduces a software-based TEE model called Virtualized TEE (or <bold>VTEE</bold>).</p>
</sec>
<sec id="s3_2"><label>3.2</label><title>Proposed Model</title>
<p>This section introduces <bold>VTEE</bold> model with an analysis of the effectiveness of the model for the existing problems of hardware-based TEEs. <xref ref-type="fig" rid="fig-3">Fig. 3a</xref> illustrates how VTEE can be a part of the Android system as well as the design of the VTEE broker model. The proposed model adds a TEE broker service to the normal world that contains the following components:
<list list-type="bullet">
<list-item><p>VTEE Library is an Android library (.jar) file for providing an API interface to the VTEE service. This library file is a part of the VTEE broker model.</p>
</list-item>
<list-item><p>VTEE Service App is also part of the VTEE broker model. This app is a system service application in Android that has the same privilege as a system user. This service is responsible for receiving the request from UA and forwarding it to either the original TEE driver or the VTEE sandbox.</p></list-item>
<list-item><p>VTEE Sandboxes are software-based TEE solutions that are responsible for providing TEE service for each request forwarded by VTEE Service App. The VTEE sandbox can be designed in HYP mode (as a virtual machine) or at the OS level (as a MAC-protected process). The <xref ref-type="fig" rid="fig-3">Fig. 3b</xref> illustrates the VTEE sandbox based in OS level mode (SL1).</p></list-item>
<list-item><p>VTAs are virtual trusted applications that are responsible to visualized the TEE functionality.</p></list-item>
</list></p>
<fig id="fig-3"><label>Figure 3</label><caption><title>VTEE architecture design</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CSSE_38664-fig-3.tif"/></fig>
<p>The function of this proposed model can be summarized as follows. Firstly, untrusted applications in normal-world requests for secure computation by calling API from the VTEE library. The API helps the application establish, transfer and receive responses from VTEE Service App. Then, the VTEE Service App collects requests and forwards data to VTEE Sandboxes securely. VTEE Sandboxes deploy TA inside an isolated environment, ensured by HYP mode, following the request data from UA. Finally, TEE functions are safely computed in side TAs, and the result will be sent back to UAs via the broker model.</p>
</sec>
<sec id="s3_3"><label>3.3</label><title>VTEE Library</title>
<p>The application itself does not have enough and should not have the higher privilege to escape its sandbox. Therefore, a library that provides sound interfaces that acts as a bridge between the application and the VTEE service app. There are two main challenges of deploying VTEE lib: (1) Authentication &#x0026; authorization; (2) Data transferring.</p>
<p>For authentication &#x0026; authorization, it is easier whether the private services models are taken place. However, when public services are chosen as the default provider, there is a need for a lightweight CA model, whereas the UA is required a token to access its data or functions provided by the VTEE sandbox. That also ensures that an adversary cannot access other UA data inside the VTEE sandbox.</p>
</sec>
<sec id="s3_4"><label>3.4</label><title>VTEE Service App</title>
<p>VTEE service app is a system-privileged application that starts along with the Android OS. VTEE service app binds with the UA using VTEE lib. VTEE service app has full access to the communication channel with the VTEE Sandbox. VTEE service app has a filtering system that ensures UA can get enough required information without breaking the sandbox (e.g., prevent privilege escalation attack). Note that the VTEE service app does not have any encryption module or hold the encryption key. Therefore, the <italic>VTEE service app</italic> only forwards the data to the VTEE sandbox without access to the clear-text data.</p>
</sec>
<sec id="s3_5"><label>3.5</label><title>VTEE Sandbox</title>
<p>VTEE sandbox plays the core role in the VTEE Broker Model. It provides TEE services whenever receiving a request from VTEE service. The sandbox contains a request handler (inside), customization of the OPEN-TEE project for providing TEE services, and a lightweight CA system (optional) for authentication while the public service model is set to default. VTEE Sandbox is designed to run at the most privileged level, which can be in HYP mode (L2) or OS (kernel) level (L1). The design depends on the hardware, which PL2 could be considered when hardware-supported virtualization is enabled [<xref ref-type="bibr" rid="ref-28">28</xref>]. In this work, the side-channel attack is out-of-scope. Therefore, the VTEE sandbox is intended to be safe in the highest privilege level.</p>
</sec>
<sec id="s3_6"><label>3.6</label><title>Broker Providing</title>
<p>In the proposed model, there are two ways to provide VTEE services: Public service and private service. <xref ref-type="fig" rid="fig-4">Fig. 4</xref> illustrates the difference between public and private services. The Public service takes responsibility for providing security services for every application in the system. The Public service should always be on and available for any request forwarded by the VTEE service. The purpose of public service is to reduce the latency which is caused by the initialization of the VTEE sandbox (provided in the Experience part). However, the Public service requires more resources (which is one main concern of the mobile environment) while its VTEE sandbox constantly manipulates a lot of memory disk space during the phone working. Also, security design for <italic>Public service</italic> is more complicated. In the Public service model, a VTEE sandbox is deployed at the Android booting time and is available for serving until Android OS is turned off.</p>
<fig id="fig-4"><label>Figure 4</label><caption><title>Two ways for VTEE broker to provide: public and private VTEE services</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CSSE_38664-fig-4.tif"/></fig>
<p>The <italic>Private service</italic> takes responsibility for providing security services for the only corresponding application. Therefore, a VTEE sandbox is only deployed whenever an application requests a set of security services (e.g., in a TEE session). In this way, the Private service requires less security design and fewer resources manipulation. However, the latency from the session opening to the first security service response is much longer due to the VTEE sandbox initialization progress.</p>
</sec>
</sec>
<sec id="s4"><label>4</label><title>Experiments and Discussions of the Proposed Model</title>
<p>While analyzing the proposed model, there are two metrics put into consideration which are performance and security. To prepare for the evaluation, the Hikey960 was chosen as the development board to demonstrate and evaluate the proposed model. Hikey960 is suitable for this research since it is supported by Android Open-Source Project (AOSP). Hikey960 is a reference board to deploy OpTEE [<xref ref-type="bibr" rid="ref-14">14</xref>], a hardware-based TEE OS. In experiments, this work compares VTEE with OpTEE for performance analysis. Furthermore, the board also supports full virtualization on ARM with HYP mode.</p>
<p>VTEE sandbox can be set up as either a process that depends only on SEAndroid-protected or a Virtual Machine (VM). Although the setup VTEE sandbox process is more lightweight than the SEAndroid-protected version, it is less secure than providing. For that reason, in this paper, the evaluated model was conducted with a VM-based VTEE sandbox. The lkvm-tool was used to deploy the VM environment [<xref ref-type="bibr" rid="ref-29">29</xref>]. LKVM is a project for hosting a VM guest in a lightweight manner than the normal Kernel-based VM solution. With LKVM, it is possible to deploy an arm64-based Debian Linux as TEE OS. In order to provide a lightweight system, there is no hardware virtualization except for virtual IO in the VM.</p>
<p>As for TEE functionality, a custom version of the OpenTEE project was used. The channel between VTEE Service and VTEE sandbox was upgraded with the use of virtualized input/output (virtio). The research also includes a VTEE Android app for measuring the VTEE functionality on Android space (shown in <xref ref-type="fig" rid="fig-5">Fig. 5</xref>). The testing dataset was collected from the National Institute of Standards and Technology (NIST). For each cryptography algorithm, we randomly choose 20 test cases. Each test case includes an input value (e.g., message to encrypt or decrypt, keys or salt for the hash algorithm) and an expected output value.</p>
<fig id="fig-5"><label>Figure 5</label><caption><title>Experimental application User Interface (UI). This demo show that the UA requests to compute HMAC-SHA512 from a plain text to VTEE. VTEE sends back results through the secured channel within 10 s</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CSSE_38664-fig-5.tif"/></fig>
<sec id="s4_1"><label>4.1</label><title>Performance Evaluation: Function Executions</title>
<p>The execution time of each algorithm was measured by the total costs of application requests, application queries, channel communication, and TEE calculation. There are various ways to create a communication channel between VTEE service and VTEE sandboxes, such as <bold><italic>9p (Plan 9 Filesystem Protocol)</italic></bold> [<xref ref-type="bibr" rid="ref-30">30</xref>] or shared memory. 9p acts as virtio for file transferring enabled by default in lkvm. <bold><italic>9p</italic></bold> allows us to share files between a host and guest VMs. This approach is a passive way to trigger TEE functions and often causes high delay. On the other hand, shared memory is an active way to handle request data and trigger the TEE function. Thus this method can be considered one of the low-delay solutions. <xref ref-type="fig" rid="fig-6">Fig. 6a</xref> illustrates the performance between running the <italic>Open-TEE</italic> project [<xref ref-type="bibr" rid="ref-9">9</xref>] in a normal environment and inside the VTEE sandbox. The sandbox causes at most <bold>30&#x0025;</bold> overhead and only a few percent of overhead in some algorithms, such as AES (Advanced Encryption Standard) or SHA (Secure Hashing Algorithm). It is reasonable since the VM is used HYP mode, a hardware-assist virtualization technology, to support CPU virtualization.</p>
<fig id="fig-6"><label>Figure 6</label><caption><title>Experimental result in terms of computation overhead</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CSSE_38664-fig-6.tif"/></fig>
</sec>
<sec id="s4_2"><label>4.2</label><title>Performance Evaluation: Services Availability</title>
<p>As introduced in Section 3 there are two services available in our model, which are public and private VTEE services. This experiment measured the execution time between two services. <xref ref-type="fig" rid="fig-6">Fig. 6b</xref> shows that there is a difference in available time between public and private services. The research has shown that the Open-TEE client will have to wait from 75 to 90 s for the <monospace>TEEC_OpenSession</monospace> call to work in the virtualized environment. This incident still occurred in public service, and the public TEE service was available at the time of application request because it started at the booting time, which already consumed 90 s of delay time. We also confirmed that the <monospace>TEEC_OpenSession</monospace> has not occurred in a normal Linux system.</p>
</sec>
<sec id="s4_3"><label>4.3</label><title>Performance Evaluation: VTEE and OpTEE</title>
<p>This experiment explored the feasibility of the deployment of VTEE in commercial products, which consider the replacement of hardware security solutions due to the incompatibility and the scalability limitation. A popular hardware-based TEE Operation system (TEE-OS) is OpTEE [<xref ref-type="bibr" rid="ref-14">14</xref>].</p>
<p>Two hikey960s were deployed with the same Android OS version (Android 9.0). The data flow of the test, from the android application to the Trusted application, is deployed in the same way, as shown in <xref ref-type="fig" rid="fig-7">Fig. 7</xref>. Firstly, when UA requests to use secure functions from the TEE service, it sends data to handle service which runs as Android system service. Handle service, then transfer input data to the running OPTEE/VTEE instance. While <italic>the 9p</italic> protocol is a part of the handle service in VTEE, the VTEE model emulated the same file-sharing function in the OP-TEE version, in which input data is stored inside a sharing file between Android App and either OP-TEE or VTEE. This ensures equality in data transferring between the Android application and the TEE component (OP-TEE and VTEE). After receiving data, OPTEE/VTEE calls to deploy a TA corresponding to the requested function. TA verifies and computes the result and then sends back to OPTEE/VTEE instance as well as the UA.</p>
<fig id="fig-7"><label>Figure 7</label><caption><title>VTEE &#x0026; OpTEE data flow in the evaluation scenario</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CSSE_38664-fig-7.tif"/></fig>
<p><xref ref-type="fig" rid="fig-8">Fig. 8</xref> shows the comparison between executing ten algorithms in OP-TEE and VTEE. The results differed from expectations that direct program execution at the hardware (OP-TEE) would be faster. However, most algorithms (except RSA) give the opposite results.</p>
<fig id="fig-8"><label>Figure 8</label><caption><title>Performance comparison between OpTEE and VTEE</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CSSE_38664-fig-8.tif"/></fig>
<p>The unexpected performance in software-based TEE is because the number of data transfer points in the OP-TEE is greater than VTEE. Data transfer points are the points that data passes through the process without memory sharing. OP-TEE OS runs in the TrustZone, which requires data transfer from the <italic>Normal world</italic> to the <italic>Secure world</italic> by the UA before being processed in <italic>Trusted Application (TA).</italic> On the other hand, the VTEE sandbox, which is handled by UA and TA, does not need to switch between two worlds due to the VTEE Sandbox is placed in the same layer with the VTEE service (acts as a data handler). Therefore the total time-consuming:
<disp-formula id="ueqn-1">
<mml:math id="mml-ueqn-1" display="block"><mml:mi>T</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext mathvariant="italic">Computing</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi><mml:mtext>&#x00A0;</mml:mtext><mml:mrow><mml:mtext mathvariant="italic">transfer</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:math></disp-formula></p>
<p>Another reason is that most algorithms witness the faster VTEE except RSA (sign and verify). This result proves that OP-TEE has a shorter computing time than VTEE because RSA requires harder computing power which always performs better in hardware-based solutions rather than software. Other algorithms, which are lightweight computing functions, consume less <inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext mathvariant="italic">Computing</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> than <inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi><mml:mtext>&#x00A0;</mml:mtext><mml:mrow><mml:mtext mathvariant="italic">transfer</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. The consequence is that the total time-consuming T of VTEE (on average) less than OP-TEE.</p>
<p>The above argumentation supports the high feasibility of delivering VTEE as a Trusted Computing Environment in the wide-range commercial product, which can replace hardware-based solutions from the performance perspective.</p>
</sec>
<sec id="s4_4"><label>4.4</label><title>Security Discussion: Limitation of Entirely Software-Based Solutions</title>
<p>According to <xref ref-type="fig" rid="fig-3">Fig. 3b</xref> provided in Section 3, it is obvious that VTEE sandboxes have less security than traditional hardware-based TEE designs. However, in order to evaluate the security of the proposed model, this research contains various methods for inspecting different Android OS layers. For that, the first version moved the private key of an Android app into the VTEE sandbox. Additionally, another Android app was developed for calculating the crypto algorithm inside.</p>
<p>The result is illustrated in <xref ref-type="table" rid="table-1">Table 1</xref>. The evaluation methods include Dalvik VM (DVM) heap dump, root-based, memory forensic, and side-channel attacks. The first method is DVM heap dump which can be implemented by using the Android-integrated Activity Manager (AM) function. The full memory of a target Android app can be exported to HPROF format (a Heap/CPU profiling tool). The memory of the VTEE Android app and normal Android app can be inspected by this method. However, the private key was not leaked in the VTEE model since the key was stored in the VTEE sandbox. The same result was given from a root-based attack. Because the VTEE VM can be custom with different contexts, it is not possible to attack from root privilege without changing the context. According to the design of the Android framework, the SELinux context in Android can only be changed by modifying the AOSP source code or by the vendor.</p>
<table-wrap id="table-1"><label>Table 1</label><caption><title>Security analysis of VTEE framework</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left"/>
<th align="center" colspan="6">VTEE security checklists</th>
</tr>
<tr>
<td align="left">Attack <break/>methods</td>
<td align="left"/>
<td align="left">VTEE app</td>
<td align="left">VTEE service</td>
<td align="left">VTEE virtual machine</td>
<td align="left">Normal app</td>
<td align="left">TEE app</td>
</tr>
</thead>
<tbody>
<tr>
<td/>
<td align="left">DVM heap dump</td>
<td align="left">Heap dump possible by using the activity manager</td>
<td align="left">Injected inside android OS and non-accessible without disabling SEAndroid</td>
<td align="left">Non-accessible without disabling SEAndroid</td>
<td align="left">Heap dump possible by using the activity manager</td>
<td align="left">Non-accessible</td>
</tr>
<tr>
<td/>
<td align="left">Root attacks</td>
<td align="left">Controllable by root context</td>
<td align="left">Injected inside the android OS and non-controllable <break/>by the root user</td>
<td align="left">Controllable by <break/>root if SEAndroid <break/>is not enforced (not the usual case)</td>
<td align="left">Controllable by root context</td>
<td align="left">Non-accessible</td>
</tr>
<tr>
<td/>
<td align="left">Memory <break/>attacks</td>
<td align="left">Accessible by advanced attacks</td>
<td align="left">Injected inside android OS and non-accessible without disabling SEAndroid</td>
<td align="left">Non-accessible without disabling SEAndroid</td>
<td align="left">Accessible by advanced attacks</td>
<td align="left">Non-accessible</td>
</tr>
<tr>
<td/>
<td align="left">Side-channel attack</td>
<td align="left">Vulnerable to this attack</td>
<td align="left">Vulnerable to this attack</td>
<td align="left">Vulnerable to this attack</td>
<td align="left">Vulnerable to this attack</td>
<td align="left">Vulnerable to this attack</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Another inspection approach is the memory attack, which can be implemented with memory forensic tools and Loadable Kernel Module (LKM) enabled. By satisfying the LKM condition, we were able to disclose VTEE VM memory from known traces. At the time of writing, side-channel attacks are able to exploit all layers of Android. The levels of security in Android OS with the VTEE model after our security evaluations. The table shows that VM-based VTEE sandbox is at the lowest level in untrusted OS. Although the proposed model does not have a large impact on security, it provides an additional layer of isolation and security to the existing Android system.</p>
<p>VTEE, therefore, can play an important role in enhancing the security of Android applications, especially on IoT devices with a lavish hardware-based TEE. For example, cars&#x2019; smart screen system running Android OS hosts many applications. Even if there are no transactions have been made on the smart screen application, other applications still contain sensitive personal information of the car owner, such as premium accounts, usage caches, and location information for the recommendation system. These data also need to be safe against cyber attacks but require a lower level of security where VTEE is applicable.</p>
<p>The limitation of entirely software-based TEE solutions is inevitable, even though VTEE cooperates with a hardware-based solution to protect the sandbox. However, VTEE could keep the higher security level for the rest. While most side-channel attacks are impacting the VTEE, other resource manipulation attacks are impeded. The trade-off between convenience and security always happens. VTEE model maintains the security perspective in protecting users from more common attacks while delivering more flexibility in TEE function development.</p>
</sec>
<sec id="s4_5"><label>4.5</label><title>The Trade-Off Between Performance and Security</title>
<p>As discussed in the previous section, software-based TEE solutions cannot provide as strong security as hardware-based ones. However, software-based solutions such as VTEE allow the deployment of multiple virtualized TAs, running parallelly, isolating from each other and from UAs. Thus, when a system does not require strict security enforcement, software-based solutions are suitable to increase computing power.</p>
<p>In this work, VTEE provides two approaches to strike a balance between security and performance. The first approach is privilege-level isolation. As discussed in Section 3.5, VTEE sandbox can be deployed in HYP mode (L2) or OS (kernel) level (L1). When the VTEE sandbox is run at the OS level (i.e., intra-privilege isolation), the isolation is based on virtualization technology and prior SELinux. On the other hand, deploying the VTEE sandbox in HYP mode provides stronger isolation because it provides CPU protection. In other words, a process needs to be granted to access HYP mode computing resources. As a result, switching between L1 and L2 is costly, but more safety is ensured. The second approach is to move the broker provider from the public to the private model, as discussed in Section 3.6. While private service gives more security (e.g., each UA has a separated TA), the performance decreases more than two times, as shown in <xref ref-type="fig" rid="fig-6">Fig. 6b</xref>.</p>
</sec>
</sec>
<sec id="s5"><label>5</label><title>Conclusion</title>
<p>The interest in solutions that use trusted execution technology has increased in recent years, especially in the mobile environment. Many security threats that affect people directly or indirectly have been discussed over the past decade, continuously improving both hardware-based and software-based solutions. The trusted execution environment is a great improvement in providing a boundary to protect the data as well as the execution of sensitive code. However, existent hardware-based TEE solutions introduce significant effort for ordinary developers to contribute to the real Android production environment. In addition, software-based TEE solutions have not been evaluated for effectiveness in the Andoird environment. This paper presented a work in progress towards implementing VTEE, a Virtualized-based TEE architecture to deliver TEE functionality on Android regardless of hardware support. Leveraging VTEE, this paper provides an analysis of the feasibility of setting up a software-based TEE solution to protect Android devices by considering the trade-off between computing performance and security of the solution. The evaluation results given in this paper have shown insights into the performance and security of the proposed model. VTEE is a promising model for industry products due to its usability, lightness, and openness for developers to extend security functionalities. Besides security and performance, scalability and elasticity could be further evaluated. The fact that VTEE sandbox is a thin virtual machine. Therefore, the design of VTEE could be applied to the edge computing system, which has a huge number of IoT devices in which deploying costs significantly increase. We let this work for future studies.</p>
</sec>
</body>
<back>
<ack>
<p>The authors appreciate reviewers and editors for taking the time and effort necessary to help improve the quality of the manuscript.</p>
</ack>
<sec><title>Funding Statement</title>
<p>This work was partly supported by the Institute of Information &#x0026; Communications Technology Planning &#x0026; Evaluation (IITP) grant funded by the <funding-source>Korea Government (MSIT)</funding-source>, (No. <award-id>2020-0-00952</award-id>, Development of 5G edge security technology for ensuring 5G&#x002B; service stability and availability, 50&#x0025;) and the Institute of Information and Communications Technology Planning and Evaluation (IITP) grant funded by the <funding-source>MSIT (Ministry of Science and ICT)</funding-source>, Korea (No. <award-id>IITP-2022-2020-0-01602</award-id>, ITRC (Information Technology Research Center) support program, 50&#x0025;).</p></sec>
<sec sec-type="COI-statement"><title>Conflicts of Interest</title>
<p>The authors declare that they have no conflicts of interest to report regarding the present study.</p></sec>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1"><label>[1]</label><mixed-citation publication-type="web"><person-group person-group-type="author"><string-name><given-names>K. M.</given-names> <surname>Guttag</surname></string-name></person-group>, &#x201C;<article-title>Secure microprocessor microcomputer with secured memory</article-title>,&#x201D; <year>1985</year>. [Online]. Available: <ext-link ext-link-type="uri" xlink:href="https://patents.google.com/patent/US4521853A/en/">https://patents.google.com/patent/US4521853A/en/</ext-link></mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="web"><person-group person-group-type="author"><string-name><given-names>K. M.</given-names> <surname>Guttag</surname></string-name> and <string-name><given-names>S.</given-names> <surname>Nussrallah</surname></string-name></person-group>, &#x201C;<article-title>Security bit for designating the security status of information stored in a nonvolatile memory</article-title>,&#x201D; <year>1986</year>. [Online]. Available: <ext-link ext-link-type="uri" xlink:href="https://patents.google.com/patent/US4590552A/en">https://patents.google.com/patent/US4590552A/en</ext-link></mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="web"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Kiiveri</surname></string-name> and <string-name><given-names>L.</given-names> <surname>Paatero</surname></string-name></person-group>, &#x201C;<article-title>Secure execution architecture</article-title>,&#x201D; <year>2015</year>. [Online]. Available: <ext-link ext-link-type="uri" xlink:href="https://patents.google.com/patent/US9111097/en">https://patents.google.com/patent/US9111097/en</ext-link></mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>N.</given-names> <surname>Asokan</surname></string-name></person-group>, &#x201C;<article-title>Hardware-assisted erusted execution environments: Look back, look ahead</article-title>,&#x201D; in <conf-name>Proc. of the 2019 ACM SIGSAC Conf. on Computer and Communications Security (ACM CCS &#x2018;19)</conf-name>, <conf-loc>New York, NY, USA</conf-loc>, pp. <fpage>1687</fpage>&#x2013;<lpage>1687</lpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="web"><person-group person-group-type="author"><string-name><given-names>T.</given-names> <surname>Alves</surname></string-name></person-group>, &#x201C;<article-title>TrustZone: Integrated hardware and software security, white paper</article-title>,&#x201D; <year>2019</year>. [Online]. Available: <ext-link ext-link-type="uri" xlink:href="https://ci.nii.ac.jp/naid/10015533638/">https://ci.nii.ac.jp/naid/10015533638/</ext-link></mixed-citation></ref>
<ref id="ref-6"><label>[6]</label><mixed-citation publication-type="web"><article-title>Intel, Tablets Powered by Intel</article-title>, <year>2019</year>. [Online]. Available: <ext-link ext-link-type="uri" xlink:href="https://www.intel.com/content/www/us/en/products/devices-systems/tablets.html">https://www.intel.com/content/www/us/en/products/devices-systems/tablets.html</ext-link></mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Pinto</surname></string-name> and <string-name><given-names>N.</given-names> <surname>Santos</surname></string-name></person-group>, &#x201C;<article-title>Demystifying arm TrustZone: A comprehensive survey</article-title>,&#x201D; <source>ACM Computing Survey</source>, vol. <volume>51</volume>, no. <issue>130</issue>, pp. <fpage>1</fpage>&#x2013;<lpage>36</lpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Pinto</surname></string-name>, <string-name><given-names>D.</given-names> <surname>Oliveira</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Pereira</surname></string-name>, <string-name><given-names>N.</given-names> <surname>Cardoso</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Ekpanyapong</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Towards a lightweight embedded virtualization architecture exploiting ARM TrustZone</article-title>,&#x201D; in <conf-name>Proc. of IEEE Emerging Technology and Factory Automation (ETFA)</conf-name>, <conf-loc>Barcelona, Spain</conf-loc>, pp. <fpage>1</fpage>&#x2013;<lpage>4</lpage>, <year>2014</year>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>B.</given-names> <surname>McGillion</surname></string-name>, <string-name><given-names>T.</given-names> <surname>Dettenborn</surname></string-name>, <string-name><given-names>T.</given-names> <surname>Nyman</surname></string-name> and <string-name><given-names>N.</given-names> <surname>Asokan</surname></string-name></person-group>, &#x201C;<article-title>Open-TEE&#x2013;an open virtual trusted execution environment</article-title>,&#x201D; in <conf-name>Proc. of IEEE Trustcom/BigDataSE/ISPA</conf-name>, <conf-loc>Helsinki, Finland</conf-loc>, pp. <fpage>400</fpage>&#x2013;<lpage>407</lpage>, <year>2015</year>.</mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Machiry</surname></string-name>, <string-name><given-names>E.</given-names> <surname>Gustafson</surname></string-name>, <string-name><given-names>C.</given-names> <surname>Spensky</surname></string-name>, <string-name><given-names>C.</given-names> <surname>Salls</surname></string-name>, <string-name><given-names>N.</given-names> <surname>Stephens</surname></string-name> <etal>et al.,</etal></person-group>&#x201C;<article-title>Boomerang: Exploiting the semantic gap in trusted execution environments</article-title>,&#x201D; in <conf-name>Proc. of Network and Distributed System Security Symp. (NDSS)</conf-name>, <conf-loc>San Diego, CA, USA</conf-loc>, pp. <fpage>1</fpage>&#x2013;<lpage>15</lpage>, <year>2017</year>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="web"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Makkaveev</surname></string-name></person-group>, &#x201C;<article-title>The road to qualcomm TrustZone apps fuzzing</article-title>,&#x201D; <year>2019</year>. [Online]. Available: <ext-link ext-link-type="uri" xlink:href="https://research.checkpoint.com/the-road-to-qualcomm-trustzone-appsfuzzing/">https://research.checkpoint.com/the-road-to-qualcomm-trustzone-appsfuzzing/</ext-link></mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="web"><person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Chen</surname></string-name>, <string-name><given-names>Y.</given-names> <surname>Zhang</surname></string-name>, <string-name><given-names>Z.</given-names> <surname>Wang</surname></string-name> and <string-name><given-names>T.</given-names> <surname>Wei</surname></string-name></person-group>, &#x201C;<article-title>Downgrade attack on TrustZone</article-title>,&#x201D; <year>2017</year>, <comment>arXiv:1707.05082</comment>. [Online]. Available: <ext-link ext-link-type="uri" xlink:href="http://arxiv.org/abs/1707.05082">http://arxiv.org/abs/1707.05082</ext-link></mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="web"><article-title>Google, TEE documentation</article-title>, <year>2015</year>. [Online]. Available: <ext-link ext-link-type="uri" xlink:href="https://kernel.googlesource.com/pub/scm/linux/kernel/git/jkirsher/next-queue/+/devqueue/Documentation/tee.txt">https://kernel.googlesource.com/pub/scm/linux/kernel/git/jkirsher/next-queue/+/devqueue/Documentation/tee.txt</ext-link></mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="web"><article-title>Linaro Limited, OP-TEE website</article-title>, <year>2021</year>. [Online]. Available: <ext-link ext-link-type="uri" xlink:href="https://www.op-tee.org/">https://www.op-tee.org/</ext-link></mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>V.</given-names> <surname>Costan</surname></string-name> and <string-name><given-names>S.</given-names> <surname>Devadas</surname></string-name></person-group>,&#x201C;<article-title>Intel SGX explained</article-title>,&#x201D; <source>IACR Cryptol. ePrint Archive</source>, vol. <volume>2016</volume>, pp. <fpage>86</fpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Wright</surname></string-name>, <string-name><given-names>C.</given-names> <surname>Cowan</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Smalley</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Morris</surname></string-name> and <string-name><given-names>G.</given-names> <surname>Kroah-Hartman</surname></string-name></person-group>, &#x201C;<article-title>Linux security module framework</article-title>,&#x201D; <source>Ottawa Linux Symposium</source>, vol. <volume>8032</volume>, pp. <fpage>6</fpage>&#x2013;<lpage>16</lpage>, <year>2002</year>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Dall</surname></string-name> and <string-name><given-names>J.</given-names> <surname>Nieh</surname></string-name></person-group>, &#x201C;<article-title>KVM/ARM: The design ansd implementation of the linux ARM hypervisor</article-title>,&#x201D; in <conf-name>Proc. of the 19th Int. Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS &#x2018;14)</conf-name>, <conf-loc>ACM Press, Salt Lake City, Utah, USA</conf-loc>, pp. <fpage>333</fpage>&#x2013;<lpage>348</lpage>, <year>2014</year>.</mixed-citation></ref>
<ref id="ref-18"><label>[18]</label><mixed-citation publication-type="web"><person-group person-group-type="author"><collab>ARM</collab></person-group>, &#x201C;<article-title>ARM security technology: Building a secure system using TrustZone technology</article-title>,&#x201D; <year>2009</year>. [Online]. Available: <ext-link ext-link-type="uri" xlink:href="http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/PRD29-GENC-009492C_trustzone_security_whitepaper.pdf">http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/PRD29-GENC-009492C_trustzone_security_whitepaper.pdf</ext-link></mixed-citation></ref>
<ref id="ref-19"><label>[19]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Fitzek</surname></string-name>, <string-name><given-names>F.</given-names> <surname>Achleitner</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Winter</surname></string-name> and <string-name><given-names>D.</given-names> <surname>Hein</surname></string-name></person-group>, &#x201C;<article-title>The ANDIX research OS&#x2014;ARM TrustZone meets industrial control systems security</article-title>,&#x201D; in <conf-name>Proc. of IEEE 13th Int. Conf. on Industrial Informatics (INDIN)</conf-name>, <conf-loc>Cambridge, UK,</conf-loc> pp. <fpage>88</fpage>&#x2013;<lpage>93</lpage>, <year>2015</year>.</mixed-citation></ref>
<ref id="ref-20"><label>[20]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Ahmed</surname></string-name>, <string-name><given-names>N.</given-names> <surname>Peng</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Jitesh</surname></string-name>, <string-name><given-names>C.</given-names> <surname>Quan</surname></string-name>, <string-name><given-names>B.</given-names> <surname>Rohan</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Hypervision across worlds: Real-time kernel protection from the ARM TrustZone secure world</article-title>,&#x201D; in <conf-name>Proc. of the 2014 ACM SIGSAC Conf. on Computer and Communications Security (ACM CCS&#x2019; 14)</conf-name>, <conf-loc>Scottsdale Arizona, USA</conf-loc>, pp. <fpage>90</fpage>&#x2013;<lpage>102</lpage>, <year>2014</year>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Cho</surname></string-name>, <string-name><given-names>D.</given-names> <surname>Kwon</surname></string-name>, <string-name><given-names>H.</given-names> <surname>Yi</surname></string-name> and <string-name><given-names>Y.</given-names> <surname>Paek</surname></string-name></person-group>, &#x201C;<article-title>Dynamic virtual address range adjustment for intra-level privilege separation on ARM</article-title>,&#x201D; in <conf-name>Proc. of the 24 Annual Network and Distributed System Security Symp. (NDSS 2017)</conf-name>, <conf-loc>San Diego, CA, USA</conf-loc>, pp. <fpage>1</fpage>&#x2013;<lpage>15</lpage>, <year>2017</year>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Dall</surname></string-name>, <string-name><given-names>S. W.</given-names> <surname>Li</surname></string-name>, <string-name><given-names>J. T.</given-names> <surname>Lim</surname></string-name> and <string-name><given-names>J.</given-names> <surname>Nieh</surname></string-name></person-group>, &#x201C;<article-title>ARM virtualization: Performance and architectural implications</article-title>,&#x201D; <source>ACM SIGOPS Operating Systems Review</source>, vol. <volume>52</volume>, no. <issue>1</issue>, pp. <fpage>45</fpage>&#x2013;<lpage>56</lpage>, <year>2018</year>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="web"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Pereira</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Sousa</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Pinto</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Martins</surname></string-name> and <string-name><given-names>D.</given-names> <surname>Cerdeira</surname></string-name></person-group>, &#x201C;<article-title>Bao-enclave: Virtualization-based enclaves for arm</article-title>,&#x201D; <year>2022</year>. [Online]. Available: <ext-link ext-link-type="uri" xlink:href="https://arxiv.org/abs/2209.05572">https://arxiv.org/abs/2209.05572</ext-link></mixed-citation></ref>
<ref id="ref-24"><label>[24]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>S. W.</given-names> <surname>Li</surname></string-name>, <string-name><given-names>J. S.</given-names> <surname>Koh</surname></string-name> and <string-name><given-names>J.</given-names> <surname>Nieh</surname></string-name></person-group>, &#x201C;<article-title>Protecting cloud virtual machines from commodity hypervisor and host operating system exploits</article-title>,&#x201D; in <conf-name>Proc. of the 28 USENIX Security Symp. (USENIX Security&#x2019; 19)</conf-name>, <conf-loc>Santa Clara, CA, USA</conf-loc>, pp. <fpage>1357</fpage>&#x2013;<lpage>1374</lpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-25"><label>[25]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Zhao</surname></string-name>, <string-name><given-names>Q.</given-names> <surname>Zhang</surname></string-name>, <string-name><given-names>Y.</given-names> <surname>Qin</surname></string-name>, <string-name><given-names>W.</given-names> <surname>Feng</surname></string-name> and <string-name><given-names>D.</given-names> <surname>Feng</surname></string-name></person-group>, &#x201C;<article-title>Sectee: A software-based approach to secure enclave architecture using tee</article-title>,&#x201D; in <conf-name>Proc. of the 2019 ACM SIGSAC Conf. on Computer and Communications Security (ACM CCS&#x2019; 19)</conf-name>, <conf-loc>London, UK</conf-loc>, pp. <fpage>1723</fpage>&#x2013;<lpage>1740</lpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>U.</given-names> <surname>Lee</surname></string-name> and <string-name><given-names>C.</given-names> <surname>Park</surname></string-name></person-group>, &#x201C;<article-title>Softee: Software-based trusted execution environment for user applications</article-title>,&#x201D; <source>IEEE Access</source>, vol. <volume>8</volume>, pp. <fpage>121874</fpage>&#x2013;<lpage>121888</lpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-27"><label>[27]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>M. A.</given-names> <surname>Omer</surname></string-name>, <string-name><given-names>S. R.</given-names> <surname>Zeebaree</surname></string-name>, <string-name><given-names>M. A.</given-names> <surname>Sadeeq</surname></string-name>, <string-name><given-names>B. W.</given-names> <surname>Salim</surname></string-name>, <string-name><given-names>S. X.</given-names> <surname>Mohsin</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Efficiency of malware detection in android system: A survey</article-title>,&#x201D; <source>Asian Journal of Research in Computer Science</source>, vol. <volume>7</volume>, no. <issue>4</issue>, pp. <fpage>59</fpage>&#x2013;<lpage>69</lpage>, <year>2021</year>.</mixed-citation></ref>
<ref id="ref-28"><label>[28]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>P.</given-names> <surname>Varanasi</surname></string-name> and <string-name><given-names>G.</given-names> <surname>Heiser</surname></string-name></person-group>, &#x201C;<article-title>Hardware-supported virtualization on arm</article-title>,&#x201D; in <conf-name>Proc. of the Second Asia-Pacific Workshop on Systems</conf-name>, <conf-loc>Shanghai, China</conf-loc>, pp. <fpage>1</fpage>&#x2013;<lpage>5</lpage>, <year>2011</year>.</mixed-citation></ref>
<ref id="ref-29"><label>[29]</label><mixed-citation publication-type="web">lkvm, lkvm/lkvm, <year>2019</year>. [Online]. Available: <ext-link ext-link-type="uri" xlink:href="https://github.com/lkvm/lkvm">https://github.com/lkvm/lkvm</ext-link></mixed-citation></ref>
<ref id="ref-30"><label>[30]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>V. H.</given-names> <surname>Eric</surname></string-name> and <string-name><given-names>R.</given-names> <surname>Minnich</surname></string-name></person-group>, &#x201C;<article-title>Grave robbers from outer space: Using 9p2000 under linux</article-title>,&#x201D; in <conf-name>Proc. of USENIX Annual Technical Conf.</conf-name>, <conf-loc>FREENIX Track</conf-loc>, pp. <fpage>83</fpage>&#x2013;<lpage>94</lpage>, <year>2005</year>.</mixed-citation></ref>
</ref-list>
</back>
</article>