()
S.W. Smith, S. WeingartrComputer Networks 31 1999 831–860836
a particular software layer, and the execution enÕi-
ronment – the code and hardware – that has accesses
to the secrets belonging to that layer.
Ø Control of software. If Authority N has owner-
ship of a particular software layer in a particular
device, then only Authority N, or a designated
superior, can load code into that layer in that
device.
Ø Access to secrets. The secrets belonging to this
layer are accessible only by code that Authority N
trusts, executing on hardware that Authority N
trusts, in the appropriate context.
2.2.2. Authenticated execution
Providing a safe haven for code to run does not
do much good, if it is not possible to distinguish this
safe haven from an impostor. It must thus be possi-
ble to:
Ø authenticate an untampered deÕice;
Ø authenticate its software configuration; and
Ø do this remotely, via computational means.
The first requirement is the most natural. Con-
sider again example of decentralized cash. An adver-
sary who runs this application on an exposed com-
puter but convinces the world it is really running on
a secure device has compromised the entire cash
system – since he or she can freely counterfeit
money by incrementing the stored balance.
The second requirement – authenticating the soft-
ware configuration – is often overlooked but equally
important. In the cash example, running a mali-
ciously modified wallet application on a secure de-
Õice also gives an adversary the ability to counterfeit
money. For another example, running a Certificate
Authority on a physically secure machine without
knowing for certain what key generation software is
wx
really installed leaves one open to attack 28 .
The third requirement – remote verification – is
driven by two main concerns. First, in the most
general distributed application scenarios, participants
may be separated by great physical distance, and
have no trusted witnesses at each other’s site. Physi-
cal inspection is not possible, and even the strongest
tamper-evidence technology is not effective without
a good audit procedure.
Furthermore, we are reluctant to trust the effec-
tiveness of commercially feasible tamper-eÕidence
technology against the dedicated adversaries that
Ž
might target a high-end device. Tamper-evidence
technology only attempts to ensure that tampering
.
leaves clear visual signs. We are afraid that a device
that is opened, modified and reassembled may ap-
pear perfect enough to fool even trained analysts.
This potential for perfect reassembly raises the
serious possibility of attack during distribution and
configuration. In many deployment scenarios, no one
will have both the skills and the motivation to detect
physical tamper. The user who takes the device out
of its shipping carton will probably not have the
ability to carry out the forensic physical analysis
necessary to detect a sophisticated attack with high
assurance. Furthermore, the user may be the adver-
sary – who probably should not be trusted to report
whether or not his or her device shows signs of the
physical attack he or she just attempted. Those par-
Ž.
ties such as, perhaps, the manufacturer with both
the skills and the motivation to detect tamper may be
reluctant to accept the potential liability of a ‘false
negative’ tamper evaluation.
For all these reasons, our tamper-protection ap-
Ž
proach does not rely on tamper-evidence alone see
.
Section 4 .
3. Overview of our architecture
In order to meet the requirements of Section 2,
our architecture must ensure secure loading and exe-
cution of code, while also accommodating the flexi-
bility and trust scenarios dictated by commercial
constraints.
3.1. Secrets
Discussions of secure coprocessor technology
usually begin with ‘physical attack zeroizes secrets’.
Our security architecture must begin by ensuring that
tamper actually destroys secrets that actually meant
something. We do this with three main techniques:
Ø The secrets go away with physical attack. Sec-
tion 4 presents our tamper-detection circuitry and
protocol techniques. These ensure that physical
attack results in the actual zeroization of sensitive
memory.