![](https://csdnimg.cn/release/download_crawler_static/15603059/bg3.jpg)
SECURE CRYPTOGRAPHIC FUNCTIONS VIA VIRTUALIZATION-BASED OUTSOURCED COMPUTING
context switch between the user mode and the kernel mode. However, high performance loss can
be incurred because of the costly encryption/decryption operations. CFA does not protect the whole
application. Instead, CFA only protects sensitive operations, such as RSA encryption.
2.3. Hardware-based solutions to ensure sensitive application
There are some hardware-based solutions to run SAs in secure execution environment [12–14].
The Flicker [13] and TrustVisor [14] provide hardware-protected execution environment, based on
trusted computing technology. These hardware-based solutions exclude the untrusted OS out of the
TCB and also solve the issue of computing capability limitation of TPM. However, these solutions
still remain some limitations. For example, both Flicker and TrustVisor require the application to
explicitly contain the specific APIs provided by them. Flicker can only support pure computational
operations but cannot support input/output operations.
2.4. Outsourced operating system service
Recently, researchers utilize the outsourcing and verification mechanism, such as WimpyKernel
[15] and InkTag [16], to use OS service without trusting the OS. Besides, some works also move
the secure module or isolation mechanism into another secure VM, such as HyperDomain [17].
CFA shares the basic technology thoughts with these works. WimpyKernel is work specific for
isolating input/output, while CFA studies on cryptographic assurance. Besides, CFA does not
move the isolation mechanism into secure VM. Instead, CFA utilizes the secure VM to provide
cryptographic service and assumes that hypervisor provides the isolation mechanism.
Cryptographic function assurance shares similar goal to the work of Assured Digital Signing
(ADS) [18] in our previous paper. ADS provides a mechanism for outsourcing signature operation
into a secure VM in type I hypervisor (bare-metal hypervisor, such as Hyper-V [19] and VMware
ESX/ESXi [20]). CFA extends the ADS into the type II hypervisor, such as full-virtualization KVM
[21], and shows the design and implementation in full-virtualization KVM. More importantly, ADS
is only designed for securing digital signature, not for securing encryption/decryption operations.
Besides, ADS does not present the support to practical applications, while CFA presents its ability
for supporting practical applications, such as Apache httpd web server.
3. MOTIVATION
In this section, we explain the motivation of our work. We firstly present threat model and then give
the approach to provide assured cryptographic functions under the threat model.
3.1. Threat model and security guarantee
Considering the existence of the vulnerabilities of hypervisor, the hypervisor could be exploited
by attackers to compromise the VMs. For instance, the vulnerability CVE-2015-3456 (existing in
KVM, Xen, and QEMU), called ‘Venom’, is in the floppy disk driver. It allows the guest OS running
on the hypervisor to break out of the hypervisor and acquire access to the host OS. Dehype [22]
proposes to deprivilege KVM hypervisor (mostly) into user mode, and each guest is paired with its
own deprivileged hypervisor. NoHype [23, 24] tries to remove the hypervisor to reduce the attack
surface by preallocating cores and memory for the VMs. Cloudvisor [25] takes advantage of nested
virtualization to protect the whole VM despite the untrusted hypervisor and management VM. All
of these works are to protect the host or the VM, not the SA running in the VM. However, the guest
OS can still be untrusted.
We assume the hypervisor is trusted in CFA, and believe that many researches enhancing the
hypervisor, such as [26–30], will make the hypervisor more trustworthy. CFA assumes that guest
OS is untrusted, and sensitive operations of applications running in it could be compromised. For
example, cryptographic procedures in untrusted OS could be tampered, and sensitive keys located
in untrusted guest OS could be stolen. CFA focuses on the protection of the cryptographic functions
only, including the cryptographic procedures and sensitive keys. More specifically, when an appli-
cation invokes the APIs provided by cryptographic libraries, CFA provides the security of the
Copyright © 2015 John Wiley & Sons, Ltd. Concurrency Computat.: Pract. Exper. (2015)
DOI: 10.1002/cpe