Semantic Remote Attestation-VM04
Semantic Remote Attestation-VM04
Semantic Remote Attestation-VM04
© 2004 by The USENIX Association All Rights Reserved For more information about the USENIX Association:
Phone: 1 510 528 8649 FAX: 1 510 548 5738 Email: [email protected] WWW: http://www.usenix.org
Rights to individual papers remain with the author or the author's employer.
Permission is granted for noncommercial reproduction of the work for educational or research purposes.
This copyright notice must be included in the reproduced paper. USENIX acknowledges all trademarks herein.
Semantic Remote Attestation —
A Virtual Machine directed approach to Trusted Computing
• how do programs running on trusted platforms • trust relationships between peers, or between
authenticate each other in a manner that en- clients and servers, were made explicit, and
sures that each party satisfies some security cri- then checked or enforced by the TrustedVM.
teria, while leaving room for various differing Typically, they are implicit and taken on trust.
implementations? • making the trust relationships explicit results
• the current client-server network computing in having some knowledge of degree of trust-
model assumes a trusted server, and untrusted worthiness of clients and peers. (for example,
(even malicious) clients. Thus, even though knowing which properties were satisfied, and
a significant fraction of work is done at the which were not). This allows the applications
clients, all the trust resides at the server. How to make informed decisions about the “good-
can we design new network protocols (or adapt ness” of a result, and dynamically adjust its
existing ones) to work in an environment that trust relationships.
allows a more flexible partitioning of trust?
The rest of the paper is organized as follows: Section
• Moving away from the model of having a fully
2 briefly covers basic concepts in trusted computing
trusted server, and a fully untrusted client, how
and remote attestation, and explains the shortcom-
do we design models and applications that use
ings of remote attestation as it is today; Section 3
them, that can broker trust in more flexible and
explains how virtual machines can be used for flexi-
dynamic ways than is possible today?
ble, expressive remote attestation — this forms the
core of the paper; Section 4 discusses the implemen-
As we explain in this paper, current methods of tation issues involved in this and presents two ex-
remote attestation suffer from many critical draw- ample applications; Section 5 surveys related work;
backs. It is a technique well-suited to rigidly con- Section 6 discusses avenues for future work; and Sec-
trolled closed systems, but completely inadequate tion 7 concludes.
for the open systems of today, which embody a great
variety of hardware and software platforms.
3.2 Advantages of Semantic Remote Semantic remote attestation also allows attestation
Attestation without locking the client into a particular plat-
form, or binary. By far the most scathing critiques
of trusted computing have focused on the idea of
Semantic remote attestation has a number of ad- remote attestation being used to lock consumers
vantages over traditional remote attestation: into a particular platform, thus extending monopoly
control[6]. Semantic remote attestation, however,
explicitly separates identity from behavior, and al-
• It overcomes the most critical shortcoming of lows flexible attestation of code properties, while
signed hashes.
allowing inter-operation of a variety of implementa- We now explain the implementation of two applica-
tions that satisfy these properties. tions that we implemented on our prototype Trust-
edVM.
Semantic remote attestation is a dynamic process, To gain experience with building and using a Trust-
and attestation of properties can be done at various edVM for semantic attestation, we chose peer-to-
points during the lifetime of a distributed applica- peer networks as one example domain. In partic-
tion. We refer to the machine running the Trust- ular, we considered the Gnutella P2P protocol[2].
edVM as the client, and the machine which is in- Peer-to-peer communication is particularly interest-
terested in attesting programs on it as the server. ing as a trial application for remote attestation. It
The TrustedVM on a client machine runs an attes- is inherently distributed in nature, and current pro-
tation service, whose job is to check or analyze the tocols vest a tremendous amount of trust in clients
behavior of applications running under the Trust- for correct operation of the network. This has led
edVM, and answer attestation requests from other to various security and policy violations, and has
machines. The server has two channels of communi- even been used to stage denial-of-service attacks
cation with the client: one with the client applica- [26, 13, 8]. In the case of the Gnutella protocol, the
tion, and another with the attestation service, with reason for these security weaknesses is that peers
which the server communicates to find out about the believe each other without verification. For exam-
behavior of the client application. This is shown in ple, when given the result of a query(a query hit in
Figure 1. The communication between the server Gnutella terminology), there is no guarantee that
and attestation service must be secure and must the given machine will actually have the content
guarantee integrity and authenticity. This can be asked for — the query result can be easily faked
done using various cryptographic protocols, such as and is not checked. This can be exploited to mount
SSL. a denial-of-service attack against a particular ma-
chine by simply flooding the network with query
Semantic attestation certifies properties of programs results all pointing to that one machine. The same
running in a virtual machine. The virtual machine holds for routing messages that announce which ma-
itself, however, runs on top of an operating system. chines are part of the P2P network. These routing
To certify the layers of software up to, and including messages (called pong messages in Gnutella, because
the virtual machine, still requires traditional remote they are sent out as replies to ping messages to find
attestation. This is done in the standard way using out network topology) can also easily be faked.
Our implementation is based on the Java Virtual time it took for 5000 subsequent ping/pong, and
Machine. We used the Java Development Kit ver- query/queryhit messages to travel between two ma-
sion 1.4.1 from Sun, running on an Intel Pentium-M chines. Both were on a 100 Mbps Ethernet network.
1.3 Ghz machine with 384 MB of RAM. This was compared with the same benchmark run
without a protocol checker. Within experimental er-
We modified the standard Java network socket class ror, the timings were the same — between 9.5 and
so that network communication over sockets could 10.2 seconds for both cases. Increasing the number
be captured and monitored. An API is exposed to of iterations to 10,000 yielded similar results — both
do this. This captured traffic is sent to a proto- cases took between 18.5 and 20.8 seconds.
col watcher which checks the protocol messages for
conformance with a security policy, and informs the This result is not a surprise since the checks are sim-
server accordingly. The Java bytecode for protocol ple, and network round-trip-time dominates compu-
watcher itself is sent by the server to the attestation tation time. Even if the checks are more complex,
service on the client, since it embodies the policy the in realistic situations they are only done periodi-
server is interested in enforcing on the client. cally, and not in a tight loop. Thus, end-to-end per-
formance of applications is still likely to show very
Here we see the utility of using a machine- little overhead.
independent code representation — the protocol
watcher can be sent to and executed on various We can distinguish between two kinds of applica-
platforms, as long as they have a Java TrustedVM. tions that run on a TrustedVM. Legacy applications
Note that the protocol watcher is independent of the are those that do not explicitly make use of trusted
application. Various implementations of a protocol functionality such as remote attestation. We just
can be checked by same protocol manager. presented an example of a legacy untrusted appli-
cation being attested by a TrustedVM, completely
We implemented a protocol very similar to Gnutella, transparently. New applications that are written
though somewhat simpler in its wire format (to sim- with trusted functionality in mind can use a much
plify debugging and parsing of network messages). broader range of a TrustedVM’s facilities.
The protocol watcher examined all outgoing mes-
sages from the client, and checked two properties: We also unsuccessfully tried writing protocol watch-
ers by using bytecode rewriting[12]. This turned
out to be unsuitable for the task because load-
• for pong messages, make sure that the IP ad- time rewriting of system classes is not allowed
dress in the message is the same as that of the in the JVM. Rewriting bytecode at load-time re-
client. quires a specialized class loader, that transforms the
bytecode before handing it off to the virtual ma-
• for query hit messages, make sure that the file
chine. However, all system classes (java.lang.*,
that is mentioned in the query actually exists
java.net.* etc) must be loaded by the “primi-
on the client.
tive” system classloader. Systems such as SASI[14]
and Naccio[15] inline reference monitors by rewrit-
These two properties were checked in particular be- ing Java bytecode. However, they transform the
cause they can exploited to mount denial-of-service classfiles off-line, and not at load-time.
attacks, and can be easily spoofed — they are com-
pletely unchecked.
4.2 A distributed computing applica-
We have not yet implemented a protocol checker tion
for multi-hop messages, but this can be done using
transitive certificate chains.
The previous application was an example of dy-
At the time of this writing, we are not aware of namic enforcement of security properties within a
any applications that use functionality provided by TrustedVM. A TrustedVM can also attest static
trusted hardware, so we do not have a meaningful properties, of both the system it is running on, as
comparison benchmark. However, we can measure well as the code that it runs. The attestation re-
the overhead that protocol checkers impose on net- quester sends across code for testing various prop-
work latency. To measure this, we measured the erties, which the TrustedVM then executes. The
results are signed, and sent back to the attestation
requester (see Figure 2). The results of these tests
can then affect further computation and communi-
cation between the two parties.
These problems can be solved by running this appli- Garfinkel et. al.[17] have proposed the TerraVM[16]
cation on a TrustedVM. The server now explicitly virtual machine monitor architecture to interface
tests the relevant capabilities of the client-side by with underlying trusted hardware. Their architec-
asking the TrustedVM to execute a test suite, and ture provides two VMM abstractions to software —
return the attested results. This solution also has an open box VMM, and a closed box VMM. The
the added advantage of being portable across any open box VMM simply provides a legacy, untrusted
range of architectures that implement a TrustedVM. interface. This allows old operating systems and
software to run unmodified on it. The closed box
The two capabilities that are relevant for the VMM, however, provides an interface to underly-
GIMPS project are: floating point precision and the ing trusted hardware that new software can use. A
computational power. Our test suite has a compoe- number of such VMMs can execute on bare hard-
nent for each. ware. They are strongly isolated from each other,
and have their own encrypted storage.
The most computationally intensive routine in the
prime factorization problem is computing a fast There are many important differences between Ter-
Fourier transform and its inverse. Hence to test raVM and our TrustedVM architecture. While Ter-
for computation speed we execute a one-dimensional raVM provides an interface just like real hardware,
fast Fourier transform over small but typical data the TrustedVM exposes a much higher-level inter-
and time it. The result of this test helps the server face. It executes platform-independent code. Their
to give the client an appropriate work unit. goal is providing strong isolation between applica-
tions running in different VMMs, ours is to provide
For floating point precision we are interested in test- a better technique for remote attestation. Most
ing if the platform implements a double precision importantly, TerraVM uses the standard “signed-
floating point operations and also if it complies with hash” method of remote attestation. The authors
the IEEE 754 standard for floating point. In par- acknowledge some of the shortcomings of standard
ticular we used the Java port of the Elefunt test remote attestation, and call for “appropriate tech-
suite[3]. Elefunt[11] is a test suite to check for the nical and legal protections ... to minimize abuse”.
compliance of floating point implementation of the
various functions with the IEEE floating point stan- The goal of TerraVM is similar to Microsoft’s Palla-
dards. Since the FFT and the inverse FFT use the dium architecture. Palladium is said to have a high-
sine and the cosine functions the two tests that we assurance trusted microkernel running on hardware
are interested in are the ones that determine the ac- (called the nexus) that provides strong isolation be-
curacy of these functions. Depending on results we tween legacy untrusted and newer trusted applica-
determine whether the client is accurate enough to tions, as well as among trusted applications. Un-
run the computations. fortunately, to our knowledge there is no published
technical documentation about Palladium, which trol and other safety issues. The emphasis is differ-
makes it hard to make an in-depth comparison. ent for remote attestation. Servers want to know if
the application is obeying some high-level semantic
The Cerium system[10] aims to provide tamper- rules. One candidate for an analysis that may be of
evident execution. The goal is to know if the re- interest to servers is information flow[23]. Such an
mote execution of a program was carried out in an analysis would convince the server that a client is
untampered manner. They use a physically tamper- not leaking the results of some confidential compu-
resistant CPU block. This executes all code — it is tation, or data.
not a co-processor. Tamper-resistance is provided
both at the hardware level, by physical means, and In our current implementation, the policy a server
at the software-level, by encrypting all data (includ- wants enforced is embodied in the protocol watcher
ing cache data that is written back to main mem- or test suite. We would like to develop a systematic
ory). Semantic remote attestation is orthogonal to language for expressing remote attestation requests.
this — a TrustedVM could use Cerium as an under- With “signed-hash” attestation, this was not an is-
lying hardware architecture. sue. But a TrustedVM provides a broad range of
fine-grained attestation capabilities, and a language
The Digital Distributed System Security is probably the right tool to make full use of them.
Architecture[18] had many of the features of
today’s TCPA specification[5], including secure We would also like to gain experience with devel-
bootstrapping, and remote attestation of system oping more applications that use the functionality
software using signed hashes. The Aegis system[7] provided by a TrustedVM. Distributed firewalls[19]
provided secure bootstrapping. Every layer of implement a network traffic policy at the end-points
software from the hardware up was checked (using of a network, rather than at one single point. This
stored hashes) and control was passed to it only way of distributing trust seems like a good match
if it was untampered. Both these systems did not for implementation on a TrustedVM.
focus on improving remote attestation.
The ability to communicate to a server what par-
The Trusted Computing Group (TCG), has begun ticular property of a program could not be certified
producing specifications of a hardware trusted mod- can be very useful. Using TrustedVMs, this infor-
ule to be used in personal computers[5]. They call mation can be communicated, and the server can get
it a trusted platform module (TPM). Some models detailed information about what desired properties
of IBM ThinkPad laptops contain a similar mod- are not present in a client program. It can then
ule. A commodity trusted computer will couple this make an informed decision about either decreasing
trusted module with software that provides secure its trust in this particular instantiation of a protocol,
booting and strong isolation. or stopping altogether. Thus, the server gains some
dynamic feedback about the trustworthiness of its
clients. We believe this property can be fruitfully
exploited to ”port” a variety of untrusted network
6 Discussion and Future Work protocols (TCP, HTTP etc) to a trusted computing
framework in a gradual manner, and yet have vari-
ous implementation of them inter-operate. This is in
There are many avenues for further investigation. stark contrast to the all-or-nothing model that stan-
Protocol watchers and test suites, as presented here, dard “signed-hash” remote attestation provides —
are only two of many kinds of expressive attestation attestation either passes or fails — there is no gra-
a TrustedVM is capable of. dation. This would also provide a gentler upgrade
path for applications as trusted hardware becomes
A TrustedVM is capable of attesting the results of increasingly available in the market.
some static analysis done on code. However, there
are not many static analyses of code for properties
of interest to a remote server. Most static anal-
yses and runtime enforcement policies so far have
been geared towards protecting a host from mali-
cious mobile code. Thus, the emphasis has been
on type-safety, information-flow, and resource con-
7 Conclusion of the most well-known weaknesses in peer-to-peer
protocols.
Standard ways of doing remote attestation are based Trusted computing introduced the concept of re-
purely on cryptography, and suffer from many crit- motely supervised execution - the idea that a remote
ical shortcomings — they are static, inexpressive, server will be able to monitor as well as change the
inflexible and do not scale. Most importantly, they execution of a program on a client machine. Re-
do not speak about program behavior — they can mote attestation is the key to doing this. However,
only attest to the presence of a particular binary. current architectures for attestation are able to im-
It is possible for an attested binary to have bugs plement this idea in only a very limited way. Seman-
and not obey the security policy a server was ex- tic remote attestation takes this idea to its logical
pecting it to. Remote attestation is hard to scale conclusion — to have fine-grained, dynamic control
up to a flood of software patches and upgrades. It over the monitoring and execution of an application.
also does not accommodate a varied, homogeneous
computing environment very well.