13.07.2015 Views

Lecture Notes in Computer Science 5471 - tiera.ru

Lecture Notes in Computer Science 5471 - tiera.ru

Lecture Notes in Computer Science 5471 - tiera.ru

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Liqun Chen Chris J. MitchellAndrew Mart<strong>in</strong> (Eds.)T<strong>ru</strong>sted Comput<strong>in</strong>gSecond International Conference, T<strong>ru</strong>st 2009Oxford, UK, April 6-8, 2009Proceed<strong>in</strong>gs13


Volume EditorsLiqun ChenHewlett-Packard LaboratoriesFilton Road, Stoke Gifford, Bristol BS34 8QZ, UKE-mail: liqun.chen@hp.comChris J. MitchellRoyal Holloway, University of LondonInformation Security GroupEgham, Surrey TW20 0EX,UKE-mail: c.mitchell@rhul.ac.ukAndrew Mart<strong>in</strong>Oxford UniversityComput<strong>in</strong>g LaboratoryWolfson Build<strong>in</strong>g, Parks Road, Oxford OX1 3QD, UKE-mail: andrew.mart<strong>in</strong>@comlab.ox.ac.ukLibrary of Congress Control Number: 2009921804CR Subject Classification (1998): D.4.6, K.6.5, E.3, C.2, C.3, D.2, H.4, H.5, K.4LNCS Sublibrary: SL 4 – Security and CryptologyISSN 0302-9743ISBN-10 3-642-00586-1 Spr<strong>in</strong>ger Berl<strong>in</strong> Heidelberg New YorkISBN-13 978-3-642-00586-2 Spr<strong>in</strong>ger Berl<strong>in</strong> Heidelberg New YorkThis work is subject to copyright. All rights are reserved, whether the whole or part of the material isconcerned, specifically the rights of translation, repr<strong>in</strong>t<strong>in</strong>g, re-use of illustrations, recitation, broadcast<strong>in</strong>g,reproduction on microfilms or <strong>in</strong> any other way, and storage <strong>in</strong> data banks. Duplication of this publicationor parts thereof is permitted only under the provisions of the German Copyright Law of September 9, 1965,<strong>in</strong> its current version, and permission for use must always be obta<strong>in</strong>ed from Spr<strong>in</strong>ger. Violations are liableto prosecution under the German Copyright Law.spr<strong>in</strong>ger.com© Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2009Pr<strong>in</strong>ted <strong>in</strong> GermanyTypesett<strong>in</strong>g: Camera-ready by author, data conversion by Scientific Publish<strong>in</strong>g Services, Chennai, IndiaPr<strong>in</strong>ted on acid-free paper SPIN: 12634439 06/3180 543210


PrefaceThis volume conta<strong>in</strong>s the 15 papers presented <strong>in</strong> the technical strand of the T<strong>ru</strong>st2009 conference, held <strong>in</strong> Oxford, UK <strong>in</strong> April 2009. T<strong>ru</strong>st 2009 was the second<strong>in</strong>ternational conference devoted to the technical and socio-economic aspectsof t<strong>ru</strong>sted comput<strong>in</strong>g. The conference had two ma<strong>in</strong> strands, one devoted totechnical aspects of t<strong>ru</strong>sted comput<strong>in</strong>g (addressed by these proceed<strong>in</strong>gs), andthe other devoted to socio-economic aspects.T<strong>ru</strong>st 2009 built on the successful T<strong>ru</strong>st 2008 conference, held <strong>in</strong> Villach,Austria <strong>in</strong> March 2008. The proceed<strong>in</strong>gs of T<strong>ru</strong>st 2008, conta<strong>in</strong><strong>in</strong>g 14 papers,were published <strong>in</strong> volume 4968 of the <strong>Lecture</strong> <strong>Notes</strong> <strong>in</strong> <strong>Computer</strong> <strong>Science</strong> series.The technical strand of T<strong>ru</strong>st 2009 conta<strong>in</strong>ed 15 orig<strong>in</strong>al papers on the designand application of t<strong>ru</strong>sted comput<strong>in</strong>g. For these proceed<strong>in</strong>gs the papers havebeen divided <strong>in</strong>to four ma<strong>in</strong> categories, namely:– Implementation of t<strong>ru</strong>sted comput<strong>in</strong>g– Attestation– PKI for t<strong>ru</strong>sted comput<strong>in</strong>g– Applications of t<strong>ru</strong>sted comput<strong>in</strong>gThe 15 papers <strong>in</strong>cluded here were selected from a total of 33 submissions.The referee<strong>in</strong>g process was rigorous, <strong>in</strong>volv<strong>in</strong>g at least three (and mostly more)<strong>in</strong>dependent reports be<strong>in</strong>g prepared for each submission. We are very gratefulto our hard-work<strong>in</strong>g and dist<strong>in</strong>guished Program Committee for do<strong>in</strong>g such anexcellent job <strong>in</strong> a timely fashion. We believe that the result is a high-qualityset of papers, some of which have been significantly improved as a result of thereferee<strong>in</strong>g process.We would also like to thank all the authors who submitted their papers tothe technical strand of the T<strong>ru</strong>st 2009 conference, all external referees, and allthe attendees of the conference.It is <strong>in</strong>tended that this conference is the second <strong>in</strong> an annual series of conferencesdevoted to t<strong>ru</strong>sted comput<strong>in</strong>g, and we look forward to T<strong>ru</strong>st 2010.January 2009Liqun ChenChris Mitchell


OrganizationT<strong>ru</strong>st 2009The Second International Conference on T<strong>ru</strong>sted Comput<strong>in</strong>g(Technical Strand) was held at St. Hugh’s College, Oxford, UK dur<strong>in</strong>gApril 6–8, 2009General ChairAndrew Mart<strong>in</strong>University of Oxford, UKProgram ChairsLiqun ChenChris MitchellHewlett-Packard Laboratories, UKRoyal Holloway, University of London, UKProgram CommitteeEndre BangerterDavid ChallenerJames DavenportRobert DengLoïc DuflotPaul EnglandSigrid GuergensDirk KuhlmannPeter LippJavier LopezAndrew Mart<strong>in</strong>Yi MuDavid NaccacheHeike NeumannElisabeth OswaldKenny PatersonRaphael PhanBart PreneelGraeme ProudlerSihan Q<strong>in</strong>gCarsten RudolphMark RyanAhmad-Reza SadeghiBern University of Applied <strong>Science</strong>s, SwitzerlandLenovo, USAUniversity of Bath, UKS<strong>in</strong>gapore Management University, S<strong>in</strong>gaporeSGDN/DCSSI, FranceMicrosoft, USAFraunhofer, GermanyHP Laboratories, UKIAIK, TU Graz, AustriaUniversity of Malaga, Spa<strong>in</strong>University of Oxford, UKUniversity of Wollongong, AustraliaENS, FranceNXP Semiconductors, GermanyUniversity of Bristol, UKRHUL, UKUniversity of Loughborough, UKKU Leuven, BelgiumHP Laboratories, UKCh<strong>in</strong>ese Academy of <strong>Science</strong>s, Ch<strong>in</strong>aFraunhofer, GermanyUniversity of Birm<strong>in</strong>gham, UKRuhr University Bochum, Germany


VIIIOrganizationJean-Pierre SeifertAri S<strong>in</strong>gerSean SmithChristian StüebleLeendert van DoornVijay VaradharajanSamsung Research, USANTRU, USADartmouth College, USASirrix, GermanyAMD, USAMacquarie University, AustraliaSteer<strong>in</strong>g CommitteeBoris BalacheffIan BrownAndrew Mart<strong>in</strong>Chris MitchellAhmad-Reza SadeghiHewlett-Packard Laboratories, UKUniversity of Oxford, UKUniversity of Oxford, UKRoyal Holloway, University of London, UKRuhr University Bochum, GermanyExternal ReviewersTien Tuan Anh D<strong>in</strong>hKurt DietrichJim GrimmettX<strong>in</strong>yi HuangJun Ho HuhQ<strong>in</strong>gguang JiMarkulf KohlweissStephan KrennGaiCheng LiHans LöhrJohn LyleSandra MarcelloAybek MukhamedovAarthi NagarajanDan PageDries SchellekensQ<strong>in</strong>gni ShenNigel SmartBen SmythUdaya Kiran TupakulaBogdan War<strong>in</strong>schiMarcel W<strong>in</strong>andy


Table of ContentsImplementation of T<strong>ru</strong>sted Comput<strong>in</strong>gTowards a Programmable TPM .................................... 1Paul England and Talha TariqACPI: Design Pr<strong>in</strong>ciples and Concerns .............................. 14Loïc Duflot, Olivier Levilla<strong>in</strong>, and Benjam<strong>in</strong> Mor<strong>in</strong>Implementation Aspects of Mobile and Embedded T<strong>ru</strong>stedComput<strong>in</strong>g ...................................................... 29Kurt Dietrich and Johannes W<strong>in</strong>terModel<strong>in</strong>g T<strong>ru</strong>sted Comput<strong>in</strong>g Support <strong>in</strong> a Protection Profile for HighAssurance Security Kernels ........................................ 45Hans Löhr, Ahmad-Reza Sadeghi, Christian Stüble,Marion Weber, and Marcel W<strong>in</strong>andyAttestationRemote Attestation of Attribute Updates and Information Flows <strong>in</strong> aUCON System ................................................... 63Mohammad Nauman, Masoom Alam, X<strong>in</strong>wen Zhang, andTamleek AliMeasur<strong>in</strong>g Semantic Integrity for Remote Attestation ................. 81Fabrizio Baiardi, Diego Cilea, Daniele Sgandurra, andFrancesco CeccarelliPKI for T<strong>ru</strong>sted Comput<strong>in</strong>gA PrivacyCA for Anonymity and T<strong>ru</strong>st ............................. 101Mart<strong>in</strong> Pirker, Ronald Toegl, Daniel He<strong>in</strong>, and Peter DannerRevocation of TPM Keys ......................................... 120Stefan Katzenbeisser, Klaus Kursawe, and Frederic StumpfApplications ISecur<strong>in</strong>g the Dissem<strong>in</strong>ation of Emergency Response Data with anIntegrated Hardware-Software Architecture .......................... 133Timothy E. Lev<strong>in</strong>, Jeffrey S. Dwosk<strong>in</strong>, Ganesha Bhaskara,Thuy D. Nguyen, Paul C. Clark, Ruby B. Lee,Cynthia E. Irv<strong>in</strong>e, and Terry V. Benzel


XTable of ContentsT<strong>ru</strong>stable Remote Verification of Web Services ....................... 153John LyleT<strong>ru</strong>stworthy Log Reconciliation for Distributed VirtualOrganisations ................................................... 169Jun Ho Huh and John LyleAttack<strong>in</strong>g the BitLocker Boot Process .............................. 183Sven Türpe, Andreas Poller, Jan Steffan, Jan-Peter Stotz, andJan T<strong>ru</strong>kenmüllerApplications IISecure VPNs for T<strong>ru</strong>sted Comput<strong>in</strong>g Environments .................. 197Steffen Schulz and Ahmad-Reza SadeghiMerx: Secure and Privacy Preserv<strong>in</strong>g Delegated Payments ............. 217Christopher Soghoian and Imad AadA Property-Dependent Agent Transfer Protocol ...................... 240Eimear Gallery, Aarthi Nagarajan, and Vijay VaradharajanAuthor Index .................................................. 265


2 P. England and T. TariqUs<strong>in</strong>g the TPM to bootstrap t<strong>ru</strong>st <strong>in</strong>to an execution environment like a platformhypervisor or operat<strong>in</strong>g system is adequate for many purposes, however data andapplication programs <strong>ru</strong>nn<strong>in</strong>g on the ma<strong>in</strong> processors are much less protected fromphysical attack than programs and data held <strong>in</strong>side the TPM. This problem is evidentfrom the recent hardware attacks on applications utiliz<strong>in</strong>g TPMs [3], [4], [5]. Theproblems of software robustness are even more challeng<strong>in</strong>g: ma<strong>in</strong>stream operat<strong>in</strong>gsystems have an ill-def<strong>in</strong>ed T<strong>ru</strong>sted Comput<strong>in</strong>g Base (TCB) that is generally not secureenough for attestation to be mean<strong>in</strong>gful [6].Guest OS (a) Guest OS (b)ApplicationApplicationHypervisorPrimary OS /Doma<strong>in</strong> 0Smart cardDevicedriverTPMApplicationCrypto ChannelEndpo<strong>in</strong>tHypervisorSmart CardTPM-CoreProgrammable TPMTPM CoreFig. 1. (a) Schematic illustration of a programmable TPM and its use <strong>in</strong> a hypervisor sett<strong>in</strong>g.We assume that the TPM can load and <strong>ru</strong>n applications and the services implemented can beexposed to the hypervisor and guest operat<strong>in</strong>g systems. (b) Schematic of one <strong>in</strong>stantiation ofour coupled TPM smart card architecture: The TCB and TPM are coupled to the smart cardus<strong>in</strong>g an out-of-band cryptographic marry<strong>in</strong>g step. The cryptographic channels (thick l<strong>in</strong>es)represent authenticated and secure connections from the smart card to the TPM and the smartcard to the channel end-po<strong>in</strong>t.If the host-platform-based secure environment is not secure enough, we might considerbuild<strong>in</strong>g a secure execution environment <strong>in</strong>side a TPM such as that illustrated <strong>in</strong>Fig 1(a). Such a system should provide much better robustness to hardware and softwareattack than that offered by platform macrocode. And <strong>in</strong>deed, such devices havebeen studied by researchers, but unfortunately they do not yet exist [7].In this paper we propose an alternative architecture for provid<strong>in</strong>g high-assuranceextended TPM services. Instead of mak<strong>in</strong>g changes to the TPM hardware design, wedescribe and evaluate an architecture <strong>in</strong> which we couple a programmable smart cardto a TPM to provide programmable services that are not possible with either alone.See Fig. 1 (b). This architecture has many <strong>in</strong>terest<strong>in</strong>g characteristics: First it is a practicalway of provid<strong>in</strong>g enhanced security functionality for exist<strong>in</strong>g TPMs. Second, itprovides a way of prototyp<strong>in</strong>g new TPM functions to assess their usefulness beforecommitt<strong>in</strong>g them to silicon, and f<strong>in</strong>ally it allows us to explore the design and assessthe usefulness of a t<strong>ru</strong>e “programmable TPM.”We have built several advanced security services to help us understand this architectureand demonstrate its capabilities. The services described <strong>in</strong> this paper are:


Towards a Programmable TPM 3Count-Limited Objects: An implementation of TPM keys that can only be used toperform cryptographic operations a preset number of times. This capability is designedto simplify some aspects of key revocation and support rights-management.Flexible Seal and Unseal: An implementation of the Seal, Unseal, and Unb<strong>in</strong>d primitivesthat allow more complex policy expressions than the simple Platform ConfigurationRegister (PCR) equality checks supported by the current TPM specifications 1 . Onepolicy expression allows seal<strong>in</strong>g to a software publisher or other authority identified bya public key. In this case the publisher may later authorize any PCR configuration us<strong>in</strong>ga certificate signed us<strong>in</strong>g the associated private key. Another policy expression allowsmore complex logical expressions of authorized configurations (e.g. PCR configuration1 or PCR configuration 2). Both of these enhancements are designed to make softwareupdates and group<strong>in</strong>g of equivalent programs easier to manage.Attestation Translation: A smart card service that provides attestation us<strong>in</strong>g cryptographyand signature formats unavailable with<strong>in</strong> a TPM. This is a proof of conceptof attestation translation: a more sophisticated implementation could provide platformattestation <strong>in</strong> more widely used signature and certificate formats like X.509. Thisfacility should simplify the deployment of attestation because exist<strong>in</strong>g servers andprotocols can be used.The paper is organized as follows. In section 2 we describe the coupl<strong>in</strong>g architecture.In section 3 we describe the security primitives that we have prototyped, and <strong>in</strong>sections 4 and 5 we describe the limitations of the coupl<strong>in</strong>g architecture and possiblefurther work.2 TPM to Smart Card Coupl<strong>in</strong>gWe seek to approximate a field-programmable TPM <strong>in</strong> which the secure executionenvironment for user extensible application programs is part of the host platformTPM. However when emulat<strong>in</strong>g a programmable TPM us<strong>in</strong>g a conventional fixedfunctionTPM and an external smart card, the secure execution environment is externalto the TPM, is <strong>in</strong>dependent of the host state, and can be freely roamed betweenmach<strong>in</strong>es. This creates several challenges that we need to address: First, the executionenvironments provided by the host system and a smart card are relatively <strong>in</strong>dependent.For example, smart card applications can still <strong>ru</strong>n if the smart card is movedbetween different host mach<strong>in</strong>es. Second, TPM-to-host-TCB communications arerelatively well protected (for example TPM communications are on a motherboard<strong>in</strong>ternal bus) whereas <strong>in</strong> coupl<strong>in</strong>g with an external smart card, the smart card bus isexposed, and communications are sometimes managed by drivers <strong>ru</strong>nn<strong>in</strong>g outside theTCB (Fig. 1(b)).2.1 Coupl<strong>in</strong>g Security RequirementsIf the smart card is to provide TPM-enhanced platform services we need to couple thesmart card and the host platform more tightly.1 At the time of this writ<strong>in</strong>g the current TPM specifications is version 1.2.


Towards a Programmable TPM 5Export AIK public keyLoad TPMs Key <strong>in</strong>SmartCardGenerate RSAIdentity keyExport Card Public KeyGenerate AIKSeal smart cardpublic keySmartCardPlatform + TPMFig 2. Cryptographic B<strong>in</strong>d<strong>in</strong>g of the TPM and Smart Cardproof-of-password-possession protocols. F<strong>in</strong>ally, the count-limited key functionuses the TPM capability for remote creation and encryption of keys us<strong>in</strong>g the TPMkey-storage hierarchy.In our implementation two more smart card keys are created as part of the marry<strong>in</strong>gstep. A symmetric AES key is created for off-card storage of smart card createdsealed data blobs, and an RSA sign<strong>in</strong>g key is created for the attestation translationfunction. If a new b<strong>in</strong>d<strong>in</strong>g is performed all previous bound data becomes <strong>in</strong>accessibleand the quote translation key is destroyed (just like <strong>in</strong>stall<strong>in</strong>g a new owner <strong>in</strong> a TPM).We also need <strong>in</strong>tegrity protected host storage for the host TCB to store the marriedsmart card public key. S<strong>in</strong>ce the security model for t<strong>ru</strong>sted comput<strong>in</strong>g does not generallyassume storage is t<strong>ru</strong>stworthy unless protected by cryptography, we use the hostTPM_Seal primitive to <strong>in</strong>tegrity protect the married smart card public key. The smartcard has genu<strong>in</strong>e access-protected storage so no cryptographic measures are needed.Our current implementation assumes that the smart card applications are loadedprior to the marry<strong>in</strong>g step. A more sophisticated version would provide a useraccessiblesmart card execution environment and services that let the smart card applicationsauthenticate themselves (see section 5).Our architecture is generic and <strong>in</strong>dependent of the nature of host software: it can beapplied to systems that employ a hypervisor, an operat<strong>in</strong>g system without a hypervisor,or applications <strong>ru</strong>nn<strong>in</strong>g directly on the computer hardware. From our perspectiveall that differs is the nature of the TCB and the PCRs that are used to identify theplatform state. Of course the choice of t<strong>ru</strong>sted comput<strong>in</strong>g base has practical implicationsfor the comprehensibility and relevance of host PCR values [6].3 Smart Card Enhanced TPM Security PrimitivesIn this section we describe the implementation of three security primitives that demonstratethe possibilities of the TPM to smart card coupl<strong>in</strong>g architecture. 2 Note thatthe smart card functions appear somewhat hard to use. This is because we generallyfavor perform<strong>in</strong>g only essential security functions <strong>in</strong> the smart card (which is slow2 These experiments used a Dell Optiplex 745 <strong>ru</strong>nn<strong>in</strong>g Vista SP1 and conta<strong>in</strong><strong>in</strong>g an Atmel TPMversion 1.2 with firmware version 13.9. The smart card was a Gemalto.NET v2 card with80Kbyte of memory for code and data.


8 P. England and T. Tariqperforms this check <strong>in</strong> the same way that any other remote entity would determ<strong>in</strong>e theplatform configuration: i.e. the smart card demands that host software provide evidencefor the current state by means of the output of a Quote operation us<strong>in</strong>g the marriedAIK and a smart card provided nonce (to prevent replay). If host software canrespond with evidence of an authorized configuration, the smart card will release thesealed data to the TCB.We describe the smart card operations that support the Seal and Unseal implementations;Unb<strong>in</strong>d is similar to Unseal.Seal<strong>in</strong>g to a List of PCR ConfigurationsThe follow<strong>in</strong>g smart card functions support seal<strong>in</strong>g to a list of configurations. Seal-ToConfigurationList is the smart card function that protects the data. The sealer needonly specify the hash of the list of authorized configurations at this stage. Unseal-ConfigurationList is the correspond<strong>in</strong>g unseal function. Here the caller must specifythe whole configuration list (which the smart card will hash to ensure it matches thespecified policy) and the policy element number that the smart card should attempt tosatisfy. The smart card must also be given proof of the current platform configurationby means of the output of a TPM_Quote operation over the relevant PCRs. Replayresistance for the quoted configuration is provided by a smart card provided nonce,which must be obta<strong>in</strong>ed us<strong>in</strong>g the smart card GetNonce function.In more detail, the pseudo-code for the commands follows:SealToConfigurationListInput:A secret s,the hash of a list of authorized configurations lOutput:A sealed encrypted blobActions:Integrity-protect and encrypt the concatenation of s, and lGetNonceInput:NoneOutput:A 20 byte random nonceActions:Create and return a random nonceUnsealConfigurationListInputs:A sealed blob, bThe expected configuration list, lThe list element number that we expect to satisfy, iThe output of a TPM Quote on the current configuration, qOutputs:The previously sealed data or an error


Towards a Programmable TPM 9Actions:1) Decrypt the sealed blob b return<strong>in</strong>g the secret s and the policylist hash h2) Check that the hash of l matches the policy hash h3) Check that the TPM signature q is formed signature us<strong>in</strong>g themarried AIK over the l[i] (the configuration element that weexpect to match) and the previously supplied nonce4) Return the secret data s if all of the above checks succeed, elsereturn an errorSeal<strong>in</strong>g to a Configuration Authorized by a Public KeyThe follow<strong>in</strong>g smart card functions support seal<strong>in</strong>g to PCR configurations authorizedby a public key. SealToPublicKey encrypts a secret and the public key of an entityt<strong>ru</strong>sted to authorize future platform configurations. UnsealPublicKey is the correspond<strong>in</strong>gunseal function. UnsealPublicKey must be provided with the orig<strong>in</strong>alsealed blob and a signed statement from policy key holder authoriz<strong>in</strong>g a PCR configuration.The caller must also provide the result of a TPM_Quote operation that provescompliance with the specified configuration. If policy compliance is proven thesealed data is released. As before, the caller must obta<strong>in</strong> a fresh nonce from the smartcard and have it <strong>in</strong>corporated <strong>in</strong>to the Quoted data st<strong>ru</strong>cture.In pseudo code:SealToPublicKeyInput:A secret s,A public key kOutput:An encrypted blobActions:Integrity-protect and encrypt the concatenation of s, and kGetNonceSee aboveUnsealPublicKeyInputs:A bound blob b,An authorized PCR configuration from the server c,A signature over the authorized PCR configuration from the server S,The output of a TPM Quote operation qOutputs:The sealed data or an errorActions:1) Decrypt the sealed blob b return<strong>in</strong>g the secret s and the public key k2) Validate that the signature S is valid for the configuration c us<strong>in</strong>gthe public key k


10 P. England and T. Tariq3) Validate that q is a TPM signature over the configuration c us<strong>in</strong>g themarried TPM AIK and the expected nonce4) Return the secret s if the above checks succeed, else return an errorOne detail is omitted from the description above. The TPM implementation of Sealrecords PCR values at the time of seal<strong>in</strong>g for the purposes of source platform andconfiguration authentication. Our implementation of Seal also takes the output of aQuote operation over a smart card provided nonce to provide similar capabilities.All data communicated between the TCB and the smart card is passed over the securechannel described <strong>in</strong> section 2. The channel endpo<strong>in</strong>ts are authenticated us<strong>in</strong>gthe married TPM and smart card keys.3.3 Enhanced QuotesThe TPM_Quote operation creates a signature us<strong>in</strong>g an AIK over a data st<strong>ru</strong>cture that<strong>in</strong>cludes TPM <strong>in</strong>ternal state as reflected <strong>in</strong> PCR values, and externally provided data(for freshness, or to associate the configuration with some other cryptographic object).This build<strong>in</strong>g block is designed to be used <strong>in</strong> cryptographic protocols that proveknowledge of the AIK and prove the current platform state. Unfortunately the TPMsignature format is non-standard, and this is one of the th<strong>in</strong>gs that has made it difficultto adopt TPM attestation technology.We have prototyped a smart card function that translates the platform configurationprovided by the TPM <strong>in</strong>to another format. Our proof of concept also uses nonstandarddata st<strong>ru</strong>ctures, but a more sophisticated implementation would use a certificateformat like X.509. Such certificates could be used for network access control, or<strong>in</strong> an email or document sign<strong>in</strong>g scenario to prove the mach<strong>in</strong>e and mach<strong>in</strong>e configurationwhen the document was signed [11],[12].Our configuration rewrit<strong>in</strong>g function is called TranslateQuote. It must be calledwith fresh evidence of the current configuration by means of the output of theTPM_Quote operation over a smart card nonce. TranslateQuote checks the quotesignature is properly formed and is issued by the married AIK. If both conditionshold, the smart card generates a signature over the TPM-specified state, and an externalnonce.In pseudo code:GetNonceSee aboveTranslateQuoteInputs:The data st<strong>ru</strong>cture supplied to the TPM_Quote operation q,The TPM-quoted signature s over this data st<strong>ru</strong>cture and the previouslyobta<strong>in</strong>ed nonce,External data to sign dOutputs:A smart card created signature or an error


Towards a Programmable TPM 11Actions:1) Check that s is a valid signature over the data q and the nonce us<strong>in</strong>gthe married AIK2) If the check succeeds return a smart card signature over a translationof q and the external data d, else return an error4 Programmable TPMsOur coupl<strong>in</strong>g architecture strikes a useful balance between flexibility and deployabilityus<strong>in</strong>g today’s generally available commodity hardware s<strong>in</strong>ce it requires no modificationto the current specifications of the TPM 3 and uses general purposeprogrammable smart cards, but it is <strong>in</strong>terest<strong>in</strong>g to speculate on the design and improvedfunctionality of a future programmable TPM.There are many possible models for a programmable TPM. Useful start<strong>in</strong>g places<strong>in</strong>clude multi-application programmable Java or .Net smart cards, or the T<strong>ru</strong>sted ExecutionModel (TEM) described by Costan et al. [13]. Perhaps the simplest conceptualdesign for a programmable TPM is to replicate the security model for code execut<strong>in</strong>goutside the TPM but applied to user-code <strong>ru</strong>nn<strong>in</strong>g <strong>in</strong>side the TPM. The TPM alreadyhas a model for authenticat<strong>in</strong>g security modules execut<strong>in</strong>g outside, which is the notionof locality coupled with the DRTM launch procedure [14]. This secure late-launchprocedure has been used by the Oslo project [15] and Flicker [16]. Apply<strong>in</strong>g this ideato an execution environment <strong>in</strong>side the TPM would <strong>in</strong>volve the def<strong>in</strong>ition of a newlocality for access by TPM applications, and new PCR-registers dedicated to theirmeasurements. See Fig. 3. However, beyond privileges associated with access locality,<strong>in</strong>ternal TPM applications would have the same access to other TPM functionsand keys as applications <strong>ru</strong>nn<strong>in</strong>g outside the TPM.OtherHostSoftwareOther Host SoftwareDRTM-Launched SecurityKernelTPMLocality-Locked PCRDRTM-LaunchedSecurity KernelT-RTM-LaunchedSecurity ApplicationTPM-CoreLocality-Locked PCRFig. 3. Left: A TPM support<strong>in</strong>g a DRTM-launched security kernel. The DRTM procedure andplatform hardware and firmware ensures that a special PCR conta<strong>in</strong>s a reliable measurement ofthe external security kernel, and that the TPM can authenticate commands orig<strong>in</strong>at<strong>in</strong>g from thesecurity kernel. Right: Apply<strong>in</strong>g this model to a programmable TPM would def<strong>in</strong>e a new localityand associated “TPM-Root-of-T<strong>ru</strong>st-of-Measurement” (T-RTM) to hold measurement of theTPM <strong>in</strong>ternal programmable security functions.3 As of this writ<strong>in</strong>g the current version of TPM Specifications is 1.2.


12 P. England and T. TariqUnfortunately there are limits to the types of functions that can be supported us<strong>in</strong>gthis sort of programmable TPM because TPM protected data is not accessible tothe user applications. So while it would be possible to create a new class of storagekey with sophisticated migration features with this design, it would not be possibleto provide this migration capability to the storage root key (SRK) because the SRKprivate data is <strong>in</strong>accessible. Allow<strong>in</strong>g third party code access to TPM private keysand other protected data changes the TPM security model profoundly, so we generallyprefer designs that supplement exist<strong>in</strong>g functionality rather than replac<strong>in</strong>g ormodify<strong>in</strong>g it.5 Conclusions and Future WorkWe currently only support applications that are pre-loaded onto the card prior to TPMcard marry<strong>in</strong>g. This is probably adequate for most enterprise use (the enterprise willload l<strong>in</strong>e-of-bus<strong>in</strong>ess applications onto the smart card prior to issuance) but does notexercise the full potential of the coupl<strong>in</strong>g architecture.To go beyond pre-loaded applications we must provide an isolated execution environmentfor applications <strong>in</strong> the smart card, and provide a means for these applicationsto authenticate themselves to the host computer. The isolation and authenticationprimitives are necessary because we can no longer necessarily t<strong>ru</strong>st the applications<strong>ru</strong>nn<strong>in</strong>g on the card. This seems most straightforwardly solved by re-apply<strong>in</strong>g thepr<strong>in</strong>ciples of authenticated operation but with<strong>in</strong> the smart card. In particular wewould need to modify the smart card application loader to measure and record theapplication digest (or other authentication data) and provide the smart card applicationwith seal<strong>in</strong>g and attestation services. Smart card applications could use these primitivesto prove to the platform TCB that it is communicat<strong>in</strong>g with a t<strong>ru</strong>stworthy cardand card application.Deliver<strong>in</strong>g the promise of T<strong>ru</strong>sted Comput<strong>in</strong>g has been delayed by a number ofproblems. These <strong>in</strong>clude the relative unavailability of ma<strong>in</strong>stream operat<strong>in</strong>g systemsand hypervisors with useful security properties, problems balanc<strong>in</strong>g the high levels ofsecurity provided by the TPM and ease of management, and problems us<strong>in</strong>g the TPMto enhance exist<strong>in</strong>g security applications and scenarios. Our work demonstrates thatlogic and cryptographic operations <strong>ru</strong>nn<strong>in</strong>g on a smart card coupled with the hostplatform and TPM can mitigate all of these issues, and is also an <strong>in</strong>terest<strong>in</strong>g prototyp<strong>in</strong>genvironment for experiment<strong>in</strong>g with new functionality that could be <strong>in</strong>corporated<strong>in</strong>to future TPM designs.The three applications we implemented were chosen to exercise local- and remote-t<strong>ru</strong>stverification, and to mitigate some of the problems that the authors haveexperienced <strong>in</strong> try<strong>in</strong>g to apply t<strong>ru</strong>sted comput<strong>in</strong>g to real problems. Other candidateapplications <strong>in</strong>cluded keys with more sophisticated key management and migrationfunctions, a software-TPM on the smart card, a “roam<strong>in</strong>g-TPM” for use <strong>in</strong> an enterprise,and general experimentation on the correct def<strong>in</strong>ition of security primitivesfor future TPM designs.


Towards a Programmable TPM 13References1. T<strong>ru</strong>sted Comput<strong>in</strong>g Group TPM Specification Version 1.2 Revision 103 (2007),https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/specs/TPM/2. England, P., Pe<strong>in</strong>ado, M.: Authenticated operation of open comput<strong>in</strong>g devices. In: Batten,L.M., Seberry, J. (eds.) ACISP 2002. LNCS, vol. 2384, pp. 346–361. Spr<strong>in</strong>ger, Heidelberg(2002)3. Sparks, E.R.: A Security Assesment of T<strong>ru</strong>sted Platform Modules. Dartmouth College,Technical Report. TR2007-5974. Halderman, J.A., et al.: Lest We Remember: Cold Boot Attacks on Encryption Keys. In:Proc. 2008 USENIX Security Symposium (2008)5. B<strong>ru</strong>schi, D., et al.: Attack<strong>in</strong>g a T<strong>ru</strong>sted Comput<strong>in</strong>g Platform. Improv<strong>in</strong>g the Security of theTCG Specification. Technical Report. Università degli Studi di Milano. Milan (2005)6. England, P.: Practical Techniques for Operat<strong>in</strong>g System Attestation. Proceed<strong>in</strong>gs of T<strong>ru</strong>st(2008)7. Costan, V., et al.: The T<strong>ru</strong>sted Execution Module: Commodity General-Purpose T<strong>ru</strong>stedComput<strong>in</strong>g. In: Eighth Smart Card Research and Advanced Application Conference8. Offl<strong>in</strong>e dictionary attack on TCG TPM weak authorisation data, and solution. In: Chen, L.,Ryan, M.D., Grawrock, D., Reimer, H., Sadeghi, A., Vishik, C. (eds.): Future of T<strong>ru</strong>st <strong>in</strong>Comput<strong>in</strong>g, Vieweg & Teubner, 2008 (2008)9. Sarmenta, L.F., et al.: Virtual Monotonic Counters and Count-Limited Objects us<strong>in</strong>g aTPM without a T<strong>ru</strong>sted OS (Extended Version), Mit Technical Report MIT-CSAIL-TR-2006-064 (2006)10. George, P.: User Authentication with Smart Cards <strong>in</strong> T<strong>ru</strong>sted Comput<strong>in</strong>g. In: Arabnia,H.R., Aissi, S., Mun, Y. (eds.) Security and Management, SAM 2004, pp. 25–31. CSREAPress, Las Vegas (2004)11. Balacheff, B., et al.: A t<strong>ru</strong>sted process to digitally sign a document. In: Proceed<strong>in</strong>gs of the2001 workshop on New security paradigms. pp. 79–86 (2001) 1-58113-457-612. Giraud, J.-L., Rousseau, L.: T<strong>ru</strong>st Relations <strong>in</strong> a Digital Signature System Based on aSmart Card. In: Proceed<strong>in</strong>gs of 23rd National Information Systems Security Conference,Baltimore13. Costan, V.: The T<strong>ru</strong>sted Execution Module Commodity General-Purpose T<strong>ru</strong>sted Comput<strong>in</strong>g.In: The Eighth Smart Card Research and Advanced Application Conference14. Grawrock, D.: The Intel Safer Comput<strong>in</strong>g Initiative: Build<strong>in</strong>g Blocks for T<strong>ru</strong>sted Comput<strong>in</strong>g,1st edn. Intel Press (2006) 097648326215. Kauer, B.: OSLO: Improv<strong>in</strong>g the Security of T<strong>ru</strong>sted Comput<strong>in</strong>g. In: Proceed<strong>in</strong>gs of the16th Usenix Security Symposium (2001)16. McCune, J.M., et al.: Flicker: An Execution Infrast<strong>ru</strong>cture for TCB M<strong>in</strong>imization. In: Proceed<strong>in</strong>gsof the ACM European Conference on <strong>Computer</strong> Systems (EuroSys 2008) held <strong>in</strong>Glasgow (2008)


ACPI: Design Pr<strong>in</strong>ciples and ConcernsLoïc Duflot, Olivier Levilla<strong>in</strong>, and Benjam<strong>in</strong> Mor<strong>in</strong>DCSSI 51 bd. de la Tour Maubourg 75700 Paris Cedex 07 FranceAbstract. ACPI (Advanced Configuration Power Interface) allows operat<strong>in</strong>gsystems to efficiently configure the hardware platform they are<strong>ru</strong>nn<strong>in</strong>g on and deal with power management tasks. These tasks used tobe achieved by the BIOS because it was the only platform componentto know which specific chipset or device registers dealt with power management.In this paper, we illustrate how this shift <strong>in</strong> the global powermanagement model <strong>in</strong>troduces additional threats, especially for t<strong>ru</strong>stedplatforms, by show<strong>in</strong>g how rootkits can use ACPI to conceal some oftheir functions. We also study the relationship between t<strong>ru</strong>sted comput<strong>in</strong>gblocks and ACPI.Keywords: ACPI, t<strong>ru</strong>sted platforms, rootkits.1 IntroductionACPI (Advanced Configuration and Power Interface) [8] was specified by Intel R ,Hewlett-Packard, Microsoft R ,Phoenix R and Toshiba to establish common <strong>in</strong>terfacesfor platform-<strong>in</strong>dependent configuration and power management. In theACPI model, the OSPM (Operat<strong>in</strong>g System-directed configuration and PowerManagement) is the specific operat<strong>in</strong>g system component <strong>in</strong> charge of powermanagement tasks. ACPI has been widely accepted as a de-facto standard toreplace the former APM [16] (Advanced Power Management) approach, wherepower management was mostly performed by the BIOS. Push<strong>in</strong>g power managementat the operat<strong>in</strong>g system level allows more flexibility and more complexpower management schemes. However, operat<strong>in</strong>g systems are generic objects bynature, so the hardware platform must provide the operat<strong>in</strong>g system with somemeans of understand<strong>in</strong>g how power management should be achieved on thisspecific platform. This is the purpose of the ACPI tables.On a t<strong>ru</strong>sted platform, the t<strong>ru</strong>sted comput<strong>in</strong>g base is generally <strong>in</strong> charge ofpower management. If the t<strong>ru</strong>sted comput<strong>in</strong>g base is to <strong>ru</strong>n on several platforms,then it must make use of the ACPI tables provided by the BIOS. In this paper,we try to determ<strong>in</strong>e whether the t<strong>ru</strong>sted comput<strong>in</strong>g base can t<strong>ru</strong>st the ACPItables, or if there is a way for an attacker to modify those tables as a means forprivilege escalation on a platform, and what would be the impact of a bug <strong>in</strong>one of the ACPI tables.It is well understood <strong>in</strong> the <strong>in</strong>dustrial world that ACPI is one of the most complexcomponents to deal with from a security perspective on a t<strong>ru</strong>sted platform(along with System Management Mode for <strong>in</strong>stance). Dur<strong>in</strong>g the 2006 BlackhatL. Chen, C.J. Mitchell, and A. Mart<strong>in</strong> (Eds.): T<strong>ru</strong>st 2009, LNCS <strong>5471</strong>, pp. 14–28, 2009.c○ Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2009


ACPI: Design Pr<strong>in</strong>ciples and Concerns 15fo<strong>ru</strong>m, John Heasman [6] presented how it is possible to design an ACPI-basedrootkit. However, to our best knowledge, our paper is one of the first attempt tostudy the <strong>in</strong>itial design flaws and to present a comprehensive proof-of-conceptof an ACPI rootkit-like function that can be triggered by external hardwareevents (laptop lid open<strong>in</strong>g, power adapter plugged and removed twice <strong>in</strong> a rowfor <strong>in</strong>stance).In section 2, we present the way ACPI works on a traditional computer andshow how ACPI is handled on a L<strong>in</strong>ux system. Section 3 gives a description ofthe flaws <strong>in</strong> the ACPI model that make it possible for an attacker to use ACPIto conceal rootkit functions. In section 4, we present an actual proof-of-conceptof an ACPI rogue code that allows an attacker to <strong>in</strong>stall a remanent backdoor ona L<strong>in</strong>ux-based laptop that will be triggered when the power adapter is pluggedand unplugged twice <strong>in</strong> a row. In section 5, we describe how the problem can behandled on so-called t<strong>ru</strong>sted platforms. Section 6 concludes the paper.2 ACPI Design Pr<strong>in</strong>ciplesFor the sake of simplicity, we only consider <strong>in</strong> this paper traditional x86 andBIOS-based computer platforms.2.1 Traditional PC ArchitectureFigure 1 shows a traditional PC architecture. User code (t<strong>ru</strong>sted comput<strong>in</strong>gbases, operat<strong>in</strong>g systems, applications) <strong>ru</strong>n on the CPU [10]. The chipset componentis <strong>in</strong> charge of hardware devices management. The northbridge [9] partof the chipset is connected to ma<strong>in</strong> system memory (RAM) and to the graphicadapter. The southbridge [14] part of the chipset is connected to other devices(network <strong>in</strong>terface controller, sound device, USB devices) through various communicationbuses. Power management of a device is achieved at the hardwarelevel by modify<strong>in</strong>g the content of configuration registers hosted by the chipset(northbridge, southbridge or both depend<strong>in</strong>g on the device) and <strong>in</strong> the deviceitself. Those registers can be accessed from the CPU us<strong>in</strong>g several different mechanisms[13]:– some registers are mapped by the chipset <strong>in</strong>to the ma<strong>in</strong> system memoryspace. Those so-called Memory-Mapped I/O registers can thus be accessedby the CPU <strong>in</strong> the same way as RAM is, but at different addresses;– some registers are mapped <strong>in</strong>to a separate 16-bit bus. These registers arecalled Programmed I/O (PIO) registers. They are given an address <strong>in</strong> thePIO space and can be accessed from the CPU us<strong>in</strong>g “<strong>in</strong>” [11] and “out” [12]assembly langage <strong>in</strong>st<strong>ru</strong>ctions;– the chipset can also choose to map configuration registers <strong>in</strong>to the PCI configurationspace [17]. One way to access those registers is to use two dedicatedPIO registers, 0xcf8 and 0xcfc, by specify<strong>in</strong>g the PCI address of the register(composed of a bus number, a device number, a function <strong>in</strong>dex and an offset)


16 L. Duflot, O. Levilla<strong>in</strong>, and B. Mor<strong>in</strong>PCI Express busCPUChipsetGraphicadapterNorthbridgeRAMPCI devices SouthbridgePCI busUSB busUSB devices IDE, SATATPMLPC busFig. 1. Traditional PC architecture (example Pentium R 4-based architecture)<strong>in</strong> the 0xcf8 register and read<strong>in</strong>g (resp. writ<strong>in</strong>g to) the 0xcfc register to read(resp. write) the content of the PCI register.2.2 ACPI ComponentsIn the model, the chipset itself does not attempt to configure power managementregisters. Configuration is actually <strong>in</strong>itiated by software components <strong>ru</strong>nn<strong>in</strong>g onthe CPU. At boot time, the BIOS is likely to configure the hardware, while operat<strong>in</strong>gsystems or t<strong>ru</strong>sted comput<strong>in</strong>g bases are <strong>in</strong> charge of power managementonce the boot process is over.In the ACPI model, the platform provides an ACPI BIOS, several ACPIregisters that are accessed for power management purpose (they can be eitherMemory Mapped registers, Programmed I/O registers or PCI configuration registers),and ACPI tables that basically specify how ACPI registers should beaccessed.ACPI tables have different types and purposes:– the Root System Description Table (RSDT) conta<strong>in</strong>s a set of po<strong>in</strong>ters tothe other tables. The address of the RSDT is provided by the Root SystemDescription Po<strong>in</strong>ter (RSDP), which must be stored <strong>in</strong> the Extended BIOSData Area (EBDA), or <strong>in</strong> the BIOS read-only memory space. The OSPMwill only locate the RSDP by search<strong>in</strong>g for a particular magic number (theRSDP signature) that the RSDP is required to beg<strong>in</strong> with;– the Differentiated System Description Table (DSDT), the address of whichcan be determ<strong>in</strong>ed thanks to the po<strong>in</strong>ter provided by the RSDT, conta<strong>in</strong>sthose methods that should be used by the component <strong>in</strong> charge of powermanagement and specifies how the power characteristics of the devices shallbe modified. The ACPI specification only def<strong>in</strong>es the methods that are availablefor each device and their mean<strong>in</strong>g. Actions def<strong>in</strong>ed <strong>in</strong> the methods are


ACPI: Design Pr<strong>in</strong>ciples and Concerns 17mach<strong>in</strong>e-specific. The DSDT is written <strong>in</strong> AML (ACPI Mach<strong>in</strong>e Langage)[8], which can be disassembled <strong>in</strong>to a more comprehensible language, calledASL (ACPI Specification Langage)[1];– many other tables are also provided, but for the sake of simplicity, we willnot give details on them.ACPI does not standardise power management at the software level, but operat<strong>in</strong>gsystems are advised to <strong>in</strong>clude the follow<strong>in</strong>g components to perform powermanagement tasks:– an Operat<strong>in</strong>g System-directed configuration and Power Management component(OSPM) <strong>ru</strong>nn<strong>in</strong>g at the kernel level should be <strong>in</strong> charge of the overallpower management strategy;– an ACPI driver and AML <strong>in</strong>terpreter should be used by the OSPM to executethe contents of the methods specified <strong>in</strong> the DSDT;– device drivers should optionally make use of the AML <strong>in</strong>terpreter to performpower management <strong>in</strong>dependently of the OSPM.ACPI components and their relationships with the kernel are summarized <strong>in</strong>Figure 2.2.3 DSDT Basic St<strong>ru</strong>ctureThe DSDT describes those devices that support power management. Devicesare organized <strong>in</strong> packages <strong>in</strong> a tree-like st<strong>ru</strong>cture. Several standardized packagesare located under the root (labelled \) of the tree, such as the \_PR Processortree package, which stores all CPU related objects and the \_SB System Bustree package, which stores all bus-related resources. PCI resources (e.g., PCI0,PCI1)arelocated<strong>in</strong>the\_SB package. In turn, devices can be def<strong>in</strong>ed <strong>in</strong> otherdevices’ subtrees. For <strong>in</strong>stance, IDE or USB controllers can be accessed <strong>in</strong> thetree below the PCI0 device; the path to the USB0 host controller on the DSDTtree is thus \_SB.PCI0.USB0. Power management-related methods are the leavesof the tree. For example, the method that allows the USB0 controller to transitto the S5 power state is \_SB.PCI0.USB0._S5. Most method names are def<strong>in</strong>ed<strong>in</strong> the ACPI standard, so that the OSPM knows which method to call. Exampleof such standard methods are given <strong>in</strong> [8].Power management basically works as follows: <strong>in</strong> response to some hardwaretriggeredevent, or based on its own policy, the OSPM can <strong>in</strong>itiate a powermanagement-related action by execut<strong>in</strong>g the correspond<strong>in</strong>g AML method <strong>in</strong> theDSDT. For <strong>in</strong>stance, <strong>in</strong> order to put one of the USB controller <strong>in</strong> the S5 powerstate, the OSPM simply has to <strong>ru</strong>n the \_SB.PCI0.USB0._S5 method.2.4 ACPI Mach<strong>in</strong>e Language and ACPI Source LanguageAML-written tables can be disassembled <strong>in</strong> ACPI source language (ASL) us<strong>in</strong>gfor <strong>in</strong>stance the ACPIca tools [1]. The ASL language provides basic const<strong>ru</strong>cts <strong>in</strong>


18 L. Duflot, O. Levilla<strong>in</strong>, and B. Mor<strong>in</strong>Software. Outside of the scopeof ACPI specificationsApplicationsKernelOSPMDevicedriversAML<strong>in</strong>terpreterACPI BIOSACPIRegistersACPIProvided by the platformACPITablesHardware devicesFig. 2. ACPI architectureorder to def<strong>in</strong>e ACPI registers and methods. Logical and arithmetic operationson registers, branch<strong>in</strong>g <strong>in</strong>st<strong>ru</strong>ctions and loops are available. Special commandsare also available, like the Notify() command, which can be used by the OSPMto send messages to other parts of the operat<strong>in</strong>g system. Section 2.5 shows howNotify events are handled under L<strong>in</strong>ux.The ACPI registers are def<strong>in</strong>ed by the ASL OperationRegion() command.Memory, PCI configuration and PIO spaces can be mapped as ACPI registers.Different fields of each ACPI register can be given a name us<strong>in</strong>g the Field()command (see 2.5).2.5 Use of ACPI <strong>in</strong> Practice: L<strong>in</strong>ux ExampleIn this section, we study how ACPI is handled by an ACPI-compliant L<strong>in</strong>uxsystem. This will be useful as most of the examples we give <strong>in</strong> the next sectionswill be related to L<strong>in</strong>ux systems.ACPI software <strong>in</strong> L<strong>in</strong>ux is mostly composed of two different parts:– a kernel service which <strong>in</strong>cludes an AML <strong>in</strong>terpreter, ACPI drivers for differentdevices (e.g, fan, CPU, batteries) and part of the OSPM. The modular


ACPI: Design Pr<strong>in</strong>ciples and Concerns 19st<strong>ru</strong>cture of the L<strong>in</strong>ux kernel allows for a selection of devices that are handledby the kernel us<strong>in</strong>g ACPI;– a userland service called acpid (ACPI daemon) that is functionally part ofthe OSPM. acpid is configured through a set of configuration files stored<strong>in</strong> the /etc/acpi directory, each of which specify<strong>in</strong>g the expected systembehavior when an ACPI “Notify” event for a particular device is received.For <strong>in</strong>stance, the /etc/acpi/power file can be used to configure acpid sothat whenever a power button event is received, the shutdown command isexecuted.The L<strong>in</strong>ux kernel also allows the user to def<strong>in</strong>e an alternate DSDT file, differentfrom the one specified by the BIOS. This function is quite convenient as itallows the DSDT to be modified, e.g. for debug purposes.The easiest way to force the kernel to use a custom DSDT is through the useof an “<strong>in</strong>itial RAM disk” (<strong>in</strong>itrd). An <strong>in</strong>itrd is usually used by the bootloader ofa L<strong>in</strong>ux system to load kernel modules that are required to access the root filesystem (SATA or IDE drivers, file system-related modules for <strong>in</strong>stance) whenthey are not shipped with the kernel. But the <strong>in</strong>itrd can also be used to providea custom DSDT to the kernel. For the kernel to use a custom DSDT, all we haveto do is create an <strong>in</strong>itrd file with the follow<strong>in</strong>g command 1 and provide the <strong>in</strong>itrdto the bootloader.mk<strong>in</strong>itrd --dsdt=dsdt.aml <strong>in</strong>itrd.img 2.6.17The DSDT used by the system is accessible via the /proc/acpi pseudo-file.It is then possible to disassemble the DSDT of the system and then reassemblethe output ASL file without modifications. On some computers, this simpleoperation fails. On the example below, we disassemble the DSDT file (called“dsdt”) of an actual desktop system through the iasl -d dsdt command. TheASL file correspond<strong>in</strong>g to the DSDT is written <strong>in</strong> the dsdt.dsl file. Next, wecompile the dsdt.dsl file <strong>in</strong>to AML. Ideally, the output file should be identicalto “dsdt” . However, the compiler shows unexpected compilation errors. This issymptomatic of ACPI tables that do not comply to the standard, despite be<strong>in</strong>gwritten<strong>in</strong>AML.#iasl -d dsdtLoad<strong>in</strong>g Acpi table from file dsdt[...]Disassembly completed, written to "dsdt.dsl"#iasl dsdt.dsldsdt.dsl 286: Method (\_WAK, 1, NotSerialized)Warn<strong>in</strong>g 1079 - ^ Reserved method must return a value (_WAK)dsdt.dsl 319: Store (Local0, Local0)Error 4049 - ^ Method local variable is not <strong>in</strong>itialized (Local0)dsdt.dsl 324: Store (Local0, Local0)Error 4049 - ^ Method local variable is not <strong>in</strong>itialized (Local0)1 The code that is presented below has been tested for a L<strong>in</strong>ux 2.6.17 kernel.


20 L. Duflot, O. Levilla<strong>in</strong>, and B. Mor<strong>in</strong>ASL Input: dsdt.dsl - 4350 l<strong>in</strong>es, 144392 bytes, 1678 keywordsCompilation complete. 2 Errors, 1 Warn<strong>in</strong>gs, 0 Remarks, 382 OptimizationsIt is also possible to copy the system DSDT and change the def<strong>in</strong>ition of ACPIregisters. If we map kernel st<strong>ru</strong>ctures such as system calls to ACPI registers, ordef<strong>in</strong>e new ACPI registers, compil<strong>in</strong>g the modified DSDT does not cause anywarn<strong>in</strong>g. It is then possible to update the <strong>in</strong>itrd of the system <strong>in</strong> order for themodified DSDT to be used by the system after the next reboot. The follow<strong>in</strong>gcode describes how to def<strong>in</strong>e such new ACPI registers. The first OperationRegion()command def<strong>in</strong>es an ACPI register called LIN correspond<strong>in</strong>g to a bytewidePCI configuration register. The second OperationRegion command def<strong>in</strong>esa system memory 12-byte wide ACPI register called SAC composed of three4-byte registers def<strong>in</strong>ed through the follow<strong>in</strong>g Field() command called SAC1,SAC2 and SAC3./* PCI configuration register : *//* Bus 0 Dev 0 Fun 0 Offset 0x62 is mapped to LIN */Name(_ADR, 0x00000000)OperationRegion(LIN, PCI_Config, 0x62, 0x01)Field(LIN, ByteAcc, Nolock, Preserve) { INF,8 }/* System Memory at address 0x00175c96 *//* (Setuid() syscall) is mapped to SAC */OperationRegion (SAC, SystemMemory, 0x00175c96, 0x000c)Field (SAC, AnyAcc, NoLock, Preserve){ SAC1,32, SAC2,32, SAC3,32 }3 Security Issues with ACPIIn this section we study different security issues related to ACPI. The ACPImodel seems to be the most important security flaw. Indeed, the OSPM mustt<strong>ru</strong>st the content of the ACPI tables supplied by the BIOS <strong>in</strong> order to <strong>ru</strong>n ACPIcode. Actually, the OSPM has no particular way to determ<strong>in</strong>e whether ACPItables are genu<strong>in</strong>e or not. Also, the OSPM has no means to properly identifywhat the ACPI registers are. As ACPI does not provide any ACPI registeridentification scheme, the OSPM cannot ensure that the methods def<strong>in</strong>ed <strong>in</strong> theDSDT actually manipulate only ACPI registers, so the OSPM can merely t<strong>ru</strong>stthose methods.One could argue that OSPMs have the possibility to correctly identify ACPIregisters. If the OSPM knows that a particular network adapter is plugged <strong>in</strong> for<strong>in</strong>stance, it should be able to know which specific configurations of the deviceare related to power management and which are not. If the OSPM was ableto differentiate ACPI registers from regular chipset or device registers then theOSPM could enforce a simple access control policy and would refuse to reador modify the content of any non-ACPI register even if <strong>in</strong>st<strong>ru</strong>cted to do so byone of the methods of the DSDT. However, as stated <strong>in</strong> <strong>in</strong>troduction, ACPIhas been precisely <strong>in</strong>troduced to def<strong>in</strong>e common <strong>in</strong>terfaces and make sure that


ACPI: Design Pr<strong>in</strong>ciples and Concerns 21platform- specific <strong>in</strong>formation (for <strong>in</strong>stance the location of ACPI registers) ispushed <strong>in</strong> ACPI tables for the operat<strong>in</strong>g system to configure the platform withoutan <strong>in</strong>-depth understand<strong>in</strong>g of the semantics of the chipset or devices registers. Inother words, ACPI would be useless if the OSPM knew enough of the platformdetails to identify the ACPI registers.One could also argue that the OSPM not be<strong>in</strong>g able to identify ACPI registersis not a security issue, as computer programs have to t<strong>ru</strong>st higher-privilege orto some extent previously booted components. What we wanted to stress outhere is the fact that ACPI could have been designed differently at the hardwareor platform level to allow OSPMs to differentiate ACPI registers from otherregisters. What’s more, the paradigm forc<strong>in</strong>g OSes to t<strong>ru</strong>st previously bootedsoftware tends to be challenged by new technologies us<strong>in</strong>g hot reboot (this matteris discussed <strong>in</strong> section 5).We now look at the problem from the chipset po<strong>in</strong>t of view. The chipset isable to know the location and the purpose of most ACPI registers, but it doesnot know when the OSPM is <strong>ru</strong>nn<strong>in</strong>g on the CPU, nor can it dist<strong>in</strong>guish ACPIrelatedaccess to the registers from non-ACPI-related accesses. From the chipsetperspective, a userspace code attempt<strong>in</strong>g to modify a register is not differentfrom the OSPM, so there is no way for the chipset to enforce that the OSPMbe the only component to access ACPI-related registers and that OSPM cannotaccess non-ACPI-related registers.At this po<strong>in</strong>t, one could argue that it is not the job of the hardware to makesecurity-related decisions. Here aga<strong>in</strong> our po<strong>in</strong>t is that the fact that neither theOSPM nor the chipset can serve as a policy enforcement po<strong>in</strong>t seems a majordesign problem. Additionally, it seems fair to note that the chipset is alreadyused as a policy enforcement po<strong>in</strong>t to restrict access to security-critical memoryareas such as the SMRAM [3], so us<strong>in</strong>g the chipset to make the platform moresecure would not really be that <strong>in</strong>novative.As a summary, neither the chipset nor the OSPM can decide whether anaction is legitimate or not: the OSPM is not able to determ<strong>in</strong>e if the registers itis access<strong>in</strong>g are <strong>in</strong>deed ACPI because it bl<strong>in</strong>dly t<strong>ru</strong>sts the content of the DSDT,and the chipset cannot know what software component is try<strong>in</strong>g to access aparticular resource because all software components <strong>ru</strong>nn<strong>in</strong>g <strong>in</strong> protected modelook the same to the chipset.The lack of policy enforcement po<strong>in</strong>t makes it impossible to detect misbehaviorsof the ACPI sub-system:– it is impossible to detect a bug <strong>in</strong> the DSDT that would <strong>in</strong>correctly def<strong>in</strong>e anACPI register (remember that disassembl<strong>in</strong>g the DSDT and reassembl<strong>in</strong>g iton some computers reveals AML errors);– it is impossible to detect live modifications of the DSDT image the OSPMis us<strong>in</strong>g.Other security issues exist even if they can probably be considered of lesserimportance. First, device drivers are allowed to access the content of the DSDTand perform ACPI-related tasks. The fact that the OSPM and the device drivers


22 L. Duflot, O. Levilla<strong>in</strong>, and B. Mor<strong>in</strong>could be <strong>in</strong>dependently access<strong>in</strong>g the same registers could lead to <strong>in</strong>consistenciesand to <strong>in</strong>correct system behavior. For <strong>in</strong>stance, the OSPM could consider thatsome device is <strong>in</strong> a particular state when the device driver itself has configuredthe device differently. Also, the fact that the OSPM has to actually look for theRoot System Description Po<strong>in</strong>ter signature to be able to locate the st<strong>ru</strong>cture isquite debatable from a security po<strong>in</strong>t of view. OSPMs probably do not look formultiple RSDP st<strong>ru</strong>ctures, so an OSPM is likely to use the first RSDP match<strong>in</strong>gthe signature. The fact that the OSPM is <strong>in</strong>deed able to identify the actualRSDP relies on the assumption that there is no way for an attacker to <strong>in</strong>sert arogue RSDP with a correct signature <strong>in</strong> memory before the genu<strong>in</strong>e RSDP. Thisassumption actually does not prove easy to guaranty.4 Design of a Rootkit FunctionThe overall pr<strong>in</strong>ciple of an ACPI rootkit has been presented by John Heasman[6]. Accord<strong>in</strong>g to the author, design<strong>in</strong>g an ACPI rootkit triggered by externalhardware events (e.g., lid clos<strong>in</strong>g, power adapter plugg<strong>in</strong>g or remov<strong>in</strong>g)was still an open problem. In this paper, we present a proof-of-concept code thatallows a rogue rootkit-like function to <strong>ru</strong>n whenever the power adapter is pulledand replugged twice <strong>in</strong> a row. We also study the limits of the ACPI model andconclude that ACPI rootkits detection is a complex problem.4.1 ACPI Rootkit MotivationsAn attacker controll<strong>in</strong>g the content of the DSDT could:– add devices <strong>in</strong> the DSDT, create new ACPI registers correspond<strong>in</strong>g to anymemory zone, or PIO register;– modify exist<strong>in</strong>g methods behavior, create additional methods.This attack assumes that the attacker has enough privileges to modify theDSDT used by the OSPM. For <strong>in</strong>stance, the attacker can attempt a live modificationof the DSDT the OSPM is us<strong>in</strong>g or, alternatively, <strong>in</strong>terfere with theDSDT load process (for <strong>in</strong>stance by flash<strong>in</strong>g the BIOS or modify<strong>in</strong>g the bootloader) <strong>in</strong> order for the OSPM to load the ta<strong>in</strong>ted DSDT. On most operat<strong>in</strong>gsystems, an attacker will only be allowed to do so if she is granted maximumprivileges (r<strong>in</strong>g 0). Therefore, this attack shall not be useful <strong>in</strong> a privilege escalationscheme; on the other hand, modifications of the DSDT can be useful tokernel- level rootkits.Kernel-level rootkits are malwares which try hard to ensure both their stealth<strong>in</strong>essand resilience. Indeed, an attacker needs her rootkit to hide its presencefrom the user and the operat<strong>in</strong>g system and also rema<strong>in</strong> <strong>in</strong> memory, even if partof the rootkit is removed by some antivi<strong>ru</strong>s software. It has been shown <strong>in</strong> [4]that rootkits could hide functions <strong>in</strong>side of the SMI handler. SMI handler is acomponent <strong>ru</strong>nn<strong>in</strong>g <strong>in</strong> the CPU System Management Mode [3] and that is virtually<strong>in</strong>accessible from operat<strong>in</strong>g systems. Another possibility for the rootkit is


ACPI: Design Pr<strong>in</strong>ciples and Concerns 23to modify one of the methods of the DSDT to make sure that each time thismethod is launched by the OSPM, functions of the rootkit get executed.4.2 Sample ACPI Rootkit Rogue FunctionAs a proof-of-concept of what is described above, we show how it is possible foran attacker to design an ACPI rogue code for a Toshiba Portégé M400 laptopus<strong>in</strong>g a L<strong>in</strong>ux Mandriva 2008 [15] system. This rogue code is <strong>in</strong>tended to triggera backdoor every time the power adapter plug is pulled and replugged twice <strong>in</strong>a row; the backdoor grants supe<strong>ru</strong>ser privileges to subsequent user log<strong>in</strong>s, nomatter what the user id is.In order to do so, the attacker can create a new device TEST and def<strong>in</strong>e a newACPI register called INF correspond<strong>in</strong>g to an otherwise unused chipset register 2 .This chipset register is a PCI configuration register (bus 0, device 0, function 0,offset 0x62). It is byte-wide, readable and writable and is not used by any othersoftware component (<strong>in</strong>clud<strong>in</strong>g BIOS). Such a device can be def<strong>in</strong>ed as below 3 :Scope(\_SB.PCI0){Device(TEST){Name(_ADR, 0x00000000)OperationRegion(LIN, PCI_Config, 0x62, 0x01)Field(LIN, ByteAcc, Nolock, Preserve){ INF,8 }Method(_S1D,0, NotSerialized){ Return(One)}Method(_S3D,0, NotSerialized){ Return(One)}[...]}}On L<strong>in</strong>ux-operated laptops, the STA (Status Request) function of the BAT1device is used by the OSPM to check the status of the ma<strong>in</strong> battery, so it issupposed to be executed quite frequently (experiments have shown that it is<strong>in</strong>voked around once every 10 seconds).The _PSR (Power Source) function of the ADP1 device is called when the poweradapter is unplugged or plugged <strong>in</strong>. This function is used by the system todeterm<strong>in</strong>e what the current power sources are. The attacker can use the newlycreated INF ACPI to keep track of the number of times the _PSR function hasbeen executed <strong>in</strong> a row without the BAT1._STA function be<strong>in</strong>g called. This canbe achieved by means of the follow<strong>in</strong>g modifications. The BAT1._STA function ismodified to ensure that each time BAT1._STA is executed, the INF ACPI registeris set to 1. This can be done by us<strong>in</strong>g the Store() ASL command. Of course,2 The attacker could alternatively have used an unused memory space, as for examplethe BIOS keyboard buffer, located at physical addresses 0x41a to 0x43e.3 The device presented does not only conta<strong>in</strong> the INF register, but also some standardmethods, def<strong>in</strong>ed for every ACPI device. Even if these methods may not be necessaryfor the TEST device to be def<strong>in</strong>ed <strong>in</strong> the DSDT, they make it resemble real devices.


24 L. Duflot, O. Levilla<strong>in</strong>, and B. Mor<strong>in</strong>it is possible to modify other functions 4 <strong>in</strong>thesamewayasBAT1._STA to makesure that the INF ACPI register is set to 1 as often as possible.Device(BAT1){[...]Method (_STA, 1, NotSerialized){Store(0x1 , \_SB.PCI0.TEST.INF)[...]}}The attacker also has to modify different functions and registers of the ADP1device. A new ACPI register is created, which corresponds to the memory locationwhere the setuid() syscall is stored (more precisely to the part of thesetuid() syscall where the effective user id is set).Device (ADP1){ [...]/* Map setuid() syscall. 0x00175c96 is the physical address *//* of the part of setuid() to be modified by the backdoor */OperationRegion (SAC, SystemMemory, 0x00175c96, 0x000c)Field (SAC, AnyAcc, NoLock, Preserve){SAC1, 32,SAC2, 32,SAC3, 32}[...]The ADP1. PSR function is also modified to <strong>in</strong>crement INF.[...] /* In ADP1 device */Method (_PSR, 0, NotSerialized){ /* if INF = 4 then modify setuid() */If (LEqual (\_SB.PCI0.TEST.INF, 0x4)){Store(0x90900000, SAC3)Store(0x0, SAC2)Store(0x014c80c7, SAC1)}/* <strong>in</strong>crement INF */Increment (\_SB.PCI0.TEST.INF)Return (\_SB.MEM.AACS)}[...] /* ADP1 device cont<strong>in</strong>ues */4 Determ<strong>in</strong><strong>in</strong>g experimentally which functions are called often requires modificationof the DSDT to make sure that each function of the DSDT writes a different value tothe INF register when called, and track<strong>in</strong>g accesses to the INF registers (modificationof the ACPI driver).


ACPI: Design Pr<strong>in</strong>ciples and Concerns 25If the INF ACPI register reaches the value 4, mean<strong>in</strong>g that ADP1._PSR hasbeen called four times <strong>in</strong> a row (unplugged and plugged aga<strong>in</strong> <strong>in</strong> twice <strong>in</strong> a row)without the BAT1._STA function be<strong>in</strong>g called <strong>in</strong> the meantime, the backdoor getsexecuted. The backdoor modifies the setuid() system call (which is called bythe authentication process every time a user logs on the system) <strong>in</strong> such a waythat any user obta<strong>in</strong>s the supe<strong>ru</strong>ser identity <strong>in</strong>stead of her own identity (i.e.is granted maximum privileges) if authentication succeeds. This is achieved bymodify<strong>in</strong>g 12 bytes of setuid() code at physical address 0x175c96 (mapped <strong>in</strong>the SAC1, SAC2, SAC3 ACPI registers) to make sure that the effective identity ofthe user is set to root. The values to be written depend on the version of thekernel, here the assembly language <strong>in</strong>st<strong>ru</strong>ction movl $0, 0x14c(%eax) (where0x14c(%eax) corresponds to the memory location of the effective user id for thisversion of the kernel) are to be added, followed by two nop operations for opcodealignment purposes./* Without backdoor activation */ /* After backdoor activation */Mandriva L<strong>in</strong>ux Release 2008.0 Mandriva L<strong>in</strong>ux Release 2008.0Kernel 2.6 on an i686 / tty1 Kernel 2.6 on an i686 / tty1Log<strong>in</strong>: userLog<strong>in</strong>: userPassword:Password:$iduid=500(user) [...] euid=500(user)$whoamiuser#iduid=500(user) [...] euid=0(root)#whoamiroot4.3 Limitations and CountermeasuresIn the previous sections, we have shown that creat<strong>in</strong>g an ACPI rootkit-like functionis possible. However, there are a couple of important limitations:– an ACPI rootkit is mach<strong>in</strong>e-specific. It requires modification of the DSDT,the content of which is strongly related to the mach<strong>in</strong>e hardware;– an ACPI rootkit most likely needs to be operat<strong>in</strong>g system-specific. The abilityto create a generic and operational ACPI rootkit on a platform <strong>in</strong>dependentlyof the operat<strong>in</strong>g system type still needs to be verified. The ACPI _OSobject or the ACPI _OSI command can help identify OSes but of course itis possible for the operat<strong>in</strong>g system to lie about its version;– after a reboot, the OSPM reloads the DSDT from the one provided by theplatform, unless the rootkit ensures that a modified one is loaded <strong>in</strong>stead.ACPI rootkit functions will thus require knowledge of relatively importantparts of the operat<strong>in</strong>g system or of the BIOS;– modifications to ACPI tables that survive reboots are likely to be detectedif TPM-based [18] schemes or analyzers that look for an obviously wrongbehavior (mapp<strong>in</strong>g between an ACPI register and a system call for <strong>in</strong>stance)are used. Static or dynamic code analysis tools can <strong>in</strong>deed be used to detectanomalous behaviors <strong>in</strong> the methods def<strong>in</strong>ed <strong>in</strong> ACPI tables, look for the


26 L. Duflot, O. Levilla<strong>in</strong>, and B. Mor<strong>in</strong>def<strong>in</strong>ition of ACPI registers that are not legitimate and recover ACPI tablesused by the system. Of course, the efficiency of such a tool would depend onits knowledge of the operat<strong>in</strong>g system and the underly<strong>in</strong>g hardware platform.Unfortunately, dynamic analyzers will not be efficient aga<strong>in</strong>st kernel-levelmalicious codes, which would deactivate them before modify<strong>in</strong>g ACPI tables.Overall, static analyzers seem by far the best countermeasures to detect modificationsof ACPI tables that survive reboots. Static analyzers can also be usedto detect bugs <strong>in</strong> BIOS-provided ACPI tables. Such tools should be <strong>ru</strong>n aftereach BIOS update. Alternatively, one could also propose that the BIOS vendorscryptographically sign the ACPI tables. The signature would be verified at boottime by the BIOS itself to make sure that ACPI tables have not been modified.Such a scheme would probably not be really efficient as an attacker that wouldmanage to modify ACPI tables would also probably have enough privileges todeactivate the signature verification function unless this function is immutable.Signature schemes will also not provide any protection aga<strong>in</strong>st bugs <strong>in</strong> BIOSprovidedACPI tables. Detect<strong>in</strong>g live modifications of the DSDT will be almostimpossible as long as the content of the DSDT will be executed by the OSPMwith the highest privilege level as it is the case for most classical operat<strong>in</strong>g systems.Possible means to protect t<strong>ru</strong>sted platforms aga<strong>in</strong>st malicious functionshidden <strong>in</strong>side of the DSDT are described <strong>in</strong> the next section.5 ImpactonaT<strong>ru</strong>stedPlatformThe pr<strong>in</strong>ciple of a t<strong>ru</strong>sted platform is to identify a set of hardware and softwarecomponents called “t<strong>ru</strong>sted comput<strong>in</strong>g base” (TCB). The model is that t<strong>ru</strong>st<strong>in</strong> the t<strong>ru</strong>sted comput<strong>in</strong>g base is sufficient to ga<strong>in</strong> t<strong>ru</strong>st <strong>in</strong> the whole platform.On the contrary, if the t<strong>ru</strong>sted comput<strong>in</strong>g base was not work<strong>in</strong>g accord<strong>in</strong>g toits specification, there would be no way to t<strong>ru</strong>st the platform. The t<strong>ru</strong>sted comput<strong>in</strong>gbase <strong>in</strong>clude at m<strong>in</strong>imum the T<strong>ru</strong>sted Platform Module (TPM) [18], theCPU and the chipset of the platform and the software component of highestprivilege (<strong>in</strong> most cases a small virtual mach<strong>in</strong>e monitor <strong>ru</strong>nn<strong>in</strong>g different guestoperat<strong>in</strong>g systems with reduced privileges <strong>in</strong> parallel). Different <strong>in</strong>itiatives aimat limit<strong>in</strong>g the size of the t<strong>ru</strong>sted comput<strong>in</strong>g base [7]. For the time be<strong>in</strong>g, eventhe BIOS itself can be put outside of the t<strong>ru</strong>sted comput<strong>in</strong>g base (us<strong>in</strong>g TxT [5]and Presidio technologies [2] for <strong>in</strong>stance).The ACPI specification advises the OSPM to be part of the software componentwith the highest privilege level. On a so-called t<strong>ru</strong>sted platform, the t<strong>ru</strong>stedcomput<strong>in</strong>g base is thus generally the component <strong>in</strong> charge of power management.In order to do so and to rema<strong>in</strong> generic, the t<strong>ru</strong>sted comput<strong>in</strong>g base will haveto make use of ACPI tables which means that ACPI tables such as the DSDTwill be <strong>in</strong>cluded <strong>in</strong> the t<strong>ru</strong>sted comput<strong>in</strong>g base. Of course, if TPM and CRTMare used, ACPI tables can be measured at boottime.Butmeasurementscannotensure that tables will not be modified <strong>in</strong> the future by a rootkit. Measurementswill ensure table <strong>in</strong>tegrity but will not give a way to t<strong>ru</strong>st their content.


ACPI: Design Pr<strong>in</strong>ciples and Concerns 27But how can the t<strong>ru</strong>sted comput<strong>in</strong>g base determ<strong>in</strong>e that there is no bug orrogue function <strong>in</strong> the ACPI table provided by the platform that will modify thebehavior of the platform? ACPI static analysis tools can be used but they willnot help aga<strong>in</strong>st live modification of the ACPI tables. Dynamic tools may alsobe used <strong>in</strong>side of the t<strong>ru</strong>sted comput<strong>in</strong>g base but could also be deactivated by arootkit beforehand.The best solution so far for a t<strong>ru</strong>sted platform would be to move to a newparadigm where the component <strong>in</strong> charge of power management is not the t<strong>ru</strong>stedcomput<strong>in</strong>g base but a non privileged operat<strong>in</strong>g system <strong>ru</strong>nn<strong>in</strong>g on top of thet<strong>ru</strong>sted comput<strong>in</strong>g base. This way, the OSPM <strong>ru</strong>nn<strong>in</strong>g methods described <strong>in</strong>ACPI tables will not have enough privileges to modify security critical st<strong>ru</strong>cturessuch as the ones <strong>in</strong>side of the t<strong>ru</strong>sted comput<strong>in</strong>g base. Any such attempt willgive the hand back to the t<strong>ru</strong>sted comput<strong>in</strong>g base that can for <strong>in</strong>stance shutdown the power management doma<strong>in</strong> and report the security breach.6 ConclusionIn this paper, we showed how it is possible <strong>in</strong> practice for an attacker to concealfunctions <strong>in</strong> the ACPI DSDT table. We have provided a proof-of-conceptimplementation of such a function that allows an attacker to get to maximumprivileges on a laptop when she pulls the power adapter twice <strong>in</strong> a row. Moreimportantly, we have shown that the flaw was <strong>in</strong> the ACPI model that by designlacks a correct security policy enforcement po<strong>in</strong>t. Neither the chipset, nor theCPU will be able to detect any DSDT-based attack scheme. Possible countermeasures<strong>in</strong>clude static and dynamic analysis of the ACPI tables that wouldhelp detect<strong>in</strong>g modifications of the DSDT by a rootkit.The impact is even more important on t<strong>ru</strong>sted comput<strong>in</strong>g base that have tomake use of ACPI tables. Correctly tackl<strong>in</strong>g the problem would require t<strong>ru</strong>stedplatforms to move to a paradigm where the component <strong>in</strong> charge of power managementwould not be part of the t<strong>ru</strong>sted comput<strong>in</strong>g base but <strong>in</strong> a separateenvironment with reduced privileges. This way, any attempt to modify securitycritical st<strong>ru</strong>ctures by the component <strong>in</strong> charge of power management would givethe hand back to the t<strong>ru</strong>sted comput<strong>in</strong>g base.References1. ACPI Component Architecture. Unix format test suite (2008),http://www.acpica.org/downloads2. Devices, A.M.: Amd64 virtualization: Secure virtual mach<strong>in</strong>e architecture referencemanual (2005)3. Duflot, L., Etiemble, D., G<strong>ru</strong>melard, O.: Security Issues Related to Pentium SystemManagement Mode. In: CanSecWest Security Conference Core 2006 (2006)4. Embleton, S., Sparks, S.: The System Management Mode (SMM) Rootkit. In: BlackHat Brief<strong>in</strong>gs (2008)5. Grawrock, D.: The <strong>in</strong>tel safer comput<strong>in</strong>g <strong>in</strong>itiative (2007)


28 L. Duflot, O. Levilla<strong>in</strong>, and B. Mor<strong>in</strong>6. Heasman, J.: Implement<strong>in</strong>g and detect<strong>in</strong>g an acpi bios rootkit. In: Blackhat federal2006 (2006),www.blackhat.com/presentations/bh-federal-06/BH-Fed-06-Heasman.pdf7. Heiser, G., Elph<strong>in</strong>stone, K., Kuz, I., Kle<strong>in</strong>, G., Petters, S.: Towards t<strong>ru</strong>stworthycomput<strong>in</strong>g systems: tak<strong>in</strong>g microkernel to the next level. In: ACM operat<strong>in</strong>g systemsreview (2007)8. Hewlett-Packard: Intel, Microsoft, Phoenix, and Toshiba. The acpi specification:revision 3.0b (2008), http://www.acpi.<strong>in</strong>fo/spec.htm9. Intel Corp. Intel 82845 Memory Controller Hub (MCH) Datasheet (2002)10. Intel Corp. Intel 64 and IA 32 Architectures Software Developer’s Manual Volume1: Basic architecture (2007)11. Intel Corp. Intel 64 and ia 32 architectures software developer’s manual volume 2a:<strong>in</strong>st<strong>ru</strong>ction set reference, a-m (2007),http://www.<strong>in</strong>tel.com/design/processor/manuals/253666.pdf12. Intel Corp. Intel 64 and IA 32 Architectures Software Developer’s Manual Volume2B: Inst<strong>ru</strong>ction Set Reference, N-Z (2007)13. Intel Corp. Intel 64 and IA 32 Architectures Software Developer’s Manual Volume3A: System Programm<strong>in</strong>g Guide Part 1 (2007)14. Intel Corp. Intel I/O Controller Hub 9 (ICH9) Family Datasheet (2008)15. Mandriva. Mandriva l<strong>in</strong>ux one (2008),http://www.mandriva.com/en/product/mandriva-l<strong>in</strong>ux-one16. Microsoft and Intel. Advanced power management v1.2 specification (1996),www.microsoft.com/whdc/archive/amp_12.mspx17. PCI-SIG. Pci local bus specification, revision 2.1. (1995)18. T<strong>ru</strong>sted Comput<strong>in</strong>g Group. Tpm specification version 1.2: Design pr<strong>in</strong>ciples (2008),https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/specs/TPM/Ma<strong>in</strong>P1DPrev103.zip


Implementation Aspects of Mobile andEmbedded T<strong>ru</strong>sted Comput<strong>in</strong>gKurt Dietrich and Johannes W<strong>in</strong>terInstitute for Applied Information Process<strong>in</strong>g and CommunicationsInffeldgasse 16a, 8010 Graz, Austria{Kurt.Dietrich,Johannes.W<strong>in</strong>ter}@iaik.tugraz.atAbstract. Nowadays, t<strong>ru</strong>sted platform modules (TPMs) are usually deployedtogether with desktop PCs and notebooks. However, these platformsare not the only ones that can host TPMs. Mobile and embeddedplatforms like cell phones can also host TPMs but may have differentrequirements and different use-case scenarios. In contrast to commonTPMs, TPMs for mobile platforms do not need to be implemented asmicro controllers, lead<strong>in</strong>g to different security assumptions. In order tof<strong>in</strong>d these differences, we have designed and implemented two approachesfor mobile TPMs that are analyzed <strong>in</strong> detail <strong>in</strong> the context of this paper.Keywords: Mobile T<strong>ru</strong>sted Comput<strong>in</strong>g, MTMs, ARM T<strong>ru</strong>stZone, SecureElement, JavaCard.1 IntroductionToday, t<strong>ru</strong>sted platform modules (TPMs) are available for nearly every PC platform,rang<strong>in</strong>g from desktop mach<strong>in</strong>es to notebooks. These TPMs provide thebasic build<strong>in</strong>g blocks for different security services like stor<strong>in</strong>g <strong>in</strong>tegrity measurementsof the <strong>in</strong>stalled and loaded software dur<strong>in</strong>g boot (aka authenticatedboot <strong>in</strong> the language of the TCG), authenticated report<strong>in</strong>g of these stored valuesto remote verifiers (aka remote attestation) or b<strong>in</strong>d<strong>in</strong>g certa<strong>in</strong> data like keys tocerta<strong>in</strong> platform configurations (aka seal<strong>in</strong>g, b<strong>in</strong>d<strong>in</strong>g). All of these services providethe basic build<strong>in</strong>g blocks for T<strong>ru</strong>sted Comput<strong>in</strong>g (TC) enabled platforms.Common desktop TPMs are produced <strong>in</strong> high numbers which allows TPMmanufactureres to keep the prices low. However, these common TPMs are deprecatedfor mobile and embedded applications From a certa<strong>in</strong> po<strong>in</strong>t of view, itseems simple to put a micro controller based TPM like the ones used on desktopmach<strong>in</strong>es on a mobile platform. However, each new chip on a phone’s motherboard <strong>in</strong>creases the cost of this device, not to mention the additional powerconsumption of the extra chip. Consequently, it is reasonable to search for alternatives- alternatives, for example that are primarily based on features andmechanisms that embedded devices already carry as part of their base configuration.Moreover, to keep the costs for mobile TPMs at a low price, the TPMsmight also be implemented only <strong>in</strong> software, rais<strong>in</strong>g questions about the securityL. Chen, C.J. Mitchell, and A. Mart<strong>in</strong> (Eds.): T<strong>ru</strong>st 2009, LNCS <strong>5471</strong>, pp. 29–44, 2009.c○ Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2009


30 K. Dietrich and J. W<strong>in</strong>terassumptions for these mobile-t<strong>ru</strong>sted-modules (MTM)s and the platforms theyare used with.The T<strong>ru</strong>sted Comput<strong>in</strong>g Group (TCG) has published a specification that def<strong>in</strong>eshow mobile TPMs could be designed and which features they could provide[6]. Intentionally, this specification is written <strong>in</strong> a rather relaxed style which allowsmanufacturer to implement their mobile TPMs <strong>in</strong> different ways. This specificationalso forms the basis for the design of our prototypes and our ongo<strong>in</strong>g<strong>in</strong>vestigations.In this paper, we discuss our two designs for provid<strong>in</strong>g TC build<strong>in</strong>g blockson embedded devices. Both build<strong>in</strong>g blocks rely on security mechanisms alreadyhosted by the embedded devices. The first approach focuses on a software emulatedmobile TPM that uses processor extensions to achieve protection fromaccess by arbitrary applications.One <strong>in</strong>terest<strong>in</strong>g fact that should be mentioned at this po<strong>in</strong>t is that <strong>in</strong> the senseof the TCG, MTMs might also be implemented as software security modules.The TCG sees the mobile TPM more like a service than a fixed micro chip.Moreover, <strong>in</strong> order to achieve more flexible and cheap implementations, MTMsare not constra<strong>in</strong>ed to be implemented as micro controller, but might also beimplemented <strong>in</strong> software. Consequently, the question arises which level of securitya pure software implementation can provide. Is it possible to achieve the samelevel as with microcontroller based TPMs?Or which level is necessary for certa<strong>in</strong> use-cases? Without hav<strong>in</strong>g clear def<strong>in</strong>itionsabout conformance and compliance of mobile TPMs,these questions are hardto answer. Details about our T<strong>ru</strong>stZone based TPM can be found <strong>in</strong> Section 4.1.The second approach (see Section 4.2), makes use of onboard smart cards.Many new mobile phones are equipped with an additional smart card (besidesthe SIM card) which can hold secret data like keys or certificates. These smartcards, or secure elements (SE) <strong>in</strong> the sense of the TCG, can be addressed bythe mobile phone as well as from external devices via nearfield communicationwhich offers new perspectives of secure device communication.In both of our approaches, we try to be as close to the TCG’s publishedspecification as possible. As a result of our <strong>in</strong>vestigations of these two designs,we give a discussion about the pros and cons of both approaches and provide acomparison of them.This article is organized <strong>in</strong>to 6 sections. In section 3 we give an overviewand expla<strong>in</strong> the differences of the two k<strong>in</strong>ds of mobile TPMs i.e. mobile-remoteowner-t<strong>ru</strong>sted-modules(MRTMs) and mobile-local-owner-t<strong>ru</strong>sted-modules (MLTM). In section 4, wediscuss our two approaches <strong>in</strong> detail. A comparison of the approaches is given <strong>in</strong>Section 5 and f<strong>in</strong>ally, Section 6 briefly concludes the contribution.2 Related WorkDifferent approaches how to implement MTMs are pursued by various researchgroups. The most important ones are <strong>in</strong>troduced <strong>in</strong> the follow<strong>in</strong>g paragraphs.


Implementation Aspects of Mobile and Embedded T<strong>ru</strong>sted Comput<strong>in</strong>g 31In [20], an idea to extend a SEL<strong>in</strong>ux based kernel <strong>in</strong> order to provide a genericdoma<strong>in</strong> isolation at the kernel level is proposed by X<strong>in</strong>wen Zhang, Onur Aciicmezand Jean-Pierre Seifert. That way, the research group provides a strong andconvenient mechanism to satisfy the security requirements of t<strong>ru</strong>sted mobilephones on isolation of eng<strong>in</strong>es and <strong>in</strong>tegrity assurance.One of the lead<strong>in</strong>g mobile phone manufacturers - NOKIA - also does researchon implementation aspects of MTMs. Jan-Erik Ekberg and Markku Kylänpääpublished a paper [10] that provides an <strong>in</strong>troduction <strong>in</strong>to the concept of MTMsfrom the device manufacturer’s po<strong>in</strong>t of view. Furthermore, their work presentsan implementation of an MTM that is based on the well-known TPM emulatorfrom Mario Strasser [16].In alternative approaches, hardware provided by mobile devices itself is usedto provide MTM functionality. Such hardware is the SIM card every mobile isequipped with. The work discussed <strong>in</strong> [3] uses a JavaCard applet loaded on a SIMcard or on-board smart card. The Applet emulates MTM features and makesuse of the hardware support of smart cards. Furthermore, this approach benefitsfrom the smart cards design as they provide shielded locations and protectedcapabilities per se. This MTM supports MRTM as well as MLTM functionality.And f<strong>in</strong>ally, <strong>in</strong> [18] a design for a software emulated mobile-t<strong>ru</strong>sted-module,based on the ARM T<strong>ru</strong>stZone processor extension is discussed. This approach isone of the start<strong>in</strong>g po<strong>in</strong>ts used for this article.3 Mobile T<strong>ru</strong>sted ModulesOne important build<strong>in</strong>g block of every t<strong>ru</strong>sted platform is the t<strong>ru</strong>sted platformmodule (TPM). Among other components like the CPU or the BIOS,the TPM has to be t<strong>ru</strong>sted a priori <strong>in</strong> order to create a cha<strong>in</strong> of t<strong>ru</strong>st [7].On mobile and embedded platforms, TPMs are called mobile-t<strong>ru</strong>sted-modules(MTMs). Although MTMs have similar features to TPMs, some differences betweenTPMs and T<strong>ru</strong>sted Comput<strong>in</strong>g used on desktop mach<strong>in</strong>es and MTMs andMobile T<strong>ru</strong>sted Comput<strong>in</strong>g exist. In addition to the services discussed <strong>in</strong> the<strong>in</strong>troduction section, mobile t<strong>ru</strong>sted comput<strong>in</strong>g def<strong>in</strong>es another service calledsecure boot. In contrast to an authenticated boot, a secure boot aborts executionof the software - or more restrictive: the boot of the device - if the <strong>in</strong>tegritycheck on the software that is currently be<strong>in</strong>g loaded fails. This fact implies thata remote party can assume that a certa<strong>in</strong> software configuration is <strong>ru</strong>nn<strong>in</strong>g onthat device. Which software is <strong>ru</strong>nn<strong>in</strong>g on the device is of special <strong>in</strong>terest formobile equipment vendors and network providers, as we will see <strong>in</strong> the follow<strong>in</strong>gparagraphs.In contrast to the TPM specification where we have one dedicated specificationof the TPM and its features, the Mobile-T<strong>ru</strong>sted-Module specification [6]def<strong>in</strong>es two types of MTMs: the Mobile Remote-owner-T<strong>ru</strong>sted-Module (MRTM)and the Mobile-Local-owner-T<strong>ru</strong>sted-Module (MLTM), address<strong>in</strong>g different owners’needs. The difference between these two types of MTMs is that the MRTMmust support mobile-specific commands as well as a subset of the TPM v1.2


32 K. Dietrich and J. W<strong>in</strong>tercommands. In contrast, the MLTM is only required to support a subset ofthe TPM 1.2 commands [8]. Usually, phone manufacturers and network serviceproviders are the owner of MRTMs.On the one hand, manufacturers and providers want to get secure remote accessto the mobile phone by us<strong>in</strong>g features of the MRTM. On the other hand,the phone’s user or owner, who has physical access to the device and its applications,uses the MLTM . The different parties, called stakeholders, have differentsecurity requirements on MTMs. Depend<strong>in</strong>g on the stakeholder, the MTMs areapplied <strong>in</strong> areas such as platform <strong>in</strong>tegrity, device authentication, mobile ticket<strong>in</strong>g,SIMLock/device personalization, secure software download, secure accessto the UICC and payment services as well as user data protection and privacy.A mobile platform may host more than one MTM, depend<strong>in</strong>g on different stakeholdersand their requirements.Precise def<strong>in</strong>itions of how MTMs have to be implemented are not def<strong>in</strong>ed bythe TCG. Therefore, we propose two solutions with different security requirements.4 T<strong>ru</strong>sted Build<strong>in</strong>g BlocksIn the TCG mobile t<strong>ru</strong>sted comput<strong>in</strong>g architecture [5], MTMs are the fundamentalbuild<strong>in</strong>g blocks for br<strong>in</strong>g<strong>in</strong>g t<strong>ru</strong>st <strong>in</strong>to the platform. Any TCG-style t<strong>ru</strong>stprovision<strong>in</strong>g relies on a complete cha<strong>in</strong> of t<strong>ru</strong>st, which ultimately roots <strong>in</strong> a mobilet<strong>ru</strong>sted module. As part of our research <strong>in</strong> mobile t<strong>ru</strong>sted comput<strong>in</strong>g, wehave <strong>in</strong>vestigated a variety of different approaches to realize such mobile t<strong>ru</strong>stedmodules, rang<strong>in</strong>g from pure software solutions <strong>in</strong> the style of [10] to dedicatedhardware solutions <strong>in</strong> the style of PC TPMs. In this paper we want to brieflydescribe two of the most promis<strong>in</strong>g approaches we are currently work<strong>in</strong>g on.4.1 ARM T<strong>ru</strong>stZoneIn [1] and [2] ARM <strong>in</strong>troduced a set of hardware-based security extensions toARM processor cores and AMBA on-chip components.The key foundation of ARM T<strong>ru</strong>stZone is the <strong>in</strong>troduction of a “secure world”and a “non-secure world” operat<strong>in</strong>g mode <strong>in</strong>to T<strong>ru</strong>stZone enabled processorcores. This secure world and non-secure world mode split is an orthogonal conceptto the privileged/unprivileged mode split already found on pre-T<strong>ru</strong>stZoneARM cores. On an ARM T<strong>ru</strong>stZone core, secure world and non-secure worldversions of all privileged and unprivileged processor modes and control registercoexist. Security critical processor core status bits and control registers aretypically restricted to secure-world-only access. For the purpose of <strong>in</strong>terfac<strong>in</strong>gbetween secure and non-secure world a special Secure Monitor Mode togetherwith a Secure Monitor Call <strong>in</strong>st<strong>ru</strong>ction exists. Inter<strong>ru</strong>pts can be handled <strong>in</strong> asecure determ<strong>in</strong>istic way on T<strong>ru</strong>stZone cores. Apart from the extensions to theprocessor core itself, the SoC busses <strong>in</strong> T<strong>ru</strong>stZone enabled systems carry extrasignals to <strong>in</strong>dicate the orig<strong>in</strong>at<strong>in</strong>g world for any bus cycles. Whenever a bus


Implementation Aspects of Mobile and Embedded T<strong>ru</strong>sted Comput<strong>in</strong>g 33Fig. 1. Software architecture for an ARM T<strong>ru</strong>stZone based t<strong>ru</strong>sted mobile platformcycle is started by the core, the secure/non-secure world state is recorded andencoded <strong>in</strong>to these extra signals. SoC peripherals can <strong>in</strong>terpret the T<strong>ru</strong>stZoneextra signals to implement a low-level access control based on the secure/nonsecureworld dist<strong>in</strong>ction.In [18], we outl<strong>in</strong>ed how ARM T<strong>ru</strong>stZone can be used as an enabl<strong>in</strong>g technologyto implement t<strong>ru</strong>sted comput<strong>in</strong>g build<strong>in</strong>g blocks on embedded platforms.The <strong>in</strong>tr<strong>in</strong>sic split of the platform <strong>in</strong>to a secure and non-secure partition can beefficiently leveraged to provide the isolation properties required for the protectedcapabilities and shielded locations of a mobile t<strong>ru</strong>sted module. As shown <strong>in</strong> [18],it is possible to accomplish that goal by solely rely<strong>in</strong>g on well known open sourcesoftware projects, like the L<strong>in</strong>ux kernel, as fundamental build<strong>in</strong>g blocks.Figure 1 gives an overview of a simplified version of the envisioned softwarearchitecture for a mobile t<strong>ru</strong>sted platform. The prototype design utilizes theT<strong>ru</strong>stZone secure/non-secure world boundary to create two separate doma<strong>in</strong>s,each <strong>ru</strong>nn<strong>in</strong>g its own modified version of the L<strong>in</strong>ux kernel. On the secure worldside, a specialized stripped down L<strong>in</strong>ux kernel is used to provide the necessary<strong>ru</strong>ntime environment for software based mobile t<strong>ru</strong>sted modules and for thecomponents required to handle the non-secure world side. The secure worldenvironment can be stripped down to the bare m<strong>in</strong>imum of software components.The MTMs, which execute as software processes with<strong>in</strong> this tightly controlledsecure world environment, can rely on the process isolation and access controlfeatures of the secure world kernel to provide the required isolation propertieswith respect to other secure world components.


34 K. Dietrich and J. W<strong>in</strong>terThe hardware supported boundary to the non-secure world environment isused to provide a sufficient protective shield<strong>in</strong>g aga<strong>in</strong>st any potentially maliciouspiece of code <strong>ru</strong>nn<strong>in</strong>g on the non-secure side. There is no direct way for nonsecureworld code to access secure world data or code memory without explicitpermissions. This is guaranteed by the T<strong>ru</strong>stZone hardware extensions even forplatform features like DMA, which normally cause a lot of issues on platformswithout T<strong>ru</strong>stZone.T<strong>ru</strong>sted Eng<strong>in</strong>es and the ARM T<strong>ru</strong>stZone approach. A logical extension to ourprototype software design, which is not shown <strong>in</strong> figure 1, is to <strong>in</strong>clude a restrictedexecution environment for secure bytecode or script computation with<strong>in</strong>the secure world partition of the system. The TCG reference architecture formobile t<strong>ru</strong>sted platforms mentions the existence of “t<strong>ru</strong>sted eng<strong>in</strong>es”, withoutbe<strong>in</strong>g precise on the exact nature and implementation details of these build<strong>in</strong>gblocks. These t<strong>ru</strong>sted eng<strong>in</strong>es are capable of perform<strong>in</strong>g t<strong>ru</strong>stworthy computationson behalf of a remote stakeholder on the local mobile platform. In the TCGarchitecture, t<strong>ru</strong>st provision<strong>in</strong>g for these eng<strong>in</strong>es is done on the basis of mobileremote owner t<strong>ru</strong>sted modules (MRTMs).The t<strong>ru</strong>sted eng<strong>in</strong>e concept can be seen as partition<strong>in</strong>g of the platform <strong>in</strong>todifferent t<strong>ru</strong>st doma<strong>in</strong>s for the stakeholders of the platform. S<strong>in</strong>ce various stakeholdersof a mobile platform can not be expected to ultimately t<strong>ru</strong>st each other,mechanisms are required to support a sufficient level of isolation and separationamongst them. Our ARM T<strong>ru</strong>stZone based approach <strong>in</strong>tr<strong>in</strong>sically provides twolevels of separation through the T<strong>ru</strong>stZone secure/non-secure world boundary.These two levels of isolation can be expected to be <strong>in</strong>sufficient if a mobile t<strong>ru</strong>stedplatform has more than two different stakeholders. Even <strong>in</strong> the case of only twostakeholders, for example a “device manufacturer” and a “device user”, it isarguable whether two t<strong>ru</strong>st doma<strong>in</strong>s are sufficient.By rely<strong>in</strong>g on exist<strong>in</strong>g software isolation technologies with<strong>in</strong> the two t<strong>ru</strong>stdoma<strong>in</strong>s <strong>in</strong>tr<strong>in</strong>sic to ARM T<strong>ru</strong>stZone, it is possible to split them <strong>in</strong>to an arbitrarynumber of smaller t<strong>ru</strong>st doma<strong>in</strong>s.Secure user-space process based approach. One approach to implement<strong>in</strong>g t<strong>ru</strong>stedeng<strong>in</strong>es can be the comb<strong>in</strong>ation of secure boot concepts with strong software isolation.In this scenario, t<strong>ru</strong>sted eng<strong>in</strong>es would be implemented as secure-worlduser space processes, with embedded certificates. In order to guarantee thatonly t<strong>ru</strong>sted code is executed with<strong>in</strong> secure world, the secure world operat<strong>in</strong>gsystem has to enforce mandatory validation of these certificates before allow<strong>in</strong>gany secure user-space processes to <strong>ru</strong>n. Depend<strong>in</strong>g on the availability of cryptographicand t<strong>ru</strong>sted comput<strong>in</strong>g primitives with<strong>in</strong> the secure world operat<strong>in</strong>gsystem, these certificates can range from simple asymmetric signatures over theexecutable images to RIM certificates as proposed <strong>in</strong> the TCG mobile referencearchitecture.An obvious and very simple mechanism for splitt<strong>in</strong>g secure user-space <strong>in</strong>tosmaller t<strong>ru</strong>st doma<strong>in</strong>s, is to leverage the access control mechanisms offered bystandard L<strong>in</strong>ux users and groups. However, depend<strong>in</strong>g on the complexity and


Implementation Aspects of Mobile and Embedded T<strong>ru</strong>sted Comput<strong>in</strong>g 35nature of the task be<strong>in</strong>g performed by a t<strong>ru</strong>sted eng<strong>in</strong>e it can be desirable tohave a more f<strong>in</strong>e gra<strong>in</strong>ed approach to access control. As an example, a t<strong>ru</strong>stedeng<strong>in</strong>e might be comprised of a set of collaborat<strong>in</strong>g user-space processes, which<strong>ru</strong>n at different privilege levels.To support f<strong>in</strong>e gra<strong>in</strong>ed access control together with strong software isolation,frameworks like SEL<strong>in</strong>ux can be used. The authors of [20] propose a SEL<strong>in</strong>uxbased system, to implement different t<strong>ru</strong>st doma<strong>in</strong>s with mandatory access controlon basis of a normal L<strong>in</strong>ux platform. Their approach can be mapped to thesecure and non-secure world environments of our T<strong>ru</strong>stZone prototype design,<strong>in</strong> order to provide f<strong>in</strong>e-gra<strong>in</strong>ed t<strong>ru</strong>st doma<strong>in</strong>s and software isolation boundarieswith<strong>in</strong> the two worlds.Comparison to software MTM solutions on general purpose processors. TheT<strong>ru</strong>stZone based approach to a mobile t<strong>ru</strong>sted module implementation discussed<strong>in</strong> the preced<strong>in</strong>g section is a hybrid solution somewhere <strong>in</strong> the middle betweena pure software MTM implementation and dedicated MTM hardware. A puresoftware MTM implementation <strong>ru</strong>nn<strong>in</strong>g on a general purpose processor 1 has tosolely rely on the process isolation features provided by the operat<strong>in</strong>g systemkernel or hypervisor. In such an implementation we can expect all MTMs to<strong>ru</strong>n under the same kernel or hypervisor as any potentially malicious user applications.In current hypervisors like Xen [19] or microkernels like L4 [11], compartmentisolation is achieved by us<strong>in</strong>g standard virtual memory managementmechanisms available on the general purpose processor they <strong>ru</strong>n on. Usually,only the small hypervisor or microkernel <strong>ru</strong>ns <strong>in</strong> a privileged processor mode,while the compartments <strong>ru</strong>n <strong>in</strong> unprivileged processor modes.In the proposed ARM T<strong>ru</strong>stZone based design, the situation is slightly differentdue to the dual nature of the processor core. S<strong>in</strong>ce T<strong>ru</strong>stZone effectively turnsa s<strong>in</strong>gle physical processor core <strong>in</strong>to two separate virtual processors, we havethe possibility to strongly separate the MTMs from any potentially unt<strong>ru</strong>steduser applications. The prototype design explicitly reserves the secure world environmentfor MTMs and tightly controlled t<strong>ru</strong>sted processes. With<strong>in</strong> the secureworld environment, the same techniques as known from general purpose processorswithout T<strong>ru</strong>stZone are applied to provide process isolation among theMTM processes and other t<strong>ru</strong>sted processes. When consider<strong>in</strong>g the secure worldenvironment alone, we can give precisely the same process isolation guaranteesfor all secure world processes as we could on a general purpose processor onlyexecut<strong>in</strong>g t<strong>ru</strong>sted processes.Similarly, we can use the techniques known from general purpose processorsand apply them to the non-secure world environment of the T<strong>ru</strong>stZone baseddesign. If we consider the non-secure world alone, we can achieve the same guaranteesas we could on a general purpose system without T<strong>ru</strong>stZone, where isolationamong t<strong>ru</strong>sted and unt<strong>ru</strong>sted processes <strong>ru</strong>nn<strong>in</strong>g on the general purposeprocessor core is provided by an OS kernel, hypervisor or microkernel.1 In this context we understand “general purpose processor” as a processor withoutdedicated security extensions or hardware virtualisation extensions.


36 K. Dietrich and J. W<strong>in</strong>terThe actual strengths of the T<strong>ru</strong>stZone based design is the ability to createan isolated memory area. T<strong>ru</strong>stZone memory isolation features guarantee thatno non-secure world process, regardless of whether it is <strong>ru</strong>nn<strong>in</strong>g <strong>in</strong> privilegedor unprivileged mode, can ever access secure world memory. If there is need toperform data exchange between secure and non-secure world, only non-securememory can be used for that purpose. Furthermore control transfer betweensecure and non-secure world is only possible through a strictly limited <strong>in</strong>terfaceat the full discretion of the secure-world environment.From a global po<strong>in</strong>t of view, the T<strong>ru</strong>stZone design implements two <strong>in</strong>dependent,strongly isolated worlds with a well def<strong>in</strong>ed strictly controlled <strong>in</strong>terfacebetween them. Global isolation between these two worlds is provided by the <strong>in</strong>tr<strong>in</strong>sicprotection features of the T<strong>ru</strong>stZone processor extensions. With<strong>in</strong> eachof these worlds, the design achieves strong local process isolation by resort<strong>in</strong>g tomethods known from general purpose processors without T<strong>ru</strong>stZone.The possible comb<strong>in</strong>ations of these mechanisms allow for great flexibility withrespect to the different t<strong>ru</strong>st doma<strong>in</strong>s on the platform. When secure-world isexclusively reserved for MTMs, with strong local isolation mechanisms <strong>in</strong> place,this design achieves protected capabilities and shielded locations, which couldget close to the ones found <strong>in</strong> dedicated hardware MTM modules.At the time of this writ<strong>in</strong>g it is a major part of our ongo<strong>in</strong>g research to<strong>in</strong>vestigate the limitations of the T<strong>ru</strong>stZone based design. We are currently try<strong>in</strong>gto research def<strong>in</strong>itive statements about which properties of dedicated hardwareMTM modules can not be fulfilled with the T<strong>ru</strong>stZone based design, solely rely<strong>in</strong>gon a software MTM implementation.4.2 Smart CardsIn this section, the use of smart cards, or secure elements, for host<strong>in</strong>g t<strong>ru</strong>stedcomput<strong>in</strong>g build<strong>in</strong>g blocks, is discussed. Smart cards are available on every mobilephone - either as an extra smart card or as the subscriber identity module(SIM) card. The SIM card is required for identify<strong>in</strong>g the user (or better, the accountthat is charged for the call) to the communication network. More advanceddevices that support UMTS also support the use of universal-SIM (USIM) cardswhich are equipped with more sophisticated security algorithms. These two typesof smart cards seem to be a natural place where to host MTM functionality.However, developers are hardly allowed to <strong>in</strong>stall and execute arbitrary applicationson these cards. Therefore, we moved to alternatives. Other devices areequipped with on-board smart cards (e.g. Nokia 6131 NFC) which we used <strong>in</strong>our approach to host the MTM [3].At this po<strong>in</strong>t, it is important to notice the difference, between a secure elementand a SIM card. The secure element, is fixed on the platform - it cannot beremoved. In contrast to a SIM card that can be removed from the device. Alldata that is stored on the secure element, rema<strong>in</strong>s on the platform and cannotbe transferred to another device by just mov<strong>in</strong>g the card.


Implementation Aspects of Mobile and Embedded T<strong>ru</strong>sted Comput<strong>in</strong>g 37TC enabled ApplicationOperat<strong>in</strong>g SystemMTM Abstraction LayerAPDUsSmart CardCard OSMRTM AppletMLTM AppletAPDU forward<strong>in</strong>gFig. 2. Software architecture for a Smart Card based t<strong>ru</strong>sted mobile platformThis fact has <strong>in</strong>terest<strong>in</strong>g consequences. On the one hand, all data that is boundto the removable card cannot be unbound unless the correct card is re<strong>in</strong>sertedaga<strong>in</strong>. On the other hand, data that is stored <strong>in</strong>side a secure element can betransfered to the new device. Moreover, if the data is fixed to a certa<strong>in</strong> platformconfiguration, the new device could be forced to have the same configuration <strong>in</strong>order to get access to the stored data.JavaCards can host different applications, called applets [13]. Typical applicationsuse such applets to store and manage authorized access e.g. digital pursesor authentication credentials. However, the card can also be used to host appletswith MTM functionality.Figure 2 shows the basic design of our prototype. The smart card (or secureelement) hosts the MTM. The MTM itself is implemented as a Java Card appletthat supports the process<strong>in</strong>g of TCG compatible commands [8]. CommonTPM functionality also <strong>in</strong>cludes cryptographic operations, e.g. the current MTMspecification def<strong>in</strong>es RSA operations to be used for asymmetric cryptography.Typically, smart cards are equipped with hardware based cryptographic support.This hardware support enables smart card applications to perform fastcryptographic operations. Fortunately, this support is also available for JavaCard applets which enables them to support all required operations [6].The communication between the host application and the smart card is doneby TCG conformant commands that are split to fit <strong>in</strong>to APDUs as def<strong>in</strong>ed <strong>in</strong>[9]. However, current available cards underlie strong restrictions from availablememory (EEPROM and RAM). The approximate free available space on ourreference prototype is about 76 kByte of nonvolatile memory and 8 kBytes ofRAM. Furthermore, the process<strong>in</strong>g of Java byte code is rather slow, which demandsefficient command handl<strong>in</strong>g and pars<strong>in</strong>g.


38 K. Dietrich and J. W<strong>in</strong>terMany cards can host more than one applet. This fact allows the <strong>in</strong>stallationof multiple MTM applets and therefore allows to <strong>in</strong>stall a MRTM and an MLTMon the same card, provid<strong>in</strong>g the functionalities of both k<strong>in</strong>ds of MTMs.A major advantage when us<strong>in</strong>g smart cards for host<strong>in</strong>g MTM functionality isthat all security properties of a certa<strong>in</strong> smart card can be reused when assess<strong>in</strong>gthe security level of the smart card based TPM. Smart cards are well <strong>in</strong>vestigated<strong>in</strong> the sense of security evaluations - various security evaluations and protectionprofiles [17] exists.5 Software-Based Versus Hardware-Based MobileT<strong>ru</strong>sted ModulesIn this section, the different advantages and disadvantages of our approaches arediscussed. Both approaches are able to provide MTM features and functionalityas def<strong>in</strong>ed by the TCG mobile phone Specification [6] - all required commands,for MRTMs and MLTMs, can be provided.On the one hand, software-based MTMs are a very flexible solution and caneasily be adapted to certa<strong>in</strong> use-case requirements. However, it is hard to determ<strong>in</strong>ewhether a pure software or T<strong>ru</strong>stZone enhanced implementation canprovide shielded locations and protected capabilities that form the core requirementsofTPMsasrequiredbytheTCG[7].On the other hand, shielded locations are supported by secure elements perse. The design of current TPMs and MTMs orig<strong>in</strong>ally stems from the designs ofsmart cards which makes it easy to prove that the requirement for shielded locationsand protected capabilities can be achieved by secure elements. Moreover,protected capabilities can be established by implement<strong>in</strong>g the required commandand authorization handl<strong>in</strong>g services as software components on the card.5.1 Architectural ImplicationsA smart card based approach, where the execution of MTM specific operationsis separated between ma<strong>in</strong> CPU and a MTM specific processor, has other consequencesas the execution of such operations together with arbitrary applicationson a just one s<strong>in</strong>gle CPU. The first approach provides an absolute separation ofthe MTM functionality.The second approach relies on specific platform features that can providehardware enforced separation and protection of processes or, <strong>in</strong> some cases, softwarebased isolation via the operat<strong>in</strong>g system or assumptions of the compillersystem. Examples therefore are the L4, micro kernel based architecture and theMicrosoft research operat<strong>in</strong>g system S<strong>in</strong>gularity [15].Roots-of-T<strong>ru</strong>st. Important base components of all t<strong>ru</strong>sted platforms are theroots-of-t<strong>ru</strong>st. Not all of these roots are provided by the MTM, they can beprovided by the BIOS or a piece of software that does verification operations,for example. Therefore, it is reasonable to <strong>in</strong>vestigate possible impacts on theseroots by our designs.


Implementation Aspects of Mobile and Embedded T<strong>ru</strong>sted Comput<strong>in</strong>g 39It is obvious to see that the smart card approach provides a root-of-t<strong>ru</strong>st-forstorage(RTS) and root-of-t<strong>ru</strong>st-for-report<strong>in</strong>g (RTR) per se. All measurementvalues are stored <strong>in</strong>side a protected area and all required operations for report<strong>in</strong>gthis values (i.e. quote and identity operations) can be performed <strong>in</strong> the sameprotected area. Therefore, we can assume that the card provides RTR and RTS.However, can we put the same assumption on the T<strong>ru</strong>stZone approach?When we take a closer look at the design (see Section 4.1) we realize that thesoftware based MTM itself relies on other roots of t<strong>ru</strong>st. In order to use this k<strong>in</strong>dof MTM, we require a mechanism that guarantees the <strong>in</strong>tegrity and authenticityof the MTM implementation (i.e. Root-of-T<strong>ru</strong>st-for-Enforcement (RTE)) [10].This can be achieved by requir<strong>in</strong>g the device to perform a secure boot process[6] which aga<strong>in</strong> <strong>in</strong>cludes operations that rely on a Root-of-T<strong>ru</strong>st-for-Verification(RTV) and a Root-of-T<strong>ru</strong>st-for-Measurement (RTM). Consequently, we requireaRTVandaRTMtobepresentbeforetheMTMcanbesecurelystarted.An <strong>in</strong>terest<strong>in</strong>g design could be the comb<strong>in</strong>ation of both approaches. Instead ofa protected place <strong>in</strong> the BIOS, the secure element could store long term secretslike the RVAI and could be used to check the <strong>in</strong>tegrity of the software MTM.Consequently, the RTV could then be the smart card itself. Nevertheless, a RTMis still required as the measurement process is done outside whatever MTM. Thisimplies that the BIOS must provide means to communicate with the smart card.Integrity Information. The <strong>in</strong>tegrity verification process <strong>in</strong>volves RIM certificateswhich conta<strong>in</strong> <strong>in</strong>tegrity <strong>in</strong>formation of certa<strong>in</strong> software images and <strong>in</strong>formationof expected <strong>in</strong>tegrity metrics [6]. The <strong>in</strong>tegrity of these certificatesthemselves are checked by us<strong>in</strong>g asymmetric cryptography which can be rathertime consum<strong>in</strong>g and slow on mobile devices. In order to address this problem,the MPWG has <strong>in</strong>troduced the concept of b<strong>in</strong>d<strong>in</strong>g a RIM certificate to a certa<strong>in</strong>MTM <strong>in</strong>volv<strong>in</strong>g just symmetric cryptography with a key that is only known tothe MTM. Us<strong>in</strong>g secure elements could improve this process greatly. Instead ofb<strong>in</strong>d<strong>in</strong>g the certificate to the MTM, the certificate could be stored with<strong>in</strong> theMTM. Assum<strong>in</strong>g that only authorized entities can update or store certificateswith<strong>in</strong> the element, the certificate’s <strong>in</strong>tegrity can be seen as assured.The benefit of this approach could be that a verifier would only have to createa hash of the RIM certificate and of the image and send it to the secure element.The secure element could then simply compare the hash certificate with the hashof the stored certificate to verify its <strong>in</strong>tegrity.Moreover, the card could compare the correspond<strong>in</strong>g PCR selection valuesstored <strong>in</strong> the certificate with the current content of the PCRs detect<strong>in</strong>g aberrationsbetween the expected and the actual platform configuration before extend<strong>in</strong>gthe PCR, as def<strong>in</strong>ed <strong>in</strong> [6].Separation. In the JavaCard MTM implementation, the processor execut<strong>in</strong>g theMTM code is a physically dist<strong>in</strong>ct entity to the processor <strong>ru</strong>nn<strong>in</strong>g applicationcode. The <strong>in</strong>terface between the MTM and the application is constra<strong>in</strong>ed by theISO7816 [9] smart-card <strong>in</strong>terface of the secure element. Data exchange betweenthe MTM and the application is limited to an APDU based protocol, there is no


40 K. Dietrich and J. W<strong>in</strong>termechanism for directly shar<strong>in</strong>g memory between the MTM and the application.The nature of this smartcard <strong>in</strong>terface automatically forces the MTM and anyother applets <strong>ru</strong>nn<strong>in</strong>g <strong>in</strong>side the secure element <strong>in</strong>to a passive role, with respectto the application processor.A different situation arises when consider<strong>in</strong>g the T<strong>ru</strong>stZone based MTM implementation.In this design, the same physical processor is shared by the MTMcode and the application code. By us<strong>in</strong>g the T<strong>ru</strong>stZone features of the physicalprocessor core, two isolated virtual cores for secure and non-secure world arecreated. These two virtual cores can not be considered as a multi-core or multiprocessorsystem with respect to parallelism. Secure and non-secure world aremutually exclusive. Whenever one of the worlds is active, the other world sleeps.S<strong>in</strong>ce it is undesirable to suspend all non-secure world application while an MTM<strong>ru</strong>nn<strong>in</strong>g <strong>in</strong> secure world performs some longer operation, a time-shar<strong>in</strong>g and preemptionmechanism is needed. The <strong>in</strong>terface between the virtual core host<strong>in</strong>gthe MTM and the virtual core host<strong>in</strong>g the application is built around a systemcallstyle secure monitor call <strong>in</strong>st<strong>ru</strong>ction. Data exchange between the virtualcores takes place us<strong>in</strong>g a comb<strong>in</strong>ation of general purpose processor registers andshared memory.Platform B<strong>in</strong>d<strong>in</strong>g. The b<strong>in</strong>d<strong>in</strong>g of the MTM to its platform is of essential <strong>in</strong>terestespecially for software based MTMs. While the b<strong>in</strong>d<strong>in</strong>g <strong>in</strong> case of secure elementsis given by design, the b<strong>in</strong>d<strong>in</strong>g of software based MTMs is not. As all digitaldata, such as software-based MTMs, could easily be transferred or duplicatedby just copy<strong>in</strong>g the software, efficient mechanisms are needed to protect thestate of a software MTM. Apart from MTM clon<strong>in</strong>g, it is necessary to providecountermeasures aga<strong>in</strong>st MTM state rollback attacks. Furthermore, parts of theMTM state, like private or secret keys, have confidentiality requirements whichneed to be fulfilled.If the target platform of the software MTM provides shielded locations, likechip-<strong>in</strong>ternal non-volatile secure memory, all of these issues can be solved relativelyeasily. depend<strong>in</strong>g on the available size of that memory. Such non-volatilememory could be an EEPROM or a battery buffered <strong>in</strong>ternal static RAM, forexample.The amount of secure memory can be very small, s<strong>in</strong>ce only a s<strong>in</strong>gle secretkey K state needs to be placed with<strong>in</strong> this memory. Provid<strong>in</strong>g confidentialityand platform b<strong>in</strong>d<strong>in</strong>g is easily accomplished by us<strong>in</strong>g the secret K state key forencrypt<strong>in</strong>g the MTM state blob. By ensur<strong>in</strong>g that no two platforms share thesame K state key, a b<strong>in</strong>d<strong>in</strong>g between each platform and the MTM state blobsencrypted on that platform can be established.The described mechanism does not enforce any requirements on the updateabilityof the K state key and thus also works with platforms, which alreadyconta<strong>in</strong> hardwired built-<strong>in</strong> keys. Unfortunately. this simple approach is not sufficientto prevent state rollback attacks. When the platform provides some <strong>in</strong>tr<strong>in</strong>sicmechanism to support at least one monotonic counters with large capacity, staterollback issues can be mitigated, by us<strong>in</strong>g the value of this counter to track thecurrent revision of the MTM permanent state block.


Implementation Aspects of Mobile and Embedded T<strong>ru</strong>sted Comput<strong>in</strong>g 41The need for a monotonic counter to do state revision track<strong>in</strong>g can be elim<strong>in</strong>atedif the secure location used to store K state is writeable. In that case, theMTM generates a new random K state key each time when an updated versionof the state blob needs to be stored. As a side effect, this enhanced mechanismallows the storage of monotonic counter values with<strong>in</strong> the encrypted MTM stateblob, resid<strong>in</strong>g outside secure memory.5.2 The Role of Virtual Mach<strong>in</strong>esVirtual mach<strong>in</strong>es play a key role to both of the designs discussed <strong>in</strong> this paper.In the secure element based design, the primitives provided by the JavaCardframework and the Java language are used to realize protected capabilities andshielded locations for the MTM applet. With<strong>in</strong> the context of the Java environment<strong>ru</strong>nn<strong>in</strong>g on the secure element, applet security and isolation is provided bythe design of the JavaCard framework [14].The JavaCard framework is designed to be usable <strong>in</strong> environments with extremeconstra<strong>in</strong>ts on resources like memory and computational power. Todays smartcardsare often based on very simple 8bit microcontrollers like 8051-derivates. Suchcontrollers mostly lack support for features like memory protection, virtual memoryor a dist<strong>in</strong>ction between privileged and unprivileged processor modes.Provid<strong>in</strong>g process isolation for applications <strong>ru</strong>nn<strong>in</strong>g natively on such a limitedprocessor becomes next to impossible. The JavaCard VM provides a powerful yetsimple solution to remedy this undesirable situation. Instead of allow<strong>in</strong>g appletwriters to use the potentially dangerous native <strong>in</strong>st<strong>ru</strong>ction set of the smart cardprocessor, it provides a safe virtual mach<strong>in</strong>e <strong>in</strong>st<strong>ru</strong>ction set. The virtual mach<strong>in</strong>e<strong>in</strong>st<strong>ru</strong>ction set of the JavaCard VM (cf. [14], [12]) is designed to not expose anydirect means for raw po<strong>in</strong>ter or memory operations. In addition the Java virtualmach<strong>in</strong>e specification enforces a number of restrictions on valid programs to allowbytecode verification. In the context of current JavaCards, bytecode verificationis mostly done outside the card. S<strong>in</strong>ce special keys are required to load appletsonto the card, it is still possible to guarantee that only verified applets are<strong>in</strong>stalled. Once the applets are <strong>in</strong>stalled, the card can be locked, disallow<strong>in</strong>g anyfurther applet <strong>in</strong>stallations.Based on bytecode verification and the virtual mach<strong>in</strong>e <strong>in</strong>st<strong>ru</strong>ction set designof the JavaCard VM, it is possible to overcome the limitations of the underly<strong>in</strong>gnative processor with respect to applet isolation. Under the assumption thatthe virtual mach<strong>in</strong>e implementation is correct and secure, JavaCard VMs allowpowerful software-isolation without the need for equally powerful underly<strong>in</strong>ghardware isolation.When discuss<strong>in</strong>g the T<strong>ru</strong>stZone based prototype design, we already mentionedthe possibility of implement<strong>in</strong>g t<strong>ru</strong>sted eng<strong>in</strong>es as user-space processes, <strong>ru</strong>nn<strong>in</strong>g<strong>in</strong> the secure world environment of the T<strong>ru</strong>stZone based platform. The ARMprocessors used <strong>in</strong> the T<strong>ru</strong>stZone based design do not suffer from the samelimitations with respect to memory protection and privileged <strong>in</strong>st<strong>ru</strong>ctions.Nevertheless, t<strong>ru</strong>sted eng<strong>in</strong>es implemented as native processes can pose a threatto the entire secure world environment, especially if they have to process <strong>in</strong>put from


42 K. Dietrich and J. W<strong>in</strong>te<strong>ru</strong>nt<strong>ru</strong>sted sources. Incorrectly implemented native t<strong>ru</strong>sted eng<strong>in</strong>es can give an adversarythe capability of directly execut<strong>in</strong>g code <strong>in</strong> secure world user-space. Whilethis does not necessarily lead to an immediate break of platform security, it can bea highly significant advantage to an adversary.A virtual mach<strong>in</strong>e based approach to t<strong>ru</strong>sted eng<strong>in</strong>es offers mechanisms totightly restrict the low-level operations which can be carried out by software<strong>ru</strong>nn<strong>in</strong>g <strong>in</strong>side the t<strong>ru</strong>sted eng<strong>in</strong>e. For example, potentially unsafe low-level operationslike direct raw po<strong>in</strong>ter manipulation can be <strong>ru</strong>led out by appropriatebytecode design. Depend<strong>in</strong>g on the tradeoff between performance and securityrequirements, virtual mach<strong>in</strong>es can implement a significant amount of <strong>ru</strong>ntimechecks and bytecode verification steps.Examples for candidate VMs <strong>in</strong>clude the Java VM (J2ME, JavaCard) or theLua VM. Especially the latter case of the Lua script<strong>in</strong>g language appears to bea quite attractive candidate due to the small size and high flexibility of the Luaprogramm<strong>in</strong>g language. It should be po<strong>in</strong>ted out that Lua has already been used<strong>in</strong> designs with a similar problem sett<strong>in</strong>g, as demonstrated <strong>in</strong> [4].6 Conclusion and Future WorkIn this paper, we discussed two approaches for build<strong>in</strong>g mobile t<strong>ru</strong>sted modulesbased on exist<strong>in</strong>g platform features. The ARM T<strong>ru</strong>stZone approach, covered<strong>in</strong> section 4.1, focuses on us<strong>in</strong>g special capabilities of the platform and itsma<strong>in</strong> processor for implement<strong>in</strong>g t<strong>ru</strong>sted comput<strong>in</strong>g build<strong>in</strong>g blocks <strong>in</strong> software.Apart from the requirement for a sufficient processor core with ARM T<strong>ru</strong>stZonesupport, this approach avoids dependencies on additional dedicated t<strong>ru</strong>sted comput<strong>in</strong>ghardware. In comparison to the second MTM implementation approachoutl<strong>in</strong>ed <strong>in</strong> this paper, the T<strong>ru</strong>stZone approach can not rely on the same securityproperties <strong>in</strong>herited from a smart card environment. We give a comparisonof the T<strong>ru</strong>stZone based approach to a pure software MTM solution on generalpurpose processors. Based on the additional memory and process isolationfeatures offered through T<strong>ru</strong>stZone, we conclude that the T<strong>ru</strong>stZone approachallows a f<strong>in</strong>er-gra<strong>in</strong>ed set of possible t<strong>ru</strong>st boundaries and doma<strong>in</strong>s. Moreover,we conclude that software MTMs <strong>ru</strong>nn<strong>in</strong>g <strong>in</strong> a secure world environment andexclusively us<strong>in</strong>g secure world memory, can provide protected capabilities andshielded locations which are potentially stronger than their counterparts <strong>in</strong> thegeneral purpose processor without T<strong>ru</strong>stZone features.F<strong>in</strong>ally, we argue that the T<strong>ru</strong>stZone based approach has the potential formatch<strong>in</strong>g the security properties of a dedicated hardware based MTM implementationcloser than a software MTM implementation on a general purposeprocessor can do.The second approach discussed <strong>in</strong> the paper is based on a dedicated secure elementfound on the platform. As mentioned at the beg<strong>in</strong>n<strong>in</strong>g of section 4.2, suchsecure elements are already deployed <strong>in</strong> a number of mobile phone platforms.Aga<strong>in</strong>, this JavaCard oriented approach focuses on reus<strong>in</strong>g the exist<strong>in</strong>g secureelement for host<strong>in</strong>g t<strong>ru</strong>sted comput<strong>in</strong>g build<strong>in</strong>g blocks, without creat<strong>in</strong>g the


Implementation Aspects of Mobile and Embedded T<strong>ru</strong>sted Comput<strong>in</strong>g 43need for additional special purpose hardware. In this approach, mobile t<strong>ru</strong>stedmodule functionality is implemented <strong>in</strong> a dedicated smart card environment,shar<strong>in</strong>g some similarity with the TPM modules available <strong>in</strong> many desktop PCsystems. This MTM implementation approach <strong>in</strong>herits the security propertiesestablished by the JavaCard framework and its smart card nature. We concludethat protected capabilities and shielded locations of the smart card basedMTM implementation approach closely match their counterparts found <strong>in</strong> exist<strong>in</strong>gTPM modules. We can not yet make a def<strong>in</strong>itive and exhaustive statementon the difference between the security properties of the JavaCard MTM and theT<strong>ru</strong>stZone-based software MTM. Properties of ARM T<strong>ru</strong>stZone suggest that thesoftware MTM implementation can achieve characteristics close to the JavaCardMTM’s security properties at least for a subset of these properties. The preciselimits of the security properties of both approaches discussed <strong>in</strong> this paper arepart of ongo<strong>in</strong>g and future research. It is an open question whether the MTMimplementations discussed <strong>in</strong> this paper are compliant and/or conformant to theTCG specifications. S<strong>in</strong>ce there is no publically available test suite for MTMsat the time of this writ<strong>in</strong>g, we can not yet decide if our implementations arecompliant to the TCG specifications.Unfortunately, there is no protection profile for MTMs available either, thusit is not possible to make any assertions about the conformance of our implementationsto the TCG specifications at the time of this writ<strong>in</strong>g.References1. Alves, T., Felton, D.: T<strong>ru</strong>stZone: Integrated Hardware and Software Security -Enabl<strong>in</strong>g T<strong>ru</strong>sted Comput<strong>in</strong>g <strong>in</strong> Embedded Systems (July 2004),http://www.arm.com/pdfs/TZ_Whitepaper.pdf2. ARM Ltd. T<strong>ru</strong>stZone Technology Overview. Introduction,http://www.arm.com/products/esd/t<strong>ru</strong>stzone_home.html3. Dietrich, K.: An <strong>in</strong>tegrated architecture for t<strong>ru</strong>sted comput<strong>in</strong>g for java enabled embeddeddevices. In: STC 2007: Proceed<strong>in</strong>gs of the 2007 ACM workshop on Scalablet<strong>ru</strong>sted comput<strong>in</strong>g, pp. 2–6. ACM, New York (2007)4. Ekberg, J.-E., Asokan, N., Kostia<strong>in</strong>en, K., Rantala, A.: Schedul<strong>in</strong>g execution ofcredentials <strong>in</strong> constra<strong>in</strong>ed secure environments. In: STC 2008: Proceed<strong>in</strong>gs of the3rd ACM workshop on Scalable t<strong>ru</strong>sted comput<strong>in</strong>g, pp. 61–70. ACM, New York(2008)5. T<strong>ru</strong>sted Comput<strong>in</strong>g Group Mobile Work<strong>in</strong>g Group. TCG Mobile ReferenceArchitecture Version 1.0 Revision 1. Specification (June 12, 2007),http://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/specs/mobilephone/tcg-mobile-reference-architecture-1.0.pdf6. T<strong>ru</strong>sted Comput<strong>in</strong>g Group Mobile Work<strong>in</strong>g Group. TCG Mobile T<strong>ru</strong>sted ModuleSepecification Version 1 rev. 1.0. Specification (June 12, 2007),https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/specs/mobilephone/tcg-mobile-t<strong>ru</strong>sted-module-1.0.pdf7. T<strong>ru</strong>sted Comput<strong>in</strong>g Group TPM Work<strong>in</strong>g Group. TPM Ma<strong>in</strong> Part 1 Design Pr<strong>in</strong>ciples.Specification, Specification version 1.2 Level 2 Revision 103 (July 9, 2007),https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/specs/TPM/ma<strong>in</strong>P1DPrev103.zip


44 K. Dietrich and J. W<strong>in</strong>ter8. T<strong>ru</strong>sted Comput<strong>in</strong>g Group TPM Work<strong>in</strong>g Group. TPM Ma<strong>in</strong> Part 3 Commands.Specification, Specification version 1.2 Level 2 Revision 103 (July 9, 2007),https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/specs/TPM/ma<strong>in</strong>P3Commandsrev103.zip9. International Organisation for Standardisation. ISO/IEC 7816-4, Part 4: Inter<strong>in</strong>dustrycommands for <strong>in</strong>terchange (2005)10. Kylänpää, M., Ekberg, J.-E.: Mobile T<strong>ru</strong>sted Module (MTM) - an <strong>in</strong>troduction(November 14 (2007), http://research.nokia.com/files/NRCTR2007015.pdf11. Open Kernel Labs. OKL4 microkernel source code, release 1.5.2.,http://wiki.ok-labs.com/images/2/20/Okl4_release_1.5.2.tar.gz12. L<strong>in</strong>dholm, T., Yell<strong>in</strong>, F.: The Java Virtual Mach<strong>in</strong>e Specification. Second Edition,http://java.sun.com/docs/books/jvms/second edition/html/VMSpecTOC.doc.html13. Sun Microsystems. Java Card Technology. Overview,http://java.sun.com/products/javacard/14. SUN Microsystems. Java Card Platform Specification 2.2.2. Specification (March2006), http://java.sun.com/products/javacard/specs.html15. Microsoft Research. S<strong>in</strong>gularity (2008)16. Strasser, M.: TPM Emulator. Software package,http://tpm-emulator.berlios.de/17. SUN. Javacard protection profile (May 2006)18. W<strong>in</strong>ter, J.: T<strong>ru</strong>sted comput<strong>in</strong>g build<strong>in</strong>g blocks for embedded l<strong>in</strong>ux-based arm t<strong>ru</strong>stzoneplatforms. In: STC 2008: Proceed<strong>in</strong>gs of the 3rd ACM workshop on Scalablet<strong>ru</strong>sted comput<strong>in</strong>g, pp. 21–30. ACM, New York (2008)19. XEN Hypervisor, http://xen.org/20. Zhang, X., Aciicmez, O., Seifert, J.-P.: A t<strong>ru</strong>sted mobile phone reference architecturevia secure kernel. In: STC 2007: Proceed<strong>in</strong>gs of the 2007 ACM workshop onScalable t<strong>ru</strong>sted comput<strong>in</strong>g, pp. 7–14. ACM, New York (2007)


Model<strong>in</strong>g T<strong>ru</strong>sted Comput<strong>in</strong>g Support <strong>in</strong> aProtection Profile for High Assurance SecurityKernelsHans Löhr 1 , Ahmad-Reza Sadeghi 1 , Christian Stüble 2 , Marion Weber 3 ,and Marcel W<strong>in</strong>andy 11 Horst Görtz Institute for IT-Security, Ruhr-University Bochum, Germany{hans.loehr,ahmad.sadeghi,marcel.w<strong>in</strong>andy}@t<strong>ru</strong>st.<strong>ru</strong>b.de2 Sirrix AG, Bochum, Germanystueble@sirrix.com3 Bundesamt für Sicherheit <strong>in</strong> der Informationstechnik (BSI), Bonn, Germanymarion.weber@bsi.bund.deAbstract. This paper presents a Common Criteria protection profilefor high assurance security kernels (HASK-PP) based on the results andexperiences of several (<strong>in</strong>ternational) projects on design and implementationof t<strong>ru</strong>stworthy platforms. Our HASK-PP was motivated by the factthat currently no protection profile is available that appropriately coverst<strong>ru</strong>sted comput<strong>in</strong>g features such as t<strong>ru</strong>sted boot, seal<strong>in</strong>g, and t<strong>ru</strong>stedchannels (secure channels with <strong>in</strong>herent attestation).In particular, we show how t<strong>ru</strong>sted comput<strong>in</strong>g features are modeled<strong>in</strong> the HASK protection profile without depend<strong>in</strong>g on any concrete implementationfor these features. Instead, this is left to the def<strong>in</strong>ition ofthe security targets of a an IT product which claims conformance to theHASK-PP. Our HASK protection profile was evaluated and certified atevaluation assurance level five (EAL5) by the German Federal Office forInformation Security (BSI).1 IntroductionIndustrial and governmental IT applications pose a high degree of assurance onthe security of the deployed IT products. Consequently, appropriate evaluationmeans are desired to verify product claims. In this context, Common Criteriastandards [1] are established methodologies to provide assurance that the processof specification, implementation and evaluation of an IT security producthas been conducted <strong>in</strong> an appropriate, rigorous and standard manner. In particular,protection profiles (PP) def<strong>in</strong>e a set of requirements for a specific class ofproducts that must be fulfilled by any product that is certified as compliant tothe profile.For secure operat<strong>in</strong>g systems, a small number of protection profiles exist.However, until recently, the exist<strong>in</strong>g protection profiles either model only specificaspects such as access control models, or they def<strong>in</strong>e the operat<strong>in</strong>g systemL. Chen, C.J. Mitchell, and A. Mart<strong>in</strong> (Eds.): T<strong>ru</strong>st 2009, LNCS <strong>5471</strong>, pp. 45–62, 2009.c○ Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2009


46 H. Löhr et al.on a very low level. In particular, these protection profiles do not consider importantsecurity aspects that can be realized by the emerg<strong>in</strong>g t<strong>ru</strong>sted comput<strong>in</strong>gtechnology such as secure boot<strong>in</strong>g, t<strong>ru</strong>sted channels, or data b<strong>in</strong>d<strong>in</strong>g.For example, the T<strong>ru</strong>sted Comput<strong>in</strong>g Group (TCG), an <strong>in</strong>dustrial <strong>in</strong>itiativeaim<strong>in</strong>g at the realization of t<strong>ru</strong>sted comput<strong>in</strong>g, has specified security extensionsfor commodity comput<strong>in</strong>g platforms. The core TCG specification is theT<strong>ru</strong>sted Platform Module (TPM) [2], currently implemented as cost-effective,tamper-evident hardware security module embedded <strong>in</strong> computer ma<strong>in</strong>boards.It allows a platform to provide evidence of its <strong>in</strong>tegrity, cryptographically b<strong>in</strong>ddata to previously taken <strong>in</strong>tegrity measurements, and protect cryptographic keys<strong>in</strong> shielded hardware. Based on these functionalities, a secure operat<strong>in</strong>g systemcan realize more advanced protection for applications and more reliable evidenceof its t<strong>ru</strong>stworth<strong>in</strong>ess to external entities like remote parties.Us<strong>in</strong>g a TPM to realize the mentioned security properties is only one option.Alternative solutions are possible based on other hardware security modules likesecure coprocessors [3, 4] or smartcards. Hence, to enable the certification of securesystems provid<strong>in</strong>g these security properties on an abstraction level allow<strong>in</strong>gend-users to compare security products, a new protection profile <strong>in</strong>corporat<strong>in</strong>gt<strong>ru</strong>sted comput<strong>in</strong>g becomes necessary.Contribution. In this paper, we present a Common Criteria protection profilefor high assurance security kernels (HASK-PP) [5], based on experience establishedover several years dur<strong>in</strong>g the design and development of security kernels<strong>in</strong> projects such as EMSCB [6], OpenTC [7], and SINA [8]. Moreover, we discusscerta<strong>in</strong> aspects of this protection profile and expla<strong>in</strong> the background of decisionsmade dur<strong>in</strong>g the development. The HASK-PP <strong>in</strong>corporates a number ofnovelties, compared to exist<strong>in</strong>g protection profiles:– Secure and authenticated boot abstraction (t<strong>ru</strong>sted boot) 1– User data b<strong>in</strong>d<strong>in</strong>g (t<strong>ru</strong>sted storage)– Secure channels with evidence on <strong>in</strong>tegrity of endpo<strong>in</strong>ts (t<strong>ru</strong>sted channels)– M<strong>in</strong>imal core security requirements– High flexibility for implementationAlthough one important <strong>in</strong>put to the PP development was t<strong>ru</strong>sted comput<strong>in</strong>gtechnology, a strong requirement of the PP development was to keep itimplementation-<strong>in</strong>dependent. Moreover, a key driver was to m<strong>in</strong>imize the coresecurity requirements, particularly regard<strong>in</strong>g user management and audit<strong>in</strong>g.Only m<strong>in</strong>imal requirements were def<strong>in</strong>ed <strong>in</strong> order to also allow products thatdo not have (multiple) users or do not need extensive audit<strong>in</strong>g (e.g., embeddeddevices). The def<strong>in</strong>ition of additional security requirements is <strong>in</strong>tentionally leftto the specification of security targets of concrete products. All together, thisallows a wide range of platforms such as servers, desktop systems, and embeddeddevices, which can be evaluated accord<strong>in</strong>g to the HASK protection profile.1 We expla<strong>in</strong> the differences between secure and authenticated boot <strong>in</strong> Section 4.1. Ingeneralweusethetermt<strong>ru</strong>sted boot as an abstraction for both.


Model<strong>in</strong>g T<strong>ru</strong>sted Comput<strong>in</strong>g Support <strong>in</strong> a Protection Profile for HASK 47The protection profile was evaluated and certified at evaluation assurancelevel five (EAL5) by the German Federal Office for Information Security (BSI).Outl<strong>in</strong>e. In Section 2, we <strong>in</strong>troduce goals and design pr<strong>in</strong>ciples of the developmentof this protection profile and discuss related and previous work. Wealso briefly <strong>in</strong>troduce the Common Criteria and relevant term<strong>in</strong>ology. Section 3presents an overview of the high assurance security kernel protection profile(HASK-PP).Weshow<strong>in</strong>Section4howt<strong>ru</strong>sted comput<strong>in</strong>g features are modeled<strong>in</strong> the protection profile, <strong>in</strong> particular t<strong>ru</strong>sted boot, t<strong>ru</strong>sted storage, and t<strong>ru</strong>stedchannels. F<strong>in</strong>ally, we conclude the paper <strong>in</strong> Section 5 with a brief summary andan outlook on future work.2 Toward a Protection Profile for Security Kernels2.1 Goals and Design Pr<strong>in</strong>ciplesThe overall goal of the HASK protection profile was to def<strong>in</strong>e evaluation criteriafor security kernels that provide functions for the management and separationof compartments operat<strong>in</strong>g on top of the security kernel. Examples of producttypes that may implement these functions are– Microkernels,– Virtual mach<strong>in</strong>e monitors, and– Logical partition<strong>in</strong>g products.The protection profile was developed based on the experiences with differentsecurity kernels cover<strong>in</strong>g certa<strong>in</strong> aspects to be considered by HASK:– Turaya [9]: A microkernel-based security kernel for desktop and mobile ITproducts based on COTS components. An open-source version of the Turayasecurity kernel has been developed <strong>in</strong> the EMSCB [6] project partly fundedby the German M<strong>in</strong>istry of Economics and Technology.– OpenTC [7]: A hypervisor-based security kernel for clients and servers, us<strong>in</strong>gt<strong>ru</strong>sted comput<strong>in</strong>g technology. OpenTC is a research project partly fundedby the European Union.– SINA [8]: A high-assurance “Secure Inter-Network Architecture” developedby the German Federal Office for Information Security (BSI).High-level abstraction of t<strong>ru</strong>sted comput<strong>in</strong>g featuressuchasremoteattestationand b<strong>in</strong>d<strong>in</strong>g were among the results of these projects. We derived ourrequirements for a protection profile from these <strong>in</strong>sights. In addition to the securityfunctionality of traditional security kernels (such as access control, audit,etc.), three important functions must exist <strong>in</strong> a product claim<strong>in</strong>g compliancewith the HASK protection profile: (1) t<strong>ru</strong>sted channel, (2) t<strong>ru</strong>sted storage, and(3) t<strong>ru</strong>sted boot.The first function is the ability to “prove” a “t<strong>ru</strong>st status” to a remote t<strong>ru</strong>stedIT product and to verify the correctness of a status submitted by a remotet<strong>ru</strong>sted IT product. This status shows that the product is authentic, has not


48 H. Löhr et al.been modified, and is “fresh” (i. e. the status <strong>in</strong>formation received has not beenreplayed from a previous status <strong>in</strong>formation potentially <strong>in</strong>tercepted by an attacker).Based on this <strong>in</strong>formation, t<strong>ru</strong>sted channels between t<strong>ru</strong>sted IT productscan be established.The second function allows to b<strong>in</strong>d user data to compartments resp. the securitykernel itself (t<strong>ru</strong>sted storage). This function can be used to prevent adversariesfrom bypass<strong>in</strong>g security policies by modification of applications or theoperat<strong>in</strong>g system. It was deliberately not the goal to prescribe which method isused to implement these functions. However, a product compliant to the protectionprofile requires hardware, software, or firmware <strong>in</strong> its environment that isable to ensure the <strong>in</strong>tegrity of the security kernel and its data dur<strong>in</strong>g start-up.Hence, the third function provides a t<strong>ru</strong>stworthy bootstrap mechanism(t<strong>ru</strong>sted boot), which supports the other two functions <strong>in</strong> provid<strong>in</strong>g evidencethat the product has started <strong>in</strong> the <strong>in</strong>tended manner. Figure 1 shows the abstractview of a security kernel and our goals.Fig. 1. Abstract functionality of a high-assurance security kernel. “Core Security Functionality”<strong>in</strong>cludes separation and access control.Another important design pr<strong>in</strong>ciple of the HASK-PP was to keep it as m<strong>in</strong>imalas possible to allow a wide range of different realizations, but prevent ’trivial’realizations that do not provide the <strong>in</strong>tended security property from be<strong>in</strong>g ableto claim<strong>in</strong>g compliance. In fact, the tightrope walk between m<strong>in</strong>imalism andexclusion of trivial realizations was one of the most challeng<strong>in</strong>g tasks dur<strong>in</strong>g thedevelopment of this protection profile.2.2 Common Criteria Basics and Term<strong>in</strong>ologyThe Common Criteria (CC) are an <strong>in</strong>ternational standard that aims at permitt<strong>in</strong>gcomparability between the results of <strong>in</strong>dependent security evaluations[1]. The CC provide requirements for security functionality of IT products andassurance measures for the security evaluation of these products. The CommonCriteria Recognition Agreement (CCRA) regulates <strong>in</strong>ternational recognitionof certificates, and about two dozen countries – <strong>in</strong>clud<strong>in</strong>g the USA, Canada,UK, Germany, France, Japan, and many others – are currently members of theCCRA.


Model<strong>in</strong>g T<strong>ru</strong>sted Comput<strong>in</strong>g Support <strong>in</strong> a Protection Profile for HASK 49Dur<strong>in</strong>g security assessment, a given product, the target of evaluation (TOE),isevaluated accord<strong>in</strong>g to a set of assurance requirements with respect to a securitytarget (ST) that def<strong>in</strong>es the security requirements for this TOE. An evaluationassurance level (EAL) is a pre-def<strong>in</strong>ed set of assurance requirements. The CCspecify seven levels (from EAL1 to EAL7), where levels with higher numbers<strong>in</strong>clude all requirements from the preced<strong>in</strong>g levels. All hardware, software, andfirmware that is necessary for the security functionality of the TOE is called TOEsecurity functionality (TSF). The security requirements that have to be fulfilledby the TSF are called security functional requirements (SFRs). TheCCoffersa set of classes of pre-def<strong>in</strong>ed SFRs, from which designers of security targetscan choose. SFR classes are grouped accord<strong>in</strong>g to security functionality like,e.g., data protection, security management, identification and authentication,audit<strong>in</strong>g.A protection profile (PP) specifies implementation-<strong>in</strong>dependent security requirementsfor a class of TOEs (whereas an ST is implementation-dependent).An ST for a concrete TOE can claim compliance to a PP; <strong>in</strong> this case, the complianceto the PP is assessed dur<strong>in</strong>g security evaluation. Protection profiles areparticularly important to compare different IT products, s<strong>in</strong>ce they specify am<strong>in</strong>imum set of security requirements that must be fulfilled. Of course, the STfor each product can provide additional security features.2.3 Related WorkThe concept of security kernels was explored some decades ago [10–14]. The basicidea is to implement security-critical functionality, i.e., mediat<strong>in</strong>g the access toresources accord<strong>in</strong>g to a security policy, (i) separated from other functionality,and (ii) <strong>in</strong> a ideally small kernel which allows for the verification of its correctness.The validation and formal verification of security kernels was analyzed andconducted by several works as well [15–18].Separation kernels can be seen as a subclass of security kernels. They haveonly limited functionality. Typically, a separation kernel divides the system <strong>in</strong>toseparated partitions <strong>ru</strong>nn<strong>in</strong>g virtual mach<strong>in</strong>es. Several commercial companiesdevelop separation kernels, such as LynuxWorks [19], Green Hills Software [20],and W<strong>in</strong>d River Systems [21]. There is also prior work <strong>in</strong> formal specificationand verification of separation kernels [22, 23].Recently, a protection profile for separation kernels (SKPP) [24] has been<strong>in</strong>troduced and certified <strong>in</strong> the US. This protection profile has been designedfor high robustness environments, i.e., it ma<strong>in</strong>ly addresses security evaluationsat EAL6 and EAL7. The protection profile itself does not claim conformanceto a specific evaluation assurance level, but specifies assurance requirementsboth from EAL6/EAL7, and explicitly def<strong>in</strong>ed requirements. Regard<strong>in</strong>g securityfunctional requirements, on the one hand, the focus of SKPP is restricted tothe security functionality of separation kernels. In contrast to this, HASK-PPcovers a wider range of security functionality, and <strong>in</strong> particular <strong>in</strong>cludes t<strong>ru</strong>stedcomput<strong>in</strong>g functionality. On the other hand, SKPP <strong>in</strong>cludes the hardware <strong>in</strong> theTOE and specifies very detailed security requirements. In contrast, the focus


50 H. Löhr et al.of HASK-PP is more restricted <strong>in</strong> this sense, s<strong>in</strong>ce it excludes the hardwarefrom the TOE and leaves more flexibility for concrete implementations. For adiscussion of SKPP and its development, see e.g., [25, 26].Lev<strong>in</strong> et al. [27] compare security kernel and separation kernel architectureswith regard to multi-level security. Moreover, they <strong>in</strong>troduce least-privilege separationkernel as a third class of architecture, which supports the security requirementsof the SKPP.In the past, conventional operat<strong>in</strong>g systems like various L<strong>in</strong>ux distributions,Unix variants, and versions of Microsoft W<strong>in</strong>dows have been evaluated accord<strong>in</strong>gtothetheControlledAccess Protection Profile (CAPP) [28], the LabeledSecurity Protection Profile (LSPP) [29] and the Role-Based Access Control ProtectionProfile (RBAC-PP) [30]. However, these protection profiles target lowerevaluation levels 2 and only address the limited aspect of access control models.3 Overview of HASK-PPIn this section we first describe the architecture and functionality of the TOE(Section 3.1). Then we present an overview of the ma<strong>in</strong> components of the protectionprofile, namely threats and assumptions (Section 3.2) as well as securityobjectives and security functional requirements (Section 3.3). F<strong>in</strong>ally, we discussour decision for the evaluation assurance level (Section 3.4).3.1 Security Kernel Architecture and FunctionsThe HASK protection profile specifies the security functional and assurance requirementsfor a class of security kernels that allow execut<strong>in</strong>g multiple separatedcompartments on a s<strong>in</strong>gle t<strong>ru</strong>sted system. Each compartment can behave likea s<strong>in</strong>gle platform separated from each other with the TOE enforc<strong>in</strong>g this separationand controll<strong>in</strong>g the communication between compartments as well aswith external entities <strong>in</strong> accordance with a def<strong>in</strong>ed policy (an overview is shown<strong>in</strong> Fig. 2). Note that the notion of compartments <strong>in</strong> the protection profile is ageneric concept. A compartment is not necessarily a virtual mach<strong>in</strong>e, it can beany set of processes with<strong>in</strong> a security doma<strong>in</strong>. Any product claim<strong>in</strong>g compliancewith this PP must provide the necessary security functionality with a highdegree of assurance to its users.To control the communication of external entities with compartments as wellas the communication between compartments, the TSF manages a set of communicationobjects that can be assigned to compartments. Communication objectsare (on hypervisor-based security kernels) an abstraction for virtual networkconnections between virtual mach<strong>in</strong>es or external networks, and (on microkernelbasedsecurity kernels) an abstraction for <strong>in</strong>terprocess-communication betweencompartmentalized (groups of) processes. Those communication objects allow the2 While the PPs themselves are certified accord<strong>in</strong>g to EAL2 and 3, recent evaluationsof operat<strong>in</strong>g systems accord<strong>in</strong>g to these profiles achieved EAL4+. However, they arestill far from reach<strong>in</strong>g EAL5.


Model<strong>in</strong>g T<strong>ru</strong>sted Comput<strong>in</strong>g Support <strong>in</strong> a Protection Profile for HASK 51TSF to control which external entities and other compartments a compartmentcan communicate with and how this communication is protected. Protection ofcommunication is def<strong>in</strong>ed by security attributes assigned to communication objects.Those attributes can def<strong>in</strong>e characteristics of the communication l<strong>in</strong>k likethe set of external entities one can communicate with us<strong>in</strong>g this communicationobject, the k<strong>in</strong>d of protection for the communicated data requested from the TSFwhen us<strong>in</strong>g the communication object (<strong>in</strong>tegrity protection, confidentiality protection,authentication of the communication peer).In addition to the communication objects, the TOE also manages storageconta<strong>in</strong>ers of persistent or volatile storage. Those may be whole disks, diskpartitions, disk sectors, etc. where the technology to implement those conta<strong>in</strong>ers(magnetic disks, flash disks, memory disks etc.) is not relevant for the protectionprofile.The security kernel has the follow<strong>in</strong>g (abstract) set of functions:– Management of compartments (creation, deletion, start<strong>in</strong>g, chang<strong>in</strong>g attributes)– Management of objects, which are at least conta<strong>in</strong>ers and communication objects(creation, deletion, chang<strong>in</strong>g attributes, def<strong>in</strong><strong>in</strong>g and manag<strong>in</strong>g accesscontrol policies)– Management of resources, which are at least processor time and memory(assignment to compartments, sett<strong>in</strong>g resource limits, controll<strong>in</strong>g resourcelimits)– Generation and verification of <strong>in</strong>formation that reliably shows the <strong>in</strong>tegrityof the security kernel, a compartment managed by the security kernel, orspecific data. We call such <strong>in</strong>formation evidence of <strong>in</strong>tegrity.Fig. 2. TOE architecture. Dark gray colored parts implement the TSF.


52 H. Löhr et al.A security kernel that is compliant to the protection profile needs to implementboth mandatory and discretionary access control (MAC/DAC). The DAC policymust at least allow to specify “access” and “no access”, and the MAC policymust at least allow separat<strong>in</strong>g two compartments from each other such that no<strong>in</strong>formation flow between them is possible.The security kernel (based on hardware functionality required by assumptions<strong>in</strong> the PP) must be able to protect its <strong>in</strong>tegrity, the <strong>in</strong>tegrity of compartments,and the <strong>in</strong>tegrity of storage conta<strong>in</strong>ers dur<strong>in</strong>g <strong>ru</strong>ntime. Integrity of the securitykernel is obviously required to guarantee the proper operation of the TSF.Integrity of compartments is required for t<strong>ru</strong>sted communication channels (seebelow). Integrity of storage conta<strong>in</strong>ers is required to prevent unauthorized modificationof data when this conta<strong>in</strong>er is mounted to a compartment.In a similar way, the system must be able to protect the confidentiality of thesecurity kernel, the confidentiality of compartments, and the confidentiality ofstorage conta<strong>in</strong>ers.Furthermore, the security kernel must be able to provide t<strong>ru</strong>sted channelsbetween compartments or between compartments and external entities. For at<strong>ru</strong>sted channel, the security kernel has to ensure that the communication l<strong>in</strong>kprovides <strong>in</strong>tegrity and confidentiality protection of the data transferred over thechannel, and the identification and authentication of the communication partnersmust be ensured.3.2 Threats and AssumptionsThe ma<strong>in</strong> threats aga<strong>in</strong>st the TOE <strong>in</strong>clude unauthorized access to objects o<strong>ru</strong>nauthorized <strong>in</strong>formation flow between subjects. Additionally, we consideredthreats that target to manipulate the TSF or TSF data, <strong>in</strong>clud<strong>in</strong>g replay<strong>in</strong>g ofan older state, e.g., a backup, or <strong>in</strong>fluenc<strong>in</strong>g the TSF to generate false evidence ofthe <strong>in</strong>tegrity of the TSF or its data. This also <strong>in</strong>cludes threats aga<strong>in</strong>st the TOEenvironment, e.g., manipulation by <strong>in</strong>stall<strong>in</strong>g malicious devices drivers access<strong>in</strong>gcritical hardware functions, or external entities try<strong>in</strong>g to access confidential TSFor user data by start<strong>in</strong>g the TOE outside its <strong>in</strong>tended operational environment.To address the threats, we stated correspond<strong>in</strong>g security objectives for theTOE and its environment. The latter is important because a security kernel <strong>in</strong>software alone cannot guarantee or verify its <strong>in</strong>tegrity without the assistance ofsecurity hardware functionality. In order to be implementation-<strong>in</strong>dependent,we did not <strong>in</strong>clude security functional requirements for the hardware. Instead,we stated assumptions on the operational environment <strong>in</strong> be<strong>in</strong>g able to– support the TOE <strong>in</strong> produc<strong>in</strong>g evidence of the <strong>in</strong>tegrity of the TSF code anddata dur<strong>in</strong>g the boot process (A.INTEGRITY SUPPORT);– allow the TOE to store <strong>in</strong>formation such that it cannot be accessed by theTOE where the configuration has been manipulated <strong>in</strong> an unauthorized way(A.BIND 3 );3 In TCG term<strong>in</strong>ology, the TPM seal<strong>in</strong>g function can provide such a feature. Otherimplementations may be based on, e.g., secure coprocessors [3].


Model<strong>in</strong>g T<strong>ru</strong>sted Comput<strong>in</strong>g Support <strong>in</strong> a Protection Profile for HASK 53– provide a function the TOE t<strong>ru</strong>sts that is able to generate evidence of the <strong>in</strong>tegrityof a remote t<strong>ru</strong>sted IT product only if it is correct (A.REMOTE TRUST).The assumptions A.INTEGRITY SUPPORT and A.REMOTE TRUST are needed toshow the status of <strong>in</strong>tegrity at load-time of the TOE. Comb<strong>in</strong>ed with the <strong>in</strong>tegrityprotection features of the TSF dur<strong>in</strong>g <strong>ru</strong>ntime, one can derive the <strong>in</strong>tegritystatus of the <strong>ru</strong>nn<strong>in</strong>g TOE and compartments executed on the TOE.Of course, for secure operation of the TOE, we assume the environment to– provide mechanisms for separation of the TSF and other subjects or functionality(A.SEPARATION SUPPORT);– not conta<strong>in</strong> backdoors (A.HW OK);– not be able to start the TOE <strong>in</strong> an <strong>in</strong>secure way without this be<strong>in</strong>g detectable(A.NO TAMPER); and– not have subjects allowed to perform adm<strong>in</strong>istrative functions and misus<strong>in</strong>gtheir privileges (A.NO EVIL).3.3 Security Objectives and Security Functional RequirementsThe security objectives address protection of objects on the one hand (accesscontrol to user data, <strong>in</strong>formation flow control between compartments, securedata exchange, management of security attributes, resource limitation to avoiddenial of service), and protection of the TSF itself on the other hand (TSF andTSF data <strong>in</strong>tegrity and confidentiality). Moreover, the TOE must be able toaudit def<strong>in</strong>ed potentially security-critical events.To address the security objectives of the TOE, we def<strong>in</strong>ed security functionalrequirements, which can be assigned to four groups: (i) core security functionality(realiz<strong>in</strong>g access control, security management, audit, etc.), (ii) t<strong>ru</strong>sted storage,(iii) t<strong>ru</strong>sted boot, and (iv) t<strong>ru</strong>sted channels. See Figure 3 for an overview (notethat the SFRs <strong>in</strong> the groups overlap because some SFRs are address<strong>in</strong>g morethan one objective).The core security functionality can be divided <strong>in</strong>to four subgroups 4 . (1) Accesscontrol and <strong>in</strong>formation flow control <strong>in</strong>cludes SFRs for data protection, useridentification and authentication, and consistency of TSF data when sharedbetween TSF and another t<strong>ru</strong>sted IT product. (2) Resource limitation: As am<strong>in</strong>imal requirement we <strong>in</strong>clude maximum quotas for memory and processortime <strong>in</strong> order to avoid excessive resource consumption. (3) Audit def<strong>in</strong>es thatthe TOE must be able to audit the follow<strong>in</strong>g events at m<strong>in</strong>imum: start/stopof audit functions, modifications of security policy enforced by TOE, rejectedattempts to perform management operations, and <strong>in</strong>tegrity violations of TSF o<strong>ru</strong>ser data. We did not want to dictate a long list of audit events because someproducts may not have such strong audit requirement, but should be covered4 We <strong>in</strong>troduce the subgroups only as orientation to reflect the objectives <strong>in</strong> thispaper. The reader can f<strong>in</strong>d the exact mapp<strong>in</strong>g of SFRs to security objectives <strong>in</strong> theprotection profile.


54 H. Löhr et al.Fig. 3. Overview of the HASK-PP with logical group<strong>in</strong>g of the security functionalrequirements and assumptions. See Appendix A for the complete list of SFRs withtheir names (such as “Basic Data Authentication” for FDP DAU.1).by the HASK-PP, too. The actual selection of events to be audited is up to thesecurity target of a concrete product (and can have even more audit events ifnecessary).F<strong>in</strong>ally, (4) security management consists of management of security attributesfor subjects and objects, management of TSF data, and management of securityroles. The <strong>in</strong>clusion of these SFRs <strong>in</strong> the HASK-PP was orig<strong>in</strong>ally not the focus(because we wanted to m<strong>in</strong>imize the requirements), but they were a result of dependenciesbetween SFRs. For <strong>in</strong>stance, FDP ACF.1 (security attribute based accesscontrol) requires FMT MSA.3 (static attribute <strong>in</strong>itialization).We discuss the model<strong>in</strong>g of the objectives t<strong>ru</strong>sted storage, t<strong>ru</strong>sted boot, andt<strong>ru</strong>sted channel <strong>in</strong> Section 4.3.4 Security AssuranceThe HASK-PP has been developed aga<strong>in</strong>st the most recent version 3.1 Revision2 of the Common Criteria to ensure its usefulness <strong>in</strong> the future. It is fullyconformant to CC part 3 by select<strong>in</strong>g the EAL5 package of security assurancerequirements.


Model<strong>in</strong>g T<strong>ru</strong>sted Comput<strong>in</strong>g Support <strong>in</strong> a Protection Profile for HASK 55EAL5waschosenasam<strong>in</strong>imum level of assurance for different reasons: Thearchitecture of the TOE <strong>in</strong> HASK-PP addresses systems with exposure to unt<strong>ru</strong>stworthyand unauthorized entities and with high value of the data storedand processed by the system. A sufficient level of assurance must be selected toprovide system users with appropriate assurance that the system will be able towithstand such threats. The TOEs claim<strong>in</strong>g conformance to the HASK-PP areexpected to provide high assurance aga<strong>in</strong>st the threats assumed <strong>in</strong> the PP. Robustand reliable separation of compartments requires a level of assurance that<strong>in</strong>cludes the evaluation of possible covert channels between unrelated compartments.In this context, test<strong>in</strong>g and vulnerability analysis of the whole TSF isnecessary. The whole architecture of a security kernel manag<strong>in</strong>g compartmentsshould be implemented <strong>in</strong> a lean, modularized fashion as required by the EAL5assurance level. This means to have well-st<strong>ru</strong>ctured <strong>in</strong>ternals, a functional specificationwhich is at least semi-formal, and a development process that followsclear implementation standards and def<strong>in</strong>es unambiguous use of developmenttools.EAL5 was also deemed appropriate because it shall provide a platform forother secure services implemented <strong>in</strong> compartments managed by the TOE. S<strong>in</strong>cesuch services may be certified at assurance levels above EAL4, the underly<strong>in</strong>gplatform must not provide weaker assurance.EAL5 was deemed to be sufficient as a m<strong>in</strong>imum level because levels aboveEAL5 are usually achievable only with extremely high efforts and costs. Thisallows security kernels to be evaluated and certified accord<strong>in</strong>g to HASK-PPfor commercial application scenarios that do not require the highest levels ofassurance. Of course, the security target for any specific product may specify ahigher evaluation level. However, the PP itself was only certified at EAL5.4 T<strong>ru</strong>sted Comput<strong>in</strong>g Functionality <strong>in</strong> HASK-PP4.1 Model<strong>in</strong>g T<strong>ru</strong>sted BootTo be able to provide the “t<strong>ru</strong>st status” of the product configuration as requiredby the HASK-PP, a t<strong>ru</strong>stworthy bootstrap architecture is required to conv<strong>in</strong>ceremote parties about this status. One basic concept towards the developmentof a t<strong>ru</strong>stworthy bootstrap architecture is the so-called cha<strong>in</strong> of t<strong>ru</strong>st which hasbeen <strong>in</strong>troduced by Arbaugh et al. [31]. The core idea is that every component<strong>in</strong>volved <strong>in</strong> the boot process measures the <strong>in</strong>tegrity of the succeed<strong>in</strong>g one before ittransfers control to it. If the bootstrap process is started by a t<strong>ru</strong>sted component(a t<strong>ru</strong>sted root host), it is guaranteed that modifications of components <strong>in</strong>volved<strong>in</strong> the boot process can be detected by the preced<strong>in</strong>g component. S<strong>in</strong>ce therelevant product configuration might not be limited to the security kernel itself,we <strong>in</strong>clude requirements for load<strong>in</strong>g and start<strong>in</strong>g compartments <strong>in</strong> the descriptionof the t<strong>ru</strong>sted boot process.In this context, it is possible to dist<strong>in</strong>guish two types of t<strong>ru</strong>sted boot mechanismsthat ma<strong>in</strong>ly differ <strong>in</strong> the way how the measurement results are used:


56 H. Löhr et al.Def<strong>in</strong>ition 1 (Secure Boot). Secure Boot is a security property of a bootstraparchitecture ensur<strong>in</strong>g that only configurations of a certa<strong>in</strong> property can be loaded.If a modification is detected, the bootstrap process is <strong>in</strong>ter<strong>ru</strong>pted.The term ’property’ used <strong>in</strong> this def<strong>in</strong>ition only identifies a set of configurations,e.g., a list or a signature key certify<strong>in</strong>g allowed configurations. An example implementationof secure boot, as proposed by Arbaugh et al., is to verify the<strong>in</strong>tegrity of a succeed<strong>in</strong>g component accord<strong>in</strong>g to a given reference value. If theverification fails, the boot process is halted or an error function is executed [32].Def<strong>in</strong>ition 2 (Authenticated Boot). Authenticated Boot is a security propertyof a bootstrap architecture ensur<strong>in</strong>g that remote parties can verify propertiesof the booted configuration.We use the term t<strong>ru</strong>sted boot to refer to both secure and authenticated boot. Incontrast to secure boot, authenticated boot is not actively <strong>in</strong>fluenc<strong>in</strong>g the bootprocess. An example implementation of authenticated boot, e.g., as proposedby the TCG, is to securely store measurement results (i.e., hash values) of thecomponents <strong>in</strong>volved <strong>in</strong> the boot cha<strong>in</strong> with<strong>in</strong> the T<strong>ru</strong>sted Platform Module(TPM) and attest the values over an authentic channel. 5Although both concepts are very similar, they fulfill slightly different securityrequirements: Secure boot ensures that only valid configurations are loaded.Local users can therefore assume that the platform is <strong>in</strong> a t<strong>ru</strong>stworthy stateif the bootstrap process f<strong>in</strong>ished successfully. Remote parties, however, can <strong>in</strong>general not make any assumptions about the loaded platform configuration.In contrast, authenticated boot allows remote parties to verify the platform’sconfiguration. But because any configuration can be loaded, local users can <strong>in</strong>general not make any assumptions about the current platform configuration. Tosecurely verify the current platform configuration, further mechanisms such assecure hardware tokens or software mechanism are required.In general, such a t<strong>ru</strong>stworthy bootstrap architecture can be realized us<strong>in</strong>gdifferent comb<strong>in</strong>ations of technologies and assumptions. Typical examples aresmartcards, the TPM, a tamper-evident device, or the assumption that adversariesdo not have physical access to the platform.S<strong>in</strong>ce such a bootstrap architecture cannot be realized without assumptionsregard<strong>in</strong>g the IT-environment (i.e., hardware or environmental assumptions), theHASK-PP models it us<strong>in</strong>g the assumptions A.BIND and A.INTEGRITY SUPPORT.To allow a compliant product to implement authenticated boot, the assumptionA.INTEGRITY SUPPORT only requires that a manipulated security kernel is notable to generate false evidence of its own <strong>in</strong>tegrity. The assumption A.BINDrequires that there must be a possibility for the TSF to store data and code <strong>in</strong>such a way that it can be loaded only if the <strong>in</strong>tegrity of the TSF is <strong>in</strong>tact. Thisallows to implement secure boot.5 Note that neither authenticated boot, nor secure boot can protect the confidentialityof <strong>in</strong>formation under the assumptions that hold for common PC architectures,i.e., the adversary has access to the harddisk. The reason is that both bootstraparchitectures do not provide protected storage.


Model<strong>in</strong>g T<strong>ru</strong>sted Comput<strong>in</strong>g Support <strong>in</strong> a Protection Profile for HASK 57In the protection profile, several security requirements are related to t<strong>ru</strong>stedboot. Exist<strong>in</strong>g security functional requirements (SFRs) from the CC have beenused to require validation of the security kernel and compartments dur<strong>in</strong>g startup.This <strong>in</strong>cludes that only secure values for memory and CPU time assigned toa compartment are accepted, that the TSF <strong>ru</strong>ns a suite of self tests when load<strong>in</strong>ga compartment that requires <strong>in</strong>tegrity evidence, and that any modificationsbetween shut down and start-up of the system (e.g., due to manipulations of thehard disk when the system is shut off) can be detected.Most notably, one extended SFR, FDP DAU.3 EXP “controlled data authentication”,has been def<strong>in</strong>ed specifically for the HASK-PP. This requirement statesthat the TSF must provide the capability to generate evidence that can be usedas a guarantee of the <strong>in</strong>tegrity of objects. Moreover, it allows the security targetof a concrete product to specify conditions under which such evidence is generated,and subjects must be provided with the ability to verify such evidence.This extended SFR allows the security kernel to extend the “cha<strong>in</strong> of t<strong>ru</strong>st”(which must be rooted either <strong>in</strong> hardware or <strong>in</strong> the operational environment, asexpressed by the assumptions mentioned above) up to <strong>in</strong>dividual compartmentsstarted by the security kernel. Furthermore, it is also relevant for other t<strong>ru</strong>stedcomput<strong>in</strong>g features, such as t<strong>ru</strong>sted storage and t<strong>ru</strong>sted channels discussed <strong>in</strong>the follow<strong>in</strong>g sections.HASK-PP requires only that the IT-environment offers a mechanism to checkthe <strong>in</strong>tegrity of the security kernel either before (e.g., by a tamper-resistantcover) or dur<strong>in</strong>g (e.g., with a TPM) load<strong>in</strong>g it. Which alternative is used is leftfor the specific implementation to decide.4.2 Model<strong>in</strong>g T<strong>ru</strong>sted StorageA security kernel claim<strong>in</strong>g compliance to the HASK-PP must provide t<strong>ru</strong>stedstorage, accord<strong>in</strong>g to the follow<strong>in</strong>g def<strong>in</strong>ition:Def<strong>in</strong>ition 3. T<strong>ru</strong>sted storage is storage where confidentiality, <strong>in</strong>tegrity, andfreshness (i.e., protection aga<strong>in</strong>st replay attacks) of stored data is provided, andwhere the <strong>in</strong>tegrity of the TOE access<strong>in</strong>g the data is ensured (<strong>in</strong> order to preventother software, such as alternative or modified operat<strong>in</strong>g systems, from access<strong>in</strong>gthe data).To support t<strong>ru</strong>sted storage, a security kernel needs special support from theoperational environment, which is reflected <strong>in</strong> the PP as assumption A.BIND.This assumption requires that the security kernel can store <strong>in</strong>formation <strong>in</strong> sucha way that it cannot be accessed by a manipulated TOE (or by software with adifferent configuration). In concrete systems, A.BIND is usually fulfilled by specialhardware features.Moreover, the security kernel has to ensure that confidentiality and <strong>in</strong>tegrityof the data are protected both when the system is <strong>ru</strong>nn<strong>in</strong>g, and when it is offl<strong>in</strong>e.Furthermore, it must be <strong>in</strong>feasible for an attacker to modify the system,or to obta<strong>in</strong> confidential <strong>in</strong>formation from the system <strong>in</strong> order to get access to


58 H. Löhr et al.the protected data. Additionally, the security kernel must provide a capabilityto authenticate storage conta<strong>in</strong>ers, and to verify the <strong>in</strong>tegrity of the entity(e.g., compartment) access<strong>in</strong>g the data. These requirements are expressed bySFRs from the Common Criteria classes FDP (user data protection) and FPT(protection of the TSF), together with the requirement FDP DAU.3 EXP (cf. Section4.1).Several possibilities exist to implement t<strong>ru</strong>sted storage <strong>in</strong> real systems. Onesuch possibility is based on a TPM, however, other concepts for t<strong>ru</strong>sted comput<strong>in</strong>g,e.g., based on proprietary security modules that are not compliant to theTCG specifications, might use different approaches to realize t<strong>ru</strong>sted storage.T<strong>ru</strong>sted storage with the TCG specifications. In the term<strong>in</strong>ology of theTCG, seal<strong>in</strong>g denotes the encryption of data with a key that can only be usedby a specific TPM under strictly def<strong>in</strong>ed conditions: Dur<strong>in</strong>g seal<strong>in</strong>g, the user canspecify values for the evidence of <strong>in</strong>tegrity that has to be present <strong>in</strong>side protectedregisters of the TPM for decrypt<strong>in</strong>g (unseal<strong>in</strong>g) the data. Dur<strong>in</strong>g unseal<strong>in</strong>g,the TPM checks the content of these registers and refuses to decrypt if thecurrent evidence deviates from the required values. Seal<strong>in</strong>g provides <strong>in</strong>tegrityand confidentiality of the data, as well as <strong>in</strong>tegrity of the TOE. To supportfreshness, monotonic counters, another feature of the TPM, can be used.4.3 Model<strong>in</strong>g T<strong>ru</strong>sted ChannelsThe possibility to establish t<strong>ru</strong>sted channels has to be provided by any securitykernel claim<strong>in</strong>g compliance to HASK-PP.Def<strong>in</strong>ition 4. A t<strong>ru</strong>sted channel is a channel between two entities that provides<strong>in</strong>tegrity, confidentiality, andauthenticity of the transmitted data, and ensures<strong>in</strong>tegrity and authenticity of the end po<strong>in</strong>ts.Hence, a t<strong>ru</strong>sted channel allows the communication partners to receive <strong>in</strong>tegrity(attestation) <strong>in</strong>formation from their peers. A t<strong>ru</strong>sted channel may either providemutual attestation (i.e., <strong>in</strong>tegrity measurements of both end po<strong>in</strong>ts are transmitted),or only the <strong>in</strong>tegrity of one end po<strong>in</strong>t is verified. Several solutions fort<strong>ru</strong>sted channels based on the TCG specifications have been proposed <strong>in</strong> theliterature [33–37].To keep the protection profile general and implementation-<strong>in</strong>dependent, weneed to formulate abstract requirements for the t<strong>ru</strong>sted channel, without exclud<strong>in</strong>gany specific realization.The hardware and environmental assumptions which are required for a t<strong>ru</strong>stedchannel are the availability of a mechanism for the TOE to produce evidence ofits own <strong>in</strong>tegrity (A.INTEGRITY SUPPORT) and the availability of a mechanism(that must be t<strong>ru</strong>sted by the TOE) provid<strong>in</strong>g a similar feature for the remoteentity (A.REMOTE TRUST).The mandatory functionality of the security kernel to support t<strong>ru</strong>sted channelsare required by SFRs from the CC for <strong>in</strong>tegrity and confidentiality of user dataand TSF data dur<strong>in</strong>g transfer, security functional requirements from the CC for


Model<strong>in</strong>g T<strong>ru</strong>sted Comput<strong>in</strong>g Support <strong>in</strong> a Protection Profile for HASK 59<strong>in</strong>ter-TSF communication, and the component for controlled data authenticationthat has been <strong>in</strong>troduced specifically for HASK-PP (FDP DAU.3 EXP).The dist<strong>in</strong>ctive feature of end po<strong>in</strong>t <strong>in</strong>tegrity provided by t<strong>ru</strong>sted channelsis expressed by requir<strong>in</strong>g assured identification of the end po<strong>in</strong>ts <strong>in</strong> the CCcomponent FTP ITC.1 (“Inter-TSF t<strong>ru</strong>sted channel”). Here, the term assuredidentification <strong>in</strong>cludes <strong>in</strong>tegrity verification.5 ConclusionIn this paper, we describe the first Common Criteria protection profile for asecure operat<strong>in</strong>g system with support for enhanced security features, as theyare provided by t<strong>ru</strong>sted comput<strong>in</strong>g technology. The protection profile is generaland abstract, thus cover<strong>in</strong>g a wide class of IT products without fix<strong>in</strong>g specificmechanisms and leav<strong>in</strong>g a maximum of flexibility and freedom for concrete implementations.We show how t<strong>ru</strong>sted comput<strong>in</strong>g features like t<strong>ru</strong>sted boot, t<strong>ru</strong>sted storage,and t<strong>ru</strong>sted channels can be expressed <strong>in</strong> a generic way by a protection profile,and we po<strong>in</strong>t out the relation to exist<strong>in</strong>g concepts like the TCG specifications.Moreover, we present and expla<strong>in</strong> the motivation beh<strong>in</strong>d the protection profileand important design decisions.S<strong>in</strong>ce the protection profile has been certified, it can be used as a guidel<strong>in</strong>e forthe design of real systems by security architects. Proof-of-concept implementationsand other results from projects like EMSCB, OpenTC, and SINA provide astart<strong>in</strong>g po<strong>in</strong>t for develop<strong>in</strong>g a security kernel that can be evaluated and certifiedaccord<strong>in</strong>g to the HASK-PP.AcknowledgmentThis work has been partially funded by the European Commission as part ofthe OpenTC project [7]. We would like to thank Helmut Kurth and GeraldK<strong>ru</strong>mmeck from atsec <strong>in</strong>formation security for their <strong>in</strong>valuable contribution <strong>in</strong>writ<strong>in</strong>g the protection profile, and the anonymous reviewers for their thoughtfulcomments on this paper.References1. Common Criteria for Information Technology Security Evaluation,http://www.commoncriteriaportal.org/thecc.html2. T<strong>ru</strong>sted Comput<strong>in</strong>g Group: TPM Ma<strong>in</strong> Specification Version 1.2 rev. 103 (July2007), https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org3. Smith, S.W., We<strong>in</strong>gart, S.: Build<strong>in</strong>g a high-performance, programmable securecoprocessor. <strong>Computer</strong> Networks 31(8), 831–860 (1999)4. Yee, B.S.: Us<strong>in</strong>g Secure Coprocessors. PhD thesis, School of <strong>Computer</strong> <strong>Science</strong>,Carnegie Mellon University, CMU-CS-94-149 (May 1994)


60 H. Löhr et al.5. Kurth, H., K<strong>ru</strong>mmeck, G., Stüble, C., Weber, M., W<strong>in</strong>andy, M.: HASK-PP: Protectionprofile for a high assurance security kernel (2008),http://www.sirrix.com/media/downloads/54500.pdf6. European Multilaterally Secure Comput<strong>in</strong>g Base, http://www.emscb.de7. Open T<strong>ru</strong>sted Comput<strong>in</strong>g, http://www.opentc.net8. Sichere Inter-Netzwerk Architektur (SINA),http://www.bsi.bund.de/fachthem/s<strong>in</strong>a/<strong>in</strong>dex.htm9. Sadeghi, A.R., Stüble, C., Pohlmann, N.: European multilateral secure comput<strong>in</strong>gbase - open t<strong>ru</strong>sted comput<strong>in</strong>g for you and me. Datenschutz und DatensicherheitDuD 28(9), 548–554 (2004)10. Schroeder, M.D.: Eng<strong>in</strong>eer<strong>in</strong>g a security kernel for Multics. In: SOSP 1975: Proceed<strong>in</strong>gsof the fifth ACM symposium on Operat<strong>in</strong>g systems pr<strong>in</strong>ciples, pp. 25–32.ACM, New York (1975)11. Walter, K.G., Schaen, S.I., Ogden, W.F., Rounds, W.C., Shumway, D.G., Schaeffer,D.D., Biba, K.J., Bradshaw, F.T., Ames, S.R., Gilligan, J.M.: St<strong>ru</strong>cturedspecification of a security kernel. In: Proceed<strong>in</strong>gs of the <strong>in</strong>ternational conferenceon Reliable software, pp. 285–293. ACM, New York (1975)12. Chittenden, B., Higg<strong>in</strong>s, P.J.: The security kernel approach to secure operat<strong>in</strong>gsystems. In: ACM-SE 17: Proceed<strong>in</strong>gs of the 17th Annual Southeast Regional Conference,pp. 136–137. ACM, New York (1979)13. Ames Jr., S.R., Gasser, M., Schell, R.R.: Security kernel design and implementation:An <strong>in</strong>troduction. <strong>Computer</strong> 16(7), 14–22 (1983)14. Karger, P.A., Zurko, M.E., Bon<strong>in</strong>, D.W., Mason, A.H., Kahn, C.E.: A retrospectiveon the VAX VMM security kernel. IEEE Transactions on Software Eng<strong>in</strong>eer<strong>in</strong>g17(11), 1147–1163 (1991)15. Kemmerer, R.A.: Formal verification of the UCLA security kernel: abstract model,mapp<strong>in</strong>g functions, theorem generation, and proofs. PhD thesis (1979)16. Millen, J.K.: Security kernel validation <strong>in</strong> practice. Commun. ACM 19(5), 243–250(1976)17. Rushby, J.: Design and verification of secure systems. In: SOSP 1981: Proceed<strong>in</strong>gsof the 8th ACM Symposium on Operat<strong>in</strong>g Systems Pr<strong>in</strong>ciples, pp. 12–21. ACM,New York (1981)18. Silverman, J.M.: Reflections on the verification of the security of an operat<strong>in</strong>gsystem kernel. In: SOSP 1983: Proceed<strong>in</strong>gs of the n<strong>in</strong>th ACM symposium on Operat<strong>in</strong>gsystems pr<strong>in</strong>ciples, pp. 143–154. ACM, New York (1983)19. DeLong, R.J.: LynxSecure separation kernel – a high-assurance security RTOS.Technical report, LynuxWorks, San Jose, CA (May 2007)20. Green Hills Software Inc.: INTEGRITY PC Technology (November 2008),http://www.ghs.com/products/rtos/<strong>in</strong>tegritypc.html21. W<strong>in</strong>d River Systems Inc.: W<strong>in</strong>d River High-Assurance Solutions for Aerospace& Defense. Whitepaper (Feb<strong>ru</strong>ary 2008), http://www.w<strong>in</strong>driver.com/products/product-verviews/PO_MILS_Solution_Feb2008.pdf22. Mart<strong>in</strong>, W.B., White, P.D., Taylor, F.S.: Creat<strong>in</strong>g high confidence <strong>in</strong> a separationkernel. Automated Software Eng<strong>in</strong>eer<strong>in</strong>g. 9(3), 263–284 (2002)23. Heitmeyer, C.L., Archer, M., Leonard, E.I., McLean, J.: Formal specification andverification of data separation <strong>in</strong> a separation kernel for an embedded system. In:CCS 2006: Proceed<strong>in</strong>gs of the 13th ACM conference on <strong>Computer</strong> and communicationssecurity, pp. 346–355. ACM, New York (2006)24. Information Assurance Directorate: U.S. government protection profile for separationkernels <strong>in</strong> environments requir<strong>in</strong>g high robustness (SKPP) (2007),http://www.niap-ccevs.org/cc-scheme/pp/pp.cfm/id/pp_skpp_hr_v1.03


Model<strong>in</strong>g T<strong>ru</strong>sted Comput<strong>in</strong>g Support <strong>in</strong> a Protection Profile for HASK 6125. Nguyen, T., Lev<strong>in</strong>, T., Irv<strong>in</strong>e, C.: High robustness requirements <strong>in</strong> a common criteriaprotection profile. In: IEEE International Information Assurance Workshop(2006)26. DeLong, R.J., Nguyen, T., Irv<strong>in</strong>e, C., Lev<strong>in</strong>, T.: Toward a medium-robustnessseparation kernel protection profile. In: ACSAC 2007. IEEE <strong>Computer</strong> SocietyPress, Los Alamitos (2007)27. Lev<strong>in</strong>, T.E., Irv<strong>in</strong>e, C.E., Weissman, C., Nguyen, T.D.: Analysis of three multilevelsecurity architectures. In: CSAW 2007: Proceed<strong>in</strong>gs of the 2007 ACM workshop on<strong>Computer</strong> security architecture, pp. 37–46. ACM, New York (2007)28. National Security Agency: Controlled access protection profile (CAPP) (1999),http://www.niap-ccevs.org/cc-scheme/pp/id/PP_OS_CA_V1.d29. National Security Agency: Labeled security protection profile (LSPP) (1999),http://www.niap-ccevs.org/cc-scheme/pp/id/PP_OS_LS_V1.b30. Reynolds, J., Chandramouli, R.: Role-based access control protection profile(RBAC-PP), CygnaCom Solutions, Inc. and National Institute of Standards andTest<strong>in</strong>g (1998), http://www.niap-ccevs.org/cc-scheme/pp/id/PP_RBAC_V1.031. Arbaugh, W.A., Farber, D.J., Smith, J.M.: A secure and reliable bootstrap architecture.In: Proceed<strong>in</strong>gs of the IEEE Symposium on Research <strong>in</strong> Security andPrivacy, Oakland, CA, pp. 65–71. IEEE <strong>Computer</strong> Society Press, Los Alamitos(1997)32. Arbaugh, W.A., Keromytis, A.D., Farber, D.J., Smith, J.M.: Automated recovery<strong>in</strong> a secure bootstrap process. In: Proceed<strong>in</strong>gs of the Symposium on Network andDistributed Systems Security (NDSS 1998), San Diego, California, pp. 155–167(2008)33. Goldman, K., Perez, R., Sailer, R.: L<strong>in</strong>k<strong>in</strong>g remote attestation to secure tunnel endpo<strong>in</strong>ts.In: Proceed<strong>in</strong>gs of the 1st ACM Workshop on Scalable T<strong>ru</strong>sted Comput<strong>in</strong>g(STC 2006), pp. 21–24. ACM, New York (2006)34. Stumpf, F., Tafreschi, O., Röder,P.,Eckert,C.:Arobust <strong>in</strong>tegrity report<strong>in</strong>g protocolfor remote attestation. In: Proceed<strong>in</strong>gs of the Second Workshop on Advances<strong>in</strong> T<strong>ru</strong>sted Comput<strong>in</strong>g (WATC 2006) (Fall 2006)35. Sadeghi, A.R., Wolf, M., Stüble, C., Asokan, N., Ekberg, J.E.: Enabl<strong>in</strong>g fairerdigital rights management with t<strong>ru</strong>sted comput<strong>in</strong>g. In: Garay, J.A., Lenstra, A.K.,Mambo, M., Peralta, R. (eds.) ISC 2007. LNCS, vol. 4779, pp. 53–70. Spr<strong>in</strong>ger,Heidelberg (2007)36. Gasmi, Y., Sadeghi, A.-R., Stew<strong>in</strong>, P., Unger, M., Asokan, N.: Beyond secure channels.In: Proceed<strong>in</strong>gs of the 2nd ACM Workshop on Scalable T<strong>ru</strong>sted Comput<strong>in</strong>g(STC 2007), pp. 30–40. ACM, New York (2007)37. Armknecht, F., Gasmi, Y., Sadeghi, A.R., Stew<strong>in</strong>, P., Unger, M., Ramunno, G.,Vernizzi, D.: An efficient implementation of t<strong>ru</strong>sted channels based on OpenSSL.In: Proceed<strong>in</strong>gs of the 3rd ACM Workshop on Scalable T<strong>ru</strong>sted Comput<strong>in</strong>g (STC2008), pp. 41–50. ACM, New York (2008)ASecurity Functional RequirementsThe security functional requirements of the HASK-PP orig<strong>in</strong>ate all from CommonCriteria V3.1 Release 2, part 2, with the exception of FDP DAU.3 EXP,which is an extended requirement def<strong>in</strong>ed <strong>in</strong> the protection profile. Table 1 summarizesthe security functional requirements of HASK-PP.


62 H. Löhr et al.Table 1. Security functional requirements <strong>in</strong> HASK-PPSFRFAU GEN.1FAU SEL.1FDP ACC.2FDP ACF.1FDP DAU.1FDP DAU.3 EXPFDP ETC.2FDP IFC.2FDP IFF.1FDP ITC.2FDP RIP.2FDP SDI.1FDP UCT.1FDP UIT.1FIA ATD.1FIA UAU.1FIA UID.1FIA UID.2FMT MOF.1FMT MSA.1FMT MSA.2FMT MSA.3FMT MTD.1(1)FMT MTD.1(2)FMT MTD.2FMT MTD.3FMT REV.1FMT SMF.1FMT SMR.1FPT ITI.1FPT ITT.1FPT ITT.3FPT STM.1FPT TDC.1FPT TST.1FRU RSA.1FTP ITC.1TitleAudit data generationSecurity audit event selectionComplete access controlSecurity attribute based access controlBasic data authenticationControlled data authenticationExport of user data with security attributesComplete <strong>in</strong>formation flow controlSimple security attributesImport of user data with security attributesFull residual <strong>in</strong>formation protectionStored data <strong>in</strong>tegrity monitor<strong>in</strong>gBasic data exchange confidentialityData exchange <strong>in</strong>tegrityUser attribute def<strong>in</strong>itionTim<strong>in</strong>g of authenticationTim<strong>in</strong>g of identificationUser identification before any actionManagement of security functions behaviorManagement of security attributesSecure security attributesStatic attribute <strong>in</strong>itializationManagement of TSF dataManagement of TSF data for communication objectsManagement of limits on TSF dataSecure TSF dataRevocationSpecification of management functionsSecurity rolesInter-TSF detection of modificationBasic <strong>in</strong>ternal TSF data transferTSF data <strong>in</strong>tegrity monitor<strong>in</strong>gReliable time stampsInter-TSF basic TSF data consistencyTSF test<strong>in</strong>gMaximum quotasInter-TSF t<strong>ru</strong>sted channel


Remote Attestation of Attribute Updates andInformation Flows <strong>in</strong> a UCON SystemMohammad Nauman 1 ,MasoomAlam 1 , X<strong>in</strong>wen Zhang 2 , and Tamleek Ali 11 Security Eng<strong>in</strong>eer<strong>in</strong>g Research Group,Institute of Management <strong>Science</strong>s, Peshawar, Pakistan{nauman,masoom,tamleek}@imsciences.edu.pk2 Samsung Information Systems America, San José, USAx<strong>in</strong>wen.z@samsung.comAbstract. UCON is a highly flexible and expressive usage control modelwhich allows an object owner to specify detailed usage control policies tobe evaluated on a remote platform. Assurance of correct enforcement ismandatory for the establishment of t<strong>ru</strong>st on the remote platform claim<strong>in</strong>gto implement UCON. Without such an assurance, there is no wayof know<strong>in</strong>g whether the policies attached to the objects will be enforcedas expected. Remote attestation, an important component of T<strong>ru</strong>stedComput<strong>in</strong>g, is highly suitable for establish<strong>in</strong>g such an assurance. Exist<strong>in</strong>gapproaches towards remote attestation work at a very coarse-gra<strong>in</strong>edlevel and mostly only measure b<strong>in</strong>ary hashes of the applications on theremote platform. Solutions at this level of abstraction cannot provideassurance to a challenger regard<strong>in</strong>g behavior of a remote platform concern<strong>in</strong>genforcement of the owner’s policies. In this paper, we provide anew remote attestation technique which allows a challenger to verify twoimportant behaviors of a UCON system enforc<strong>in</strong>g its policies. These twobehaviors are the attribute update behavior and <strong>in</strong>formation flow behavior.Measur<strong>in</strong>g, stor<strong>in</strong>g and report<strong>in</strong>g these behaviors <strong>in</strong> a t<strong>ru</strong>sted manneris described <strong>in</strong> detail and a mechanism for the verification of these behaviorsaga<strong>in</strong>st the orig<strong>in</strong>al UCON policies is provided. The end resultis a flexible and scalable technique for establish<strong>in</strong>g t<strong>ru</strong>st on attributeupdates and <strong>in</strong>formation flow behaviors of a remote UCON system.Keywords: Information flow, remote attestation, usage control,security.1 IntroductionUsage control deals with issues concern<strong>in</strong>g usage of protected objects based onthe policies of the object owner. While traditional access control models dealwith authorization issues such as who may access an object, usage control modelsaddress issues concern<strong>in</strong>g use of objects such as duration of each use, the numberof usages and ability to re-distribute etc.UCON [1] is a highly expressive usage control model which adds cont<strong>in</strong>uityof access decisions and mutability of attributes at the model level. Its majorL. Chen, C.J. Mitchell, and A. Mart<strong>in</strong> (Eds.): T<strong>ru</strong>st 2009, LNCS <strong>5471</strong>, pp. 63–80, 2009.c○ Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2009


64 M. Nauman et al.strength lies <strong>in</strong> the ability to specify elaborate usage control policies to be evaluatedon a remote platform. This strength of UCON to operate on a remoteplatform is also a source of concern. S<strong>in</strong>ce the owner of the object releases it to aremote platform, she has no way of ensur<strong>in</strong>g that the policies attached to it willbe enforced as specified. T<strong>ru</strong>sted comput<strong>in</strong>g [2] proposes an <strong>in</strong>novative approachfor establish<strong>in</strong>g t<strong>ru</strong>st on a remote platform <strong>in</strong> such a scenario. This approach,called Remote Attestation, allows a challenger to verify that the behavior ofa target platform is t<strong>ru</strong>stworthy. Exist<strong>in</strong>g approaches towards remote attestation<strong>in</strong>clude low-level techniques of present<strong>in</strong>g b<strong>in</strong>ary hashes of executables tothe challenger [3,4], middle-level approaches of mapp<strong>in</strong>g system configurationsto generic properties by a t<strong>ru</strong>sted third party [5] and a high level mechanismof measur<strong>in</strong>g <strong>in</strong>dividual components of a policy model for the establishment oft<strong>ru</strong>st [6]. The low- and middle-level techniques allow a challenger to staticallydeterm<strong>in</strong>e the identity of the applications <strong>ru</strong>nn<strong>in</strong>g on the client and propertiesof the system <strong>in</strong> general. They do not enable measurement of dynamic behaviorof a target application on the client. Moreover, it has been widely accepted thatb<strong>in</strong>ary hashes of executables alone are <strong>in</strong>sufficient for reason<strong>in</strong>g about t<strong>ru</strong>stworth<strong>in</strong>essof a platform [4,7]. Low-level b<strong>in</strong>ary hash based techniques are, therefore,not suitable for remote attestation of a UCON system.Consider for example, a UCON policy, which specifies that, “a media file canonly be played once by an <strong>in</strong>dividual <strong>in</strong> the public relations office for two m<strong>in</strong>utesonly and that each usage has to be logged”. Clearly, it is impossible to deduce,from the hash of an executable alone, that this policy will be enforced correctlyby the application.For deduc<strong>in</strong>g such <strong>in</strong>tricate details of an application’s behavior, Alam et al.have proposed Model-based Behavioral Attestation [6] i.e. attestation of a policymodel be<strong>in</strong>g followed by the target application for a specific purpose. Thistechnique proposes the decomposition of the behavior of a policy model <strong>in</strong>to its<strong>in</strong>dividual components and measur<strong>in</strong>g these <strong>in</strong>dividual behaviors. If the behaviorof each of the components can be attested by the challenger, the whole systemcan be deemed as t<strong>ru</strong>stworthy. Model-based Behavioral Attestation has specifiedthree behaviors of a UCON policy model – active subject/object behavior,attribute update behavior and state transition behavior. We note that the procedurefor the measurement of these behaviors is not a part of the Model-basedBehavioral Attestation framework.In this paper, we specify a technique for measurement, storage and report<strong>in</strong>gof the attribute update behavior and its verification aga<strong>in</strong>st the challenger’spolicies. Attribute updates are an <strong>in</strong>tegral part of the UCON model and heavily<strong>in</strong>fluence usage decisions [8]. Successful remote attestation of attribute updatebehavior would provide confidence to the challenger regard<strong>in</strong>g the t<strong>ru</strong>stworth<strong>in</strong>essof a target platform.We also identify another UCON model behavior – <strong>in</strong>formation flow behavior– which captures the possible <strong>in</strong>formation flows between objects <strong>in</strong> a UCONsystem. Attest<strong>in</strong>g the t<strong>ru</strong>stworth<strong>in</strong>ess of <strong>in</strong>formation flow behavior would provideassurance that no illegal <strong>in</strong>formation flows occurred on the client end dur<strong>in</strong>g


Remote Attestation of Attribute Updates and Information Flows 65the usage of the owner’s resources. Such assurance is critical <strong>in</strong> systems of adistributed nature [9]. Similar to the attribute update behavior, we provide adetailed mechanism for the measurement, storage, report<strong>in</strong>g and verification ofthe <strong>in</strong>formation flow behavior.Contributions: Our contributions <strong>in</strong> this paper are as follows: 1) We describea mechanism for record<strong>in</strong>g arbitrary data st<strong>ru</strong>ctures <strong>in</strong> the TPM as opposedto b<strong>in</strong>ary hashes of executables only. 2) We detail a procedure for measur<strong>in</strong>gthe behaviors of attribute updates and <strong>in</strong>formation flows <strong>in</strong> a UCON system.3) We provide a means of verify<strong>in</strong>g the behavior tokens returned by the targetapplication on the challenger side aga<strong>in</strong>st the orig<strong>in</strong>al UCON policies.Outl<strong>in</strong>e: The rest of the paper is organized as follows: In Section 2, we providebackground about the UCON model and describe the formal model usedfor our attestation purposes. Behavioral Attestation is <strong>in</strong>troduced <strong>in</strong> Section 3.Our UCON system attestation is described at length <strong>in</strong> Section 4 with attributeupdates and <strong>in</strong>formation flows covered <strong>in</strong> Sections 4.1 and 4.2 respectively. Previouswork related to this paper is mentioned <strong>in</strong> Section 5. F<strong>in</strong>ally, we concludeour work and present future directions <strong>in</strong> Section 6.2 UCONUCON [1] is a Usage CONtrol model, which builds heavily on traditional accesscontrol models. It <strong>in</strong>corporates dynamic usage of protected objects and changes<strong>in</strong> decisions to allow further access to these objects as a result of usage. This extensionis achieved through the <strong>in</strong>troduction of two novel features: access decisioncont<strong>in</strong>uity and attribute mutability.In a UCON system, the user <strong>in</strong>itiates a request for an object protected by theUCON system. The access decision depends on the policies and constra<strong>in</strong>ts forthe particular subject, object and right comb<strong>in</strong>ation, identified by (s, o, r). Therequest can either be granted or denied. Even if the request is <strong>in</strong>itially granted,the usage session does not end. The coupl<strong>in</strong>g of attribute mutability and accessdecision cont<strong>in</strong>uity means that due to the usage of the protected object, theattributes of the subject and/or object may change. As a result of this change,the decision to allow access might also be reversed. The usage session rema<strong>in</strong>s atstate access<strong>in</strong>g as long as the constra<strong>in</strong>ts allow the cont<strong>in</strong>ued use of the object.If the user ends the usage, the usage session moves to state end. If,however,theconstra<strong>in</strong>ts lead to a denial of access after some time, the state moves to revokedand the user is no longer allowed access to the object. Figure 1 shows the states<strong>in</strong> the UCON usage session [1].Zhang et al. [10] have formally specified the UCON model at a very abstractlevel. However, this formalization is not suitable for the purpose of <strong>in</strong>formationflow analysis and attestation of attribute updates. Instead, we use another formalizationof UCON by Zhang et al. [11] which has been formulated for safetyanalysis of the UCON model. Safety analysis of UCON is essential for our behaviorverification step. For the verification of behaviors collected on the target


66 M. Nauman et al.platform, we create a benchmark on the challenger side, which requires the safetyproblem of UCON to be decidable. However, Zhang et al. [11] have shown thatthe safety problem <strong>in</strong> general UCON is undecidable. They have def<strong>in</strong>ed the safetyproblem of a subset of UCON which <strong>in</strong>cludes only authorization predicates. Thissubset is termed as UCON A .AformalmodelofUCON A is def<strong>in</strong>ed <strong>in</strong> which aUCON system is composed of subjects, objects, rights, permissions primitive actionsand policies. Sets of subjects, objects and rights are denoted by S, O andR respectively and S ⊆ O. Apermission is a triple of (s, o, r) wheres ∈ S, o ∈ Oand r ∈ R. An attribute a of an object o is denoted by o.a. The set of attributesis shared by all objects and is denoted by AT T . Attributes are mapped to theirvalues us<strong>in</strong>g an assignment: o.a = v, wherev ∈ dom(a) ∪{null}.A UCON system state is a pair (O, σ) whereO is the set of objects andσ : O × AT T → dom(AT T ) ∪{null} is a function which maps each attribute ofeach object to a value or null. The <strong>in</strong>itial UCON state is denoted by (O 0 ,σ 0 ).A primitive action changes the system state. The three primitive actions <strong>in</strong>UCON A are createObject, destroyObject and updateAttribute. On the applicationof any of these actions, the state of a system is said to change from t to t ′where t is the state before the application of the action and t ′ is the state afterthe action has been performed. In any given state t, the permission function ρ tmaps a pair (subject, object) to a set of rights accord<strong>in</strong>g to their attribute values<strong>in</strong> state t.A UCON policy consists of a name, two parameter objects (usually a subjectand an object), an authorization <strong>ru</strong>le and a sequence of primitive actions.policy name(s, o) :p 1 ∧ p 2 ∧ ...∧ p n → permit(s, o, r)act 1 ; act 2 ; ...; act kIf one of the primitive actions <strong>in</strong> a policy is a createObject action, the policy iscalled a creat<strong>in</strong>g policy. The set of policies <strong>in</strong> a system is denoted by C. Changesto a system state occur as a result of application of a policy. For two UCONsystem states, (O t ,σ t )and(O t ′,σ t ′), t ↠ c t ′ denotes that there exists a pair ofobjects (o 1 ,o 2 )whereo 1 ∈ O t such that policy c(o 1 ,o 2 ) can be applied to t andchanges the state to t ′ .Moreover,t ↠ C t ′ if ∃c ∈ C.t ↠ c t ′ and t C t ′ if therepreupdate onupdate postupdatetryAccess permitAccess endAccessInitial request<strong>in</strong>g access<strong>in</strong>g enddenyAccessdeniedrevokeAccessrevokedpreupdatepostupdateFig. 1. The UCON Model States


Remote Attestation of Attribute Updates and Information Flows 67exists a sequence of states t 1 ,t 2 ,...,t n such that t ↠ C t 1 ↠ C t 2 ...↠ C t n ↠ Ct ′ . t C t ′ or simply t t ′ is called the transition history from t to t ′ .Zhang et al. have proven that the safety problem <strong>in</strong> this general model ofUCON A is undecidable [11]. In order to render the safety problem decidable,Zhang et al. propose some restrictions on the system. Different st<strong>ru</strong>ctures havebeen def<strong>in</strong>ed <strong>in</strong> the form of ground policies, attribute update graph and attributecreation graph to formalize these restrictions.Asetofground policies generated from a UCON policy ‘c’ denotes all theevaluations of the policy c with possible attribute tuples of the object parameterswhich satisfy the predicates <strong>in</strong> the authorization <strong>ru</strong>le of c. Assume AT T = {a}and dom(a) ={1, 2, 3} and the follow<strong>in</strong>g UCON policy:c(s, o) :s.a > o.a → permit(s, o, r)updateAttribute o : o.a = o.a +1Ground<strong>in</strong>g this policy generates the follow<strong>in</strong>g three ground policies:c(s :(a =3),o:(a =2):t<strong>ru</strong>e → permit(s, o, r)updateAttributeT uple o :(a =2)→ (a =3)c(s :(a =3),o:(a =1):t<strong>ru</strong>e → permit(s, o, r)updateAttributeT uple o :(a =1)→ (a =2)c(s :(a =2),o:(a =1):t<strong>ru</strong>e → permit(s, o, r)updateAttributeT uple o :(a =1)→ (a =2)Note that for attribute tuples for which the predicate is not t<strong>ru</strong>e (e.g. s :(a =1),o:(a = 1)), no ground policy is generated.A create ground policy is a ground policy, which conta<strong>in</strong>s a createObjectaction <strong>in</strong> its body. In such a policy, the attribute tuple of the first parameterobject is termed as create-parent attribute tuple and that of the second is termedas create-child attribute tuple. AnAttribute Creation Graph (ACG) is a directedgraph with nodes all possible attribute tuples and an edge from create-parentattribute tuple to a create-child attribute tuple if there exists a correspond<strong>in</strong>gground policy for these tuples.Similarly, <strong>in</strong> a ground policy which updates an attribute tuple, the old attributetuple is called the update-parent attribute tuple and the updated tuple iscalled the update-child attribute tuple. AnAttribute Update Graph (AUG) is adirected graph with nodes all possible attribute tuples and edges from updateparentattribute tuple to update-child attribute tuple if there exists a correspond<strong>in</strong>gground policy for these tuples.


68 M. Nauman et al.Us<strong>in</strong>g these st<strong>ru</strong>ctures, Zhang et al. [11] have shown that a UCON A systemwith f<strong>in</strong>ite attribute doma<strong>in</strong>s is decidable if the ACG is acyclic, the AUG hasno cycles conta<strong>in</strong><strong>in</strong>g a create-parent attribute tuple and <strong>in</strong> each creat<strong>in</strong>g groundpolicy, the attribute tuples of both the parent and child are updated. Usefulnessof UCON A systems with these restrictions has been shown. For a detaileddiscussion and proofs of these statements, we refer the reader to [11].In the next sections, we describe how a UCON A system with these restrictionscan be remotely attested us<strong>in</strong>g dynamic behaviors of the system recorded dur<strong>in</strong>genforcement of policies.3 Behavioral AttestationTraditional attestation techniques [3,4,5] rely solely on the b<strong>in</strong>ary hashes of applications<strong>ru</strong>nn<strong>in</strong>g on the client. A cha<strong>in</strong> of t<strong>ru</strong>st is established from the coreroot of t<strong>ru</strong>st (i.e. the T<strong>ru</strong>sted Platform Module) to the application. However, allof these techniques measure the target application statically without consider<strong>in</strong>gits <strong>in</strong>ner work<strong>in</strong>g [6]. A recent technique, Model-based Behavioral Attestation(MBA) [6], proposes a high-level framework for measur<strong>in</strong>g the <strong>in</strong>ternal work<strong>in</strong>gof the target application based on the dynamic behaviors of the differentcomponents of the application. We note that the MBA framework relies on theexistence of a small monitor module <strong>in</strong> the target application as part of theT<strong>ru</strong>sted Comput<strong>in</strong>g Base (TCB) 1 .The monitor, be<strong>in</strong>g a part of the TCB, can measure the dynamic behavior ofthe rest of the application <strong>in</strong> a t<strong>ru</strong>sted manner. Dur<strong>in</strong>g an attestation request, themonitor sends these measurements to the challenger where they can be verified.If the behavior depicted by these measurements is compliant with the objectowner’s policy, the challenger can be assured that the security policy is <strong>in</strong>deedbe<strong>in</strong>g enforced as expected. For the dynamic behaviors reported by the monitorto be t<strong>ru</strong>sted, there are two requirements.1. The monitor module has to be verified for correctness us<strong>in</strong>g formal methods.While formal verification of large systems is a complex procedure and quicklybecomes <strong>in</strong>feasible [13], verification of small components is easier and canyield many benefits. The monitor is a relatively small component and itsformal verification adds significantly to the confidence <strong>in</strong> the correctness ofthe functionality and subsequently to its reported measurements.2. Its hash has to attested us<strong>in</strong>g traditional attestation techniques such asIMA [3] or PRIMA [4]. In other words, this dynamic attestation techniqueis not exclusive of traditional attestation mechanisms but supports themby provid<strong>in</strong>g an added level of confidence through attestation of <strong>in</strong>ternalwork<strong>in</strong>g of the application and its dynamic behavior.The rest of the paper describes details of implementation of this monitor <strong>in</strong>a target application enforc<strong>in</strong>g UCON policies. We discuss the measurements to1 TCB is the collection of software and hardware components which are responsiblefor enforc<strong>in</strong>g security policies on a platform [12].


Remote Attestation of Attribute Updates and Information Flows 69be made for the dynamic behavior of attribute updates and <strong>in</strong>formation flows <strong>in</strong>the application and the mechanism for report<strong>in</strong>g these changes to the challenger<strong>in</strong> a t<strong>ru</strong>sted manner. We also describe how the reported behavior can be verifiedaga<strong>in</strong>st the challenger’s policy to ensure that the <strong>in</strong>formation flows and attributeupdates <strong>in</strong> the target UCON application are occurr<strong>in</strong>g as expected.4 UCON System AttestationUCON is primarily concerned with usage of an object after it is released to aremote platform. The owner of the object may not have control over the usageoftheobject.Itisthereforeimperativethatshebeabletoestablisht<strong>ru</strong>stonthe remote platform. Without the assurance of t<strong>ru</strong>stworth<strong>in</strong>ess of the UCONsystem on the remote platform, there is no way of ensur<strong>in</strong>g that the UCONpolicy attached to the object will <strong>in</strong>deed be enforced as expected [6].We focus on two aspects of a UCON system implementation <strong>in</strong> this contribution:1. Attributes play an important role <strong>in</strong> a UCON system. Attribute mutability isa core feature of UCON which lends the model its flexibility and expressivepower. The challenger needs to be able to verify remotely that attributeupdates occurr<strong>in</strong>g on the client are compliant with the policies.2. To ensure that no <strong>in</strong>formation leakage can occur, the challenger needs amechanism for remotely attest<strong>in</strong>g possible <strong>in</strong>formation flows on the target.Information flows not allowed by the policies of the challenger may lead to aleakage of <strong>in</strong>formation to unauthorized parties. By hav<strong>in</strong>g the client report allpossible <strong>in</strong>formation flow to the challenger <strong>in</strong> a t<strong>ru</strong>stworthy manner, possible<strong>in</strong>formation leakage can be successfully detected. 2To formulate a framework for these two requirements, we def<strong>in</strong>e two behaviors.The first requirement is captured by the attribute update behavior (AU)and the second is captured by the <strong>in</strong>formation flow behavior (IF). Eachofthese behaviors is monitored by the Behavior Manager (BM) which is a part ofthe UCON eng<strong>in</strong>e on the client end (cf. Section 3). The BM captures dynamicbehavior of attribute updates and possible <strong>in</strong>formation flows and is capable ofcommunicat<strong>in</strong>g these behaviors to the challenger <strong>in</strong> a t<strong>ru</strong>stworthy manner.Figure 2 depicts the architecture of remote attestation of a UCON system.When a target application on the client requests an object, the server, uponsuccessful authorization of the client, attaches a UCON policy to the object andreleases the protected object to the client. The object is registered with the UCONdecision eng<strong>in</strong>e on the client. Dur<strong>in</strong>g the usage of the object, usage authorizationdecisions and any updates which need to be performed are communicatedto the Behavior Manager. The Attribute Update Manager records proofs forthe attribute update behavior AU and the Information Flow Manager recordsproofs for the <strong>in</strong>formation flow behavior IF. Dur<strong>in</strong>g an attestation challenge,2 In this contribution, we focus on explicit <strong>in</strong>formation flows. Implicit <strong>in</strong>formationflows, such as those through covert channels, are not addressed.


70 M. Nauman et al.Fig. 2. Remote Attestation of a UCON Systemthe Behavior Manager collects these behavior proofs and reports them to thechallenger.Upon receipt of these two behaviors, the challenger performs two behaviorverification procedures. The attribute update verification module utilizes theorig<strong>in</strong>al UCON policies to generate ground policies (cf. Section 2) which are usedto verify the t<strong>ru</strong>stworth<strong>in</strong>ess of the attribute update behavior (cf. Section 4.1).The same set of UCON policies are utilized by the <strong>in</strong>formation flow attestationmechanism to verify the <strong>in</strong>formation flow behavior us<strong>in</strong>g an <strong>in</strong>formation flowcheck algorithm (cf. Section 4.2).The details of stor<strong>in</strong>g and report<strong>in</strong>g the two behaviors <strong>in</strong> a t<strong>ru</strong>sted manner onthe target platform and the verification mechanisms utilized on the challengerside are described below.4.1 Attribute Update BehaviorFor captur<strong>in</strong>g the attribute update behavior, the BM implements one or more AttributeUpdate Procedures (AUPs) which are responsible for updat<strong>in</strong>g attributeson the client end. The procedures take two <strong>in</strong>puts, either of which can be anattribute of an object or a constant.Individual calls to an attribute update procedure and subsequent attributeupdates are recorded through a graph st<strong>ru</strong>cture called the attribute flow graph.This st<strong>ru</strong>cture stores the relationship between updated attributes and the attributesused as <strong>in</strong>puts for this updation. Formally:


Remote Attestation of Attribute Updates and Information Flows 71(s1.a = 2) (o1.a = 1)(s1.a = 3) (o1.a = 1)s1.a(s1.a = 3) (o1.a = 2)o1.a(s2.a = 2) (o1.a = 2)s2.a(s1.a = 1) (o2.b = 0)(s2.a = 2) (o2.b = 0)(s2.a = 5)o2.bCONSTFig. 3. Attribute Flow Graph ExampleDef<strong>in</strong>ition 1 (Attribute Flow Graph). The Attribute Flow Graph (AFG)is a directed multi-graph (G,V) where G is a set of nodes represent<strong>in</strong>g objectattributes or a constant and V is a set of edges represent<strong>in</strong>g attribute updates.An edge directed from o i .a to o j .b denotes an update of o i .a and is labeled with(o i .a = dom(AT T )), (o j .b = dom(AT T )). The label captures the values of o i .aand o j .b before the update takes place. The special node called CONST is usedto denote all constants.Figure 3 shows a graphical representation of the AFG. Note that there may bemore than one attribute updates <strong>in</strong>volv<strong>in</strong>g the same set of object attributes butwith different values. An attribute update <strong>in</strong>volv<strong>in</strong>g a constant is represented byan edge from the target attribute to the CONST node.To capture the AFG <strong>in</strong> a t<strong>ru</strong>stworthy manner, we employ the const<strong>ru</strong>cts ofT<strong>ru</strong>sted Comput<strong>in</strong>g. The <strong>in</strong>itial value of the the AFG (i.e. null) and any subsequentchanges to it are stored <strong>in</strong> an Attribute Update Log (AUL). At startup, theBM <strong>in</strong>itializes the AUL with an <strong>in</strong>itialization token INIT. It monitors all callsto the AUP s and whenever a call is received, it creates an entry <strong>in</strong> the AUL. Anychange to the AUL is stored <strong>in</strong> a Platform Configuration Register (PCR) of theTPM by tak<strong>in</strong>g a hash of the entry and extend<strong>in</strong>g the PCR through pcr extend(cf. Figure 4). The hash of the update procedure (AUP x ) responsible for perform<strong>in</strong>gthe specific update is also recorded <strong>in</strong> the PCR through pcr extend. Thenew value of the PCR after an update is calculated as:PCR AULɛ = SHA-1( SHA-1(PCR AULɛ−1 || SHA-1(AUL ɛ )) ||SHA-1(AUP x ))Dur<strong>in</strong>g an attestation challenge, the BM receives a nonce from the challengerand submits the nonce to the TPM through a T<strong>ru</strong>sted Software Stack(TSS) [14,15,16]. It requests the TPM to perform a quote over the given PCRand nonce. The quoted value of the PCR is sent to the challenger along with theAUL for verification. 33 The <strong>in</strong>terested reader may refer to [17] for a detailed description of the quote operationover a PCR.


72 M. Nauman et al.INITs1.a:o1.a:s1.a=2:o1.a=1::AUP1s1.a:o2.b:s1.a=1:o2.b=0::AUP2s1.a:o1.a:s1.a=3:o1.a=1::AUP1s2.a:CONST:s2.a=5::AUPYs1.a:o1.a:s1.a=2:o1.a=2::AUPXs2.a:o1.a:s2.a=2:o1.a=2::AUP2s2.a:o2.b:s2.a=2:o2.b=0::AUP1// <strong>in</strong>itialize the AUL// update by AUP1 <strong>in</strong>volv<strong>in</strong>g s1.a and o1.a// update by AUP2 <strong>in</strong>volv<strong>in</strong>g s1.a and o2.b// ...// update by AUPY <strong>in</strong>volv<strong>in</strong>g s2.a and a constant// ...// ...// ...Fig. 4. Sample Attribute Update LogCaptur<strong>in</strong>g the dynamic behavior of updates is a relatively simple task. Oncethe attribute update log is received by the challenger, it has to be verified aga<strong>in</strong>stthe policy to ensure that all attribute updates occurr<strong>in</strong>g on the client complywith the policies of the challenger. The challenger utilizes the ground<strong>in</strong>g procedure,def<strong>in</strong>ed <strong>in</strong> Section 2, for this compliance check<strong>in</strong>g.In order for the attribute updates occurr<strong>in</strong>g on the client to be consideredas t<strong>ru</strong>stworthy, the challenger needs to be able to verify that, for each update,there exists a ground policy (generated as a result of ground<strong>in</strong>g of the policiessent to the client), which requires the update performed at the client end. Italso requires the hash of the update procedure responsible for perform<strong>in</strong>g theupdate to be t<strong>ru</strong>sted. The first step for the verification of attribute updatebehavior is the verification of the signature performed by the client’s TPM onthe PCR value. This ensures that the PCR values can be t<strong>ru</strong>sted to be signed bya genu<strong>in</strong>e TPM and not by a software masquerad<strong>in</strong>g as a TPM. The second stepis to verify the Attribute Update Log (AUL) aga<strong>in</strong>st the PCR value returned.This is a similar operation to the verification procedure used by the IntegrityMeasurement Architecture [3]. Hashes of entries <strong>in</strong> the AUL and those of theupdate procedures are concatenated <strong>in</strong> sequence to give the f<strong>in</strong>al value of thePCR. For each entry AUL ɛ <strong>in</strong> the AUL, the PCR value at AUL ɛ is given by:PCR AULɛ = SHA-1( SHA-1(PCR AULɛ−1 || SHA-1(AUL ɛ )) ||SHA-1(AUP x ))where AUP x is the procedure perform<strong>in</strong>g the update recorded <strong>in</strong> AUL ɛ .Ifthef<strong>in</strong>al value of the computation matches the value of the PCR returned by thetarget’s TPM, the challenger can be assured that the AUL has not been tamperedwith and can be used for verification of the target’s behavior.Thenextstep<strong>in</strong>theattributeupdatebehavior verification is to verify eachattribute update operation aga<strong>in</strong>st the ground policies to ensure that no illegalattribute updates have occurred on the target platform and that the hash of theupdate procedure responsible for perform<strong>in</strong>g the updates is a known good one.For each attribute update, represented by edges <strong>in</strong> the AFG, there must exist aground policy which updates the target (object, attribute) pair us<strong>in</strong>g the source(object, attribute) pair <strong>in</strong> the AFG. Attribute updates <strong>in</strong>volv<strong>in</strong>g constants mustbe verified aga<strong>in</strong>st the CONST node aga<strong>in</strong>st the values required by the groundpolicies. Formally:∀v ∈ V.∃c n ∈ C n .∃uo ∈ c n .target(uo) =target(v)∧∃s ∈ sources(uo).s = source(v)∧∀o.a ∈ v.value(o.a) =avalue(o.a, uo)


Remote Attestation of Attribute Updates and Information Flows 73where uo is an update operation <strong>in</strong> a ground policy c n , target(uo) is the outputof the update operation, sources(uo) are the <strong>in</strong>puts to the update operation uo,value(o.a) returns the value of the attribute a of object o dur<strong>in</strong>g the update procedureand avalue(o.a, uo) returns the attribute value of o.a from the attributetuple of uo.If the above condition is satisfied by the complete AFG, the challenger canbe assured that all attribute update operations performed on the client havebeen <strong>in</strong> compliance with the UCON policies. We def<strong>in</strong>e the t<strong>ru</strong>stworth<strong>in</strong>ess oftheattributeupdatebehaviorAU as:AU.behavior = t<strong>ru</strong>sted iff∀v ∈ V.∃c n ∈ C n .∃uo ∈ c n .target(uo) =target(v)∧∃s ∈ sources(uo).s = source(v)∧∀o.a ∈ v.value(o.a) =avalue(o.a, uo)∧∀a ∈AUP x . a.behavior = t<strong>ru</strong>stedIn essence, attribute update behavior is t<strong>ru</strong>sted if and only if 1) all attributeupdates tak<strong>in</strong>g place on the target mach<strong>in</strong>e are allowed by some ground policiesgenerated from the orig<strong>in</strong>al usage policies of the challenger and 2) all theprocedures responsible for perform<strong>in</strong>g attribute updates on the target are alsot<strong>ru</strong>sted.4.2 Information Flow BehaviorFor the measurement of the <strong>in</strong>formation flow behavior, the Behavior Manage<strong>ru</strong>tilizes an Information Flow Manager. This component of the UCON implementationis responsible for ma<strong>in</strong>ta<strong>in</strong><strong>in</strong>g a st<strong>ru</strong>cture called the Access Rights Graph(ARG). The ARG records <strong>in</strong>formation about which objects have been grantedaccess rights to other objects. Formally:Def<strong>in</strong>ition 2 (Access Rights Graph). An Access Rights Graph (ARG) is adirected graph (H, W) where H is a set of nodes represent<strong>in</strong>g the objects and Wis a set of edges represent<strong>in</strong>g rights. An edge from h 1 to h 2 labeled r denotes therights r assigned to h 1 on h 2 at some po<strong>in</strong>t <strong>in</strong> the usage history where h 1 ,h 2 ∈ H,r ∈ 2 R and R is the set of rights.Figure 5 shows a graphical depiction of the ARG. To store and later report thisst<strong>ru</strong>cture <strong>in</strong> a t<strong>ru</strong>sted manner, the BM utilizes a technique similar to that usedfor captur<strong>in</strong>g the AFG. The <strong>in</strong>itial (empty) value of the ARG is stored <strong>in</strong> aAccess Rights Log (ARL). The ARL is <strong>in</strong>itialized as empty by sett<strong>in</strong>g it to thevalue INIT. Any decisions by the UCON decision module are captured by theARL. If an access is granted to a subject s on an object o for right r, nodessand o are added to the ARG, if they are not already present. An entry is made<strong>in</strong> the ARL for record<strong>in</strong>g the addition of the nodes. An edge, directed from s


74 M. Nauman et al.{ delete }s 3{ pr<strong>in</strong>t }s 1{ read, write }{ read, write, copy }{ copy, delete, append }o 1{ read, pr<strong>in</strong>t }{ write }s 2o 3{ read }o 2Fig. 5. Access Rights Graph Exampleto o is added to the ARG and labeled {r} if such an edge doesn’t already exist.If the edge already exists, right r is added to the set of rights on the edge. Anentry is made <strong>in</strong> the ARL correspond<strong>in</strong>g to the addition of the right for s on o.Figure 6 shows an example ARL created as a result of different usage decisions.Whenever an entry is appended to the ARL, its hash is calculated by theInformation Flow Manager and stored <strong>in</strong> the PCR through pcr extend. Dur<strong>in</strong>gan attestation challenge, the ARL and this PCR value is returned to thechallenger where verification of these st<strong>ru</strong>ctures aga<strong>in</strong>st the challenger’s UCONpolicies takes place.For the verification of the ARL on the challenger side, we utilize an <strong>in</strong>formationflow check algorithm which utilizes the same semantics as the UCONsafety check algorithm presented by Zhang et al. [10]. The first step, as <strong>in</strong> theverification of the ARL, is to verify the signature by the TPM to ensure thatthe PCR values returned are from a genu<strong>in</strong>e TPM and that the ARL is t<strong>ru</strong>sted.Every entry ARL ɛ <strong>in</strong> the ARL is concatenated <strong>in</strong> sequence to give the f<strong>in</strong>al valueof the PCR as:PCR ARLɛ = SHA-1(PCR ARLɛ−1 || SHA-1(ARL ɛ ))Verification of the entries <strong>in</strong> the ARL provides assurance to the challenger thatthe ARL has not been tampered with. The <strong>in</strong>dividual entries <strong>in</strong> the ARL areINITADD|s1ADD|o3ASSIGN|s1:o3:deleteADD|o1ASSIGN|s1:o1:readADD|o2ASSIGN|s1:o2:append...// <strong>in</strong>itialize the ARL// add a new subject s1// add a new object o3// assign right delete to s1 on o3// ...// ...// ...// ...Fig. 6. Sample Access Rights Log


Remote Attestation of Attribute Updates and Information Flows 75Discarded: No<strong>in</strong>formation Flowo3o1o2Fig. 7. Information Flow Graph correspond<strong>in</strong>g to ARG <strong>in</strong> Figure 5used to re-generate the ARG on the challenger side. After this re-generation, thechallenger creates an Information Flow Graph (IFG). The IFG depicts possible<strong>in</strong>formation flows implied by the Access Rights Graph. Formally:Def<strong>in</strong>ition 3 (Information Flow Graph). An Information Flow Graph(IFG) is a directed graph (I,U) where I is a set of nodes represent<strong>in</strong>g the objectsand U is a set of edges represent<strong>in</strong>g possible <strong>in</strong>formation flow <strong>in</strong> the direction ofthe edge. An edge from i 1 to i 2 denotes that <strong>in</strong>formation may have flown fromi 1 to i 2 where i 1 ,i 2 ∈ I.To const<strong>ru</strong>ct the IFG from the ARG, we first def<strong>in</strong>e all rights as read-like, writelike,read-write-like or no-impact [18]. No-impact operations are those whichcannot play a part <strong>in</strong> <strong>in</strong>formation flow (such as pr<strong>in</strong>t) and are discarded immediately.Afterwards, all objects <strong>in</strong> the ARG are represented <strong>in</strong> the IFG. For eachsubject s <strong>in</strong> the ARG, an edge is created from o 1 to o 2 if a read-like (or readwrite-like)operation is granted to s on o 1 and a write-like (or read-write-like)operation is granted to s on o 2 . Afterwards, orphan nodes are removed from theIFG. Figure 7 shows an IFG correspond<strong>in</strong>g to the ARG of Figure 5.For the verification of possible <strong>in</strong>formation flows as depicted by the IFG thefollow<strong>in</strong>g procedure is adopted. For each edge on the IFG, Algorithm 1 is appliedto ensure that the <strong>in</strong>formation flow is compliant with the policies of the challenger.The algorithm takes an <strong>in</strong>itial UCON state and a set of ground policiesas <strong>in</strong>puts. A f<strong>in</strong>ite automaton (FA) is created which maps changes to the UCONstate as a result of apply<strong>in</strong>g non-creat<strong>in</strong>g ground polices (l<strong>in</strong>e 2). For each state<strong>in</strong> the result<strong>in</strong>g FA, a few operations are performed. First, all subjects whichhave been assigned a read-like (or read-write-like) right on o 1 are added to theset read<strong>in</strong>g (l<strong>in</strong>es 4,6). If one of the subjects was previously granted a write-likeoperation on o 2 , the algorithm immediately returns t<strong>ru</strong>e (l<strong>in</strong>e 7) as the subjectwould have been able to cause <strong>in</strong>formation to flow from o 1 to o 2 .A similar procedure is followed for write-like operations (l<strong>in</strong>e 9). All subjectswhich have been assigned a write-like operation (or read-write-like operation)on o 2 are added to the set writ<strong>in</strong>g (l<strong>in</strong>es 9,11) and if one of them was previouslyassigned a read-like operation on o 1 , the algorithm returns t<strong>ru</strong>e immediately(l<strong>in</strong>e 12). 4F<strong>in</strong>ally, creat<strong>in</strong>g ground policies are applied (l<strong>in</strong>e 15) to extend the UCONsystem with new objects and InfoFlowCheck() algorithm is called recursively(l<strong>in</strong>e 20) to check for possible <strong>in</strong>formation flows <strong>in</strong> this expanded space.4 Note that the algorithm only checks for <strong>in</strong>formation flow from o 1 to o 2 and not <strong>in</strong>the other direction.


76 M. Nauman et al.Algorithm 1. Information Flow Check AlgorithmInput: UCON A system with <strong>in</strong>itial state t 0 =(O 0,σ 0), a f<strong>in</strong>ite set of ground policiesand two objects, o 1 and o 2Output: A boolean value which is t<strong>ru</strong>e only if <strong>in</strong>formation can flow from o 1 to o 21) InfoFlowCheck(O 0,t 0)2) Const<strong>ru</strong>ct a f<strong>in</strong>ite state automaton FA with objects O 0 and the set of non-creat<strong>in</strong>gground policies as <strong>in</strong> [11]3) foreach t 0 t ∈FAdo4) collect ς = {x|r ∈ ρ t(x, o 1) ∧ r =‘read’}5) foreach s ∈ ς do6) read<strong>in</strong>g := read<strong>in</strong>g ∪{s}// ma<strong>in</strong>ta<strong>in</strong> a set of subjects which have been allowed to read from o 17) if s ∈ writ<strong>in</strong>g return t<strong>ru</strong>e;8) end for9) collect ς = {x|r ∈ ρ t(x, o 2) ∧ r =‘write’}10) foreach s ∈ ς do11) writ<strong>in</strong>g := writ<strong>in</strong>g ∪{s}// ma<strong>in</strong>ta<strong>in</strong> a set of subjects which have been allowed to write to o 212) if s ∈ read<strong>in</strong>g return t<strong>ru</strong>e;13) end for14) foreach subject s <strong>in</strong> t do15) foreach creat<strong>in</strong>g ground policy c(s : τ s,o: τ o), where τ s(a) =σ s(o.a) do16) enforce c(s : τ s,o: τ o);17) create object o and update its attribute tuple to τ o;′18) update s’s attribute tuple to τ s;′19) the system state changes to t ′ with new object o and update attributes ofs and o ;20) InfoFlowCheck(O 0 ∪{o},t ′ )21) end for22) end for23) end forThe t<strong>ru</strong>stworth<strong>in</strong>ess of the <strong>in</strong>formation flow behavior IF is def<strong>in</strong>ed as:IF.behavior = t<strong>ru</strong>sted iff ∀u ∈ U. InfoF lowCheck(u) =t<strong>ru</strong>ewhere U is the set of edges <strong>in</strong> the IFG.Concisely, <strong>in</strong>formation flow behavior is t<strong>ru</strong>sted if and only if all possible pathsof <strong>in</strong>formation flow on the client comply with the challenger’s usage policies.5 Related WorkOne of the earliest and most significant works analyz<strong>in</strong>g <strong>in</strong>formation flow modelsis by Denn<strong>in</strong>g [19] <strong>in</strong> which mechanisms for <strong>in</strong>formation flow are formalizedus<strong>in</strong>g a lattice st<strong>ru</strong>cture of labels and classes of objects. JFlow [20] is a securitytypedlanguage provid<strong>in</strong>g “mostly-static” <strong>in</strong>formation flow control by assign<strong>in</strong>glabels to objects with<strong>in</strong> the source code and ensur<strong>in</strong>g that <strong>in</strong>formation flows


Remote Attestation of Attribute Updates and Information Flows 77comply with the security policy of the programmer. JFlow relies on a specializedcompiler and <strong>in</strong>formation flow controll<strong>in</strong>g virtual mach<strong>in</strong>e for enforcementof <strong>in</strong>formation flow control. Haldar et al. [21] have devised a mechanism for implement<strong>in</strong>gmandatory access control (MAC) mechanisms <strong>in</strong> virtual mach<strong>in</strong>esfor controll<strong>in</strong>g <strong>in</strong>formation flows. They propose the use of <strong>ru</strong>n-time policy enforcementas opposed to the mostly-static compile time checks [20] for enforc<strong>in</strong>gMAC policies. Nair et al. [22] have presented an <strong>in</strong>formation flow control systemwhich addresses the issue of implicit <strong>in</strong>formation flows. The result<strong>in</strong>g frameworkis capable of dynamically assign<strong>in</strong>g labels to objects and propagat<strong>in</strong>g these labelsbased on <strong>in</strong>formation and control flow.All of these models and mechanisms address either <strong>in</strong>formation flow controlor audit but do not deal with remote attestation of <strong>in</strong>formation flows, the underly<strong>in</strong>genvironment or the target application. However, as can be seen, someof them deal with implicit <strong>in</strong>formation flows as well as explicit ones and can,therefore, help <strong>in</strong> future extensions of this work.From the aspect of remote attestation, several works have been proposed.These <strong>in</strong>clude the Integrity Measurement Architecture [3], which allows a remoteparty to verify the t<strong>ru</strong>stworth<strong>in</strong>ess of a target platform based on the load-time<strong>in</strong>tegrity of b<strong>in</strong>aries on the target platform. Policy Reduced Integrity MeasurementArchitecture (PRIMA) [4] targets a specific application by analyz<strong>in</strong>g the<strong>in</strong>formation flow to and from the target application but still does not address<strong>in</strong>ternal st<strong>ru</strong>ctures and semantics of the application. LKIM [7] is one of thefew approaches, which target the dynamic behavior of a system. It verifies the<strong>in</strong>tegrity of a L<strong>in</strong>ux kernel by measur<strong>in</strong>g and report<strong>in</strong>g the target’s dynamicstate [23]. It has been shown to detect malicious code, which could not be detectedus<strong>in</strong>g hashes of static code.Gu et al. [24] have described a new approach for measur<strong>in</strong>g the behavior of anapplication us<strong>in</strong>g static analysis of the source code and verification of programexecution aga<strong>in</strong>st this benchmark.The attestation technique described <strong>in</strong> our contribution is significantly differentfrom both these approaches <strong>in</strong> two respects. Firstly, we utilize the TPMhardware for t<strong>ru</strong>sted storage and report<strong>in</strong>g of measurements. Secondly, our approachutilizes the owner’s policies for the creation of a basel<strong>in</strong>e. This allows forthe <strong>in</strong>tegrity verification of a specific application for a particular purpose, thusgreatly reduc<strong>in</strong>g the complexity of attestation.Semantic Remote Attestation [25] is closest to the approach described <strong>in</strong> thispaper. It proposes the use of a T<strong>ru</strong>sted Virtual Mach<strong>in</strong>e, which is established ast<strong>ru</strong>sted and is then expected to enforce the policies at the VM level. However,t<strong>ru</strong>st on the correct enforcement of the policies is implied and no mechanismfor measur<strong>in</strong>g the correctness of the enforcement is provided. Our techniquebuilds on this approach and describes a detailed architecture for us<strong>in</strong>g <strong>ru</strong>ntimemeasurements of the behavior <strong>in</strong> a t<strong>ru</strong>sted manner for dynamic behavioralattestation of a target application. To the best of our knowledge, no work hasbeen done for the attestation of attribute updates and <strong>in</strong>formation flows <strong>in</strong> aUCON system at this level of detail.


78 M. Nauman et al.6 Conclusion and Future WorkRemote attestation is an <strong>in</strong>tegral part of T<strong>ru</strong>sted Comput<strong>in</strong>g. It allows a challengerto establish the t<strong>ru</strong>stworth<strong>in</strong>ess of a remote platform depend<strong>in</strong>g on itsbehavior. Recent advances <strong>in</strong> remote attestation have led us to believe thatmeasur<strong>in</strong>g the hashes of executables on the remote platform is <strong>in</strong>sufficient forthe establishment of t<strong>ru</strong>st. It is necessary to verify the dynamic behavior and<strong>in</strong>ternal function<strong>in</strong>g of a target application. In this paper, we have proposed amechanism for attest<strong>in</strong>g the dynamic behavior of UCON – a highly expressiveusage control model. Two important aspects of UCON, attribute updates and<strong>in</strong>formation flow, have been described. We have presented details regard<strong>in</strong>g measurement,storage and verification of these behaviors <strong>in</strong> a t<strong>ru</strong>stworthy manner.The model of UCON under consideration is UCON A with certa<strong>in</strong> restrictions,which has previously been shown to be useful <strong>in</strong> practical scenarios. Establishmentof t<strong>ru</strong>st on a remote party implement<strong>in</strong>g this model will provide confidenceto the challenger that her policies will <strong>in</strong>deed be enforced on the remote end asdictated.This paper has <strong>in</strong>troduced the novel concept and semantics of us<strong>in</strong>g a small‘behavior manager’ component on the remote platform for collect<strong>in</strong>g t<strong>ru</strong>st tokensused dur<strong>in</strong>g attestation. This concept has been applied to collect and verifyattribute update behavior and <strong>in</strong>formation flow behavior. The same techniquecan, with slight modifications, be applied for collect<strong>in</strong>g various other types oft<strong>ru</strong>st tokens, such as <strong>in</strong>formation flows to and from other applications, systemcalls and <strong>in</strong>put/output to storage devices, for an even more detailed <strong>in</strong>spectionof the dynamic behavior of the target application. These and other behaviorsare be<strong>in</strong>g considered for attestation of UCON and even generalized applicationsnot follow<strong>in</strong>g the UCON model. These form the basis of ongo<strong>in</strong>g work <strong>in</strong> thisresearch.AcknowledgementsThis research work has been supported by Grant No. ICTRDF/TR&D/2008/45from the National ICT R&D Fund, Pakistan to Security Eng<strong>in</strong>eer<strong>in</strong>g Research Group,Institute of Management <strong>Science</strong>s, Peshawar.References1. Park, J., Sandhu, R.: Towards Usage Control Models: Beyond Traditional AccessControl. In: SACMAT 2002: Proceed<strong>in</strong>gs of the seventh ACM Symposium on AccessControl Models and Technologies, pp. 57–64. ACM Press, New York (2002)2. T<strong>ru</strong>sted Comput<strong>in</strong>g Group, http://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/3. Sailer, R., Zhang, X., Jaeger, T., van Doorn, L.: Design and Implementation ofa TCG-based Integrity Measurement Architecture. In: SSYM 2004: Proceed<strong>in</strong>gsof the 13th conference on USENIX Security Symposium, Berkeley, CA, USA,USENIX Association (2004)


Remote Attestation of Attribute Updates and Information Flows 794. Jaeger, T., Sailer, R., Shankar, U.: PRIMA: Policy-Reduced Integrity MeasurementArchitecture. In: SACMAT 2006: Proceed<strong>in</strong>gs of the eleventh ACM Symposium onAccess Control Models and Technologies, pp. 19–28. ACM Press, New York (2006)5. Sadeghi, A.R., Stüble, C.: Property-based Attestation for Comput<strong>in</strong>g Platforms:Car<strong>in</strong>g about Properties, not Mechanisms. In: NSPW 2004: Proceed<strong>in</strong>gs of the2004 Workshop on New Security Paradigms, pp. 67–77. ACM Press, New York(2004)6. Alam, M., Zhang, X., Nauman, M., Ali, T., Seifert, J.P.: Model-based BehavioralAttestation. In: SACMAT 2008: Proceed<strong>in</strong>gs of the thirteenth ACM symposiumon Access control models and technologies. ACM Press, New York (2008)7. Loscocco, P.A., Wilson, P.W., Pendergrass, J.A., McDonell, C.D.: L<strong>in</strong>ux KernelIntegrity Measurement Us<strong>in</strong>g Contextual Inspection. In: STC 2007: Proceed<strong>in</strong>gs ofthe 2007 ACM Workshop on Scalable T<strong>ru</strong>sted Comput<strong>in</strong>g, pp. 21–29. ACM, NewYork (2007)8. Zhang, X., Nakae, M., Cov<strong>in</strong>gton, M.J., Sandhu, R.S.: Toward a Usage-Based SecurityFramework for Collaborative Comput<strong>in</strong>g Systems. ACM Trans. Inf. Syst.Secur. 11(1) (2008)9. Srivatsa, M., Balfe, S.: T<strong>ru</strong>st Management For Secure Information Flows. In: CCS2008: Proceed<strong>in</strong>gs of the 15th ACM Conference on <strong>Computer</strong> and CommunicationsSecurity, pp. 175–187. ACM, New York (2008)10. Zhang, X., Parisi-Presicce, F., Sandhu, R., Park, J.: Formal Model and PolicySpecification of Usage Control. ACM Trans. Inf. Syst. Secur. 8(4), 351–387 (2005)11. Zhang, X., Sandhu, R., Parisi-Presicce, F.: Safety Analysis of Usage Control AuthorizationModels. In: ASIACCS 2006: Proceed<strong>in</strong>gs of the 2006 ACM Symposiumon Information, computer and communications security, pp. 243–254. ACM, NewYork (2006)12. Kanerva, P.: Anonymous Authorization <strong>in</strong> Networked Systems: An Implementationof Physical Access Control System. Masters Thesis. Hels<strong>in</strong>ki University ofTechnology (March 2001)13. Bella, G., Paulson, L.C., Massacci, F.: The Verification of an Industrial PaymentProtocol: the SET Purchase Phase. In: CCS 2002: Proceed<strong>in</strong>gs of the 9th ACMConference on <strong>Computer</strong> and Communications Security, pp. 12–20. ACM, NewYork (2002)14. TCG Software Stack (TSS) Specifications,https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/specs/TSS/15. T<strong>ru</strong>sted Comput<strong>in</strong>g for the Java(tm) Platform,http://t<strong>ru</strong>stedjava.sourceforge.net/16. Java Community Process. JSR321: T<strong>ru</strong>sted Comput<strong>in</strong>g API for Java,http://jcp.org/en/jsr/detail?id=32117. Alam, M., Zhang, X., Nauman, M., Ali, T.: Behavioral Attestation for Web Services(BA4WS). In: SWS 2008: Proceed<strong>in</strong>gs of the ACM Workshop on Secure Web Services(SWS) located at 15th ACM Conference on <strong>Computer</strong> and CommunicationsSecurity (CCS-15). ACM Press, New York (2008)18. Guttman, J.: Verify<strong>in</strong>g Information Flow Goals <strong>in</strong> Security-Enhanced L<strong>in</strong>ux. Journalof <strong>Computer</strong> Security 13(1), 115–134 (2005)19. Denn<strong>in</strong>g, D.E., Denn<strong>in</strong>g, P.J.: Certification of programs for secure <strong>in</strong>formation flow.Commun. ACM 20(7), 504–513 (1977)20. Myers, A.C.: JFlow: Practical Mostly-static Information Flow Control. In: POPL1999: Proceed<strong>in</strong>gs of the 26th ACM SIGPLAN-SIGACT symposium on Pr<strong>in</strong>ciplesof programm<strong>in</strong>g languages, pp. 228–241. ACM, New York (1999)


80 M. Nauman et al.21. Haldar, V., Chandra, D., Franz, M.: Practical, Dynamic Information-flow for VirtualMach<strong>in</strong>es, www.vivekhaldar.com/pubs/plid2005.pdf22. Nair, S., Simpson, P., Crispo, B., Tanenbaum, A.: A Virtual Mach<strong>in</strong>e Based InformationFlow Control System for Policy Enforcement. Electronic <strong>Notes</strong> <strong>in</strong> Theoretical<strong>Computer</strong> <strong>Science</strong> 197(1), 3–16 (2008)23. Thober, M., Pendergrass, J.A., McDonell, C.D.: Improv<strong>in</strong>g Coherency of RuntimeIntegrity Measurement. In: STC 2008: Proceed<strong>in</strong>gs of the 2008 ACM Workshop onScalable T<strong>ru</strong>sted Comput<strong>in</strong>g. ACM, New York (2008)24. Gu, L., D<strong>in</strong>g, X., Deng, R., Xie, B., Mei, H.: Remote Attestation on ProgramExecution. In: STC 2008: Proceed<strong>in</strong>gs of the 2008 ACM Workshop on ScalableT<strong>ru</strong>sted Comput<strong>in</strong>g. ACM, New York (2008)25. Haldar, V., Chandra, D., Franz, M.: Semantic Remote Attestation – A VirtualMach<strong>in</strong>e directed approach to T<strong>ru</strong>sted Comput<strong>in</strong>g In. Proc. of the Third VirtualMac<strong>in</strong>e Research and Technology Symposium USENIX (2004)


Measur<strong>in</strong>g Semantic Integrity for RemoteAttestationFabrizio Baiardi 1 , Diego Cilea 2 , Daniele Sgandurra 2 , and Francesco Ceccarelli 31 Polo G. Marconi, La SpeziaUniversità di Pisa, Italybaiardi@di.unipi.it2 Dipartimento di InformaticaUniversità di Pisa, Italy{cilea,daniele}@di.unipi.it3 ENEL SpA, Italyfrancesco.ceccarelli@enel.itAbstract. We propose a framework for the attestation of the <strong>in</strong>tegrityof a remote system that considers not only the configuration of the systemto be attested but also its current behaviour. The result<strong>in</strong>g architecture,called Virtual mach<strong>in</strong>e Integrity Measurement System (VIMS), isbased upon virtualization technology and it <strong>ru</strong>ns two virtual mach<strong>in</strong>es ona system to be attested, i.e. the Client (C-VM) and the Assurance VM(A-VM). A generic remote server (REM-S) accepts <strong>in</strong>com<strong>in</strong>g connectionsand cooperates with the A-VM to authenticate and attest the <strong>in</strong>tegrityof the C-VM and of the software it <strong>ru</strong>ns. The A-VM is a shadow mach<strong>in</strong>ethat exploits virtual mach<strong>in</strong>e <strong>in</strong>trospection to apply a set of consistencychecks on the configuration of the C-VM and on the software it currently<strong>ru</strong>ns. The checks depend upon the security policies that the REM-S establishes<strong>in</strong> the <strong>in</strong>itial connection handshake. The REM-S def<strong>in</strong>es boththe complexity of checks to be applied and the frequency of their executionand it communicates the security policy to the A-VM througha control channel. Policies that can be applied range from the one thatsimply checks the <strong>in</strong>tegrity of the b<strong>in</strong>aries loaded by the C-VM to thosethat cont<strong>in</strong>uously monitor the dynamic behaviour of applications to discoverattacks that alter their expected behaviour. The control channelalso transmits the results of the checks from the A-VM to the REM-S.As an example, remote attestation can be adopted when a client softwareon the C-VM tries to establish a secure channel to a REM-S on anIntranet.After describ<strong>in</strong>g the overall VIMS architecture, we present and discussthe implementation and the performance of a first prototype.1 IntroductionIntranet access has become a fundamental prerequisite for corporate users. Onthe other hand, network adm<strong>in</strong>istrators cannot guarantee the confidentiality andL. Chen, C.J. Mitchell, and A. Mart<strong>in</strong> (Eds.): T<strong>ru</strong>st 2009, LNCS <strong>5471</strong>, pp. 81–100, 2009.c○ Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2009


82 F. Baiardi et al.the <strong>in</strong>tegrity of Intranet data that may be accessed by remote clients becauselittle assurance about the <strong>in</strong>tegrity of these clients can be established. In fact,an attacker may have compromised a client application to download or modifycorporate data through the remote access ga<strong>in</strong>ed by the client. A solution to thisproblem requires a general notion of <strong>in</strong>tegrity that, first of all, should considerthat a client system can be t<strong>ru</strong>sted only if it executes applications <strong>in</strong> a predef<strong>in</strong>edset. Moreover, these applications should be cont<strong>in</strong>uously monitored to discoverif they have been attacked. In other words, s<strong>in</strong>ce both these applications andthe underly<strong>in</strong>g software can be attacked, the notion of <strong>in</strong>tegrity should also take<strong>in</strong>to account <strong>ru</strong>n-time attacks aga<strong>in</strong>st both applications and the OS rather thanmerely verify<strong>in</strong>g that the proper b<strong>in</strong>aries have been loaded.Virtual mach<strong>in</strong>e Integrity Measurement System (VIMS) is an architecturethat implements the proposed approach to <strong>in</strong>tegrity measurement and that canbe adopted to protect networks by audit<strong>in</strong>g endpo<strong>in</strong>t configurations. VIMS evaluatesthe <strong>in</strong>tegrity of a remote host and it imposes a security policy before theplatform can connect to an exist<strong>in</strong>g network to access some of the services itoffers. In more detail, VIMS can guarantee the <strong>in</strong>tegrity of a client system thatis try<strong>in</strong>g to connect to the network, where the adopted notion of <strong>in</strong>tegrity <strong>in</strong>cludesnot only the correct configuration of the system and of the software it<strong>ru</strong>ns, but also that the client does not execute some malware that changes theoverall behaviour of its applications. To this purpose, VIMS exploits virtualizationtechnology to enable the client system to <strong>ru</strong>n two virtual mach<strong>in</strong>es (VMs)on top of a virtual mach<strong>in</strong>e monitor (VMM). The Client VM (C-VM) <strong>ru</strong>ns theclient software, such as a VPN client application to connect to a remote server(REM-S), while the Assurance VM (A-VM) is a shadow VM that applies a setof security checks on the memory of the C-VM. These checks measure, on behalfof the REM-S, the <strong>in</strong>tegrity of the software that the C-VM <strong>ru</strong>ns. The A-VMcan either apply consistency checks periodically or on demand when requestedby the REM-S. Furthermore, the complexity of the checks that it applies is afunction of the degree of the assurance that the REM-S requires. As soon asthe A-VM detects anomalous behaviour or some malware, for example a rootkit<strong>in</strong> the memory of the C-VM, it contacts the REM-S that can tear down theconnection with the C-VM.The rest of the paper is organised as follows. Section 2 <strong>in</strong>troduces the ma<strong>in</strong>concepts underly<strong>in</strong>g VIMS, such as t<strong>ru</strong>sted comput<strong>in</strong>g, virtualization, semanticattestation and discusses related works. Section 3 presents the overall architectureof VIMS. The current prototype implementation is discussed <strong>in</strong> Sect. 4.Section 5 presents a first set of performance results. F<strong>in</strong>ally, Sect. 6 draws someconclusions and outl<strong>in</strong>es future developments.2 BackgroundAfter discuss<strong>in</strong>g some related works, this section <strong>in</strong>troduces the ma<strong>in</strong> conceptsunderly<strong>in</strong>g VIMS.


2.1 Related WorksMeasur<strong>in</strong>g Semantic Integrity for Remote Attestation 83T<strong>ru</strong>sted Virtual Doma<strong>in</strong>s (TVDs) [1] [2] is an architecture where comput<strong>in</strong>g servicescan be offloaded <strong>in</strong>to execution environments that demonstrably meet aset of security requirements. A TVD is an abstract union <strong>in</strong>clud<strong>in</strong>g by an <strong>in</strong>itiatorand one or more responders. Dur<strong>in</strong>g the process of jo<strong>in</strong><strong>in</strong>g, all the partiesspecify and confirm the set of mutual requirements and each party is assuredof the identity and <strong>in</strong>tegrity of the computer system of the remote party. Theenforcement of the attestation is delegated to virtual environments. Terra [3] isa VM-based architecture for t<strong>ru</strong>sted comput<strong>in</strong>g that enables applications withdist<strong>in</strong>ct security requirements to <strong>ru</strong>n simultaneously on commodity hardware.The software stack <strong>in</strong> each VM can be tailored to meet the security requirementsof its applications. [4] discusses the design and implementation of Integrity MeasurementArchitecture (IMA), which is a secure <strong>in</strong>tegrity measurement systemfor L<strong>in</strong>ux. This architecture enables a system to prove that the <strong>in</strong>tegrity of a programon a remote system is sufficient. IMA uses the T<strong>ru</strong>sted Platform Module(TPM) to detect subversion of the measurements system by compar<strong>in</strong>g a hashvalue stored <strong>in</strong> the TPM aga<strong>in</strong>st the one <strong>in</strong> the measurement system audit log.UCL<strong>in</strong>ux [5] is a L<strong>in</strong>ux Security Module that enables TPM-based usage controlsenforcement. It provides the attestation support, seal<strong>in</strong>g support and protectionfrom adm<strong>in</strong>istrative abuse required by a t<strong>ru</strong>stworthy usage control system, andit does so with exist<strong>in</strong>g hardware and limited changes to an exist<strong>in</strong>g OS. [6]<strong>in</strong>troduces a formal <strong>in</strong>tegrity model to manage the <strong>in</strong>tegrity of arbitrary aspectsof a virtualized system. The authors describe the PEV architecture, which isbased upon a model that generalises the <strong>in</strong>tegrity management functions of theTPM to cover not only software b<strong>in</strong>aries, but also VMs, virtual devices, anda wide range of security policies. PEV enables the verification of security complianceand the enforcement of security policies. [7] discusses an access controlarchitecture that enables corporations to verify the <strong>in</strong>tegrity of a remote clientand establish t<strong>ru</strong>st <strong>in</strong>to its ability to enforce a security policy before allow<strong>in</strong>gthe client to access corporate Intranet services. It also shows how to enforcethe policy on both remote clients and VPN servers. To this end, it discussesthe adoption of an <strong>in</strong>tegrity heart-beat that enables the VPN server to reactto changes <strong>in</strong> the security properties of the remote client by updat<strong>in</strong>g the securitypolicy. Pioneer [8] is a software-based platform address<strong>in</strong>g the problem ofverifiable code execution on legacy comput<strong>in</strong>g hosts without rely<strong>in</strong>g on secureco-processors or CPU virtualization extensions. Pioneer is based on a challengeresponseprotocol between an external t<strong>ru</strong>sted entity (the dispatcher) and anunt<strong>ru</strong>sted comput<strong>in</strong>g platform. Property based attestation [9] [10] is a strategythat describes an aspect of the behaviour of the platform to be attested withrespect to security-related requirements. As an example, a property may statethat a platform has built-<strong>in</strong> measures to conform to the privacy laws, or that itstrictly separates processes from each other, or that it has built-<strong>in</strong> functionalitiesto provide Multi-Level Security. A protocol and architecture for propertyattestation is proposed <strong>in</strong> [11]. With property attestation, a verifier is securely assuredof security properties of the execution environment of the verified platform


84 F. Baiardi et al.without receiv<strong>in</strong>g detailed configuration data. This enhances privacy and scalabilitybecause the verifier needs to be aware of only a few security propertiesrather than of a huge number of acceptable configurations. Semantic <strong>in</strong>tegrity[12] is a measurement approach target<strong>in</strong>g the dynamic state of the software dur<strong>in</strong>gexecution and, therefore, provid<strong>in</strong>g fresh measurement results. Similar tothe adoption of language-based virtual mach<strong>in</strong>es for remote attestation of dynamicprogram properties [13], this approach can provide <strong>in</strong>creased flexibility forthe challenger, because the <strong>in</strong>tegrity monitor can exam<strong>in</strong>e the current state of asystem to detect semantic <strong>in</strong>tegrity violations. This technique alone will not producecomplete results as it does not attempt to characterise the entire system.However, it does offer a way to measure the <strong>in</strong>tegrity of portions of the targetnot suitable for measurement by hash<strong>in</strong>g. Prima [14], which is an extension ofthe L<strong>in</strong>ux IMA system, measures <strong>in</strong>formation flow <strong>in</strong>tegrity that can be verifiedby remote parties.2.2 T<strong>ru</strong>sted Comput<strong>in</strong>gOne outstand<strong>in</strong>g framework of <strong>in</strong>tegrity measurement is that endorsed by theT<strong>ru</strong>sted Comput<strong>in</strong>g Group (TCG), an <strong>in</strong>dustry consortium that def<strong>in</strong>es specificationsfor hardware and software components [15]. The standard TCG measurementis the computation of SHA-1 cryptographic hash of critical components asthey are loaded <strong>in</strong>to the system. The TCG guidance for measurement <strong>in</strong>cludesthe T<strong>ru</strong>sted Platform Module (TPM) as a hardware device to securely store andreport measurement values <strong>in</strong> the form of a SHA-1 hash. This architecture providesa good model for determ<strong>in</strong><strong>in</strong>g the <strong>in</strong>tegrity dur<strong>in</strong>g software <strong>in</strong>itialisation.Moreover, the TPM is becom<strong>in</strong>g standard on several personal comput<strong>in</strong>g platforms.However, this framework does not address issues such as loss of platform<strong>in</strong>tegrity due to <strong>ru</strong>n-time attacks aga<strong>in</strong>st the system. If the system environmentcan be attacked through either its <strong>in</strong>terfaces or the hardware and software environment,this issue requires not only to measure the <strong>in</strong>tegrity of an executablestored <strong>in</strong> a file, but also to periodically measure the <strong>in</strong>tegrity of the software <strong>ru</strong>nn<strong>in</strong>g<strong>in</strong> memory [16]. This approach poses new problems because, first of all, thewell-known execution environment <strong>in</strong>itialised at boot time, and that provided asafe environment for the measurement, cannot be reproduced without reboot<strong>in</strong>gthe system. Second, if the applications virtual memories are updated after theyhave been loaded, their hash value change as well. F<strong>in</strong>ally, some <strong>ru</strong>n-time dataupdates cannot be correctly represented through hash values.TPM and vTPM. In systems equipped with a TPM chip [17] [18], the TPMacts as a root-of-t<strong>ru</strong>st <strong>in</strong> the process that builds and setup the software environmentsand it ensures that a system has loaded its software properly. Moreover, itprotects secrets such as asymmetric keys oritcanbeusedtoencryptsymmetrickeys. The TPM has a set of registers that it protects from the system softwareand it implements two operations on each register content: extend and quote.The former operation takes a value V as <strong>in</strong>put and computes the SHA-1 hash of


Measur<strong>in</strong>g Semantic Integrity for Remote Attestation 85the current register content appended to V. Instead, a quote operation generatesa message with the register contents and signs it with a key protected by theTPM.The vTPM [19] [20] extends the functionalities of the TPM <strong>in</strong> a virtualizedenvironment, where several VMs can <strong>ru</strong>n dist<strong>in</strong>ct OSes on the same platform.The vTPM is a virtual extension of the TPM that enables the VMM to emulatethe features of the TPM, by export<strong>in</strong>g to each VM a virtual implementation ofthe TPM hav<strong>in</strong>g the same <strong>in</strong>terface of the TPM.2.3 Virtualization and Semantic AttestationA Virtual Mach<strong>in</strong>e Monitor (VMM) is a th<strong>in</strong> software layer that <strong>ru</strong>ns on top ofa physical mach<strong>in</strong>e and that creates, manages and monitors Virtual Mach<strong>in</strong>es(VMs), i.e. execution environments. Each VM emulates, at software, the behaviourof the underly<strong>in</strong>g physical mach<strong>in</strong>e. In this way, a VMM can <strong>ru</strong>n differentOSes <strong>in</strong> parallel.To apply consistency checks on the OS kernel of a system and on the processesit <strong>ru</strong>ns <strong>in</strong> a robust and transparent manner, several proposed solutions exploitvirtualization technologies [21]. Virtualization enhances the robustness of controlsand guarantees a transparent monitor<strong>in</strong>g by <strong>ru</strong>nn<strong>in</strong>g two VMs on the samephysical mach<strong>in</strong>e, e.g. a monitored VM and a privileged VM. The former <strong>ru</strong>nsthe system and the processes to be monitored, while the latter is a dist<strong>in</strong>ct VMthat can access the memory of the other VM to apply a set of security checkson any region <strong>in</strong> this memory, i.e. the privileged VM has full access to the memoryspace of any other VM to apply virtual mach<strong>in</strong>e <strong>in</strong>trospection [22]. Thesechecks verify the <strong>in</strong>tegrity of the software that the monitored VM <strong>ru</strong>ns and theyimplement a form of semantic attestation because, first of all, they consider thecurrent status of the <strong>ru</strong>nn<strong>in</strong>g processes. Furthermore, they can exploit any <strong>in</strong>formationabout the expected behaviour of a component to discover anomalousbehaviour of the component itself.3 Overall ArchitectureVirtual mach<strong>in</strong>e Integrity Measurement System (VIMS) is a system that measuresthe <strong>in</strong>tegrity of a node as required by remote semantic attestation. VIMS<strong>in</strong>tegrates a set of tools for static and dynamic analysis to protect the OS kerneland the <strong>ru</strong>nn<strong>in</strong>g processes of a node aga<strong>in</strong>st attacks try<strong>in</strong>g to modify theirexpected behaviour. The various tools of VIMS analyse the current state ofthe critical data st<strong>ru</strong>ctures loaded by the kernel, the kernel itself, <strong>in</strong>clud<strong>in</strong>g themodules, and the <strong>ru</strong>nn<strong>in</strong>g processes.Design Goals. VIMS is aimed at implement<strong>in</strong>g a fairly general and reliablesystem to measure the <strong>in</strong>tegrity of a remote client, so that the server can beassured of the state of the remote host. The ma<strong>in</strong> goals of VIMS are:


86 F. Baiardi et al.1. granular checks on the <strong>in</strong>tegrity of the client: with respect to solutions thatonly exploit TPM-based functions, VIMS can apply more granular checksthrough a set of static and dynamic tools;2. support for dynamic policies: as long as the client is connected to a network,its <strong>ru</strong>n-time state should be cont<strong>in</strong>uously monitored, to detect whether ithas been <strong>in</strong>fected by a malware after be<strong>in</strong>g successfully attacked. Moreover,the policy can be changed accord<strong>in</strong>g to changes <strong>in</strong> the client configuration;3. mutual attestation: as an example, <strong>in</strong> a peer-to-peer environment, all theparties should be mutually assured of the <strong>in</strong>tegrity of any other peer;4. scalability: the overhead of an attestation should be negligible.Fig. 1. Overall ArchitectureVIMS Components Description. VIMS def<strong>in</strong>es a set of components anda protocol that <strong>ru</strong>les the <strong>in</strong>formation exchange among these components anddef<strong>in</strong>e the format of the various messages. These components are (see Fig. 1):(i) the C-VM, i.e. the client virtual mach<strong>in</strong>e; (ii) the A-VM, i.e. the assurancevirtual mach<strong>in</strong>e, paired with the C-VM; (iii) the REM-S, which is a genericapplication server. VIMS also def<strong>in</strong>es a protocol. In the more general case, aclient software <strong>ru</strong>nn<strong>in</strong>g on the C-VM contacts the REM-S to open a connectionto access some services offered either by the REM-S of by a network that theREM-S <strong>in</strong>terfaces. Before allow<strong>in</strong>g the client to connect and access the service,the REM-S establishes an out-of-band control channel with the A-VM of thenode that <strong>ru</strong>ns C-VM. The IP address of the A-VM is statically known andpaired with that of the C-VM. As long as the C-VM and the REM-S <strong>in</strong>teract,the REM-S and the A-VM periodically exchange <strong>in</strong>formation through the controlchannel about (i) the security policy to be applied and (ii) the results of theexecuted checks that are used to evaluate the C-VM <strong>in</strong>tegrity. The protocolexploits the out-of-band control channel also to <strong>in</strong>form the REM-S that the C-VM has been compromised either before or dur<strong>in</strong>g the communications betweenthe C-VM and the REM-S.VIMS may exploit the TPM and vTPM to apply the consistency checks onthe C-VM start<strong>in</strong>g from a valid root-of-t<strong>ru</strong>st, which is located <strong>in</strong> the hardware.With respect to systems that are based on TPM mechanisms only, VIMS can


Measur<strong>in</strong>g Semantic Integrity for Remote Attestation 87implement a semantic attestation that applies consistency checks based upon thesemantic behaviour of the processes. In this case, a static tool is firstly appliedto analyse the source code of the program <strong>ru</strong>n by a process to be attested.Then, the A-VM uses the output of this tool to monitor the status of the C-VMmemory and the <strong>ru</strong>n-time system call sequence that a process produces. In thisway, VIMS can apply rigorous and granular semantic checks at <strong>ru</strong>n-time, whichare strictly more powerful that those based upon the hash of the <strong>ru</strong>nn<strong>in</strong>g codeonly.The A-VM exploits virtual mach<strong>in</strong>e <strong>in</strong>trospection (VMI) [22] to retrieve criticaldata st<strong>ru</strong>ctures <strong>in</strong> the memory of the C-VM and evaluate a set of assertionson these st<strong>ru</strong>ctures. Each assertion is an <strong>in</strong>variant for the orig<strong>in</strong>al applicationthat constra<strong>in</strong>s the values <strong>in</strong> the data st<strong>ru</strong>cture and that is violated any timethe application has been attacked. By evaluat<strong>in</strong>g these assertions VIMS can:(i) guarantee the <strong>in</strong>tegrity of critical kernel data st<strong>ru</strong>ctures; (ii) assure that aprocess <strong>in</strong>vokes only a predef<strong>in</strong>ed set of system calls.In this way, VIMS implements a semantic <strong>in</strong>tegrity attestation because byapply<strong>in</strong>g rigorous and granular semantic checks that are more powerful thanthose based upon hashes of <strong>ru</strong>nn<strong>in</strong>g code only. In fact, by monitor<strong>in</strong>g the C-VM’s current behaviour, the A-VM monitors not only the b<strong>in</strong>aries that havebeen loaded by the OS, but also their dynamic <strong>in</strong>tegrity.The A-VM can apply alternative security policies, which can be parametrisedaccord<strong>in</strong>g to: (i) the frequency of the execution of security checks; (ii) theirgranularity, i.e. which data st<strong>ru</strong>ctures and software code need to be checked for<strong>in</strong>tegrity. VIMS exploits the features of the TPM to build a hash cha<strong>in</strong> on theclient system. This hash cha<strong>in</strong> is used to measure a predef<strong>in</strong>ed sequence of codeloads, such as the authenticated boot of the VMM and of the kernel of the A-VMfrom the BIOS and boot-loader. The TPM provides measurements that <strong>in</strong>dicatethat the VMM is safely started, so that it can <strong>in</strong>itialise the local A-VM to assureit is started <strong>in</strong> a safe state. The A-VM enables the REM-S to retrieve these hashvalues, which are called measurements. This list is protected by the A-VM andcannot be accessed by the C-VM. In this way, the REM-S can establish t<strong>ru</strong>st atfirst <strong>in</strong>to the A-VM measurements and then <strong>in</strong>to the <strong>ru</strong>n-time properties of theC-VM.After the A-VM has been safely <strong>in</strong>itialised, it periodically applies virtual mach<strong>in</strong>e<strong>in</strong>trospection to check the <strong>in</strong>tegrity of the software <strong>ru</strong>n by the C-VM.The A-VM uses the message returned by the TPM quote operation to send anauthenticated hash cha<strong>in</strong> to the REM-S to validate the <strong>in</strong>tegrity of the codeconta<strong>in</strong>ed <strong>in</strong> the hash cha<strong>in</strong> that belongs to the client.Threat Model. As far as concerns the def<strong>in</strong>ition of the threat model, the mostimportant feature is the availability of a TPM. If the TPM is not availableon the system that <strong>ru</strong>ns the C-VM and the A-VM, a transparent root-of-t<strong>ru</strong>stcannot be guaranteed. In this case, the reliability of <strong>in</strong>tegrity measurements canbe guaranteed if and only if:


88 F. Baiardi et al.– the VMM is t<strong>ru</strong>sted; this requires that no remote software <strong>in</strong>terface is opento an adversary and its state cannot be altered by a physical access to thesystem;– the public and private keys of the A-VM cannot be tampered with or, <strong>in</strong>case of the private key, disclosed;– the REM-S is t<strong>ru</strong>sted: this is fairly reasonable, s<strong>in</strong>ce we assume the server<strong>ru</strong>ns <strong>in</strong> a controlled environment.On the other hand, if the client subsystem is equipped with a TPM, then thema<strong>in</strong> assumptions to t<strong>ru</strong>st VIMS measurements are:– TPM and CPU are t<strong>ru</strong>sted;– the BIOS that <strong>in</strong>itiates cha<strong>in</strong> of measurements of the VMM and of the A-VMis t<strong>ru</strong>sted;– Memory cannot be hacked at <strong>ru</strong>n-time (e.g. via DMA).Obviously, <strong>in</strong> both cases, the C-VM is unt<strong>ru</strong>sted, so it may be <strong>in</strong>fected bymalware, and so on. The A-VM and the REM-S <strong>in</strong>itially establish t<strong>ru</strong>st basedon certificates signed by a t<strong>ru</strong>sted Certification Authority.Formal Model. We have def<strong>in</strong>ed a formal model to deduce which cha<strong>in</strong>s oft<strong>ru</strong>st can be created and which components can be t<strong>ru</strong>sted accord<strong>in</strong>g to thet<strong>ru</strong>st relations among components, i.e. C-VMs, A-VMs and TPM <strong>in</strong> the system.The model def<strong>in</strong>es a partially ordered set of tests, i.e. checks to be applied to acomponent, and of policies, where a policy is a pair <strong>in</strong>clud<strong>in</strong>g a set of tests anda frequency to apply such tests. Then, each component c can def<strong>in</strong>e:a) a set of t<strong>ru</strong>sted components t<strong>ru</strong>sted(c);b) a policy to be applied to t<strong>ru</strong>st a component that does not belong to t<strong>ru</strong>sted(c);c) the policy it can apply to each other component. An empty policy denotesthat c cannot test a component;d) <strong>in</strong>voke(c, p), which is a set of components that can use c to apply a policyp to other components, i.e. they can <strong>in</strong>voke the policy that c can apply toother components;e) a policy to be applied to a component that does not belong to <strong>in</strong>voke(c) butwant to use c.For each <strong>in</strong>stance of the model, we can compute, for each component c, theset of components c t<strong>ru</strong>sts. This set is computed as the fixed po<strong>in</strong>t of a set ofequations that relates the set of components that c t<strong>ru</strong>sts and those that c can<strong>in</strong>voke to apply a policy. In practice, the computation of the fixed po<strong>in</strong>t correspondsto that of the transitive closure of the two sets for all the components.Several versions of the model can be def<strong>in</strong>ed and the ma<strong>in</strong> difference is related tothe component that has to <strong>in</strong>voke a test. In one version, a component a <strong>in</strong>vokea policy applied by b to be t<strong>ru</strong>sted by c. In another version, c <strong>in</strong>vokes the policyapplied by b to check whether a may be t<strong>ru</strong>sted.A physical architecture and a mapp<strong>in</strong>g of the various components onto thisarchitecture def<strong>in</strong>es an <strong>in</strong>stance of the model because, as an example, a VM may


Measur<strong>in</strong>g Semantic Integrity for Remote Attestation 89t<strong>ru</strong>st other VMs that <strong>ru</strong>n on a physical node only if this node <strong>in</strong>cludes a TPMcomponent or a VM can test another one, e.g. it can apply a non empty policy,only if both the VMs <strong>ru</strong>n on the same node. The formal model makes it possibleto prove <strong>in</strong> advance, given an architecture, a mapp<strong>in</strong>g and a version of the model,whether a cha<strong>in</strong> of t<strong>ru</strong>st between two components exists. Furthermore, the proofis automatic because the computation of the fixed po<strong>in</strong>t of the set of equationscan be fully automated.A more general model may also consider the communication among componentsso that a component a t<strong>ru</strong>sts another component b only if there arec 1 ,...,c n components that a t<strong>ru</strong>sts and that can guarantee the confidentialityand/or the <strong>in</strong>tegrity of communications between a and b.3.1 C-VM MeasurementsWe describe now <strong>in</strong> more detail how VIMS measures the <strong>in</strong>tegrity of the C-VMand the correspond<strong>in</strong>g <strong>in</strong>teractions among the various VIMS components.To verify the <strong>in</strong>tegrity of the C-VM, VIMS implements the follow<strong>in</strong>g steps:1. verification of the <strong>in</strong>itial C-VM <strong>in</strong>tegrity by apply<strong>in</strong>g a set of measurementsto its configuration. These measurements consist of a set of hash computationsof the code of <strong>ru</strong>nn<strong>in</strong>g processes and of the C-VM kernel, i.e. criticaldata st<strong>ru</strong>ctures, code and kernel modules. If the client system is equippedwith vTPM, VIMS can extend the root-of-t<strong>ru</strong>st to the physical platform;2. the A-VM communicates the results of the measurements to the REM-S;3. as soon as the REM-S has received the A-VM measurements, it can choosethe security policy to be applied. To determ<strong>in</strong>e an optimal compromise betweenthe attestation level and the correspond<strong>in</strong>g overhead, the range ofpossible policies varies from the one that periodically computes the hasheson the <strong>ru</strong>nn<strong>in</strong>g software to the one that monitors the sequences of OS <strong>in</strong>vocationsby critical C-VM processes. Furthermore, the assurance level isdynamic, i.e. after receiv<strong>in</strong>g a set of measurements the REM-S can changethe assurance level to better satisfy its security requirements.The C-VM <strong>ru</strong>ns unmodified client software, and it does not need to be awareof be<strong>in</strong>g checked by a dist<strong>in</strong>ct VM so that the semantic attestation may befully transparent to the C-VM. To measure the <strong>in</strong>tegrity of the C-VM, start<strong>in</strong>gwith the TPM, the follow<strong>in</strong>g steps are required. Firstly, the T<strong>ru</strong>stedBoot [23] isloaded and the TPM applies a set of measurements on the boot-loader, so thatfrom now on all the steps can be measured from boot to kernel load<strong>in</strong>g and itsmodules. Attestation requires that the measurements of the C-VM are certifiedthrough the keys protected <strong>in</strong> the TPM and that the remote party can establisht<strong>ru</strong>st on the client <strong>in</strong>tegrity based upon these measurements. By comput<strong>in</strong>gthe hash of the <strong>ru</strong>nn<strong>in</strong>g software, signed by the private key of the TPM, theremote party can be assured of the t<strong>ru</strong>stworth<strong>in</strong>ess of the data received. Inthis way, VIMS creates a cha<strong>in</strong>-of-t<strong>ru</strong>st from the BIOS up to the VMs thatcertifies the <strong>in</strong>tegrity of the VMM and of the A-VM. Then, further controls can


90 F. Baiardi et al.be periodically applied through virtual mach<strong>in</strong>e <strong>in</strong>trospection as requested bythe REM-S. The correspond<strong>in</strong>g results are exchanged through the attestationprotocol between the A-VM client and the attestation module on the REM-S.3.2 A-VMThe A-VM should be someth<strong>in</strong>g relatively self-conta<strong>in</strong>ed and non-chang<strong>in</strong>g.Moreover, it should <strong>ru</strong>n a m<strong>in</strong>imal kernel without any Internet service andthe functionalities it implements should not be directly accessed by any user.Moreover, a stable t<strong>ru</strong>sted A-VM may help <strong>in</strong> attest<strong>in</strong>g to a variety of C-VMapplications. The REM-S must t<strong>ru</strong>st that the A-VM is not misbehav<strong>in</strong>g.The A-VM directly accesses and exam<strong>in</strong>es the memory of the C-VM throughvirtual mach<strong>in</strong>e <strong>in</strong>trospection to detect attacks or erroneous updates of clientapplications or of the underly<strong>in</strong>g OS. After the A-VM has been safely <strong>in</strong>itialisedby the VMM, it applies a set of <strong>in</strong>trospection checks to the pages stor<strong>in</strong>g thekernel code, the system call dispatch table, the <strong>in</strong>ter<strong>ru</strong>pt descriptor table, andother critical kernel data st<strong>ru</strong>ctures that should never be modified. Hence, theA-VM periodically computes their hashes to check they have not been changed.Moreover, the A-VM retrieves the list of the kernel modules and verifies boththeir <strong>in</strong>tegrity and that they are authorised kernel modules. These checks are alsoapplied to critical user-level applications on the C-VM, such as the VPN client,anti-vi<strong>ru</strong>s software and the likes. If the current hash of a <strong>ru</strong>nn<strong>in</strong>g applicationor of a kernel module differs from the stored values, the REM-S tears down theconnection. Furthermore, the A-VM can also evaluate a set of <strong>in</strong>variants on datast<strong>ru</strong>ctures or on the sequence of <strong>in</strong>vocations of an application to discover anomalousvalues due to an attack. Anytime the behaviour of a process differs fromthe one computed by a static analysis of the application source code, the currentC-VM behaviour is flagged as anomalous. VIMS static tools over-approximatethe process behaviour so that no false positives can occur. The A-VM managesa database that stores a set of dist<strong>in</strong>ct security policies that it applies on requestby the REM-S. Each policy def<strong>in</strong>es the granularity level of the controls, that <strong>in</strong>turn determ<strong>in</strong>es the measurements to be applied, and their frequency.3.3 Attestation ProtocolThe very basic steps of the attestation protocol among the C-VM, the REM-Sand the A-VM are (see Fig. 1):1. the C-VM requires the REM-S to establish a connection to access someresources;2. the REM-S opens a control channel with the A-VM after the usual credentialschecks;3. the REM-S starts the attestation protocol with the A-VM and it transmitsa list with the <strong>in</strong>itial parameters;4. the A-VM applies <strong>in</strong>trospection to retrieve measurements on the objects<strong>in</strong>side the list; afterwards, the A-VM verifies the correspondence among thehash of the code of the <strong>ru</strong>nn<strong>in</strong>g processes and kernel st<strong>ru</strong>ctures;


Measur<strong>in</strong>g Semantic Integrity for Remote Attestation 915. the A-VM returns to REM-S, on the control channel, the results of the hashthat have been computed;6. <strong>in</strong> case of successful results, the REM-S set on the A-VM the security policythat the A-VM should apply and connects grants the access to C-VM.Further features of the protocol are: (i) the control channel between the A-VMandtheREM-SexistsaslongastheC-VMandtheREM-Sareconnected;(ii) the A-VM can apply specific consistency checks on the C-VM on request bythe REM-S; (iii) the database of measurement configurations on the A-VM canbe extended at <strong>ru</strong>n-time through proper REM-S requests; (iv) the REM-S canrequest a specific action after a timeout has been elapsed.4 Current ImplementationXen [24] 3.1.0 is the adopted technology to create the virtual mach<strong>in</strong>es basedon Debian Etch 4.0 with L<strong>in</strong>ux kernel 2.6.18. We adopted the tool described <strong>in</strong>[25] to def<strong>in</strong>e the semantic checks to be applied to the critical processes <strong>ru</strong>nn<strong>in</strong>gon the C-VM, and an <strong>in</strong>trospection library [26] to compute the assertion on theC-VM memory.The follow<strong>in</strong>g A-VM modules have been developed either to implement theattestation protocol or to apply the measurements:– assurance module: a client plug<strong>in</strong>, <strong>ru</strong>nn<strong>in</strong>g on the A-VM, to manage theremote attestation protocol;– a vTPM module <strong>in</strong>terface (if TPM is present);– a database for measurements and security policies;– an <strong>in</strong>terface for the low-level <strong>in</strong>trospection function.The follow<strong>in</strong>g REM-S modules have been implemented:– an attestation module;– a database for measurements and policies;– an OpenVPN plug<strong>in</strong> [27];– a plug<strong>in</strong> for ghttpd web-server;– a vTPM module <strong>in</strong>terface.The modules to execute the attestation protocol have been implemented <strong>in</strong>Java. The attestation library on the server-side is composed of 4 Java classesof about 1500 l<strong>in</strong>es of code, whereas the assurance module on the client-side isabout 1000 l<strong>in</strong>es of Java code, <strong>in</strong>clud<strong>in</strong>g a small wrapper to <strong>in</strong>terface with the<strong>in</strong>trospection functions.The follow<strong>in</strong>g sections discuss two test-cases we have implemented. In the firstone, the C-VM used a VPN client to access a remote Intranet through a VPNserver execut<strong>in</strong>g on the REM-S. The Intranet hosted critical SCADA devicesthat could be remotely accessed and monitored. We have modified the VPNserver to handle the remote attestation protocol and applied the static tool to aVPN client to def<strong>in</strong>e its profile that is used by the A-VM to monitor its <strong>ru</strong>n-time


92 F. Baiardi et al.Table 1. Example of Attestation Responsesuspicious89892345192.168.1.1timeout200004TPM-Boot7844e409c39fad83bb65f7dac4c8a53et<strong>ru</strong>stedTPM.Measureboot07844e409c39fad83bb65f7dac4c8a53et<strong>ru</strong>stedkernel.st<strong>ru</strong>ctidt_table.................780000e409c39fad83bb65f7dac4c8a53et<strong>ru</strong>stedwrongprocessmodprobebehaviour. In the second case, a browser accessed a simple web-server which hasbeen extended to exploit the attestation module.Java SSL libraries and TPM/J [28] has been used to access the TPM values.Moreover, Java SSL libraries have been used to create the secure connectionsand to def<strong>in</strong>e the services of <strong>in</strong>terest, i.e. the client <strong>in</strong>teraction either to create aVPN connection or to send a HTTP request to REM-S. F<strong>in</strong>ally, OpenVPN andthe web-server have been extended with plug<strong>in</strong>s to enable remote attestation.4.1 Attestation ModuleThe attestation module on the REM-S is at the core of the attestation protocol,and it is used to <strong>in</strong>itialise the protocol and to exchange messages between theREM-S and the A-VM. The protocol is triggered each time a C-VM requires theREM-S to open a connection, such as a VPN to the remote network or a HTTPrequest to a web-server <strong>in</strong> the considered examples. Before allow<strong>in</strong>g the client to


Measur<strong>in</strong>g Semantic Integrity for Remote Attestation 93connect, the REM-S exploits the attestation module, which is a daemon servicewait<strong>in</strong>g for <strong>in</strong>put to start the handshak<strong>in</strong>g phase. In the VPN connection, thismodule is an OpenVPN plug<strong>in</strong> that starts up the daemon as soon as it receives arequest through the function ConnectionRequest(IPClient). The attestationmodule, once activated, maps the IP address of the request<strong>in</strong>g C-VM <strong>in</strong>to theIP address of the correspond<strong>in</strong>g A-VM, and it opens a connection to it.The handshak<strong>in</strong>g among the REM-S and the A-VM <strong>in</strong>cludes the mutual authenticationand the exchange of the <strong>in</strong>itial protocol parameters. If the handshakeis successfully completed, the A-VM applies the <strong>in</strong>itial set of measurementsto the C-VM and sends to the REM-S a message <strong>in</strong>clud<strong>in</strong>g the results of thechecks and the hashes computed by the T<strong>ru</strong>stedBoot. The message is signed withthe private key of the A-VM to prevent manipulation of the results. To attestthe A-VM <strong>in</strong>tegrity and discover the current C-VM configuration, the attestationmodule on the REM-S compares the results aga<strong>in</strong>st those <strong>in</strong> the database anddef<strong>in</strong>es an <strong>in</strong>itial security level. This level is communicated to the A-VM thatstores it <strong>in</strong> its database and it applies the monitor<strong>in</strong>g accord<strong>in</strong>g to the adoptedsecurity policy.The attestation module can apply one of two policies, based on a XMLencodedpolicy (see Tab. 1 for an example of an attestation response from theA-VM): (i) on-demand or (ii) timeout-based. In an on-demand policy, the REM-S can request specific measurements to the A-VM, such as semantic checks on a<strong>ru</strong>nn<strong>in</strong>g process, as long as the C-VM and the REM-S are connected. Instead, <strong>in</strong>a timeout-based policy, the A-VM periodically applies a set of checks and sendsto the REM-S the correspond<strong>in</strong>g results.A-VM / REM-S Interactions. Currently, the protocol between the A-VMand the REM-S <strong>in</strong>cludes the follow<strong>in</strong>g steps (see Fig. 2):1. ConnectionRequest(username, password):– open a connection from the C-VM to the REM-S;– check user’s credentials;2. ConnectionRequest(Username, IP); the Attestation module is activated;3. if <strong>in</strong> the previous step the client is authenticated, then the attestation moduleuses Retrieve(A-VM Information, C-VM IP) to query the database;4. the attestation module queries its database to retrieve the IP address ofA-VM though the Response(A-VM IP) function;5. OpenConnection(A-VM IP): the attestation module establishes a controlchannel with the A-VM;6. [sign A-VMKey] AttestationHandshake(Ip REM-S, nonce): the attestationmodule sends the handshake message with some parameters, signedwith the public key of the A-VM;7. [sign REM-SKey]AttestationResponse(ResultsCha<strong>in</strong>({ProcIDs = results},{KernelSt<strong>ru</strong>ctures=results}, {TPM measures}), nonce): theA-VM computes hash values of the <strong>ru</strong>nn<strong>in</strong>g applications and the A-VMcompares these results aga<strong>in</strong>st those <strong>in</strong> its database. It sends the result toREM-S cha<strong>in</strong>ed with the measurements of the underly<strong>in</strong>g system done bythe TPM;


94 F. Baiardi et al.Fig. 2. Attestation Protocol Overview8. Check-Results: the attestation module compares each result sent by theA-VM aga<strong>in</strong>st the expected one;9. the attestation module sends the current assurance policy and level to theA-VM;10. [sign A-VMKey]setAssurancePolicy(level, policy): the REM-S sendsto the A-VM an XML configuration file stor<strong>in</strong>g the security policy that the A-VM should apply, e.g.: (AssuranceLevel = 1, timeout). The parametersof this function are:– level: the required assurance level, i.e. an ID paired with a set of controlsstored <strong>in</strong> the A-VM database;– policy: The field policy can have the value timeout or on-demand,depend<strong>in</strong>g on whether the checks need to be applied for each elapsedtimeout or on-demand by the REM-S.11. Authorization(Message, [timeoutSession]): the REM-S opens or closesthe connection with C-VM and it may set a timeout session (the fieldmessage is the response, e.g. HTTP:403). In case of “on-demand” policy,the A-VM may cache the next requests to apply the same checks <strong>in</strong> future.Moreover, if the policy is “timeout”, the A-VM caches the timeout withthe paired assurance level. When the timeout is elapsed, it applies the set ofmeasurements associated to that level and it sends the results to the REM-S.


Measur<strong>in</strong>g Semantic Integrity for Remote Attestation 95Fig. 3. C-VM: Transparent SolutionA-VM / C-VM Interactions. By exploit<strong>in</strong>g the same <strong>in</strong>trospection library,we have def<strong>in</strong>ed two dist<strong>in</strong>ct C-VM architectures whose names describe the k<strong>in</strong>dof <strong>in</strong>trospection applied on the monitored mach<strong>in</strong>e. In the “transparent” architecture(see Fig. 3), the monitor<strong>in</strong>g is fully transparent to the C-VM and the<strong>in</strong>teractions between the components are those described <strong>in</strong> the previous section.In this case, the C-VM cannot <strong>ru</strong>n any software that VIMS can use to establishthe <strong>in</strong>tegrity of the C-VM. Instead, the “not-transparent” architecture (seeFig. 4), <strong>in</strong>creases the amount of <strong>in</strong>formation that VIMS can access to measurethe <strong>in</strong>tegrity of the C-VM at the cost of transparency. This solution embedsfurther functions <strong>in</strong> the <strong>in</strong>trospection library to verify the <strong>in</strong>tegrity of the C-VMand it <strong>in</strong>creases the <strong>in</strong>teractions between the A-VM and the C-VM. An exampleis the one where the C-VM <strong>ru</strong>ns a collector that retrieves <strong>in</strong>formation from localIDSes, firewall, anti-vi<strong>ru</strong>s and sends alerts to a director on the A-VM. In thiscase, some steps of the protocol between A-VM and REM-S have been modified:– OpenConnection(A-VM IP): the REM-S requires the A-VM to open a controlchannel;– the assurance module accepts requests of:• remote attestation from the REM-S (if the security policy is “on-demand”);• alerts from the director.– the requests can be:• [sign A-VMKey]AttestationRequest(assuranceLevel, policy,nonce): remote attestation requests from the REM-S. This case is thesame that <strong>in</strong> the transparent solution;• Alert(alarmCode): it happens when director sends an alert;• ActivateMeasures(getMeasures(alarmCode)): the assurance module,accord<strong>in</strong>g to the code sent by the director, requires the A-VM to applyfurther consistency checks;


96 F. Baiardi et al.• an elapsed timeout that triggers security checks on those componentslisted <strong>in</strong> the policy database: the A-VM applies the measurements correspond<strong>in</strong>gto the adopted assurance level and it returns to the REM-Sthe hashes or semantic results for each measured object.– f<strong>in</strong>ally, REM-S closes the connection with the A-VM and the C-VM.Fig. 4. C-VM: Not Transparent Solution5 Performance ResultsThis section shows a prelim<strong>in</strong>ary performance evaluation of the current VIMSprototype. Accord<strong>in</strong>g to this prelim<strong>in</strong>ary evaluation, the overhead of the protocolfor remote attest<strong>in</strong>g the C-VM is acceptable and almost negligible anytime theA-VM only compares the computed hashes aga<strong>in</strong>st those <strong>in</strong> its database.Figure 5(a) shows the overhead of the IOzone [29] benchmark when the attestationrequires some <strong>in</strong>trospection checks with respect to the case where thesechecks are not applied. Timeout is the length of <strong>in</strong>terval <strong>in</strong>-between two consecutivemeasurements, i.e. two computations of the hashes of <strong>in</strong>terest. The correspond<strong>in</strong>gperformance degradation is fairly low.Figure 5(b) shows the overhead computed by IOzone on the REM-S when 3clients establish a VPN connection to the REM-S. As <strong>in</strong> the previous case, thelatency of the network masks the attestation protocol overhead.Figure 6(a) and 6(b) show the performance results of a set of tests on thesimple web-server handl<strong>in</strong>g a set of request to a log<strong>in</strong> page us<strong>in</strong>g HTTP. In thesetests, the httperf benchmark tool [30] has been used to measure the web-serverperformance under stress when open<strong>in</strong>g a number of HTTP connections rang<strong>in</strong>gfrom 20 to 200, where each connection transmits 10 requests. The figures showthat the response time <strong>in</strong>creases significantly when attestation is applied andthe REM-S load decades after about 1600 connection per sec.


Measur<strong>in</strong>g Semantic Integrity for Remote Attestation 97(a)(b)Fig. 5. Average Client Attestation Overhead(a) and VPN Server Attestation Overhead(b)We also evaluated the overhead due to the semantic <strong>in</strong>tegrity checks enforcedby the A-VM on the kernel code and on the software <strong>ru</strong>nn<strong>in</strong>g <strong>in</strong>side the C-VM.To this purpose, the C-VM ran the VPN client while the A-VM checked thememory pages that store kernel and application code by comput<strong>in</strong>g their hashesand compar<strong>in</strong>g them aga<strong>in</strong>st the values <strong>in</strong> the database. Furthermore, the A-VMalso monitors the system call sequence issued by the VPN client. The period oftime <strong>in</strong>-between two consecutive hash computations was set to 2 seconds. Therelative overhead was less than 15% <strong>in</strong> the worst case.6 Future Works and ConclusionsA secure handl<strong>in</strong>g of critical <strong>in</strong>formation requires the cont<strong>in</strong>uous monitor<strong>in</strong>g ofthe <strong>in</strong>tegrity of the systems that try to access such <strong>in</strong>formation. This, <strong>in</strong> turn,requires that these systems are highly reliable and resilient aga<strong>in</strong>st attacks byunauthorised remote users or by malware software. In some cases, a controlsystem can be delegated to apply <strong>in</strong>tegrity checks on another one, to verify thatit satisfies some predef<strong>in</strong>ed security requirements.In this paper we have described Virtual mach<strong>in</strong>e Integrity Measurement System(VIMS), an architecture to enable a network to evaluate and ga<strong>in</strong> some


98 F. Baiardi et al.(a)(b)Fig. 6. Httperf Results with Attestation (a) and Without (b)assurance about the <strong>in</strong>tegrity of a remote party that is will<strong>in</strong>g to jo<strong>in</strong> the network.As an example, this happens when remote nodes wish to access a corporateVPN or when a browser is requir<strong>in</strong>g resources to a web-server us<strong>in</strong>g HTTP.To this purpose, VIMS exploits virtualization and <strong>in</strong>trospection to verify the<strong>in</strong>tegrity of the software components that the remote client is <strong>ru</strong>nn<strong>in</strong>g and toattest it to the server that <strong>in</strong>terfaces the network. Virtualization allows the clientsystem to <strong>ru</strong>n a shadow VM that applies the <strong>in</strong>tegrity checks <strong>in</strong> a transparentway to the VM that is try<strong>in</strong>g to jo<strong>in</strong> the private network. The adoption of VIMSmay enable network adm<strong>in</strong>istrators to protect private resources by remote systemsthat are try<strong>in</strong>g to jo<strong>in</strong> the Intranet and that may be affected by spy-ware,rootkits that may <strong>in</strong>fect critical resources.An area of future research considers the exploitation of an USB dongle asa secure root-of-t<strong>ru</strong>st of the VMM and the A-VM to <strong>in</strong>crease the portabilityof this architecture to those contexts where the adoption of a TPM chip givesrise to privacy concerns. F<strong>in</strong>ally, VIMS can be extended with the descriptionand implementation of a more granular user-based security policy to def<strong>in</strong>e theoperations that remote users can <strong>in</strong>voke.


Measur<strong>in</strong>g Semantic Integrity for Remote Attestation 99References1. Cabuk, S., Dalton, C.I., Ramasamy, H., Schunter, M.: Towards automated provision<strong>in</strong>gof secure virtualized networks. In: CCS 2007: Proceed<strong>in</strong>gs of the 14thACM conference on <strong>Computer</strong> and communications security, pp. 235–245. ACM,New York (2007)2. Griff<strong>in</strong>, J., Jaeger, T., Perez, R., Sailer, R., van Doorn, L., Caceres, R.: T<strong>ru</strong>sted VirtualDoma<strong>in</strong>s: Toward secure distributed services. In: Proc. of 1st IEEE Workshopon Hot Topics <strong>in</strong> System Dependability (HotDep) (2005)3. Garf<strong>in</strong>kel, T., Pfaff, B., Chow, J., Rosenblum, M., Boneh, D.: Terra: A virtualmach<strong>in</strong>e-based platform for t<strong>ru</strong>sted comput<strong>in</strong>g. In: Proceed<strong>in</strong>gs of the 19th Symposiumon Operat<strong>in</strong>g System Pr<strong>in</strong>ciples(SOSP 2003) (October 2003)4. Sailer, R., Zhang, X., Jaeger, T.: Design and implementation of a TCG-based<strong>in</strong>tegrity measurement architecture. In: Proceed<strong>in</strong>gs of the 13th conference onUSENIX Security Symposium, pp. 223–238 (2004)5. Kyle, D., B<strong>ru</strong>stoloni, J.C.: Ucl<strong>in</strong>ux: a l<strong>in</strong>ux security module for t<strong>ru</strong>sted-comput<strong>in</strong>gbasedusage controls enforcement. In: STC 2007: Proceed<strong>in</strong>gs of the 2007 ACMworkshop on Scalable t<strong>ru</strong>sted comput<strong>in</strong>g, pp. 63–70. ACM, New York (2007)6. Jansen, B., Ramasamy, H., Schunter, M.: Policy enforcement and compliance proofsfor Xen virtual mach<strong>in</strong>es. In: Proceed<strong>in</strong>gs of the fourth ACM SIGPLAN/SIGOPS<strong>in</strong>ternational conference on Virtual execution environments, pp. 101–110 (2008)7. Sailer, R., Jaeger, T., Zhang, X., van Doorn, L.: Attestation-based policy enforcementfor remote access. In: CCS 2004: Proceed<strong>in</strong>gs of the 11th ACM conferenceon <strong>Computer</strong> and communications security, pp. 308–317. ACM, New York (2004)8. Seshadri, A., Luk, M., Shi, E., Perrig, A., van Doorn, L., Khosla, P.: Pioneer: verify<strong>in</strong>gcode <strong>in</strong>tegrity and enforc<strong>in</strong>g untampered code execution on legacy systems. In:SOSP 2005: Proceed<strong>in</strong>gs of the twentieth ACM symposium on Operat<strong>in</strong>g systemspr<strong>in</strong>ciples, pp. 1–16. ACM, New York (2005)9. Sadeghi, A.R., Stüble, C.: Property-based attestation for comput<strong>in</strong>g platforms:car<strong>in</strong>g about properties, not mechanisms. In: NSPW 2004: Proceed<strong>in</strong>gs of the 2004workshop on New security paradigms, pp. 67–77. ACM, New York (2004)10. Chen, L., Landfermann, R., Löhr, H., Rohe, M., Sadeghi, A., Stüble, C.: A protocolfor property-based attestation. In: Proceed<strong>in</strong>gs of the first ACM workshop onScalable t<strong>ru</strong>sted comput<strong>in</strong>g, pp. 7–16. ACM, New York (2006)11. Poritz, J., Schunter, M., Van Herreweghen, E., Waidner, M.: Property attestation:scalable and privacy-friendly security assessment of peer computers. Research ReportRZ3548, IBM Corporation (May 2004)12. Petroni Jr., N., Fraser, T., Walters, A., Arbaugh, W.: An Architecture forSpecification-Based Detection of Semantic Integrity Violations <strong>in</strong> Kernel DynamicData. In: Proc. of the 15th USENIX Security Symposium (2006)13. Haldar, V., Chandra, D., Franz, M.: Semantic remote attestation: a virtual mach<strong>in</strong>edirected approach to t<strong>ru</strong>sted comput<strong>in</strong>g. In: VM 2004: Proceed<strong>in</strong>gs of the 3rdconference on Virtual Mach<strong>in</strong>e Research And Technology Symposium, Berkeley,CA, USA, p. 3. USENIX Association (2004)14. Jaeger, T., Sailer, R., Shankar, U.: PRIMA: policy-reduced <strong>in</strong>tegrity measurementarchitecture. In: Proceed<strong>in</strong>gs of the eleventh ACM symposium on Access controlmodels and technologies, pp. 19–28. ACM, New York (2006)15. Pearson, S.: T<strong>ru</strong>sted Comput<strong>in</strong>g Platforms, the Next Security Solution. Beaverton.T<strong>ru</strong>sted Comput<strong>in</strong>g Group Adm<strong>in</strong>istration, USA (2002)


100 F. Baiardi et al.16. Loscocco, P.A., Wilson, P.W., Pendergrass, J.A., McDonell, C.D.: L<strong>in</strong>ux kernel<strong>in</strong>tegrity measurement us<strong>in</strong>g contextual <strong>in</strong>spection. In: STC 2007: Proceed<strong>in</strong>gs ofthe 2007 ACM workshop on Scalable t<strong>ru</strong>sted comput<strong>in</strong>g, pp. 21–29. ACM, NewYork (2007)17. Bajikar, S.: T<strong>ru</strong>sted Platform Module (TPM) based Security on Notebook PCs-White Paper. Mobile Platforms Group, Intel Corporation (June 20, 2002)18. Intel: T<strong>ru</strong>sted Execution Technology,http://www.<strong>in</strong>tel.com/technology/security19. Berger, S., Cáceres, R., Goldman, K.A., Perez, R., Sailer, R., van Doorn, L.:vtpm: virtualiz<strong>in</strong>g the t<strong>ru</strong>sted platform module. In: USENIX-SS’06: Proceed<strong>in</strong>gsof the 15th conference on USENIX Security Symposium, Berkeley, CA, USA, p.21. USENIX Association (2006)20. England, P., Loeser, J.: Para-Virtualized TPM Shar<strong>in</strong>g. In: Lipp, P., Sadeghi, A.-R., Koch, K.-M. (eds.) T<strong>ru</strong>st 2008. LNCS, vol. 4968, pp. 119–132. Spr<strong>in</strong>ger, Heidelberg(2008)21. Dunlap, G., K<strong>in</strong>g, S., C<strong>in</strong>ar, S., Basrai, M., Chen, P.: ReVirt: enabl<strong>in</strong>g <strong>in</strong>t<strong>ru</strong>sionanalysis through virtual-mach<strong>in</strong>e logg<strong>in</strong>g and replay. ACM SIGOPS Operat<strong>in</strong>gSystems Review 36, 211–224 (2002)22. Garf<strong>in</strong>kel, T., Rosenblum, M.: A virtual mach<strong>in</strong>e <strong>in</strong>trospection based architecturefor <strong>in</strong>t<strong>ru</strong>sion detection. In: Proc. Network and Distributed Systems Security Symposium(Feb<strong>ru</strong>ary 2003)23. SourceForge.net: T<strong>ru</strong>sted Boot, http://sourceforge.net/projects/tboot24. Dragovic, B., Fraser, K., Hand, S., Harris, T., Ho, A., Pratt, I., Warfield, A.,Barham, P., Neugebauer, R.: Xen and the art of virtualization. In: Proceed<strong>in</strong>gs ofthe ACM Symposium on Operat<strong>in</strong>g Systems Pr<strong>in</strong>ciples (October 2003)25. Sgandurra, D., Baiardi, F., Maggiari, D., Tamberi, F.: Transparent Process Monitor<strong>in</strong>g<strong>in</strong> a Virtual Environment. In: Proceed<strong>in</strong>gs of the Third International Workshopon Views On Design<strong>in</strong>g Complex Architectures (VODCA 2008), Bert<strong>in</strong>oro.ENTCS, Elsevier <strong>Science</strong>Direct (to appear) (2008)26. Tamberi, F., Maggiari, D., Sgandurra, D., Baiardi, F.: Semantics-Driven Introspection<strong>in</strong> a Virtual Environment. In: Proceed<strong>in</strong>gs of the Fourth InternationalConference on Information Assurance and Security (IAS 2008), pp. 299–302 (2008)27. OpenVPN: An Open Source SSL VPN Solution, http://openvpn.net/28. TPM/J: Java-based API for the T<strong>ru</strong>sted Platform Module (TPM),http://projects.csail.mit.edu/tc/tpmj/29. IOzone: Filesystem Benchmark, http://www.iozone.org/30. Mosberger, D., J<strong>in</strong>, T.: httperf: a tool for measur<strong>in</strong>g web server performance. ACMSIGMETRICS Performance Evaluation Review 26(3), 31–37 (1998)


A PrivacyCA for Anonymity and T<strong>ru</strong>stMart<strong>in</strong> Pirker, Ronald Toegl, Daniel He<strong>in</strong>, and Peter DannerInstitute for Applied Information Process<strong>in</strong>g and Communications (IAIK),Graz University of Technology, Inffeldgasse 16a, A–8010 Graz, Austria{mpirker,rtoegl,dhe<strong>in</strong>,pdanner}@iaik.tugraz.atAbstract. T<strong>ru</strong>sted Comput<strong>in</strong>g (TC) as envisioned by the T<strong>ru</strong>sted Comput<strong>in</strong>gGroup promises a solution to the problem of establish<strong>in</strong>g a t<strong>ru</strong>strelationship between otherwise unrelated platforms. In order to achievethis goal the platform has to be equipped with a T<strong>ru</strong>sted Platform Module(TPM), which is t<strong>ru</strong>e for millions of contemporary personal computers.The TPM provides solutions for measur<strong>in</strong>g the state of a platformand report<strong>in</strong>g it <strong>in</strong> an authentic way to another entity. The same cryptographicmeans that ensure the authenticity also allow unique identificationof the platform and therefore pose a privacy problem. To circumventthis problem the TCG proposed a t<strong>ru</strong>sted third party, the Privacy CertificationAuthority (PrivacyCA).Unfortunately, currently no PrivacyCA is generally available. In thispaper we <strong>in</strong>troduce our freely available implementation of a PrivacyCA.In addition, our PrivacyCA is itself a t<strong>ru</strong>sted service. It is capable of report<strong>in</strong>gits state to clients. Furthermore, we use a novel way to m<strong>in</strong>imizethe T<strong>ru</strong>sted Comput<strong>in</strong>g Base of Java-based applications <strong>in</strong> conjunctionwith hardware-supported virtualization. We automatically generate theservice <strong>in</strong>terface from a st<strong>ru</strong>ctural specification. Thus, to the best of ourknowledge, we were not only first to make this c<strong>ru</strong>cial service publiclyavailable, but now also provide a t<strong>ru</strong>stworthy service whose privacy policycan be attested to its users by employ<strong>in</strong>g TC mechanisms.Keywords: T<strong>ru</strong>sted Comput<strong>in</strong>g, Privacy, PKI, Virtualization, Java,T<strong>ru</strong>sted Comput<strong>in</strong>g Base.1 IntroductionToday’s comput<strong>in</strong>g landscape is plagued by a variety of software-based attacksand threats such as vi<strong>ru</strong>ses, phish<strong>in</strong>g attacks, and trojan horses. It is <strong>in</strong>creas<strong>in</strong>glydifficult to f<strong>in</strong>d suitable countermeasures <strong>in</strong> this hostile environment. Therecent rise of the concept of T<strong>ru</strong>sted Comput<strong>in</strong>g <strong>in</strong>troduces a way to improve thesecurity of current computer systems. The T<strong>ru</strong>sted Comput<strong>in</strong>g Group (TCG)specified the T<strong>ru</strong>sted Platform Module (TPM), which allows to provide cryptographicallyqualified and tamper-resilient statements on the software configurationof a mach<strong>in</strong>e.However, the use of protected cryptographic mechanisms alone is not sufficientto conv<strong>in</strong>ce remote mach<strong>in</strong>es or human users that a complex software service canL. Chen, C.J. Mitchell, and A. Mart<strong>in</strong> (Eds.): T<strong>ru</strong>st 2009, LNCS <strong>5471</strong>, pp. 101–119, 2009.c○ Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2009


102 M. Pirker et al.actually be t<strong>ru</strong>sted. To enable a decision based on the statements made by a TPMand the associated t<strong>ru</strong>st levels, keys need to be vouched for. This necessitatesa Public Key Infrast<strong>ru</strong>cture (PKI). The full potential of this approach becomesapparent on the Internet, as it allows a remote, <strong>in</strong>dependent party to decide onthe t<strong>ru</strong>stworth<strong>in</strong>ess of a host or a particular service.A particular <strong>in</strong>carnation of the PKI concept is the PrivacyCA, whichservesto protect the privacy of the user <strong>in</strong> a t<strong>ru</strong>st-enabled networked environment. Itconfirms that keys are protected by a specification-compliant TPM implementationand thus may be t<strong>ru</strong>sted under certa<strong>in</strong> conditions – but without reveal<strong>in</strong>gthe specific identity of the TPM and the user.It is an important aspect, that a PrivacyCA requires knowledge of private <strong>in</strong>formationof a computer’s configuration. Therefore it must be t<strong>ru</strong>sted. However,until now, no architecture or implementation has considered this requirement.We describe the architecture of a PrivacyCA service, which is designed to bet<strong>ru</strong>sted. It not only provides privacy but is also able to attest its <strong>in</strong>tegrity andbehavioral policy. To overcome the complexity of decid<strong>in</strong>g on the t<strong>ru</strong>stworth<strong>in</strong>esswe m<strong>in</strong>imize the TCB of this Java-based service. Our approach allows forversatile application scenarios and also <strong>in</strong>tegrates well with other services on virtualizedplatforms. The reference implementations we present provide the firstactually operational <strong>in</strong>stance of a PKI for T<strong>ru</strong>sted Comput<strong>in</strong>g.Outl<strong>in</strong>e. The rema<strong>in</strong>der of the paper is organized as follows: Section 2 gives ashort <strong>in</strong>troduction to T<strong>ru</strong>sted Comput<strong>in</strong>g mechanisms and motivates the need fora t<strong>ru</strong>sted third party PrivacyCA service <strong>in</strong> this environment. It also discussesa set of guidel<strong>in</strong>es to follow so the t<strong>ru</strong>stworth<strong>in</strong>ess of such a service can beachieved <strong>in</strong> practice. In Section 3 we outl<strong>in</strong>e the most important components andprocesses of a T<strong>ru</strong>sted Comput<strong>in</strong>g support<strong>in</strong>g public key <strong>in</strong>frast<strong>ru</strong>cture. Putt<strong>in</strong>gtheory to practice, Section 4 presents the practical implementation experienceof a PrivacyCA service and the optimizations employed. Section 5 discussespotential use cases. The paper considers related work <strong>in</strong> Section 6 and concludes<strong>in</strong> Section 7.2 Background2.1 T<strong>ru</strong>sted Comput<strong>in</strong>g PlatformsThe T<strong>ru</strong>sted Comput<strong>in</strong>g Group (TCG) [27] has def<strong>in</strong>ed a set of specifications toevolve current computer architectures <strong>in</strong>to T<strong>ru</strong>sted Platforms. The TCG does notclaim that a T<strong>ru</strong>sted Platform guarantees perfect security under all conditionsand for all possible applications, but rather considers a system t<strong>ru</strong>stworthy if itbehaves <strong>in</strong> the expected manner for the <strong>in</strong>tended purpose.To provide a hardware anchor for t<strong>ru</strong>st, the T<strong>ru</strong>sted Comput<strong>in</strong>g Group hasspecified the T<strong>ru</strong>sted Platform Module [31]. Similar to a Smart Card, the TPMfeatures cryptographic primitives, but is physically bound to a specific platform.A tamper-resilient cas<strong>in</strong>g conta<strong>in</strong>s hardware implementations of cryptographic


A PrivacyCA for Anonymity and T<strong>ru</strong>st 103operations for public-key cryptography, key generation, hash<strong>in</strong>g, and randomnumbergeneration. With these components the TPM is able to enforce securitypolicies on cryptographic keys, such as the Endorsement Key (EK) which providesit with a unique identity.The TCG not only specifies TPM hardware but also def<strong>in</strong>es an accompany<strong>in</strong>gsoftware <strong>in</strong>frast<strong>ru</strong>cture called the TCG Software Stack (TSS) [30]. The stackconsists of different modules. Applications can access T<strong>ru</strong>sted Comput<strong>in</strong>g functionalityby us<strong>in</strong>g the T<strong>ru</strong>sted Service Provider (TSP) <strong>in</strong>terface. The T<strong>ru</strong>stedCore Services (TCS) are implemented as a s<strong>in</strong>gle system service. Among thema<strong>in</strong> functionalities implemented <strong>in</strong> the TCS are key management, key cachemanagement, TPM command generation and synchronisation. The TCS communicateswith the TPM via the TSS Device Driver Library (TDDL).A system configuration and therefore the system’s behavior is def<strong>in</strong>ed by thesoftware it executes. We consider the sum of all the software required by aspecific service to form its T<strong>ru</strong>sted Comput<strong>in</strong>g Base (TCB). For a typical servicethis <strong>in</strong>cludes a hypervisor, an operat<strong>in</strong>g system, and possibly a language-basedvirtual mach<strong>in</strong>e that executes the service. On a t<strong>ru</strong>sted platform, this is reflected<strong>in</strong> the cha<strong>in</strong>-of-t<strong>ru</strong>st which is unique for each specific service. Here, each softwarecomponent is measured before it is given control to, start<strong>in</strong>g with the CoreRoot-Of-T<strong>ru</strong>st for Measurement (CRTM), typically the BIOS. This process alsocovers boot loader, kernel, libraries, b<strong>in</strong>ary and <strong>in</strong>terpreted application code and,follow<strong>in</strong>g the transitive t<strong>ru</strong>st model, leads to a cont<strong>in</strong>uous cha<strong>in</strong> of evidence.To prevent tamper<strong>in</strong>g with the platform measurements the TPM stores them<strong>in</strong> a set of Platform Configuration Registers (PCRs). Thus, a report on the PCRstate reflects the exact state of a system. Presented with such a report an externalstakeholder can form an <strong>in</strong>formed op<strong>in</strong>ion about a system’s t<strong>ru</strong>stworth<strong>in</strong>ess. Thiscentral concept of a TC-enabled platform is known as Remote Attestation. Theauthenticity and <strong>in</strong>tegrity of this report must be preserved even if the TCB iscompromised or the network channel is <strong>in</strong>secure. To this end, the TPM actsas Core Root-Of-T<strong>ru</strong>st for Report<strong>in</strong>g (CRTR). Upon request, it performs theTPM Quote operation which signs the PCR state with a TPM hosted sign<strong>in</strong>gcapablekey.This specific keys are referred to as Attestation Identity Keys (AIKs). TheTCG specification guarantees that these keys never leave the protection of astandard-compliant TPM. To ensure that the signature on an attestation reportis actually made by a TPM-protected AIK, the used key must be vouched forwith<strong>in</strong> the framework of a PKI. Another use for AIKs is to certify the policiesof other key types.2.2 PrivacyCAThe TCG remote attestation architecture requires that an attestant sends a verydetailed description of its system state to an attester. This raises the questionof privacy protection. For one th<strong>in</strong>g this <strong>in</strong>formation might be used to facilitateattacks. Another problem is that reus<strong>in</strong>g the same key for all report<strong>in</strong>g operationsallows to trace the TPM and thus the platform. In some scenarios that might be


104 M. Pirker et al.Fig. 1. Overview of AIK creation, certification and usage with a PrivacyCA. Steps 5-9can take place at a later time and may be repeated.a desirable feature, but typical end users should value their privacy. Therefore itis of <strong>in</strong>terest, that access of <strong>in</strong>dependent external services cannot be correlated(i.e. to create a behavioral or market<strong>in</strong>g profile of an user).Hence, the TCG specifications [28] def<strong>in</strong>e the PrivacyCA service to protectthe privacy of the users. Its task is to issue AIK certificates, which guarantee thata given AIK is owned and secured by a TPM that enforces the TCG-specifiedpolicies for AIKs. It is c<strong>ru</strong>cial that the issued AIK certificates do not conta<strong>in</strong>any k<strong>in</strong>d of l<strong>in</strong>k to the identity of the specific TPM. By employ<strong>in</strong>g more thanone AIK per TPM it becomes possible to mask the identity of the users.A general overview of the life cycle of an AIK and its practical application<strong>in</strong> a remote attestation scenario is provided <strong>in</strong> Figure 1. At first, a RSA key isgenerated with<strong>in</strong> the protection of the TPM. In order to obta<strong>in</strong> an AIK certificatefor it, the t<strong>ru</strong>sted platform and the PrivacyCA execute a cryptographicallysecured protocol. A request package describ<strong>in</strong>g the AIK and a set of platformspecific certificates is transmitted. The PrivacyCA checks the <strong>in</strong>formation. If therequest conforms to the CA policy, an AIK certificate is returned. It is encryptedso that only the TPM <strong>in</strong>dicated <strong>in</strong> the request can extract it. Now the AIK keycan be used, whenever an attester requests the attestation of the t<strong>ru</strong>sted platform.Then the system state description, which is signed with the private part ofthe AIK and the AIK certificate are provided. The Attester can now verify thecorrectness of the signature after confirm<strong>in</strong>g the validity of the certificate withthe help of the PrivacyCA’s revocation service.The mode of operation of a specific PrivacyCA is regulated by its policy, whichdef<strong>in</strong>es two important properties: Who is allowed to acquire an AIK and howmuch <strong>in</strong>formation about the AIK request and the issued certificates is reta<strong>in</strong>ed?In a restricted deployment scenario for example, the PrivacyCA issues andvalidates AIK certificates only for well-known clients. This requires an <strong>in</strong>itial registrationstep. In this case it might make sense to store all <strong>in</strong>formation acquired


A PrivacyCA for Anonymity and T<strong>ru</strong>st 105dur<strong>in</strong>g an AIK cycle. In open scenarios, where the PrivacyCA issues certificatesto a large set of customers that are not necessarily known beforehand a moreliberal policy might be required. The policy options for a PrivacyCA range from”record noth<strong>in</strong>g” over ”know enough for the specific operation, forget detailsafter its completion” to ”store and log everyth<strong>in</strong>g”. The choice of PrivacyCAand privacy policy and consequently the <strong>in</strong>tended level of privacy should be leftto the end-user.In conclusion, a PrivacyCA takes the role of a t<strong>ru</strong>sted third party. It mustbe t<strong>ru</strong>sted by both parties <strong>in</strong> the remote attestation process. More specifically,the attestant must be ensured that his privacy is protected <strong>in</strong> accordance to aspecific policy, whereas the attester must be assured that a remote attestationreport is <strong>in</strong>deed issued by a TPM.2.3 Guidel<strong>in</strong>es for Build<strong>in</strong>g a T<strong>ru</strong>stworthy ServiceIn the T<strong>ru</strong>sted Comput<strong>in</strong>g scenario envisioned by the TCG, services like a PrivacyCAtake the role of a t<strong>ru</strong>sted third party. Ideally such a service should beprovable secure. Of course, its t<strong>ru</strong>stworth<strong>in</strong>ess not solely depends on its design,but also on its practical implementation as well. This <strong>in</strong>cludes the t<strong>ru</strong>stworth<strong>in</strong>essof the TCB it is executed on. Regrettably, the downright complexity of theoverall system renders a fully formally verified approach <strong>in</strong>feasible with today’stechnology.Still, by follow<strong>in</strong>g a pragmatic comb<strong>in</strong>ation of currently available technologiesand practices, a high level of t<strong>ru</strong>st can be achieved. We now summarizea comprehensive set of simple, heuristically determ<strong>in</strong>ed and generally acceptedguidel<strong>in</strong>es.Guidel<strong>in</strong>e 1. Apply Virtualization.Virtualization support allows the execution of several virtual mach<strong>in</strong>es <strong>in</strong> parallelon the same computer. A hypervisor or Virtual Mach<strong>in</strong>e Monitor (VMM)manages the compartments 1 and enforces their separation. The application ofvirtualization <strong>in</strong> a TC context is not a new notion [10]. It allows to isolatet<strong>ru</strong>sted services <strong>in</strong> compartment of their own, which helps restrict<strong>in</strong>g a possiblesubversion to a small part of the overall system.Guidel<strong>in</strong>e 2. Restrict the T<strong>ru</strong>sted Comput<strong>in</strong>g Base to a m<strong>in</strong>imum.Today’s platforms are versatile. In regard to the t<strong>ru</strong>stworth<strong>in</strong>ess of the platformthis is a drawback. Every service with an external <strong>in</strong>terface provides a po<strong>in</strong>t ofattack. It is therefore sensible to deactivate every service and component thatis not strictly necessary for the execution of the t<strong>ru</strong>sted service. We proposean even stricter approach: Remove every superfluous component. The rational isthat even if a component does not provide a po<strong>in</strong>t of attack it may make securityanalysis and <strong>in</strong>spection of the overall system more complex.1 Note that such hardware-emulat<strong>in</strong>g compartments are often called “Virtual Mach<strong>in</strong>es”.In this paper we use the term exclusively for the language-based Java VirtualMach<strong>in</strong>e.


106 M. Pirker et al.Guidel<strong>in</strong>e 3. Use formal methods to proof the security of the service <strong>in</strong>terface.A formal verification of the security of the complete TCB would be desirable.However, the level of complexity of contemporary software architecturesis formidable. Yet, the ma<strong>in</strong> po<strong>in</strong>t of attack of a service is its network protocol<strong>in</strong>terface, which limits the scope. Thus, we suggest to use formal and automatedmechanisms for <strong>in</strong>terface specification, analysis [16] and implementation.Guidel<strong>in</strong>e 4. Use a safe programm<strong>in</strong>g language.The programm<strong>in</strong>g language a service is written <strong>in</strong> has a paramount <strong>in</strong>fluenceon the security properties of the service. A language that allows direct memoryaccess through the use of po<strong>in</strong>ters, or does not automatically perform rangecheck<strong>in</strong>g is <strong>in</strong>herently more unsafe than a language that does [9]. While it is possibleto create safe programs <strong>in</strong> a wide variety of languages, there is a noticeabledifference <strong>in</strong> the complexity and error-proneness to do so.Guidel<strong>in</strong>e 5. The source code of the service should be available to the publicfor <strong>in</strong>spection.Kerckhoff stated [14] that the security of a cryptographic system should solelyrely on the secrecy of the key. The rest of the system should be open for <strong>in</strong>spection.We propose to apply a similar pr<strong>in</strong>ciple to t<strong>ru</strong>sted comput<strong>in</strong>g. Publiclyavailable source code does not only <strong>in</strong>crease the t<strong>ru</strong>st <strong>in</strong> a service, but <strong>in</strong> additionadds all the other advantages of public review and criticism to the development.For the same reason a t<strong>ru</strong>sted service should be deployed on a platform that iscomposed of other mature open source components.Guidel<strong>in</strong>e 6. Use T<strong>ru</strong>sted Comput<strong>in</strong>g.Ensur<strong>in</strong>g t<strong>ru</strong>stworth<strong>in</strong>ess is a two-way process [23]. A client should be able tot<strong>ru</strong>st a service and vice versa. T<strong>ru</strong>sted Comput<strong>in</strong>g helps to achieve this goal bymeasur<strong>in</strong>g the platform and employ<strong>in</strong>g remote attestation. As mentioned abovea t<strong>ru</strong>stworthy service should use these tools and the TPM-based capabilitiesavailable on modern platforms.3 T<strong>ru</strong>sted Comput<strong>in</strong>g PKI PrimitivesIn the follow<strong>in</strong>g sections we outl<strong>in</strong>e the TCG specified components and proceduresthat facilitate the creation of a PKI service. We will discuss specific keys,certificates and protocols and their <strong>in</strong>tended role. In this discussion, we onlyconsider the elements relevant to the PrivacyCA concept.Security credentials <strong>in</strong> general may be represented <strong>in</strong> different formats. Thecredential standard document of the TCG [33] describes credentials <strong>in</strong> the concrete<strong>in</strong>stantiation of either X.509 certificates [13] or attribute certificates [8].Additionally, some TPM functions produce b<strong>in</strong>ary blocks of data the <strong>in</strong>ternalst<strong>ru</strong>ctures of which do not conform to any standard.


3.1 Endorsement Key and EK CertificateA PrivacyCA for Anonymity and T<strong>ru</strong>st 107Every TPM hosts a unique Endorsement Key (EK). The asymmetric key pair isstored <strong>in</strong> non-volatile memory <strong>in</strong>side the TPM. It is impossible to retrieve theprivate part of the key. A correspond<strong>in</strong>g TPM Endorsement certificate conta<strong>in</strong>sthe public part of the key pair. This certificate represents an assertion that acerta<strong>in</strong> TPM conforms with the TCG specifications and that the private EndorsementKey is <strong>in</strong>deed protected by the TPM. The Endorsement certificate issigned by the entity which created and <strong>in</strong>serted the EK.As the Endorsement Key uniquely identifies a TPM and hence a specific platform,the privacy of the platform user or users might be at risk if the EK isemployed for remote attestation operations. As a consequence, the TCG rigorouslyrestricted the set of operations that can be performed with the EK. For<strong>in</strong>stance it is used dur<strong>in</strong>g the tak<strong>in</strong>g of ownership of the TPM by the user. Notablyit cannot be used to sign PCR values or arbitrary data. This policy isenforced by the TPM.3.2 Platform CertificateA system manufacturer vouches for the components of a platform (except theTPM) with a Platform Endorsement (PE) credential. It represents an assertionthat the specific platform <strong>in</strong>corporates a properly certified TPM and the necessarysupport components. A PE states that the platform architecture conforms toTCG specifications. A reference to the specific TPM on the platform is <strong>in</strong>cluded.3.3 Conformance CertificateA platform Conformance Credential (CC) attests that the overall design of aplatform satisfies the TCG specifications. It asserts the proper design of theT<strong>ru</strong>sted Comput<strong>in</strong>g subsystem and its correct <strong>in</strong>tegration <strong>in</strong>to the platform. TheCC is described <strong>in</strong> [29], but was not updated <strong>in</strong> the newer [33] TCG specifications.The newer specification focuses on the EK, PE and AIK (see next section)credentials alone. Thus, for the scope of this paper, we consider its status obsoleteand do not consider it further.3.4 Attestation Identity Key and AIK CertificateAs an alternative to the unique and privacy sensitive EK, the TCG <strong>in</strong>troducedAttestation Identity Keys (AIKs) and the associated AIK certificates. AIK certificatesdo not conta<strong>in</strong> any <strong>in</strong>formation that l<strong>in</strong>ks the certificates to the specificplatform host<strong>in</strong>g the AIKs. The AIK certificates assure that the identity keysare <strong>in</strong>deed TPM hosted.AIK protocol. In order to create an AIK certificate, the t<strong>ru</strong>sted client platformwith a TPM and the PrivacyCA service execute a cryptographic protocol.The TCG specified the TPM <strong>in</strong>teraction and the PrivacyCA actions, but did


108 M. Pirker et al.not stipulate a transmission protocol for the exchange of the request and responsepackets. The flow of an AIK creation is illustrated <strong>in</strong> Figure 2. The stepsperformed are as follows 21. A client application, <strong>ru</strong>nn<strong>in</strong>g on a mach<strong>in</strong>e equipped with a TPM, <strong>in</strong>vokesthe Tspi TPM CollateIdentityRequest TSS function to <strong>in</strong>itiate a new AIKcreation.2. The TSS <strong>in</strong>vokes the TPM MakeIdentity TPM function to create a newattestation-identity RSA-key-pair (AIK). The TPM returns a st<strong>ru</strong>cture conta<strong>in</strong><strong>in</strong>gthe public AIK, signed with the private AIK key.3. The TSS assembles the request to the PrivacyCA <strong>in</strong>to a st<strong>ru</strong>cture conta<strong>in</strong><strong>in</strong>g- amongst other <strong>in</strong>formation - the signed blob returned by the TPM and theEK and PE certificates of the platform. This request is encrypted with thepublic key of the PrivacyCA PCA Pub , which must be known to the clientbeforehand.4. The request is forwarded to the PrivacyCA. The PrivacyCA decrypts therequest and validates its content. In do<strong>in</strong>g so, it also validates the certificatesconta<strong>in</strong>ed by the request.5. On successful validation the PrivacyCA issues an AIK certificate, encryptedwith a symmetric key. The symmetric key along with a hash of the publicAIK is <strong>in</strong> turn encrypted with the public key of the EK of the TPM EK Pub(obta<strong>in</strong>ed from the EK certificate <strong>in</strong> the request). This assures that the resultpackage can only be decrypted by the <strong>in</strong>tended recipient TPM. The resultis transported back to the client system.6. The client application calls the TSS Tspi TPM ActivateIdentity functionwith the response from the PrivacyCA. The TSS subsequently requests theplatforms TPM to decrypt the response package with the private part of theEK. If the referenced AIK is available on the TPM, the symmetric key isreturned.7. On successful completion of this protocol, the returned key is used to decryptthe response from the PCA conta<strong>in</strong><strong>in</strong>g the AIK certificate.An activated AIK is a pair of an TPM identity key and the associated certificateissued by a third party PrivacyCA service. The AIK certificate attests that thekey pair is bound to a TPM. It conta<strong>in</strong>s <strong>in</strong>formation fragments from both lowerlevel certificates, EK and PE, to identify the TPM and platform model, butdoes not conta<strong>in</strong> enough unique <strong>in</strong>formation to allow p<strong>in</strong>po<strong>in</strong>t<strong>in</strong>g to the specificphysical hardware.Additionally, an AIK certificate conta<strong>in</strong>s a client chosen arbitrary label str<strong>in</strong>gwhich allows for later recognition <strong>in</strong> a set of AIK certificates. Well def<strong>in</strong>ed labelstr<strong>in</strong>gs support the user of the platform <strong>in</strong> associat<strong>in</strong>g a key to a specific task,while they do not allow other parties to guess the identity of the platform andhence the user. This label is a specific TCG certificate extension and must notbe confused with standard certificate nam<strong>in</strong>g fields.2 Note that some details are omitted for clarity of presentation. For a complete descriptionplease refer to the TCG specifications [28], [30] and [31].


A PrivacyCA for Anonymity and T<strong>ru</strong>st 109ClientCollate Identity Request⏐↓PrivacyCATSS: setup data st<strong>ru</strong>ctures⏐Make Identity ↓TPM: create new RSAidentity key pair, signpublic part with privateAIK Pub ,S AIKpriv (AIK Pub )⏐↓TSS: build request,encrypt with PCA Pub−−−−−−→ decrypt+validate request⏐↓ SuccessTSS: request TPM todecrypt response with TPMEK PrivActivate Identity⏐↓←−−−−−−issue AIK cert,encrypt with TPM EK PubTPM: check for AIKSymmetric key⏐↓TSS: decrypt rema<strong>in</strong>s,obta<strong>in</strong> AIK certificateFig. 2. Overview of the AIK certification procedure with a PrivacyCA4 ImplementationsWe implement the core components of a t<strong>ru</strong>sted PrivacyCA service follow<strong>in</strong>gthe considerations outl<strong>in</strong>ed <strong>in</strong> the previous sections. Our PrivacyCA allows thecreation and validation of EK and AIK certificates and also provides a simple,yet sufficient API for certificate retrieval and revocation.We eschew the creation of a special purpose platform from scratch, <strong>in</strong>steadwe start out us<strong>in</strong>g a well ma<strong>in</strong>ta<strong>in</strong>ed off-the-shelf operat<strong>in</strong>g system and maturelibrary components. We based our implementation on Java <strong>ru</strong>nn<strong>in</strong>g on L<strong>in</strong>ux.This is a pragmatic approach which offers a good balance of prototyp<strong>in</strong>g speed,maturity, features, <strong>in</strong>vested effort and security. We expect this concept to beversatile and t<strong>ru</strong>stworthy enough for all but the most security critical <strong>in</strong>tendedpurposes. In the next sections we describe the implementation choices we madefor each of the components <strong>in</strong> greater detail.


110 M. Pirker et al.4.1 TCcertAs outl<strong>in</strong>ed <strong>in</strong> Section 3, the TCG’s specification of the EK, PE and AIK certificatesrequires the def<strong>in</strong>ition of new types of certificate extensions for X.509type certificates [33] and attribute certificates [8].General purpose PKI tools currently do not support these extensions and weare not aware of any publicly available library that does. We present a Javalibrary called TCcert which enables us to create these certificates. This allowsus to provide the basic build<strong>in</strong>g blocks for a T<strong>ru</strong>sted Comput<strong>in</strong>g PKI. The follow<strong>in</strong>gcredentials are currently supported by TCcert for certificate creation andvalidation– TPM Endorsement Key (EK) credential,– Platform Endorsement (PE) credential and– Attestation Identity Key (AIK) credential.4.2 A PrivacyCA Based on XMLInteraction of dist<strong>in</strong>ct entities connected by a network requires a common protocolunderstood by all participants. Several protocols exist that are alreadyemployed <strong>in</strong> PKIs and for credential management. For t<strong>ru</strong>sted comput<strong>in</strong>g a protocolshould be able to support common PKI services as well as TC specificattributes, queries and data st<strong>ru</strong>ctures. The TCG considered this <strong>in</strong>frast<strong>ru</strong>ctureproblem <strong>in</strong> [32]. The two candidates mentioned are the CMC protocol [17] forX.509 certificates and the XKMS protocol [18] for XML-based credentials. TheXKMS option <strong>in</strong>itially appeared attractive because its ability to wrap legacyCA services designed for X.509 certificates and express certificate management<strong>in</strong> XML.Our first PrivacyCA implementation whichusesanXKMSbasedprotocolwas released at [19] <strong>in</strong> the middle of 2007. It proofs that it is possible to usean unmodified XKMS schema to encode the messages required by a TC enabledPKI. However, not all TC associated operations map to XKMS operations <strong>in</strong> astraightforward way. The AIK cycle uses pure b<strong>in</strong>ary data blobs and this propertyconflicts with the <strong>in</strong>tention of us<strong>in</strong>g pla<strong>in</strong> text XML st<strong>ru</strong>ctures. Furthermore,the proof of possession expected by certa<strong>in</strong> PKI commands is not always feasiblewith TC keys. The TPM policy does not allow e.g. identity keys to signarbitrary externally supplied data, as this would allow to fabricate fake t<strong>ru</strong>ststatements. F<strong>in</strong>ally, the application of this solution to a deployment scenariodemonstrated that XML <strong>in</strong>troduces an implementation overhead and externaldependencies that significantly <strong>in</strong>crease the b<strong>in</strong>ary size of the TCB. Therefore,we discont<strong>in</strong>ued this approach.4.3 An Efficient PrivacyCA ProtocolA PrivacyCA which offers a high level of t<strong>ru</strong>stworth<strong>in</strong>ess requires a communicationprotocol that offers a complete set of PKI operations, but at the same


create_aik_request ="CREATE_AIK_REQUEST" "\n""Blob: " base64 >clsbuf %save_blob "\n"".\n"@do_create_aik_request;create_aik_response ="CREATE_AIK_RESPONSE" "\n""Blob1: " base64 >clsbuf %save_blob1 "\n""Blob2: " base64 >clsbuf %save_blob2 "\n"".\n"@do_create_aik_response;A PrivacyCA for Anonymity and T<strong>ru</strong>st 111Fig. 3. Example of formal specification for the autogenerated parsertime allows for a small-sized implementation. Keep<strong>in</strong>g the guidel<strong>in</strong>es discussed<strong>in</strong> Section 2.3 <strong>in</strong> m<strong>in</strong>d we set out to design and build a PrivacyCA prototype byemploy<strong>in</strong>g state-of-the-art techniques and technologies.Communication Protocol. For a compact and robust communication protocolwe devised a simple ASCII-text based solution. The basic st<strong>ru</strong>cture of mostcommands is simply a command identifier followed by the data. Data items arel<strong>in</strong>e based, each l<strong>in</strong>e term<strong>in</strong>ated by a new l<strong>in</strong>e character. The data type identifierand the actual data are separated by a colon followed by a space. B<strong>in</strong>ary datapayload is transmitted as Base64 encoded str<strong>in</strong>gs.This is a very basic approach and thus not very prone to implementationerrors. The server side parser is const<strong>ru</strong>cted us<strong>in</strong>g the Ragel state mach<strong>in</strong>e compiler3 , result<strong>in</strong>g <strong>in</strong> mostly automatically generated pars<strong>in</strong>g code. Ragel generatesexecutable f<strong>in</strong>ite state mach<strong>in</strong>es from a regular-expression like, formal descriptionof the expected valid <strong>in</strong>put data stream. Furthermore, it allows to generatecode for multiple target languages, not only for Java, and thus we hope thisencourages development of clients <strong>in</strong> alternative languages.The follow<strong>in</strong>g short example (cf. Figure 3) illustrates the specification of therequest and response of the aik create command which is used to generate theimplementation.Command Set. We implement a sufficient set of commands that enables ourimplementation to serve as a foundation for a t<strong>ru</strong>sted comput<strong>in</strong>g PKI. Thisalso <strong>in</strong>cludes commands for creat<strong>in</strong>g and validat<strong>in</strong>g EK certificates, which arecurrently miss<strong>in</strong>g for the majority of shipp<strong>in</strong>g TPMs. Other commands allowbasic tasks such as creation and revocation of AIK certificates.Our prototype of a PrivacyCA supports the follow<strong>in</strong>g operations to enablethe identity keys concept of the TCG.ekcert create. This command creates a TPM endorsement certificate for agiven public key. To our knowledge currently only one vendor, Inf<strong>in</strong>eon,3 A. Thurston, Ragel State Mach<strong>in</strong>e Compiler, http://www.complang.org/ragel/


112 M. Pirker et al.supplies an EK for its TPMs. In order to support TPMs from other vendorsit is necessary to supply those TPMs with EK certificates, otherwise it isunreasonable to provide them with AIK certificates.ekcert validate. This function validates a TPM endorsement certificate. OurPrivacyCA recognizes certificates issued by Inf<strong>in</strong>eon and certificates issuedby our own ekcert create command.aik create. implements the AIK certificate creation cycle as specified by theTCG (see section 3.4). By default, all AIK certificates issued are saved <strong>in</strong> alocal storage.aik validate. provides a function to validate the AIK certificates issued by ourPrivacyCA. The certificate to be checked is submitted by the client and thePrivacyCA returns whether the given certificate is valid.aik locate. offers a search function for retrieval of a specific AIK certificate.The AIK label serves as the search key.aik revoke. Provides the revocation of <strong>in</strong>dividual certificates. The copy <strong>in</strong> thelocal storage is removed. Thus, the certificate is no longer available foraik locate.tcb quote. asks the PrivacyCA to quote itself. The PrivacyCA uses the TPMto perform a quote of the system state and returns it to the attester.Furthermore, a t<strong>ru</strong>sted-third-party service like our PrivacyCA should use anend-to-end secure connection for communication with its clients. The currentimplementation uses unprotected communication channels, however the servicecan be easily upgraded with Transport Layer Security (TLS). To establish anencrypted TLS-session, we propose to use a session key derived from the sameknown public PrivacyCA key, which is already necessary for the aik create command.4.4 A Reduced Compartment ImageTo facilitate the functional assessment and the security analysis of the serviceand its TCB, the code base should be as small as possible. Therefore, it shouldonly <strong>in</strong>clude components that are c<strong>ru</strong>cial for its operation. This extends to evenremov<strong>in</strong>g unnecessary parts of said components. It would be tempt<strong>in</strong>g to <strong>in</strong>tuitivelyargue that fewer L<strong>in</strong>es-of-Code generally equals less defects. However, wecaution that the vulnerability density is not always l<strong>in</strong>ear to size. Still, we believethat the overall reduction of code base complexity aids the goal of detect<strong>in</strong>g andunderstand<strong>in</strong>g security issues and furthers the goal of a t<strong>ru</strong>stworthy service andis thus worth exploration.Software Layers. The TCB of our PrivacyCA service, which is written <strong>in</strong>Java, can be grouped <strong>in</strong>to the follow<strong>in</strong>g layers: PrivacyCA service, JVM/JRE,OS <strong>ru</strong>ntime support, OS kernel and the TPM. The top layer is our Java PrivacyCAimplementation. In order for the Java bytecode to execute, a Java RuntimeEnvironment (JRE) with a Java Virtual Mach<strong>in</strong>e (JVM) is required. The JVMmakes use of the native environment to use system specific functions like graphics,pr<strong>in</strong>t<strong>in</strong>g and sound. The native environment is a set of high-level application


A PrivacyCA for Anonymity and T<strong>ru</strong>st 113PrivacyCA applicationJVM/JREOS <strong>ru</strong>ntime supportOS kernelPlatform / TPMFig. 4. The T<strong>ru</strong>sted Comput<strong>in</strong>g Base of the PrivacyCA service consists of several layerslibraries, the C/C++ standard libraries and operat<strong>in</strong>g system functions. Theoperat<strong>in</strong>g system kernel implements the low-level services.This full software stack is able to <strong>ru</strong>n directly on hardware as well as <strong>in</strong> avirtualized compartment, unaware of the surround<strong>in</strong>g virtualization layer. Weoptimized the TCB for the execution of our PrivacyCA service, by start<strong>in</strong>g outwith an off-the-shelf configuration and then reduc<strong>in</strong>g the <strong>in</strong>cluded functionality<strong>in</strong> the respective layers to the absolute m<strong>in</strong>imum. In addition, we employedfree-licensed open source components only.Java Environment. To provide the best possible Java compatibility and allowreuse of exist<strong>in</strong>g code we chose IcedTea 4 , which is based on Sun’s officialOpenJDK 5 . The actual subset of the Java environment which is necessary forthe PrivacyCA is small. Through the use of Java’s class load<strong>in</strong>g profil<strong>in</strong>g feature,we identified the c<strong>ru</strong>cial classes. The monitor<strong>in</strong>g of the system dynamicl<strong>in</strong>ker/loader ld.so produced a list of the necessary native libraries. To allowerror handl<strong>in</strong>g, the required set of Exception and Error were also added. Thisapproach reduces the Java <strong>ru</strong>ntime for a specific application to a more manageablesize <strong>in</strong> the range of 10 to 20MB. Note that this approach requiresmanual <strong>in</strong>tervention and reasonable completeness is only achievable for smallapplications.We add cryptographic functionality us<strong>in</strong>g IAIK JCE 6 and TC support us<strong>in</strong>gIAIK jTSS, a pure Java TSS [26].ASmallKernel.The m<strong>in</strong>imal TCB guidel<strong>in</strong>e requires an OS which is small<strong>in</strong> size, yet powerful enough to support the stripped down JVM. Of the opensource operat<strong>in</strong>g systems, GNU/L<strong>in</strong>ux is widely used and actively ma<strong>in</strong>ta<strong>in</strong>edby a large global community. It is a suitable environment to host IcedTea. Inaddition, the kernel build system allows a f<strong>in</strong>e-gra<strong>in</strong>ed selection of only thosecapabilities required by our application. Our configuration consists of essentialkernel functionality and a small set of drivers to enable execution directly onhardware or <strong>in</strong> a virtualized compartment environment (e.g. Xen).4 http://icedtea.classpath.org/5 http://openjdk.java.net/6 http://jce.iaik.tugraz.at/sic/products/core_crypto_toolkits/jca_jce


114 M. Pirker et al.Table 1. Overview of the size of the PrivacyCA software componentsLayer Component Size [kB]OS Kernel L<strong>in</strong>ux Kernel 900OS Runtime BusyBox 750Baselayout-lite 61C Libraries libstdc++ 3545uClibc 1103GCC Runtime 42Java Core Stripped Icedtea JRE 8792Java Application PrivacyCA Server Core 200lib IAIK JCE 818lib IAIK jTSS 312lib TCcert 49A M<strong>in</strong>imal Runtime. The standard glibc system library uses about 20 to25 MB disk space on a typical <strong>in</strong>stallation. Additional system and shell toolsrequired for the boot process accumulate to over 3 MB. A component reducedboot process is implementable by employ<strong>in</strong>g the compact Busybox 7 toolkit. Itsupplies a m<strong>in</strong>imal userland program environment. A m<strong>in</strong>imal set of configurationfiles needed for start<strong>in</strong>g and <strong>ru</strong>nn<strong>in</strong>g a GNU/L<strong>in</strong>ux system is provided bythe sys-apps/baselayout-lite package made available from the Embedded Gentooproject 8 . Furthermore, we chose the uClibc 9 as an alternative C library with adrastically reduced footpr<strong>in</strong>t.A M<strong>in</strong>imal PrivacyCA Compartment Prototype. The PrivacyCA servicebuilt from the above components is bundled <strong>in</strong>to a s<strong>in</strong>gle compartment image.Note that the privacy policy configuration is an <strong>in</strong>tr<strong>in</strong>sic part of the image file.Thus it implicitly can be measured <strong>in</strong>to the TPM at compartment startup. Acurrent snapshot and associated source code is available for download from [19].The size of the components <strong>in</strong> a current snapshot of our prototype are presented<strong>in</strong> Table 1. The complete compartment has a total size of approximately17 Megabytes.5 Use CasesThe general availability of a small-sized, versatile PrivacyCA compartment enablesmultiple deployment scenarios for further research and gather<strong>in</strong>g of practicalexperience. We describe multiple such scenarios, where our system architectureprovides added value over conventional service implementations.Scalability of PrivacyCAs. In a future T<strong>ru</strong>sted Comput<strong>in</strong>g-enabled Internet aPrivacyCA potentially has to serve millions of users. A certa<strong>in</strong> pressure to employ7 http://www.busybox.net/8 http://www.gentoo.org/proj/en/base/embedded/9 http://www.uclibc.org/


A PrivacyCA for Anonymity and T<strong>ru</strong>st 115a multitude of certificates exists as the use of more AIKs per user <strong>in</strong>creasesa users anonymity to service providers. This necessitates a powerful, scalablecertification authority <strong>in</strong>frast<strong>ru</strong>cture that is capable of issu<strong>in</strong>g and validat<strong>in</strong>g agreat number of certificates.Scalability of a PrivacyCA service can be achieved through host<strong>in</strong>g manysmall PrivacyCA compartments. This is done by host<strong>in</strong>g a sufficient numberof compartments <strong>in</strong> parallel us<strong>in</strong>g virtualization technology on a set of servermach<strong>in</strong>es. The preservation of a services’ t<strong>ru</strong>stworth<strong>in</strong>ess is of c<strong>ru</strong>cial importance.The vision of such a T<strong>ru</strong>sted Virtual Datacenter (TVDc) sett<strong>in</strong>g is an activearea of research, see e.g. [25] and [5]. We are optimistic that current TVDcrelated research results can be adapted to const<strong>ru</strong>ct a massively scaled t<strong>ru</strong>stedPrivacyCA datacenter.Compact PrivacyCA Service for Restricted or Mobile Environments.As our PrivacyCA consists of open source components only, it is open to <strong>in</strong>spectionand analysis by the community. It is also compact and self-conta<strong>in</strong>ed:once evaluated it is easy to show that any given <strong>in</strong>stance has not been changedthrough TC attestation mechanisms. Furthermore, self-conta<strong>in</strong>ed services areeasy to deploy, especially for <strong>in</strong>-house PrivacyCA services of organizations whichpresumably will precede Internet-wide use. The services’ compactness also allowsusage on performance restricted systems, such as t<strong>ru</strong>sted mobile phones [22].T<strong>ru</strong>sted Core for Large Java Applications. To <strong>in</strong>crease the security of applications<strong>in</strong> the Nizza virtualization architecture, [24] suggest to extract securitycritical modules out of legacy applications. Each of these modules is transferred<strong>in</strong>to a separate, t<strong>ru</strong>sted compartment called AppCore which features a smallTCB. We believe that our reduced Java environment is ideally suited to implementsimilar modifications for Java applications.6 Related WorkTo our knowledge the first experimental public PrivacyCA service 10 was put <strong>in</strong>tooperation by us at IAIK <strong>in</strong> 2007. It served as a basis for the advanced versionpresented <strong>in</strong> this paper. In a seem<strong>in</strong>gly private effort 11 another PrivacyCA wasstarted <strong>in</strong> 2008, but with limited functional scope. Zic and Nepal [35] presenteda scenario employ<strong>in</strong>g a prototype PrivacyCA service but to the best of ourknowledge this service has not been released.As an alternative to the t<strong>ru</strong>sted third party concept of a PrivacyCA, [6] proposesDirect Anonymous Attestation (DAA). TPM implementations are available,however the required software and service <strong>in</strong>frast<strong>ru</strong>cture has not yet beenprovided for. It rema<strong>in</strong>s a theoretical concept so far.TC-enabled hardware platforms [7] support hardware enforced virtualization.Generally, a hypervisor like the Xen [3] virtual mach<strong>in</strong>e monitor or the Fiasco/L410 http://opentc.iaik.tugraz.at/11 http://www.privacyca.com


116 M. Pirker et al.[12] µ-kernel, allows the creation, execution and hibernation of isolated compartments.Modern t<strong>ru</strong>sted platforms [10,20,15] could <strong>in</strong> the near future employ thesehardware features, given proper virtualization of the TPM [4,25,5,21].A significant body of research on Java virtual mach<strong>in</strong>es and us<strong>in</strong>g Java as anoperat<strong>in</strong>g system or a component thereof exists. Yet, Java is still evolv<strong>in</strong>g andthus older results may not reflect newer research developments or requirements.The results of [11], [34] or projects (SanOS 12 ) are currently not ma<strong>in</strong>ta<strong>in</strong>ed.Also, mobile Java platforms such as Sun’s KVM 13 may be smaller, howevertheir feature set is restricted and not compatible with general Java applicationsor libraries. More recent efforts like JNode 14 or [1] do not consider small b<strong>in</strong>arysize as a goal, thus result<strong>in</strong>g <strong>in</strong> a TCB that is too large for our purposes. The JavaKernel 15 project divides JRE libraries <strong>in</strong>to separate bundles, which are laterfetched at <strong>ru</strong>ntime as required. Reliance on a full-featured W<strong>in</strong>dows environment<strong>in</strong>troduces additional overhead. Anderson et al. [2] created a small sized Xenlibrary OS <strong>ru</strong>nn<strong>in</strong>g exclusively on top of the Xen hypervisor. Due to the lack ofbasic features it is not able to <strong>ru</strong>n a modern Java Runtime Environment such asOpenJDK.7 ConclusionThis paper describes the creation of a t<strong>ru</strong>stworthy PrivacyCA service. We presentand follow a set of guidel<strong>in</strong>es that allow to achieve practical t<strong>ru</strong>stworth<strong>in</strong>esswith a novel comb<strong>in</strong>ation of state-of-the-art methods. These methods <strong>in</strong>cludeformal yet compilable protocol specifications, the m<strong>in</strong>imization of the TCB andthe utilization of hardware-supported virtualization. Foremost, our PrivacyCAservice lays the foundation for easy attestation of its state and consequently theprivacy policy it guarantees to its clients.The PrivacyCA is implemented as a self-conta<strong>in</strong>ed image that can be executedstand-alone or by the Xen hypervisor. While the image is of m<strong>in</strong>imal size, itconta<strong>in</strong>s a bare-bone operat<strong>in</strong>g system and a Java Runtime Environment. Ourprocess can also be applied to support other services with a highly t<strong>ru</strong>stworthyenvironment. The PrivacyCA service protocol is partially auto-generated from aformal state-mach<strong>in</strong>e description. We outl<strong>in</strong>e several use-cases and <strong>in</strong>corporatethe results of operat<strong>in</strong>g an experimental public prototype setup.Future work will consider use cases <strong>in</strong> the context of distributed comput<strong>in</strong>gand advanced certification mechanisms for virtual TPMs. An <strong>in</strong>tegration of thenewest TCG credential type, a unified credential [33], may stimulate new workflows. We also desire to work on clos<strong>in</strong>g the gap between automatic generationof an implementation and the formal security analysis of network protocols andto apply this to future extended PrivacyCA <strong>in</strong>terfaces.12 http://www.jbox.dk/sanos/13 http://java.sun.com/products/cldc/wp/KVMwp.pdf14 http://www.jnode.org/15 http://java.sun.com/javase/6/6u10faq.jsp


A PrivacyCA for Anonymity and T<strong>ru</strong>st 117Acknowledgements. The authors thank the anonymous reviewers for their<strong>in</strong>sightful comments and Andreas Niederl for assist<strong>in</strong>g the implementations.The efforts at IAIK to <strong>in</strong>tegrate TC technology <strong>in</strong>to the Java programm<strong>in</strong>glanguage are part of the OpenTC project funded by the EU as part of FP-6,contract no. 027635. The project aims at provid<strong>in</strong>g an open source TC frameworkwith a special focus on the L<strong>in</strong>ux operat<strong>in</strong>g system platform. Started as an opensource project the results can be <strong>in</strong>spected by everybody, thus add<strong>in</strong>g towardsthe t<strong>ru</strong>stworth<strong>in</strong>ess of T<strong>ru</strong>sted Comput<strong>in</strong>g solutions.References1. Ammons, G., Appavoo, J., Butrico, M., Silva, D.D., Grove, D., Kawachiya, K.,Krieger, O., Rosenburg, B., Hensbergen, E.V., Wisniewski, R.W.: Libra: a libraryoperat<strong>in</strong>g system for a jvm <strong>in</strong> a virtualized execution environment. In: VEE 2007:Proceed<strong>in</strong>gs of the 3rd <strong>in</strong>ternational conference on Virtual execution environments,pp. 44–54. ACM, New York (2007)2. Anderson, M.J., Moffie, M., Dalton, C.I.: Towards t<strong>ru</strong>stworthy virtualisation environments:Xen library os security service <strong>in</strong>frast<strong>ru</strong>cture. Technical Report HPL-2007-69, HP Research (2007)3. Barham, P., Dragovic, B., Fraser, K., Hand, S., Harris, T., Ho, A., Neugebauer,R., Pratt, I., Warfield, A.: Xen and the art of virtualization. In: SOSP 2003: Proceed<strong>in</strong>gsof the n<strong>in</strong>eteenth ACM symposium on Operat<strong>in</strong>g systems pr<strong>in</strong>ciples, pp.164–177. ACM, New York (2003)4. Berger, S., Cáceres, R., Goldman, K.A., Perez, R., Sailer, R., van Doorn, L.: vTPM:virtualiz<strong>in</strong>g the t<strong>ru</strong>sted platform module. In: USENIX-SS 2006: Proceed<strong>in</strong>gs of the15th conference on USENIX Security Symposium, pp. 305–320 (2006)5. Berger, S., Cáceres, R., Pendarakis, D., Sailer, R., Valdez, E., Perez, R., Schildhauer,W., Sr<strong>in</strong>ivasan, D.: TVDc: manag<strong>in</strong>g security <strong>in</strong> the t<strong>ru</strong>sted virtual datacenter.SIGOPS Oper. Syst. Rev. 42(1), 40–47 (2008)6. Brickell, E., Camenisch, J., Chen, L.: Direct anonymous attestation. In: CCS 2004:Proceed<strong>in</strong>gs of the 11th ACM conference on <strong>Computer</strong> and communications security,pp. 132–145. ACM, New York (2004)7. David Grawrock. The Intel Safer Comput<strong>in</strong>g Initiative. Intel Press (2006) ISBN0-9764832-6-28. Farrell, S., Housley, R.: An Internet Attribute Certificate Profile for Authorization(April 2002), http://www.ietf.org/rfc/rfc3281.txt9. Felleisen, M., Cartwright, R.: Safety as a metric. In: Proc. 12th Conference onSoftware Eng<strong>in</strong>eer<strong>in</strong>g Education and Tra<strong>in</strong><strong>in</strong>g, pp. 129–131 (1999)10. Garf<strong>in</strong>kel, T., Pfaff, B., Chow, J., Rosenblum, M., Boneh, D.: Terra: a virtualmach<strong>in</strong>e-based platform for t<strong>ru</strong>sted comput<strong>in</strong>g. In: SOSP 2003: Proceed<strong>in</strong>gs of then<strong>in</strong>eteenth ACM symposium on Operat<strong>in</strong>g systems pr<strong>in</strong>ciples, pp. 193–206. ACM,New York (2003)11. Golm, M., Felser, M., Wawersich, C., Kle<strong>in</strong>öder, J.: A Java operat<strong>in</strong>g system asthe foundation of a secure network operat<strong>in</strong>g system. Technical report tr-i4-02-05,Univ. of. Erlangen, Dept. of Comp. <strong>Science</strong>, Lehrstuhl 4 (2002)12. Hohmuth, M.: The Fiasco kernel: Requirements def<strong>in</strong>ition. Technical Report ISSN1430-211X, Dresden University of Technology (1998)


118 M. Pirker et al.13. Housley, R., Polk, W., Ford, W., Solo, D.: Internet X.509 Public Key Infrast<strong>ru</strong>ctureCertificate and Certificate and CRL Profile (April 2002),http://www.ietf.org/rfc/rfc3280.txt14. Kerckhoffs, A.: La cryptographie militaire. Journal des sciences militaires IX (1883)15. Kuhlmann, D., Landfermann, R., Ramasamy, H.V., Schunter, M., Ramunno, G.,Vernizzi, D.: An open t<strong>ru</strong>sted comput<strong>in</strong>g architecture — secure virtual mach<strong>in</strong>esenabl<strong>in</strong>g user-def<strong>in</strong>ed policy enforcement. Research Report RZ 3655, IBM Research(2006)16. Meadows, C.: Formal methods for cryptographic protocol analysis: emerg<strong>in</strong>g issuesand trends. IEEE Journal on Selected Areas <strong>in</strong> Communications 21(1), 44–54(2003)17. Myers, M., Liu, X., Schaad, J., We<strong>in</strong>ste<strong>in</strong>, J.: Certificate Management Messagesover CMS (April 2000), http://www.ietf.org/rfc/rfc2797.txt18. Mysore, S.H., Hallam-Baker, P.: XML key management specification (XKMS 2.0).W3C recommendation, W3C (June 2005),http://www.w3.org/TR/2005/REC-xkms2-20050628/19. Pirker, M., Toegl, R., W<strong>in</strong>kler, T., Vejda, T.: T<strong>ru</strong>sted comput<strong>in</strong>g for theJava TM platform (2009), http://t<strong>ru</strong>stedjava.sourceforge.net/20. Sadeghi, A.-R., Stüble, C., Pohlmann, N.: European multilateral secure comput<strong>in</strong>gbase - open t<strong>ru</strong>sted comput<strong>in</strong>g for you and me. Datenschutz und Datensicherheit(DUD) (09/2004), pp. 548–554 (2004),http://www.t<strong>ru</strong>st.<strong>ru</strong>b.de/media/publications/SaStPo2004Web.pdf21. Sadeghi, A.-R., Stüble, C., W<strong>in</strong>andy, M.: Property-based TPM virtualization. In:11th Information Security Conference (2008)22. Schmidt, A., Kuntze, N., Kasper, M.: On the deployment of mobile t<strong>ru</strong>sted modules.In: Wireless Communications and Network<strong>in</strong>g Conference, 2008. WCNC 2008,pp. 3169–3174. IEEE, Los Alamitos (2008)23. Sheehy, J., Coker, G., Guttman, J., Loscocco, P., Herzog, A., Millen, J., Monk,L., Ramsdell, J., Sniffen, B.: Attestation: Evidence and t<strong>ru</strong>st. Technical Report 070186, MITRE Corporation (2007)24. S<strong>in</strong>garavelu, L., Pu, C., Härtig, H., Helmuth, C.: Reduc<strong>in</strong>g TCB complexity forsecurity-sensitive applications: three case studies. In: EuroSys 2006: Proceed<strong>in</strong>gsof the ACM SIGOPS/EuroSys European Conference on <strong>Computer</strong> Systems 2006,pp. 161–174. ACM, New York (2006)25. Stumpf, F., Benz, M., Hermanowski, M., Eckert, C.: An approach to a t<strong>ru</strong>stworthysystem architecture us<strong>in</strong>g virtualization (2007)26. Toegl, R., Pirker, M.: An ongo<strong>in</strong>g game of Tetris: Integrat<strong>in</strong>g t<strong>ru</strong>sted comput<strong>in</strong>g<strong>in</strong> Java, block-by-block. In: Proceed<strong>in</strong>gs of Future of T<strong>ru</strong>st <strong>in</strong> Comput<strong>in</strong>g. Vieweg+ Teubner (2008)27. T<strong>ru</strong>sted Comput<strong>in</strong>g Group, https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/28. T<strong>ru</strong>sted Comput<strong>in</strong>g Group. TCG <strong>in</strong>frast<strong>ru</strong>cture specifications,https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/specs/IWG/29. T<strong>ru</strong>sted Comput<strong>in</strong>g Group. TCG ma<strong>in</strong> specification version 1.1b,https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/specs/TPM/30. T<strong>ru</strong>sted Comput<strong>in</strong>g Group. TCG software stack specification, version 1.2 errata a,https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/specs/TSS/31. T<strong>ru</strong>sted Comput<strong>in</strong>g Group. TCG TPM specification version 1.2 revision 103,https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/specs/TPM/


A PrivacyCA for Anonymity and T<strong>ru</strong>st 11932. T<strong>ru</strong>sted Comput<strong>in</strong>g Group. TCG Reference Architecture for Interoperability (Version1.0) (June 2005), https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/specs/IWG33. T<strong>ru</strong>sted Comput<strong>in</strong>g Group. TCG Credential Profiles Specifications (Version 1.1,rev 1.014) (May 2007), https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/specs/IWG34. van Doorn, L.: A secure Java virtual mach<strong>in</strong>e. In: Proceed<strong>in</strong>gs of the 9th USENIXSecurity Symposium. USENIX Association (2000)35. Zic, J., Nepal, S.: Implement<strong>in</strong>g a portable t<strong>ru</strong>sted environment. In: Proceed<strong>in</strong>gsof Future of T<strong>ru</strong>st <strong>in</strong> Comput<strong>in</strong>g. Vieweg + Teubner (2008)


Revocation of TPM KeysStefan Katzenbeisser 1 ,KlausKursawe 2 , and Frederic Stumpf 31 Security Eng<strong>in</strong>eer<strong>in</strong>g Group,Technische Universität Darmstadt, Darmstadt, Germanykatzenbeisser@seceng.<strong>in</strong>formatik.tu-darmstadt.de2 Information and System Security Group,Philips Research Europe, E<strong>in</strong>dhoven, The Netherlandsklaus.kursawe@philips.com3 Research Group IT-Security,Technische Universität Darmstadt, Darmstadt, Germanystumpf@sec.<strong>in</strong>formatik.tu-darmstadt.deAbstract. A T<strong>ru</strong>sted Platform Module (TPM) offers a number of basicsecurity services which can be used to build complex t<strong>ru</strong>sted applications.One of the ma<strong>in</strong> functionalities of a TPM is the provision of aprotected storage, <strong>in</strong>clud<strong>in</strong>g access management for cryptographic keys.To allow for scalability <strong>in</strong> spite of the resource constra<strong>in</strong>ts of the TPM,keys are not stored <strong>in</strong>side the TPM, but <strong>in</strong> encrypted form on external,unt<strong>ru</strong>sted storage. This has the consequence that the actual key storageis not under control of the TPM, and it is therefore not possible to revoke<strong>in</strong>dividual keys. In this paper we <strong>in</strong>troduce two basic methods to implementkey revocation without major changes to the TPM command set,and without <strong>in</strong>hibit<strong>in</strong>g backwards compatibility with the current specification.Our methods <strong>in</strong>troduce no overhead for normal operation, anda reasonable small effort for manag<strong>in</strong>g revocable keys.1 IntroductionOne of the basic functionalities of a T<strong>ru</strong>sted Platform Module (TPM) as proposedby the T<strong>ru</strong>sted Comput<strong>in</strong>g Group [9] is the secure storage of cryptographicencryption and signature keys. By protect<strong>in</strong>g these keys with hardware measures,they cannot easily be removed <strong>in</strong> offl<strong>in</strong>e attacks or altered through the operat<strong>in</strong>gsystem. To reduce the amount of non-volatile memory required <strong>in</strong>side the TPM,it acts as an access control device for externally stored keys rather than stor<strong>in</strong>gall keys itself. Only the storage root key (SRK ) rema<strong>in</strong>s permanently <strong>in</strong> theTPM and is used to encrypt all other externally stored keys. This strategy offersthe same security level as if all keys were stored <strong>in</strong>ternally. 1 This design choiceallows to reduce the production costs of a TPM, but <strong>in</strong>troduces the problemthat the TPM is not able to reliably destroy externally stored keys once they1 The TPM does store other keys for <strong>in</strong>ternal use, especially the endorsement key;however these keys do not play a role <strong>in</strong> the context of the present paper.L. Chen, C.J. Mitchell, and A. Mart<strong>in</strong> (Eds.): T<strong>ru</strong>st 2009, LNCS <strong>5471</strong>, pp. 120–132, 2009.c○ Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2009


Revocation of TPM Keys 121get compromised. Thus, if an attacker once acquires access rights to a TPMma<strong>in</strong>ta<strong>in</strong>edkey and an encrypted version of that key, he can always access thatkey through the TPM hardware.One secure way to prevent a compromised key from be<strong>in</strong>g used <strong>in</strong> the futureis to delete the storage root key. However, this makes all non-migrateable keysma<strong>in</strong>ta<strong>in</strong>ed by the TPM unusable, which may be unacceptable <strong>in</strong> applicationswhere a s<strong>in</strong>gle TPM needs to manage a large number of keys. To alleviate theproblem, a mechanism to revoke TPM keys is required; however, such a mechanismis not provided by the TPM specification of the T<strong>ru</strong>sted Comput<strong>in</strong>g Group.In this paper, we analyse two ways of implement<strong>in</strong>g a TPM key revocationscheme and propose appropriate extensions to the TPM specification. It seemsunavoidable to make changes to the TPM command set, as some additional verificationof the validity of a key is required <strong>in</strong>side the TPM. Our methods attemptto m<strong>in</strong>imise the amount of modification required, and can be implemented <strong>in</strong> away that does not affect the compatibility of exist<strong>in</strong>g applications. In particular,we propose two revocation schemes: one is based on blacklist<strong>in</strong>g of revokedkeys, while the other one employs a whitelist approach. Both approaches requireadditional communication with and computation <strong>in</strong> the TPM: either load<strong>in</strong>g akey has a communication complexity l<strong>in</strong>ear <strong>in</strong> the number of revoked keys, or revok<strong>in</strong>ga key has a communication complexity l<strong>in</strong>ear <strong>in</strong> the number of revocablekeys. In the last part of the paper, we propose to use a comb<strong>in</strong>ation of blacklistsand whitelists to ensure practicability of the key revocation scheme.While our approach is applicable to all keys ma<strong>in</strong>ta<strong>in</strong>ed by the TPM, thema<strong>in</strong> application of key revocation lies <strong>in</strong> authentication keys for external services.In this application it is <strong>in</strong>feasible to guarantee that a party whose accessis to be revoked can be banned from access<strong>in</strong>g the TPM—for examplebecause he still uses the platform and is just banned from us<strong>in</strong>g a s<strong>in</strong>gle service,or because an aggressive attacker may ga<strong>in</strong> illicit access to a mach<strong>in</strong>e (thereason why keys where stored <strong>in</strong> the TPM <strong>in</strong> the first place). Thus, a mechanismis required to block the use of s<strong>in</strong>gle keys, while other authenticationkeys should rema<strong>in</strong> functional. In addition, a variant of the proposed protocolallows to change the authorisation <strong>in</strong>formation required to access a TPM key<strong>in</strong> a way that reliably <strong>in</strong>validates old authorisation <strong>in</strong>formation for an attackerthat holds a copy of the old TPM <strong>in</strong>formation; this allows for a substantiallymore secure key management for any application us<strong>in</strong>g TPM keys with a longlifetime.2 Related WorkEfficient key revocation has been studied <strong>in</strong> various sett<strong>in</strong>gs, especially <strong>in</strong> thecontext of public key <strong>in</strong>frast<strong>ru</strong>ctures [4], or <strong>in</strong> wireless sensor networks [10]. Thoseapplications show little connection to the TPM case though, as they usually dealwith a large number of networked participants. There is relatively little work onTPM key revocation; while the T<strong>ru</strong>sted Comput<strong>in</strong>g Group spent quite someeffort on the revocability of TPMs [1] and some work has been done on key


122 S. Katzenbeisser, K. Kursawe, and F. Stumpfmanagement issues such as key migration [2], we are not aware of any schemesthat allow to revoke <strong>in</strong>dividual TPM keys.Some authors considered TPM-based applications that share some similaritieswith the key revocation problem. In [3], limited t<strong>ru</strong>sted memory is used to storea database <strong>in</strong> unt<strong>ru</strong>sted storage. As <strong>in</strong> our application, it is important that anattacker cannot replay an old version of the database: <strong>in</strong> some sense, the TPMkey storage can be seen as a database of keys. Sarmenta et. al. [5] proposeefficient ways to implement count objects based on a TPM by us<strong>in</strong>g hash trees.An externally stored counter poses similar challenges as an externally storedkey: it must not be possible to set the counter to an old value, while a key mustconta<strong>in</strong> a protected flag that marks him as valid or <strong>in</strong>valid. While it is possibleto translate the hash-tree approach to key management, we believe that theproblem of key revocation can be solved <strong>in</strong> a simpler way that fits better <strong>in</strong>tothe TPM architecture.3 Basic Key Revocation Protocol SuiteKey revocation can be implemented either with a blacklist or a whitelist approach.While blacklists allow for an efficient (constant time) revocation ofkeys and <strong>in</strong>troduce a performance penalty once a key is loaded <strong>in</strong>to the TPM,whitelists provide fast (constant time) access to keys, but require a costly revocationoperation.A blacklist is an externally stored list of keys that have been revoked; <strong>in</strong>tegrityof the list is assured through a hash cha<strong>in</strong>. The list is bound to the TPM by acryptographic key and a register, which securely stores the last element of thehash cha<strong>in</strong> with<strong>in</strong> the TPM. Whenever a key is revoked, a new entry to theblacklist is created, and the TPM updates its <strong>in</strong>ternally stored hash. Whenevera key is loaded <strong>in</strong>to the TPM, the blacklist is fed sequentially through the TPM,its <strong>in</strong>tegrity is checked and its entries are compared to the key to be loaded. Ifthe key is on the blacklist, the TPM aborts the load<strong>in</strong>g process. Thus, the useof a key gets expensive once a large number of keys are revoked.In contrast, <strong>in</strong> a whitelist approach, a special whitelist blob, conta<strong>in</strong><strong>in</strong>g a(keyed) hash of a counter and the key, is produced for every key that is notrevoked. Due to the use of a keyed hash, the blob is only accessible to theTPM. Inside the TPM, we need one secure counter. A key is only valid if thecounter value stored <strong>in</strong> the associated whitelist key blob matches the <strong>in</strong>ternalTPM counter. To revoke a key, the TPM <strong>in</strong>crements its <strong>in</strong>ternal secure counterand updates (re-creates) all non-revoked whitelist blobs by <strong>in</strong>crement<strong>in</strong>g theconta<strong>in</strong>ed counter value. This approach allows for very efficient (constant time)verification of the revocation status of a key. However, the revocation processitself is relatively complex, as the TPM needs to re-authenticate every s<strong>in</strong>glewhitelist key blob correspond<strong>in</strong>g to a non-revoked key.In both approaches, we change the implementation of the TPM LoadKey command.Furthermore, we require an additional command, which is used to passthe entire black- or whitelist through the TPM <strong>in</strong> a sequential manner, either


Revocation of TPM Keys 123dur<strong>in</strong>g use or dur<strong>in</strong>g revocation of the key. In the follow<strong>in</strong>g sections, we provideimplementations for both the blacklist and whitelist approach. For simplicity,the algorithm descriptions show only the <strong>in</strong>put/output parameters which areaccessed <strong>in</strong> the algorithms; additional parameters are given <strong>in</strong> the TPM specification[8].For efficiency and compatibility reasons, we do not make every key revocableby default. Rather, on generation of a key, a user can choose whether a keyshould be revocable or not. This way, old applications can use the TPM withoutany modification, and the data st<strong>ru</strong>ctures needed for revocation <strong>in</strong>formation donot need to be bloated with keys that are not required to be revocable.4 Blacklist ImplementationIn the blacklist approach, we store an authenticated list of revoked keys <strong>in</strong> externalmemory. The list of keys is kept <strong>in</strong> the form of a hash cha<strong>in</strong>, which allows easyauthentication, sequential access and addition of new revoked keys. Furthermore,we securely store the last element of the hash cha<strong>in</strong> (called TPM.lastHash <strong>in</strong> thesequel) <strong>in</strong>side the TPM for verification purposes; thus, only a small amount ofsecure persistent storage is required. Note however, that the blacklist must bestored on an external device <strong>in</strong> a way that is not accessible to an attacker, s<strong>in</strong>cemalicious modifications (e.g., <strong>in</strong>tegrity changes or deletions) <strong>in</strong>validate the wholelist and allow denial of service attacks, as all revocable keys cannot be loaded <strong>in</strong>the future once the <strong>in</strong>tegrity of the blacklist is broken.In order to keep the option of us<strong>in</strong>g non-revocable keys for less critical taskswithout any performance penalties, we add a special field revocable to each keyblob generated by the TPM. Once a key is loaded, the TPM checks the flagand only executes the standard key load<strong>in</strong>g process if the key is marked as nonrevocable.The revocable flag can be realized by <strong>in</strong>troduc<strong>in</strong>g the new mask value0x00000016 to the TPM KEY FLAGS st<strong>ru</strong>cture [6]. As not all possible mask valuesare used <strong>in</strong> the current version of the specification, this can be done with m<strong>in</strong>imaleffort. S<strong>in</strong>ce the TPM KEY FLAGS st<strong>ru</strong>cture is not protected by encryption, the flagalso needs to be <strong>in</strong>tegrated to the TPM STORE ASYMKEY st<strong>ru</strong>cture [6] to ensure itsconsistency and <strong>in</strong>tegrity.In addition, another flag needs to be added to the TPM STORE ASYMKEY st<strong>ru</strong>cture.This flag (called checked <strong>in</strong> the sequel) <strong>in</strong>dicates whether a revocable keyhas been validated aga<strong>in</strong>st the blacklist. This flag has the same characteristicsas a semaphore and is used to deliver state <strong>in</strong>formation between the commandwhich loads the key (TPM LoadKey) and a new TPM command that validatesthe loaded key aga<strong>in</strong>st the blacklist (TPM ShowRevListElement, seebelowforthe implementation).St<strong>ru</strong>cture of the blacklist, Setup of the system. The blacklist conta<strong>in</strong>s the publickeys of all revoked keys, authenticated by the TPM and stored <strong>in</strong> the form of ahash cha<strong>in</strong>. For authentication we use the storage root key (SRK). Alternatively,a different key which is a direct child of the SRK may be utilized; this requiresboth the SRK and an additional key to be loaded <strong>in</strong>to the TPM. However, s<strong>in</strong>ce


124 S. Katzenbeisser, K. Kursawe, and F. Stumpfthe TPM only possesses a very limited number of key slots, this concept maydeplete the TPM’s available key-slots and restra<strong>in</strong> the ability to load additionalkeys. Every element rev element of the hash cha<strong>in</strong> has the follow<strong>in</strong>g st<strong>ru</strong>cture:〈key, Hash(REVOC LABEL ‖ key ‖ SRK ‖ prevHash)〉 ,where key denotes the public key that is revoked, SRK denotes the privatestorage root key, REVOC LABEL is a label that <strong>in</strong>dicates that the hash value is<strong>in</strong>tended solely for the const<strong>ru</strong>ction of a revocation list, and prevHash denotesthe hash of the previous entry <strong>in</strong> the revocation list (the latter is set to a constantvalue 0 k for the first list element). The usage of SRK <strong>in</strong> the hash makes the hashkeyed: only the TPM, which is owner of the SRK, is able to generate hashes andverify hash values. The elements of the hash cha<strong>in</strong> can easily be stored <strong>in</strong> a newTPM st<strong>ru</strong>cture TPM REV ELEMENT of the follow<strong>in</strong>g type:typedef st<strong>ru</strong>ct tdTPM_REV_ELEMENT {TPM_STRUCT_VER ver;TPM_STORE_PUBKEY pubKey;TPM_REV_ELEMENT_HASH Hash;} TPM_REV_ELEMENT;The blacklist is managed by a software stack; however, only the TPM is able tooperate on the blacklist.To <strong>in</strong>itialize the revocation mechanism, the hash TPM.lastHash (which issecurely stored with<strong>in</strong> the TPM) is set to 0 k , <strong>in</strong>dicat<strong>in</strong>g the absence of a revocationlist. This needs to happen whenever a new SRK is def<strong>in</strong>ed, i.e., as a part ofthe TPM TakeOwnership command. Furthermore, the commands for generat<strong>in</strong>gkeys (such as TPM CreateWrapKey) have to be modified <strong>in</strong> order to <strong>in</strong>itialize therequired fields revocable and checked, where the latter one is set to false bydefault.Revocation of a key. A key can be revoked by a call to the new TPM commandTPM RevokeKey: the command takes the handle keyHandle of the key to berevoked and a handle srkHandle to the SRK. Thus, we assume that a key isavailable when it is revoked (this excludes the possibility of revok<strong>in</strong>g keys whichare not present). The command simply generates the new entry of the hash cha<strong>in</strong>us<strong>in</strong>g the hash of the last revocation list element that is stored securely with<strong>in</strong>the TPM. Furthermore, it updates this hash and returns the new revocation listentry (see Algorithm 1). Note that the command does, for performance reasons,not verify the <strong>in</strong>tegrity of the exist<strong>in</strong>g hash cha<strong>in</strong>. Moreover, it does not checkwhether the hash cha<strong>in</strong> already conta<strong>in</strong>s an entry for the key <strong>in</strong> question. Weassume that all our commands are executed <strong>in</strong>side an established authorisationsession (e.g., TPM OSAP or TPM OIAP) [7]. The purpose of this session is to verifyauthorisation and to establish an authorisation handle between the TPM and thesoftware stack for the different keys. S<strong>in</strong>ce some of the commands <strong>in</strong>troduced byus require authorisation of multiple keys with different authorisation knowledge,it is necessary to establish multiple authorisation sessions to the TPM. This is


Revocation of TPM Keys 125Algorithm 1. Algorithm TPM RevokeKeyInput : srkHandle, keyHandleOutput: returnCode, revElementnewHash := Hash(REVOC LABEL || keyHandle.pubKey || SRK || TPM.lastHash)TPM.lastHash := newHashreturn RET REVOKE KEY ACK, newHashsimilar to the TPM ActivateIdentity command that requires two concurrentOSAP sessions (Cf. [8], pp. 153). Note that the data-st<strong>ru</strong>ctures used here do notdirectly allow to ma<strong>in</strong>ta<strong>in</strong> a TPM-key, but replace its authorisation <strong>in</strong>formation(i.e., blacklist the old version and b<strong>in</strong>d the key to a new one); however, this caneasily be added if such a functionallity is desired.Usage of a TPM key. Every TPM key that is used <strong>in</strong> an application mustbe loaded by the function TPM LoadKey. If the loaded key is revocable it cannotbe directly used (key.revocable is set to t<strong>ru</strong>e): The TPM rather has tocheck whether the key is present on the revocation list. Thus, the TPM requiresthe application (or the TSS) to execute a number of calls to the functionTPM ShowRevListElement, which sequentially feeds all entries of the revocationlist through the TPM. This function checks the <strong>in</strong>tegrity of the hash cha<strong>in</strong> andverifies that the key to be loaded is not present on the blacklist. The functionaborts with failure (RET FAIL) if the hash cha<strong>in</strong> is <strong>in</strong>valid, requests further callsuntil the end of the hash cha<strong>in</strong> is reached (RET REVOC) or returns RET OK. Inthe latter case it sets a flag <strong>in</strong>dicat<strong>in</strong>g that the key is ready to use. F<strong>in</strong>ally, toterm<strong>in</strong>ate the process of load<strong>in</strong>g a key, another call to TPM LoadKey is required,which returns the key handle for subsequent use. Note that the revocation testis only performed when a key is loaded <strong>in</strong>to the TPM, not every time it is used.It is thus possible that a key got revoked, but still resides <strong>in</strong>side the TPM <strong>in</strong>usable form. To alleviate the problem, it may be necessary to flush all revokedTPM keys from the TPM cache; however, this <strong>in</strong>curs a performance penalty.Algorithm 2 shows the necessary changes to the TPM LoadKey command. Ifthe key <strong>in</strong>Key refers to a revocable key, it is first checked whether the revocationlist has already been tested aga<strong>in</strong>st the given key (<strong>in</strong>KeyPla<strong>in</strong>.Keyflags.checkedis set to t<strong>ru</strong>e); <strong>in</strong> this case, the command performs all operations that arenormally performed when load<strong>in</strong>g a key; otherwise the encrypted <strong>in</strong>Key st<strong>ru</strong>ctureis returned along with the return code RET REVOC <strong>in</strong>dicat<strong>in</strong>g that the key needsfurther process<strong>in</strong>g by the function TPM ShowRevListElement.The implementation of the command TPM ShowRevListElement is given <strong>in</strong>Algorithm 3. It takes a handle to the SRK, the encrypted <strong>in</strong>Key st<strong>ru</strong>cture returnedby TPM LoadKey, one element of the revocation list, a handle to the parentkey, and <strong>in</strong>formation on the authorisation session (one Nonce of the authorisationsession for the parentHandle). It is necessary to <strong>in</strong>tegrate <strong>in</strong>formation ofthe authorisation session to ensure that the check aga<strong>in</strong>st the blacklist is fresh.Thus, to successfully load a revocable key, the TPM LoadKey command must useparts of the same authorisation data as TPM ShowRevListElement.


126 S. Katzenbeisser, K. Kursawe, and F. StumpfAlgorithm 2. Additional performed actions of the TPM LoadKey commandInput : parentHandle, <strong>in</strong>Key, NonceOutput: returnCode, <strong>in</strong>KeyHandle, <strong>in</strong>Key<strong>in</strong>KeyPla<strong>in</strong> := Decrypt(<strong>in</strong>Key, parentHandle)if <strong>in</strong>KeyPla<strong>in</strong>.Keyflags.revocable = t<strong>ru</strong>e thenif <strong>in</strong>KeyPla<strong>in</strong>.Keyflags.checked =(t<strong>ru</strong>e || Nonce ) thenCont<strong>in</strong>ue as denoted <strong>in</strong> TPM specificationreturn TPM SUCCESS, <strong>in</strong>KeyHandleelse<strong>in</strong>KeyPla<strong>in</strong>.Keyflags.checked := (false || Nonce)<strong>in</strong>Key = Encrypt(<strong>in</strong>KeyPla<strong>in</strong>, parentHandle)return RET REVOC, <strong>in</strong>KeyelseCont<strong>in</strong>ue as denoted <strong>in</strong> TPM specificationreturn TPM SUCCESS, <strong>in</strong>KeyHandleThe algorithm validates the hash cha<strong>in</strong>, assures that all subsequent calls areperformed with the same public key and makes sure that the key is not presenton the revocation list. For this purpose, the TPM needs to <strong>in</strong>ternally store twohash values: the hash (prevHash) of the previously validated blacklist entry anda hash of the public key (prev<strong>in</strong>Key). Both can be realized as additional fieldsof the TPM STANY DATA st<strong>ru</strong>cture. Once the end of the hash cha<strong>in</strong> is reached(this can be realized by compar<strong>in</strong>g TPM.lastHash with the hash of the currentrevocation entry), the TPM subsequently checks whether the given public keycorresponds to the private key stored <strong>in</strong> the <strong>in</strong>Key st<strong>ru</strong>cture. If this is the case,the label <strong>in</strong>KeyPla<strong>in</strong>.Keyflags.checked is changed and the <strong>in</strong>Key st<strong>ru</strong>cture isreturned.Authorisation. It is not straightforward to decide which party—the TPM owner,the key owner, or even an external party—should have the right to revoke an<strong>in</strong>dividual key. The blacklist approach can easily be extended to allow each ofthe above choices; a simple modification of the TPM RevokeKey command allowsto implement the desired authorisation for key revocation, and even to decideat key creation who is allowed to revoke that particular key. An unauthorisedparty then simply is not able to create the correspond<strong>in</strong>g blacklist entry.Consolidation. The effort to load a revocable key <strong>in</strong>creases l<strong>in</strong>early with thesize of the blacklist, as all entries have to be passed through the TPM beforea revocable key can be used. It is therefore desirable to have a consolidationprotocol which removes the contents of the blacklist: the consolidation protocolgenerates a new SRK <strong>in</strong> parallel to the old one, copies all non-revoked keys <strong>in</strong>toa new key tree under the new SRK, and then deletes the old SRK. Asalloldkey blobs are useless without the old SRK, and only non-revoked keys will betransferred, the blacklist can be deleted and the TPM is aga<strong>in</strong> <strong>in</strong> a state withan empty blacklist.


Revocation of TPM Keys 127Algorithm 3. Algorithm of the TPM ShowRevListElement commandInput : srkHandle, revElement, parentHandle,<strong>in</strong>Key, NonceOutput: returnCode, <strong>in</strong>Keyif undef<strong>in</strong>ed(prevHash) thenprevHash=0 kcurHash := Hash(REVOC LABEL || revElement.pubKey || SRK || prevHash)if (curHash !=revElement.Hash) || (revElement.pubKey = <strong>in</strong>Key.pubKey) thenreturn RET FAILif not(undef<strong>in</strong>ed(prev<strong>in</strong>Key)) thenif prev<strong>in</strong>Key != Hash(<strong>in</strong>Key.pubKey) thenreturn RET FAILprev<strong>in</strong>Key := Hash(<strong>in</strong>Key.pubKey)prevHash := curHashif curHash = TPM.lastHash then<strong>in</strong>KeyPla<strong>in</strong> := Decrypt(<strong>in</strong>Key, parentHandle)if <strong>in</strong>KeyPla<strong>in</strong>.Keyflags.checked =(false ||Nonce) thenif <strong>in</strong>KeyPla<strong>in</strong> conta<strong>in</strong>s public key correspond<strong>in</strong>g to prev<strong>in</strong>Key then<strong>in</strong>KeyPla<strong>in</strong>.Keyflags.checked := (t<strong>ru</strong>e || Nonce)<strong>in</strong>Key := Encrypt(<strong>in</strong>KeyPla<strong>in</strong>, parentHandle)return RET OK, <strong>in</strong>Keyelsereturn RET FAILelsereturn RET REVOCHowever, this approach encounters a number of practical problems. A TPMallows to store keys <strong>in</strong> a tree st<strong>ru</strong>cture (e.g., the SRK may encrypt a user keywhich then itself encrypts a signature key). Thus, it may happen that a nonrevocablekey is used to protect a revocable key. In this case it is important to alsochange the non-revocable key to prevent it from be<strong>in</strong>g used to decrypt the old,revoked key once the blacklist is cleaned. Another problem is that the keys mayhave different access rights, and the appropriate key owners may not be availableto authorise usage of the keys; the consolidation protocol thus would need tocircumvent all access control mechanisms, which leads to additional complexity<strong>in</strong> the implementation. F<strong>in</strong>ally, the key tree needs to be presented to the TPM <strong>in</strong>the right order, as parents need to be transferred before their children. While itis possible to implement a consolidation protocol that takes all above-mentionedproblems <strong>in</strong>to account, the added complexity may not be worth the effort. Insituations where keys need to be revoked very often, a different strategy basedon whitelists (as described <strong>in</strong> the next section) is much more favorable.Hash trees. When the number of revoked keys is expected to be large, anotherstrategy to limit the efforts of load<strong>in</strong>g a key can be employed. Instead of a hash


128 S. Katzenbeisser, K. Kursawe, and F. Stumpfcha<strong>in</strong>, the blacklist can be arranged <strong>in</strong> a tree st<strong>ru</strong>cture. In this case, we firstcompute a short (e.g., 64 bit) hash of the key to be loaded, which determ<strong>in</strong>esthe position of the key with<strong>in</strong> the hash tree <strong>in</strong> the natural way: the hash is<strong>in</strong>terpreted as a b<strong>in</strong>ary str<strong>in</strong>g, where each bit <strong>in</strong>dicates for each level of the treewhether to cont<strong>in</strong>ue <strong>in</strong> the left or right subtree. Every leaf node stores a hashof the form Hash(REVOC LABEL ‖ key ‖ SRK), while every non-leaf node stores ahash of both children. Note that for efficiency reasons we do not store the entiretree, but omit subtrees that conta<strong>in</strong> only empty leaf nodes (by replac<strong>in</strong>g theentire subtree with a special node). Furthermore, the hash conta<strong>in</strong>ed <strong>in</strong> the rootofthetreeisstoredwith<strong>in</strong>theTPM.To revoke a key, we compute the short hash of the public key which determ<strong>in</strong>esits position with<strong>in</strong> the hash tree; subsequently, we update the path from this leafto the root and re-create all required hashes. The new root hash of the tree iscopied to the TPM. When load<strong>in</strong>g a key, we have to determ<strong>in</strong>e whether the keyis present with<strong>in</strong> the hash tree. Note that, due to the fact that we know theposition where a key is stored <strong>in</strong> a tree, we only need to exam<strong>in</strong>e one path <strong>in</strong>the tree, namely the path from the root node to the position <strong>in</strong>dicated by theshort hash of the key. If the <strong>in</strong>tegrity of this path is ensured and the key is notpresent <strong>in</strong> the leaf node, the key can be loaded. In this implementation both theuse and the revocation of a key requires logarithmic effort.5 Whitelist ImplementationThe blacklist approach described above has the disadvantage that with an <strong>in</strong>creas<strong>in</strong>gnumber of revoked keys, the effort of load<strong>in</strong>g a revocable key <strong>in</strong>to theTPM <strong>in</strong>creases as well. If a large number of keys needs to be revoked—for example,because a policy requires frequent key updates, or there is reason to believethat the platform has been temporarily compromised—this can quickly rende<strong>ru</strong>sage of keys very cumbersome. A consolidation protocol can resolve this issue,but is difficult to implement. Therefore, it is worthwhile to consider the oppositeapproach, and implement revocation through a whitelist of allowed keys.In this case, the TPM creates a separate whitelist blob for every revocablekey. The whitelist blob conta<strong>in</strong>s a hash of the correspond<strong>in</strong>g key and a counter<strong>in</strong>dicat<strong>in</strong>g the current version of the whitelist, i.e., the number of revocationoperations performed. The TPM ma<strong>in</strong>ta<strong>in</strong>s a secure counter TPM.revCounterwhich stores the current version number. A key is only declared valid if thecounter value stored <strong>in</strong>side its associated whitelist blob is equal to the countervalue TPM.revCounter. Whenever a key is revoked, the counter <strong>in</strong> all whitelistblobs correspond<strong>in</strong>g to non-revoked keys must be <strong>in</strong>cremented to keep themup-to-date.As opposed to the key blob itself, the whitelist blobs are not part of thekey hierarchy; rather, they are encrypted and authenticated with a dedicatedkey, called the whitelist root key (WRK), which is situated directly under thestorage root key. This allows to update the whitelist without <strong>ru</strong>nn<strong>in</strong>g <strong>in</strong>to thesame access control problems encountered <strong>in</strong> the blacklist consolidation case,


Revocation of TPM Keys 129Algorithm 4. Additional actions performed by TPM CreateWrapKeyInput : parentHandle, wrkHandle, keyInfoOutput: returnCode, wrappedKey, whitelistblobSet wrappedKey.Keyflags.revocable accord<strong>in</strong>g to keyInfoGenerate key as denoted <strong>in</strong> specificationif keyInfo.Keyflags.revocable = t<strong>ru</strong>e thenwhitelistblob :=Hash(REVOC LABEL || keyInfo.pubKey ||WRK || TPM.revCounter)return TPM SUCCESS, wrappedKey, whitelistblobas an update to the whitelist (a key revocation or creation of a whitelist blobfor a new key) only requires access rights to the WRK. Us<strong>in</strong>g a separate WRKalso allows for external whitelist updates: the WRK may be migrated onto at<strong>ru</strong>sted (external) device, which is then capable of comput<strong>in</strong>g a new whitelistwithout any <strong>in</strong>volvement of the TPM; the only operation required to happen<strong>in</strong>side the TPM is the counter update. This also resolves another problemencountered <strong>in</strong> the blacklist consolidation protocol: if a key is missed dur<strong>in</strong>gthe update, it is still possible to generate the new whitelist entry after thetransformation.Key creation. Key creation commands rema<strong>in</strong> largely unchanged, except that awhitelist blob needs to be returned <strong>in</strong> conjunction with the key blob (note thatthis operation requires the WRK to be loaded <strong>in</strong>to the TPM). The necessarymodifications to the TPM CreateWrapKeyCommand are shown <strong>in</strong> Algorithm 4.Use of key. When a key is loaded, its whitelist blob must be presented to theTPM as well. The TPM hashes the public key together with the WRK and thecurrent counter TPM.revCounter and compares the hash to the whitelist blob.Only if this hash is correct, the algorithm proceeds as <strong>in</strong> the specification (Algorithm5 shows the implementation). Thus, prepar<strong>in</strong>g the key for use requiresonly constant time, <strong>in</strong>dependent of the size of the whitelist.Algorithm 5. Additional actions performed by TPM LoadKeyInput : parentHandle, wrkHandle, <strong>in</strong>Key, whitelistblobOutput: returnCode, keyHandle<strong>in</strong>KeyPla<strong>in</strong> := Decrypt(<strong>in</strong>Key, parentHandle)if <strong>in</strong>KeyPla<strong>in</strong>.Keyflags.revocable = t<strong>ru</strong>e thenhashval := Hash(REVOC LABEL || <strong>in</strong>Key.pubKey || WRK || TPM.revCounter)if hashval !=whitelistblob thenreturn RET FAILCont<strong>in</strong>ue as <strong>in</strong> the specificationreturn TPM SUCCESS, keyHandle


130 S. Katzenbeisser, K. Kursawe, and F. StumpfAlgorithm 6. Algorithm of the TPM WhitelistTransformKey commandInput : wrkHandle, parentHandle, revokedHandle, whitelistblobOutput: returnCode, whitelistblobhashval :=Hash(REVOC LABEL || revokedHandle.pubKey || WRK || TPM.revCounter)if hashval = whitelistblob thenwhitelistblob :=Hash(REVOC LABEL || revokedHandle.pubKey || WRK || TPM.revCounter+1 )return TPM SUCCESS, whitelistblobelsereturn RET FAILRevocation. To revoke a key, all whitelist blobs of non-revoked keys need to beupdated (i.e., their counter values need to be <strong>in</strong>cremented). This can be performedwith the command TPM WhitelistTransformKey (Algorithm 6), which,after appropriate authorisation, takes a key blob, <strong>in</strong>crements the counter valuestored <strong>in</strong> it, and returns a new blob. Once all whitelist elements are transferred,TPM WhitelistCommit (Algorithm 7) must be executed, which <strong>in</strong>crements thewhitelist counter with<strong>in</strong> the TPM. From this po<strong>in</strong>t on, the TPM only acceptswhitelist blobs with the new counter value.As the whitelist blob does not need to be protected by the same access controlmechanisms used for the ma<strong>in</strong> key blob, updat<strong>in</strong>g the correspond<strong>in</strong>g blobsdoes not require special authorisation. This is necessary to allow revocation of akey by a party that does not have access rights to other keys. However, call<strong>in</strong>gTPM WhitelistCommit is critical for the function<strong>in</strong>g of the TPM (a wrong call<strong>in</strong>validates all keys and may result <strong>in</strong> denial-of-service attacks). It is thus requiredto have owner authorisation to perform a call to TPM WhitelistCommit.In addition, we recommend to make WRK exportable, so it can be storedon an external device. This allows keys to be transferred even after a call toTPM WhitelistCommit, and even to revoke keys on a temporary basis.Algorithm 7.. Algorithm of the TPM WhitelistCommit commandInput : wrkHandleOutput: returnCodeTPM.revCounter++return TPM SUCCESS6 Comb<strong>in</strong>ed Black- and WhitelistsAs noted above, the black- and the whitelist approaches both optimise the efficiencyof one of two important functions. The blacklist implementation allowskey revocation with constant effort, but load<strong>in</strong>g a revocable key <strong>in</strong>to the TPMneeds communication that is l<strong>in</strong>ear <strong>in</strong> the number of already revoked keys. It


Revocation of TPM Keys 131is possible to remove the blacklist through a consolidation protocol; howeverdue to authentication issues this protocol is unjustifiably complex. The whitelistapproach allows to very efficiently load keys <strong>in</strong>to the TPM; it only requires tostore a very small additional whitelist blob. The price to pay is an expensiverevocation (the effort is l<strong>in</strong>ear <strong>in</strong> the number of revocable keys <strong>in</strong> the system).Furthermore, all key blobs must be available dur<strong>in</strong>g revocation, unless an externalt<strong>ru</strong>sted party is allowed to re-authenticate keys. The whitelist and blacklistapproaches also differ <strong>in</strong> flexibility of authoris<strong>in</strong>g a key revocation. In theblacklist approach, the process of revok<strong>in</strong>g a key needs the TPM to create anew blacklist entry. However, it is possible to use any desired scheme to authorisethat action, and even different schemes for different keys. In the whitelistmodel, <strong>in</strong> contrast, an item has to be created for all keys but the one to berevoked, which calls for restrict<strong>in</strong>g the right to perform key revocation to theTPM owner.A pragmatic approach to comb<strong>in</strong>e the advantages of both schemes is to useboth of them <strong>in</strong> parallel. Essentially, we suggest to use the blacklist approach fornormal key revocation as described above, but additionally ma<strong>in</strong>ta<strong>in</strong> a whitelistto efficiently consolidate the blacklists. Thus, if a key is revoked, it is first puton the blacklist and the TPM will refuse to load each key on the blacklist. Inaddition, dur<strong>in</strong>g the creation of a revocable key, a whitelist blob is created, andthe TPM will also refuse to load any key that has no valid whitelist blob. If at anytime the blacklist becomes too long (and thus, load<strong>in</strong>g a key becomes <strong>in</strong>efficient),the TPM owner can consolidate the blacklist by creat<strong>in</strong>g a new whitelist for allkeys that are not on the blacklist.This approach requires a slightly different TPM WhitelistTransformKey command,as an additional test—whether the key is present on the blacklist—mustbe performed. If the key is on the blacklist, no new whitelist blob is created,and the transform command <strong>in</strong>stead returns an error. The second modificationis that the TPM WhitelistCommit command also resets the TPM <strong>in</strong>ternal hashvalue for the blacklist to 0 k . By us<strong>in</strong>g this approach, we ga<strong>in</strong> the best of bothworlds: revok<strong>in</strong>g a key can be done with constant effort, while the blacklists canstay short enough to allow for efficient key usage. Furthermore, the expensivewhitelist update operation only needs to be performed <strong>in</strong>frequently. Also, thescheme enables to use flexible authorisation methods to determ<strong>in</strong>e who is allowedto revoke a key. The only commands that necessarily need owner rights donot revoke keys themselves, but only rearrange already revoked keys to <strong>in</strong>creaseperformance.7 ConclusionsWe have <strong>in</strong>vestigated two complementary approaches to implement TPM-basedkey revocation. While both seem to be reasonably practical on their own, thecomb<strong>in</strong>ation can achieve key revocation with a very low overhead and with m<strong>in</strong>imalchanges to the TPM specification. We have shown that both concepts canbe realized without break<strong>in</strong>g backwards compatibility. In addition, our proposed


132 S. Katzenbeisser, K. Kursawe, and F. Stumpfscheme is very flexible <strong>in</strong> terms of authoris<strong>in</strong>g the revocation: depend<strong>in</strong>g on theuse-case, keys can be revoked by the key owner, the TPM owner, or even byexternal parties.References1. Brickell, E.F., Camenisch, J., Chen, L.: Direct anonymous attestation. In: ACMConference on <strong>Computer</strong> and Communications Security, pp. 132–145 (2004)2. Kühn, U., Kursawe, K., Lucks, S., Sadeghi, A.-R., Stüble, C.: Secure data management<strong>in</strong> t<strong>ru</strong>sted comput<strong>in</strong>g. In: Rao, J.R., Sunar, B. (eds.) CHES 2005. LNCS,vol. 3659, pp. 324–338. Spr<strong>in</strong>ger, Heidelberg (2005)3. Maheshwari, U., V<strong>in</strong>gralek, R., Shapiro, W.: How to build a t<strong>ru</strong>sted databasesystem on unt<strong>ru</strong>sted storage. In: OSDI 2000 Proceed<strong>in</strong>gs of the 4th conference onSymposium on Operat<strong>in</strong>g System Design & Implementation, Berkeley, CA, USA,p. 10. USENIX Association (2000)4. Naor, M., Nissim, K.: Certificate revocation and certificate update. In: Proceed<strong>in</strong>gsof the 7th USENIX Security Symposium, pp. 217–228 (1998)5. Sarmenta, L.F.G., van Dijk, M., O’Donnell, C.W., Rhodes, J., Devadas, S.: Virtualmonotonic counters and count-limited objects us<strong>in</strong>g a tpm without a t<strong>ru</strong>sted os. In:STC 2006: Proceed<strong>in</strong>gs of the first ACM workshop on Scalable t<strong>ru</strong>sted comput<strong>in</strong>g,pp. 27–42. ACM, New York (2006)6. T<strong>ru</strong>sted Comput<strong>in</strong>g Group. TCG TPM Specification Version 1.2 Revision 103,TPM Ma<strong>in</strong> Part 2 TPM St<strong>ru</strong>ctures. Technical report, TCG (July 2007)7. T<strong>ru</strong>sted Comput<strong>in</strong>g Group. TCG TPM Specification Version 1.2 Revision 103,TPM Ma<strong>in</strong> Part 1 Design Pr<strong>in</strong>ciples. Technical report, TCG (July 2007)8. T<strong>ru</strong>sted Comput<strong>in</strong>g Group. TCG TPM Specification Version 1.2 Revision 103,TPM Ma<strong>in</strong> Part 3 Command. Technical report, TCG (July 2007)9. T<strong>ru</strong>sted Comput<strong>in</strong>g Group. T<strong>ru</strong>sted Platform Module (TPM) specifications. Technicalreport (2008), https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/specs/TPM10. Xiao, Y., Rayi, V.K., Sun, B., Du, X., Hu, F., Galloway, M.: A survey of keymanagement schemes <strong>in</strong> wireless sensor networks. Comput. Commun. 30(11-12),2314–2341 (2007)


Secur<strong>in</strong>g the Dissem<strong>in</strong>ation of EmergencyResponse Data with an IntegratedHardware-Software ArchitectureTimothy E. Lev<strong>in</strong> 1 ,JeffreyS.Dwosk<strong>in</strong> 2 , Ganesha Bhaskara 3 ,Thuy D. Nguyen 1 ,PaulC.Clark 1 ,RubyB.Lee 2 ,Cynthia E. Irv<strong>in</strong>e 1 , and Terry V. Benzel 31 Naval Postgraduate School, Monterey, CA 93943, USA{lev<strong>in</strong>,tdnguyen,pcclark,irv<strong>in</strong>e}@nps.edu2 Pr<strong>in</strong>ceton University, Pr<strong>in</strong>ceton, NJ 08544, USA{jdwosk<strong>in</strong>,rblee}@pr<strong>in</strong>ceton.edu3 USC Information <strong>Science</strong>s Institute, Mar<strong>in</strong>a Del Rey, CA 90292{bhaskara,tbenzel}@isi.eduAbstract. Dur<strong>in</strong>g many crises, access to sensitive emergency-support<strong>in</strong>formation is required to save lives and property. For example, for effectiveevacuations first responders need the names and addresses ofnon-ambulatory residents. Yet, currently, access to such <strong>in</strong>formation maynot be possible because government policy makers and third-party dataproviders lack confidence that today’s IT systems will protect their data.Our approach to the management of emergency <strong>in</strong>formation providesfirst responders with temporary, transient access to sensitive <strong>in</strong>formation,and ensures that the <strong>in</strong>formation is revoked after the emergency.The follow<strong>in</strong>g contributions are presented: a systematic analysis of thebasic forms of t<strong>ru</strong>sted communication supported by the architecture; acomprehensive method for secure, distributed emergency state management;a method to allow a userspace application to securely display data;a multifaceted system analysis of the conf<strong>in</strong>ement of emergency <strong>in</strong>formationand the secure and complete revocation of access to that <strong>in</strong>formationat the closure of an emergency.Keywords: Information Assurance, <strong>Computer</strong> Security, Policy Enforcement,Secret Protection (SP), Transient T<strong>ru</strong>st, Emergency Response.1 IntroductionIn a crisis, first-responders can often save lives and limit damage if they haveaccess to certa<strong>in</strong> sensitive or restricted <strong>in</strong>formation. Examples of such emergency<strong>in</strong>formation are: build<strong>in</strong>g floor plans, schematics for <strong>in</strong>frast<strong>ru</strong>cture or transitsystems <strong>in</strong> a city, or medical records of victims. However, government policymakers and third-party data providers lack confidence <strong>in</strong> the ability of emergencyIT systems to protect their data relative to confidentiality, sensitivity, privacy,liability, and other concerns, and are unwill<strong>in</strong>g to release such data, even on atemporary basis, to civilian first responders[1].L. Chen, C.J. Mitchell, and A. Mart<strong>in</strong> (Eds.): T<strong>ru</strong>st 2009, LNCS <strong>5471</strong>, pp. 133–152, 2009.c○ Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2009


134 T.E. Lev<strong>in</strong> et al.In this paper, we address the essential confidentiality, <strong>in</strong>tegrity, access control,revocation and data conta<strong>in</strong>ment capabilities needed <strong>in</strong> future emergencyresponse systems. We show how a platform based on commercial off-the-shelftechnology can be used for the secure management of emergency <strong>in</strong>formationand we detail how it can (1) communicate securely with a t<strong>ru</strong>sted authority,first responders, and <strong>in</strong>formation providers; (2) manage distributed emergencystate with high <strong>in</strong>tegrity and assurance; and (3) enable emergency access to sensitive<strong>in</strong>formation while strictly ma<strong>in</strong>ta<strong>in</strong><strong>in</strong>g its conf<strong>in</strong>ement as well as revok<strong>in</strong>gaccess with high assurance.In the sections that follow, we show how a handheld Emergency Device, theE-Device, utiliz<strong>in</strong>g the latest generation separation kernel technology [2,3] andstate-of-the-art hardware security concepts [4], can be a t<strong>ru</strong>sted foundation forsecure crisis response.2 Secure Platform ArchitectureThe secure platform architecture of the E-Device (see Fig. 1) is based on acommercial general-purpose processor (nom<strong>in</strong>ally an x86) enhanced with theAuthority-Mode Secret Protection (SP) architecture features [4], a T<strong>ru</strong>sted ManagementLayer (TML) — compris<strong>in</strong>g a least privileged separation kernel [2], anda security services layer that virtualizes certa<strong>in</strong> separation kernel resources —and t<strong>ru</strong>sted software programs that <strong>ru</strong>n <strong>in</strong> one of the TML-provided partitions.These hardware/software components, with the addition of a T<strong>ru</strong>sted SoftwareModule (TSM) application supported by SP, form the T<strong>ru</strong>sted Comput<strong>in</strong>g Base(TCB) for our E-Device.2.1 Secure Software StackThe t<strong>ru</strong>sted software for the E-Device utilizes Intel x86 privilege levels to protectthe resources <strong>in</strong> each level from the subjects <strong>in</strong> less-privileged doma<strong>in</strong>s. The twomost privileged layers are collectively referred to as the TML, while the next mostprivileged layers house a t<strong>ru</strong>sted executive and the T<strong>ru</strong>sted Path Application(TPA).The TML provides software-based security enforcement, and is supported bysecurity features of the underly<strong>in</strong>g Intel x86 and SP hardware. While support formany different client OSes is not the focus of this research, the TML is designedto provide to the commodity OS a standard execution environment with respectto platform hardware features.The TML manages all system hardware resources (e.g., memory, devices,processors, etc.). It reserves some resources for its own use, and exports otherresources <strong>in</strong> the form of processes, memory segments, I/O devices, raw disk volumes,segment volumes, etc. The TML separates all exported resources <strong>in</strong>to dist<strong>in</strong>ctpartitions, governs the flow of <strong>in</strong>formation between partitions and between<strong>in</strong>dividual exported resources, and protects raw disk volumes by encryption.The TML creates three types of partitions: Emergency, T<strong>ru</strong>sted and Normal.A normal partition and an emergency partition each <strong>ru</strong>n a commodity


Secur<strong>in</strong>g Emergency Response Data 135Fig. 1. Security architecture <strong>in</strong>stantiated for an emergency scenario(unt<strong>ru</strong>sted) OS. The T<strong>ru</strong>sted Partition <strong>ru</strong>ns an extremely compact t<strong>ru</strong>sted executive.Information flow <strong>ru</strong>les and partition def<strong>in</strong>itions provided to the TMLdef<strong>in</strong>e a partial order<strong>in</strong>g of flows between partitions, <strong>in</strong>dicative of a multilevelsecurity (MLS) policy, and correspond<strong>in</strong>g security labels may be associated withpartitions.The TML manages <strong>in</strong>teractive user sessions through what is referred to aspartition focus, whereby the user can <strong>in</strong>teract with one partition at a time, viathe system keyboard and screen.For applications <strong>in</strong> the t<strong>ru</strong>sted partition, the t<strong>ru</strong>sted executive provides simpleOS-like support. The t<strong>ru</strong>sted executive manages passwords and provides userauthentication services. The TPA is <strong>in</strong>voked by press<strong>in</strong>g what is known as thesecure attention key (SAK), such as Ctrl-Alt-Delete. When the TML detects theSAK, it changes partition focus to the T<strong>ru</strong>sted Partition, which starts the TPA.The TPA provides a variety of other security services to the user, <strong>in</strong>clud<strong>in</strong>g:sett<strong>in</strong>g the security sensitivity label for a session, chang<strong>in</strong>g a password, andshutt<strong>in</strong>g down the E-Device.2.2 T<strong>ru</strong>sted Software Protected by SP HardwareA novel aspect of our architecture is provided by SP’s T<strong>ru</strong>sted Software Module(TSM). TSMs have two critical characteristics: they are protected from observationand modification by non-TSM software (<strong>in</strong>clud<strong>in</strong>g the OS), and they haveexclusive access to SP crypto-transforms and to two processor-resident dataregisters.A TSM is def<strong>in</strong>ed to be code that is executable <strong>in</strong> a special processor modecalled Concealed Execution Mode (CEM) that is entered via the Beg<strong>in</strong> CEM<strong>in</strong>st<strong>ru</strong>ction. Once <strong>in</strong> CEM, special SP <strong>in</strong>st<strong>ru</strong>ctions can be executed — SP derive,Secure Load, Secure Store, andEnd CEM — and special SP registers can be


136 T.E. Lev<strong>in</strong> et al.used — Device Root Key (DRK) and Storage Root Hash (SRH). Other CEMonly<strong>in</strong>st<strong>ru</strong>ctions are provided to read and write the SRH register. Also, when<strong>in</strong> CEM, the processor checks the <strong>in</strong>tegrity of each <strong>in</strong>st<strong>ru</strong>ction cache l<strong>in</strong>e of theTSM with respect to compiled-<strong>in</strong> signatures based on the DRK.The Secure Load and Secure Store <strong>in</strong>st<strong>ru</strong>ctions cause memory locations tobe tagged as TSM-only while they reside <strong>in</strong> on-chip caches, and to be automaticallyencrypted and hashed when they move to off-chip memory to preventunauthorized observation or modification. CEM execution is suspended dur<strong>in</strong>gan <strong>in</strong>ter<strong>ru</strong>pt and is automatically resumed upon return, with data <strong>in</strong> processorregisters protected from the OS by the hardware.The protection of TSM code can be viewed as be<strong>in</strong>g <strong>in</strong>dependent from theprotection of the underly<strong>in</strong>g OS, as follows. The t<strong>ru</strong>stworth<strong>in</strong>ess of a program isgenerally understood to be limited by the t<strong>ru</strong>stworth<strong>in</strong>ess of the programs thatit depends on. The TSM, which <strong>ru</strong>ns <strong>in</strong> the Emergency Partition “on top of” anunt<strong>ru</strong>sted OS, does not make calls to the OS (i.e., and can not, s<strong>in</strong>ce the OS isnot a TSM) and so a TSM is not “functionally” dependent on the OS, and canactually be more t<strong>ru</strong>stworthy than the OS itself.SP stores two master secrets <strong>in</strong> non-volatile registers on-chip, which providethe roots of t<strong>ru</strong>st for the E-Device’s operations. The DRK, which never leavesthe processor, protects the <strong>in</strong>tegrity of TSM code and is also used by SP deriveto cryptographically derive new keys for the TSM. The SRH can only be reador written by the TSM, and provides it with a small amount of on-chip storage,which can be used to store the output of crypto-hash<strong>in</strong>g operations for protect<strong>in</strong>glarger persistent data st<strong>ru</strong>ctures such as key cha<strong>in</strong>s (a hierarchy of keys) and thepolicies regard<strong>in</strong>g use of those keys. This allows the TSM to moderate all accessto the protected data and enforce the correspond<strong>in</strong>g policies on each access.The Authority can communicate with the E-Device dur<strong>in</strong>g operation, provid<strong>in</strong>gupdates to keys and policies <strong>in</strong> its persistent secure storage and to sendnew encrypted data to the E-Device. When establish<strong>in</strong>g a secure communicationchannel, the parties use derived keys. Therefore, the E-Device’s ability to generatethose keys and communicate demonstrates that it still has the correct DRKvalue and signed TSM code, and serves as an implicit authentication, s<strong>in</strong>ce onlythe E-Device and the Authority know the DRK.3 Information Shar<strong>in</strong>g dur<strong>in</strong>g an EmergencyOur concept for emergency response <strong>in</strong>volves a network of participants (theEmergency Network), <strong>in</strong>clud<strong>in</strong>g a coord<strong>in</strong>at<strong>in</strong>g Authority, the expected firstresponders, andthird party data providers who ma<strong>in</strong>ta<strong>in</strong> <strong>in</strong>formation that isexpected to be useful dur<strong>in</strong>g an emergency. The Authority manages the distributionof keys and policies via its own secure comput<strong>in</strong>g facility, and coord<strong>in</strong>atesemergency response for a given crisis, <strong>in</strong>clud<strong>in</strong>g alert<strong>in</strong>g all entities on theEmergency Network of the emergency and dissem<strong>in</strong>at<strong>in</strong>g emergency data to firstresponders.


Secur<strong>in</strong>g Emergency Response Data 137Fig. 2. Emergency Network ArchitectureWhile E-Devices may be owned by various emergency network participants,their correct configuration is the responsibility of the authority, and they will beoperated <strong>in</strong> the field by first responders. Fig. 2 shows the emergency network.The operation of the Emergency Network is governed by prearranged organizationalsecurity policies [5]. These <strong>in</strong>clude the lattice-based MLS policy enforcedby the TML and the access policy enforced by the TSM <strong>in</strong> the application doma<strong>in</strong>.3.1 Emergency OperationThe Authority ma<strong>in</strong>ta<strong>in</strong>s a b<strong>in</strong>ary global emergency state, i.e., ON or OFF, andnotifies the authorized E-Devices of any state changes. The E-Devices may grantaccess to emergency <strong>in</strong>formation if the state is ON, and must deny access whenOFF. Secure synchronization of the global state is discussed below.When an emergency is declared, the Authority sends state-change notificationsto the E-Devices. Once the TML <strong>in</strong>terprets the message, it prompts theuser to access the Emergency Partition, via the TPA.While the emergency is <strong>in</strong> effect, the user can access any active partition theuser is cleared to see, <strong>in</strong>clud<strong>in</strong>g the preconfigured Emergency Partition. With<strong>in</strong>the Emergency Partition, f<strong>in</strong>er granularity application-specific access controls onemergency data may be provided by an application doma<strong>in</strong> Emergency ManagementTSM.When the emergency is over, the Authority announces a change to the globalemergency state, prompt<strong>in</strong>g the TML to start the emergency closure process. Itdisplays an end-of-emergency message which prompts the user to change focusto the T<strong>ru</strong>sted partition (to be completed with<strong>in</strong> a configurable period), revokesaccess to the Emergency Partition, and restores the Emergency Partition to itsorig<strong>in</strong>al state.


138 T.E. Lev<strong>in</strong> et al.4 New Security MechanismsThis section presents a systematic analysis of the available secure communicationchannels and describes mechanisms for complet<strong>in</strong>g the t<strong>ru</strong>st cha<strong>in</strong> from theremote Authority to the E-device, and to its Emergency Partition and display,<strong>in</strong>clud<strong>in</strong>g: emergency state management, t<strong>ru</strong>stworthy display and mechanismsfor revocation of sensitive data.4.1 Secure Communication ChannelsA secure communications protocol protects aga<strong>in</strong>st message content disclosureand modification, as well as traffic analysis and <strong>in</strong>sertion or deletion of packets.We consider a channel to be a secure channel if it uses a secure protocol, theprotocol is implemented correctly, and the channel endpo<strong>in</strong>ts are secure aga<strong>in</strong>stboth the modification of their behavior and aga<strong>in</strong>st unauthorized disclosure ofchannel and key<strong>in</strong>g <strong>in</strong>formation.The E-Device, while simple, supports several different forms of secure communicationschannels, which provide emergency systems designers with flexibility <strong>in</strong>const<strong>ru</strong>ct<strong>in</strong>g new systems. Three basic channels are shown <strong>in</strong> Fig. 3: the T<strong>ru</strong>stedChannel (A), the TSM-TSM Channel (D), and the T<strong>ru</strong>sted Path (B).A T<strong>ru</strong>sted Channel (A) is a secure channel between two TCBs (e.g., a TMLor a t<strong>ru</strong>sted system) [6]. A TSM-TSM Channel (D) provides cryptographic assuranceaga<strong>in</strong>st message disclosure and modification between application TSMs,e.g., on different mach<strong>in</strong>es. A T<strong>ru</strong>sted Path (B) is a secure channel between auser and the TML on the E-Device, implemented by the TPA.A Remote T<strong>ru</strong>sted Path (E) is a secure channel between a remote user (e.g.,the Authority) and a TML, which is const<strong>ru</strong>cted by comb<strong>in</strong><strong>in</strong>g a T<strong>ru</strong>sted Pathwith the remote end of a T<strong>ru</strong>sted Channel. An Extended T<strong>ru</strong>sted Channel (F)Fig. 3. Types of Channels


Secur<strong>in</strong>g Emergency Response Data 139is a secure channel created by extend<strong>in</strong>g the I/O <strong>in</strong>terface of a T<strong>ru</strong>sted Channelto the TML <strong>in</strong>terface of a given partition, which allows applications to securely<strong>in</strong>teract with a remote TCB.A T<strong>ru</strong>sted Application Display (C), discussed below, enables an application(i.e., the Emergency Partition TSM) execut<strong>in</strong>g <strong>in</strong> the context of an <strong>in</strong>secure OSto securely write to the screen, which is managed by the TML. A Remote T<strong>ru</strong>stedDisplay (G) connects a TSM-TSM Channel with a T<strong>ru</strong>sted Application Displayso a remote system, such as that used by the Authority, can display data to thelocal user with assurance aga<strong>in</strong>st message disclosure and modification.The TML exports to partitions virtual NICs (see Fig. 4), which are logicaldevices, each with an IP address, for use by the OS and applications <strong>in</strong> a specificpartition.The TML manages the negotiation of session keys and cryptographic algorithms,as well as the cryptographic transformation of data for encrypted channelsvia the IPsec “security association” paradigm [7], although the entire IPsecsuite is not required (e.g., crypto-transforms are statically assigned). An ExtendedT<strong>ru</strong>sted Channel therefore embodies the mapp<strong>in</strong>g of a partition ID to aremote IP address and a security association. Communication channels, displaychannels and logical devices are configured dur<strong>in</strong>g E-Device <strong>in</strong>itialization with<strong>in</strong>formation such as: each channel’s remote TCB address, and security level; variouskey<strong>in</strong>g material; and the mapp<strong>in</strong>g of Extended T<strong>ru</strong>sted Channels to specificpartitions. Security levels are also assigned to partitions and physical devices.An out-of-band distributed “root” secret key that is shared with the TCB atthe other end of a t<strong>ru</strong>sted channel is the basis for channel session keys [8]. Fort<strong>ru</strong>sted channels between the E-Device and the Authority, the DRK is used asthe root secret. For other t<strong>ru</strong>sted channels, such as those with third party dataFig. 4. Network<strong>in</strong>g Support of the TML


140 T.E. Lev<strong>in</strong> et al.providers, a shared secret key is stored by a TSM <strong>in</strong> the TML’s T<strong>ru</strong>sted ChannelManager <strong>in</strong>stead.Nonces to support generation of session keys are dynamically exchanged orperiodically distributed. The TSM hashes the nonce with the root secret toderive a temporary shared secret, with which it can generate a session key us<strong>in</strong>ga standard key exchange protocol, such as TLS. Alternatively, the derived valueitself could be used as a session key. All communications between endpo<strong>in</strong>tswith<strong>in</strong> the emergency network use these channels.4.2 Emergency State ManagementAs discussed above, the Authority manages the global emergency state withemergency state management messages. State management consists of the follow<strong>in</strong>gsteps: (1) message generation; (2) message transmission; and (3) messageprocess<strong>in</strong>g on the E-Device. Each of these steps needs to be t<strong>ru</strong>stworthy to ensureconsistent and correct emergency state management.In addition to the emergency state, the Authority ma<strong>in</strong>ta<strong>in</strong>s a counter of thenumber of state changes it has issued; also, it ma<strong>in</strong>ta<strong>in</strong>s a record of the acknowledgedstate and counter values for each E-Device, along with its DRK. Whenthe Authority changes the global state, it must securely synchronize with each E-Device. On the <strong>in</strong>dividual E-Device, local emergency state and a state transitioncounter are ma<strong>in</strong>ta<strong>in</strong>ed by a state-management (E-State) TSM <strong>in</strong> the TML.When the Authority declares an emergency, it <strong>in</strong>crements its counter associatedwith the E-Device and generates an emergency state management messagefor each E-Device that consists of: (a) a command type <strong>in</strong>dicator (<strong>in</strong>dicat<strong>in</strong>g astate update message); (b) a payload of the new state and counter, encryptedwith an encryption key derived from the DRK; (c) a signature (cryptographickeyed hash) of the encrypted payload and command, us<strong>in</strong>g a sign<strong>in</strong>g key derivedfrom the DRK; and (d) two nonces to derive the encryption and sign<strong>in</strong>g keys.The emergency state management message is sent to the E-Device through aRemote T<strong>ru</strong>sted Path channel. Only the E-Device to which the emergency statemanagement message was <strong>in</strong>tended is able to successfully process the message.The E-State TSM <strong>in</strong>dependently 1 verifies the orig<strong>in</strong>ator of the state managementmessage. For emergency state management, two functions, Update Stateand Get State are implemented on the E-Device. The Update State functionchecks the <strong>in</strong>tegrity of the message us<strong>in</strong>g the signature, and the counter. It alsogenerates a response to the Authority by generat<strong>in</strong>g a signature over the messageus<strong>in</strong>g a sign<strong>in</strong>g key derived from the sign<strong>in</strong>g nonce and the DRK. The E-StateTSM sends the signature back to the Authority over the t<strong>ru</strong>sted channel, butdoes not need to send the message payload or nonce, s<strong>in</strong>ce the Authority alreadyhas the <strong>in</strong>itial update message.The TML, via its TSM, uses Get State to retrieve the new state, as discussed<strong>in</strong> Section 3.1. To ensure that the update of emergency state is t<strong>ru</strong>stworthy, only1 Decoupl<strong>in</strong>g the channel authentication from message authentication allows for flexibilityto <strong>in</strong>corporate ad-hoc and/or peer-to-peer transmission of emergency statemanagement messages <strong>in</strong> the future.


Secur<strong>in</strong>g Emergency Response Data 141the TML can pass update messages from the t<strong>ru</strong>sted channel with the Authority<strong>in</strong>to the E-State TSM; and only the E-State TSM can <strong>in</strong>voke Update State andGet State.For high-threat deployment environments, enhanced assurance is provided bya version of SP that <strong>in</strong>cludes state management primitives <strong>in</strong> its ISA. Instead ofimplement<strong>in</strong>g them <strong>in</strong> the E-State TSM software, this version, <strong>in</strong>cludes registersfor a state variable and a state transition counter, as well as <strong>in</strong>st<strong>ru</strong>ctions for theUpdate State and Get State functions. With these hardware enhancements, eventhe TSM does not have the ability to directly modify the emergency state onthe device.4.3 Conta<strong>in</strong>ment of Emergency DataThe organizational security policy enforced by the E-Device requires that emergency<strong>in</strong>formation from the data providers only be accessible to authorized usersact<strong>in</strong>g with<strong>in</strong> the emergency partition, and only dur<strong>in</strong>g a proper emergency declaredby the Authority. MAC policy enforcement (by the TML) and DAC policyenforcement (by the Emergency Management TSM) jo<strong>in</strong>tly restrict <strong>in</strong>formationflows on the E-Device before, dur<strong>in</strong>g and after the emergency.Emergency data is <strong>in</strong>stalled at the Authority’s secure facility or sent to theE-Device from the Authority and data providers over T<strong>ru</strong>sted Channels, and isconf<strong>in</strong>ed <strong>in</strong> the Emergency Partition. The data may be further encrypted so thatit can only be accessed by the Emergency Management TSM application, whichcan enforce more granular access policies with<strong>in</strong> the Emergency partition.The Authority establishes an Extended T<strong>ru</strong>sted Channel to the EmergencyPartition. The Emergency Partition and the Authority are allocated an “emergency”MLS label that is dist<strong>in</strong>ct from that associated with other partitions.The TML attaches the “emergency” label to data it receives over the channel,restrict<strong>in</strong>g the data to only this partition of the E-Device. Data flows for emergencymanagement are shown <strong>in</strong> Fig. 5, as follows: (1) the Authority propagateschanges to the global emergency state and receives confirmation from the device;(2) the Authority sends keys, policies, and revocations to the EmergencyManagement TSM, via an Extended T<strong>ru</strong>sted Channel managed by the T<strong>ru</strong>stedChannel Manager (TCM); (3) the authority sends encrypted emergency data tothe Emergency Partition, via an Extended T<strong>ru</strong>sted Channel; (4) data providersprovide additional data for the authority to send to the E-Device; (5) whenneeded, the Emergency Management TSM decrypts the emergency data withkeys and policies <strong>in</strong> its storage.T<strong>ru</strong>sted channels between the TML and the Authority are protected us<strong>in</strong>gfreshly negotiated channel secrets for each connection, based on the DRK ratherthan a stored root key. As a result, only parties with access to the DRK (theAuthority and the E-Device) can authorize an Extended T<strong>ru</strong>sted Channel to theEmergency Partition.Aside from these secure channels, the <strong>in</strong>formation cannot flow out of theEmergency Partition, e.g., to any other partition, device or network, ensur<strong>in</strong>gthat emergency data cannot be revealed outside of the equivalence class of


142 T.E. Lev<strong>in</strong> et al.Fig. 5. Data Flow for Emergency Managementcomponents labeled as “Emergency.” Additionally, the Emergency Partition itselfis only made available to the user by the TML and TPA when an emergencyhas been declared, as previously described. This temporal restriction limits thethreat of malicious <strong>in</strong>siders, and <strong>in</strong> comb<strong>in</strong>ation with the partition’s spatial separation,provides defense <strong>in</strong> depth for the conf<strong>in</strong>ement of emergency <strong>in</strong>formation.The Authority provides its own emergency data to the E-Device, and canconvey data provided by third party data providers. When the latter data isproxied through the Authority and the third party has no direct communicationwith the E-Device, the third party does not need and is not given the privilegesassociated with the “Emergency” label.If a third party is considered t<strong>ru</strong>sted, it can be <strong>in</strong>cluded <strong>in</strong> the “Emergency”equivalence class and allowed to establish an Extended T<strong>ru</strong>sted Channel directlyto the Emergency Partition. S<strong>in</strong>ce the Third Party does not have access to the E-Device’s DRK, it and the Emergency Management TSM share an “emergency”key, which is stored locally <strong>in</strong> the TSM’s persistent secure storage. Even whenthird party data is provided directly, the TSM on the E-Device can still beconfigured to only accept policies for that data directly from the Authority.All emergency data sent over the Extended T<strong>ru</strong>sted Channel is encrypted bythe Authority or data provider prior to transmission us<strong>in</strong>g keys only available(on the E-Device) to the TSM. This enables the TSM to enforce its discretionaryaccess control policy on use of the data by the responder or any software with<strong>in</strong>the Emergency Partition, and audit the use of the data, even though it executesalongside unt<strong>ru</strong>sted software <strong>in</strong> the Emergency Partition.With<strong>in</strong> the Emergency Partition, the TSM can release data to unt<strong>ru</strong>sted,feature-rich commercial applications for display. However, there is no assurancethat unt<strong>ru</strong>sted applications will accurately display data when asked. Some <strong>in</strong>formation,e.g., that which is critical and easy to manipulate, may require greater


Secur<strong>in</strong>g Emergency Response Data 143protection. For this, we provide the high-<strong>in</strong>tegrity T<strong>ru</strong>sted Application Displaymechanism, which allows an application-TSM to send text-only emergency datadirectly to a reserved region of the display via a secure call to the TML thatbypasses the unt<strong>ru</strong>sted software <strong>in</strong> the Emergency Partition.The t<strong>ru</strong>sted display mechanism provides an unspoofable means for an applicationdoma<strong>in</strong> program to display messages with high <strong>in</strong>tegrity such that theycannot be observed or modified by any unt<strong>ru</strong>sted software <strong>in</strong> the system. Thismechanism is available to the TSM <strong>in</strong> the Emergency Partition and the TPA<strong>ru</strong>nn<strong>in</strong>g <strong>in</strong> the T<strong>ru</strong>sted Partition. Both the TSM and TPA are designed to beevaluated to ensure their correct behavior, which helps to ensure that the correctdata is <strong>in</strong>put to the t<strong>ru</strong>sted display mechanism.The TML virtualizes the video graphics card such that it appears to eachpartition that it has control of the screen. These virtual devices pass <strong>in</strong>put tothe TML’s secure display driver, which divides the physical display <strong>in</strong>to tworegions. One region is restricted for the TML-controlled high-<strong>in</strong>tegrity display(for example, the bottom two l<strong>in</strong>es of text on the screen). The rema<strong>in</strong><strong>in</strong>g regionof the screen is exported to the partition with focus as normal.High <strong>in</strong>tegrity data to be displayed is encrypted and either comes directlyfrom the Authority for Remote T<strong>ru</strong>sted Display or is chosen to be released bythe TSM dur<strong>in</strong>g its operation for T<strong>ru</strong>sted Application Display. To pass the datasecurely to the TML, the TSM is divided <strong>in</strong>to two pieces: an application-TSM<strong>in</strong> the partition and a kernel-TSM <strong>in</strong> the TML. The former is responsible forprepar<strong>in</strong>g the data for display and the latter for pass<strong>in</strong>g the pla<strong>in</strong>text data tothe TML securely. SP’s CEM protects the data as it is passed between privilegelevels through the unt<strong>ru</strong>sted software <strong>in</strong> the Emergency Partition.The application-TSM first decrypts the data us<strong>in</strong>g keys <strong>in</strong> its storage, andthen stores the result<strong>in</strong>g display text <strong>in</strong> a memory buffer (at a known location)us<strong>in</strong>g Secure Store <strong>in</strong>st<strong>ru</strong>ctions. This data is now only accessible <strong>in</strong> pla<strong>in</strong>text toTSM code. An x86 call-gate is used to transition from the application-TSM to thekernel-TSM without an <strong>in</strong>ter<strong>ru</strong>pt. The kernel-TSM uses Secure Load <strong>in</strong>st<strong>ru</strong>ctionsto read from the CEM-protected memory buffer and regular Store <strong>in</strong>st<strong>ru</strong>ctionsto write the cleartext data to the TML buffer. It then exits CEM mode and<strong>in</strong>vokes the TML-provided T<strong>ru</strong>sted Screen Handler, which sends the data tothe TML’s T<strong>ru</strong>sted Screen Driver for display <strong>in</strong> the restricted display region.F<strong>in</strong>ally, the kernel-TSM code re-enters CEM and returns to the call gate <strong>in</strong> theapplication-TSM, with a return value <strong>in</strong>dicat<strong>in</strong>g the success or failure of thedisplay operation.To complete the data lifecycle, access to emergency data must be resc<strong>in</strong>dedonce the emergency is over. Data revocation takes place through complementarymechanisms, us<strong>in</strong>g both mandatory and discretionary access control.The coarsest granularity of revocation available to the Authority is to declarethe emergency to have ended. As described <strong>in</strong> Section 4.2, this results <strong>in</strong> theclos<strong>in</strong>g of the Emergency Partition to users and applications, and restores itscode and data to the pre-emergency state. Stopp<strong>in</strong>g application activity and


144 T.E. Lev<strong>in</strong> et al.overwrit<strong>in</strong>g the entire partition effectively removes all data generated or released<strong>in</strong>side the partition.A f<strong>in</strong>er-granularity of revocation is provided by the Emergency ManagementTSM itself, as described <strong>in</strong> [4]. Over and above the TSM-enforced policies restrict<strong>in</strong>gaccess to data based on expiration dates, usage counts, search queryrestrictions, etc., at its discretion, the Authority can communicate with the TSMand direct it to modify policies, keys, and other emergency restrictions to revokeaccess to exist<strong>in</strong>g data, for example, <strong>in</strong> preparation for end<strong>in</strong>g the emergency.Guarantees to the Authority and third parties about revocation and the stateof the E-Device depend on connectivity and availability of the TSM. If the E-Device is disconnected temporarily from the network, or an application TSMmanag<strong>in</strong>g communication with the Authority is subject to a functional denial ofservice attack, the Authority will be unable to synchronize the local emergencystate with its own global state. An emergency expiration timer is provided by theTML, such that if connectivity with the Authority cannot be established with<strong>in</strong>a def<strong>in</strong>ed time, the TML can end the emergency on the E-Device. The use of thistimer may not be appropriate for all responders and is therefore configurable.Once communication is restored, the E-Device can attest to the Authority thatthe requested updates to emergency state, policy, and keys have been made.5 System Security AnalysisOverall system security can be understood <strong>in</strong> terms of the threats to which itwill be exposed and how the system is capable of counteract<strong>in</strong>g those threats.5.1 Threat Model and AssumptionsWe assume that the E-Device is <strong>in</strong>itialized securely with TML-, TSM- and SPspecifickeys. We also assume that the third parties and the Authority securelyexchange the required key<strong>in</strong>g material and protect their own keys from exposure.We assume the standard Dolev-Yao model [9], that arbitrary parties can capture,modify or <strong>in</strong>sert network traffic. Intentional or malicious network-level denialof service — as opposed to prevention of process functionality at the workstation— is outside the threat model. The threat model and analysis for SP,which <strong>in</strong>cludes spoof<strong>in</strong>g, splic<strong>in</strong>g and replay of TSM code, <strong>in</strong>termediate data<strong>in</strong> registers and memory, and secure persistent storage, are discussed <strong>in</strong> [4], <strong>in</strong>clud<strong>in</strong>gthe protection of emergency data encrypted with TSM keys. The threatmodel for the TML is that applications of the TML, <strong>in</strong>clud<strong>in</strong>g guest OSs otherthan the t<strong>ru</strong>sted executive, are not t<strong>ru</strong>sted to conform to its policies, and may <strong>in</strong>fact be hostile. For example, at <strong>ru</strong>ntime, the software execut<strong>in</strong>g above the TMLmay attempt to access keys used by the TML to establish secure channels — andapplication software or the commodity operat<strong>in</strong>g systems may attempt to writeemergency data to a location outside the partition or attempt to access high<strong>in</strong>tegrity <strong>in</strong>formation through low <strong>in</strong>tegrity mechanisms. The t<strong>ru</strong>sted executiveis only t<strong>ru</strong>sted to manage its applications <strong>in</strong> a manner that does not <strong>in</strong>troduce


Secur<strong>in</strong>g Emergency Response Data 145covert channels between applications that are at different security levels. Thepersistent disk storage is encrypted and signed, and so is protected aga<strong>in</strong>st, e.g.,theft of the E-Device.TCB software at the Authority, third parties and <strong>in</strong> the E-Device is assumedto behave correctly and securely. But, application TSMs are subject to <strong>in</strong>consistencies<strong>in</strong> their execution environment, such as denial of access to the processor,as they execute <strong>in</strong>dependently from the t<strong>ru</strong>sted software that controls physicalresources.5.2 Security CapabilitiesThe architecture presented <strong>in</strong> this paper comb<strong>in</strong>es the secure execution and keyconfidentiality provided by SP hardware with <strong>in</strong>formation conta<strong>in</strong>ment assuranceprovided by the TML. Further, secure boot ensures that the correct TMLconfiguration is loaded on boot and SP’s code <strong>in</strong>tegrity check<strong>in</strong>g (CIC) ensuressyntactic <strong>ru</strong>ntime <strong>in</strong>tegrity of TML code. This ensures that large classes of softwareattacks that <strong>in</strong>volve code modification are prevented.The DRK acts as the shared secret between the E-Device and the Authority.On the E-Device, the confidentiality provided by the SP hardware ensures thatsoftware never has access to the DRK directly, ensur<strong>in</strong>g this shared secret isalways protected with high assurance.Software is only allowed to use the DRK to derive other keys, which is sufficientfor mutual authentication and secure channel establishment. The SP hardwarealong with the TSM ensures that all computation <strong>in</strong>volv<strong>in</strong>g keys derived fromthe DRK, <strong>in</strong>clud<strong>in</strong>g <strong>in</strong>termediate data, never leaves the processor chip <strong>in</strong> unencryptedform. This avoids the possibility of any software outside the TSMgett<strong>in</strong>g access to derived keys. S<strong>in</strong>ce this is an <strong>in</strong>variant of the TSM and SPhardware, keys used for secure channels are always protected. The TML codeis protected by the CIC mode of the SP processor, ensur<strong>in</strong>g that the accesscontrol polices enforced by the TML cannot be changed by code modificationattacks. The privilege levels provided by hardware ensure that subjects withlesser privilege than the TML cannot read or write to objects <strong>in</strong> the TML. Thisensures that the TML always sets up the secure channels between the differentendpo<strong>in</strong>ts on the E-Device and the Authority/third parties as configured.A T<strong>ru</strong>sted Path provides bidirectional security: (1) ensur<strong>in</strong>g that user <strong>in</strong>putto the TCB is accurately and securely received by the TCB, via a keyboard-to-TCB data pipel<strong>in</strong>e (where the keyboard is a proxy for the user); and (2) ensur<strong>in</strong>gthat output from the TCB is seen by the user, without ambiguity or compromise,via the TCB-to-screen data pipel<strong>in</strong>e (where the screen is a proxy for the user).The T<strong>ru</strong>sted Path is a secure channel, s<strong>in</strong>ce it is secure and it provides adirect connection to the TCB endpo<strong>in</strong>t via a secure <strong>in</strong>terface provided by theTML, with no <strong>in</strong>terven<strong>in</strong>g unt<strong>ru</strong>sted components. The T<strong>ru</strong>sted Channel is asecure channel, s<strong>in</strong>ce it is assumed to use secure protocols and the endpo<strong>in</strong>ts aresecure.The E-Device has three TSMs: one is an Emergency Partition application,and the other two are TML modules. S<strong>in</strong>ce these TSMs provide system security


146 T.E. Lev<strong>in</strong> et al.services, they are considered to be part of the TCB and are built to the samelevel of assurance as the TML. When they communicate, the TSMs on bothends of the TSM-TSM Channel have access to DRK-derived keys as well asCEM-protected memory, so the receiver can validate the <strong>in</strong>tegrity of messagesand ensure confidentiality. The TSMs on the E-Device similarly share the sameDRK-derived keys with the Authority, and two TSMs on different devices canbe provided a shared secret by the Authority. We further assume that a TSM-TSM Channel to the Authority or another E-Device utilizes a T<strong>ru</strong>sted Channel,add<strong>in</strong>g another layer of protection over the network.Any data used, transmitted, or displayed by an application-TSM is still subjectto a functional denial of service by the unt<strong>ru</strong>sted OS, which may prevent its executionor tamper with its encrypted data — but the tamper<strong>in</strong>g will be detected.In the Extended T<strong>ru</strong>sted Channel, the TML makes T<strong>ru</strong>sted Channels availableto partitions as logical I/O devices, which provides a secure channel between theI/O device <strong>in</strong>terface and the t<strong>ru</strong>sted component at the other end of the T<strong>ru</strong>stedChannel. The Extended T<strong>ru</strong>sted Channel can provide pla<strong>in</strong>-text or encrypteddata to a given partition (where the cryptographic functions are provided byapplications <strong>in</strong> the partition).In Normal and Emergency Partitions, a commercial OS manages the logicalI/O device, and makes it available to its applications via an abstraction such asa socket. The security of the Extended T<strong>ru</strong>sted Channel from the perspective ofthe OS application then depends on the security of the OS and any encryptionof the data.The T<strong>ru</strong>sted Application Display is a uni-directional secure channel betweenthe local application TSM and the user, assum<strong>in</strong>g cont<strong>in</strong>uity <strong>in</strong> execution of theTSM and protection of TSM message data. Cont<strong>in</strong>uity of execution dependson the TSM’s process<strong>in</strong>g environment, <strong>in</strong>clud<strong>in</strong>g the ability of the applicationdoma<strong>in</strong> OS to schedule the TSM and other applications consistently and avoidanceof attacks on application-TSM code, data buffers, or communications to theTML. While these would constitute a functional denial of service attack on theTSM, they could not compromise the confidentiality or <strong>in</strong>tegrity of the displaydata. Of course, the confidentiality of displayed data is not protected from outof band analog mechanisms, e.g., visual observation of the screen.Comb<strong>in</strong><strong>in</strong>g a TSM-TSM Channel with the T<strong>ru</strong>sted Application Display channelresults <strong>in</strong> a Remote T<strong>ru</strong>sted Display channel that is a s<strong>in</strong>gle-direction channelwhose security depends on the security of the component channels (i.e., theTSM-TSM Channel and T<strong>ru</strong>sted Application Display channel discussed above).Emergency state management message generation is a security critical operation.Only the Authority is able to generate valid messages for a given E-Device asthey are based on the device-specific DRK, known only to the authority and theE-Device. S<strong>in</strong>ce SP hardware ensures software never has access to the DRK andthe authority secures its copy of DRK, arbitrary parties cannot generate a validmessage. S<strong>in</strong>ce the emergency state change generates a response that is also cryptographicallysigned by a DRK-derived key, the authority can be assured that theemergency state management was correctly processed by the <strong>in</strong>tended E-Device.


Secur<strong>in</strong>g Emergency Response Data 147There are several layers of protection that detect and prevent replay attackson emergency state management messages: (a) all messages are transmitted oversecure primary channels such that only the subjects with access to the endpo<strong>in</strong>tsof the secure channels can see even the encrypted message; (b) the TSM <strong>in</strong>the TML could also overlay a secure mutual-authentication protocol betweenthe TSM and the Authority to prevent other parts of the TML from access<strong>in</strong>gthe encrypted emergency state management message; (c) s<strong>in</strong>ce the message isencrypted us<strong>in</strong>g keys derived from the DRK, only the TSM on the correct E-Device can decrypt and process the message; (d) the monotonically <strong>in</strong>creas<strong>in</strong>gcounter ensures that a given message is never processed twice.Once the emergency is declared, and the E-Device successfully changes itsemergency state, the Emergency Partition is enabled and the user is able toaccess it. The TML ensures that the Emergency Partition can write only tochannels lead<strong>in</strong>g to the Authority and to t<strong>ru</strong>sted data providers. Further, noother partition on the E-Device can read content <strong>in</strong> the emergency partitionlabeled as “Emergency.” The TML ensures only known virtual device abstractionsof t<strong>ru</strong>sted pre-configured physical devices are presented to the OS <strong>in</strong>the Emergency Partition, thus avoid<strong>in</strong>g the possibility of the user be<strong>in</strong>g ableto attach a device with unconstra<strong>in</strong>ed <strong>in</strong>formation flow properties to thepartition.When the emergency data is decrypted and displayed with<strong>in</strong> the EmergencyPartition, the unt<strong>ru</strong>sted applications or OS may keep parts of the clear textemergency data <strong>in</strong> memory and/or write it to disk, but the TML’s Emergencypartitionseparation policy ensures that the data rema<strong>in</strong>s <strong>in</strong> the Emergency Partition.While all data <strong>in</strong> memory is erased or otherwise <strong>in</strong>validated on a shutdownof the E-Device, the data on the disk may still be accessible if the EmergencyPartition is still present. Any offl<strong>in</strong>e attacks on emergency data on disk are preventedas the TML protects all data on disk by encryption with keys derivedfrom the DRK. These encryption keys are derived as needed and are never revealedor stored. These properties ensure emergency data conta<strong>in</strong>ment dur<strong>in</strong>gthe emergency. When the declaration of emergency is resc<strong>in</strong>ded, the EmergencyPartition becomes <strong>in</strong>accessible to the user and its contents are encrypted andstored for audit purposes or immediately deleted.Applications <strong>in</strong> the Emergency Partition are not expected to display high<strong>in</strong>tegrity content, as both the applications and the OS are not t<strong>ru</strong>sted. Instead,high <strong>in</strong>tegrity <strong>in</strong>formation is displayed on the reserved portion of the screen, viathe T<strong>ru</strong>sted Application Display, with data that is appropriately encrypted andhashed. S<strong>in</strong>ce the TML manages the physical display, no partitions are givendirect access to the portion of the screen reserved for high <strong>in</strong>tegrity display.6 ValidationWe have implemented an E-Device prototype that provides a worked example ofhow the coherent <strong>in</strong>tegration of complementary hardware and software securitymechanisms can enhance security, and validates elements of our overall approach.


148 T.E. Lev<strong>in</strong> et al.6.1 Prototype ImplementationThe prototype demonstrates the feasibility of TSM technology as well as keylayer<strong>in</strong>g and partition<strong>in</strong>g mechanisms <strong>in</strong> the TML.The prototype TML <strong>ru</strong>ns on bare hardware on the x86 platform and providesmultiple partitions which the user can switch between us<strong>in</strong>g the Secure AttentionKey. The partitions each <strong>ru</strong>n a primitive t<strong>ru</strong>sted executive, provid<strong>in</strong>g I/O to theuser-space application <strong>ru</strong>nn<strong>in</strong>g above it. Authority-mode SP features, which havebeen <strong>in</strong>dependently prototyped [4], are provided here by a t<strong>ru</strong>sted kernel modulewhich emulates its behavior and security properties.Our prototype implementation of the <strong>in</strong>tegrated architecture demonstratesthe feasibility of: (a) emergency management operations us<strong>in</strong>g remote t<strong>ru</strong>stedpath; (b) the ability for the Authority and data providers to dissem<strong>in</strong>ate keysand data to the emergency partition; (c) the use of the t<strong>ru</strong>sted display mechanismprovided by the TML to applications to securely display high <strong>in</strong>tegritydata; (d) protection of the code <strong>in</strong>tegrity of TSMs and its secure storage bythe SP hardware; (e) prevention of access to TSM secure storage by the unt<strong>ru</strong>stedOS or unt<strong>ru</strong>sted applications; and (f) detection of simulated attackson the remote t<strong>ru</strong>sted path, key/data usage policies, and confidentiality and<strong>in</strong>tegrity of emergency data us<strong>in</strong>g standard cryptographic algorithms. For theprototype, it is assumed that the TML-managed t<strong>ru</strong>sted channels for securecommunication with the Authority and data providers are <strong>in</strong> place and the keymanagement messages between the E-Device and the Authority/data providersare pre-computed.7 Related WorkPrevious work <strong>in</strong> processor-based cryptographic support <strong>in</strong>clude: SP [4], separationkernels [2], and “least privilege” security architectures [3]. We note thatcryptographic coprocessor mechanisms [10,11] do not provide processor-level protectionfor system software and data, and may be more vulnerable to attack byelements with<strong>in</strong> the platform. Also, while IBM announced an architecture [12]featur<strong>in</strong>g processor-based encryption for protect<strong>in</strong>g data on chip and <strong>in</strong> transit toremote systems, little <strong>in</strong>formation is available regard<strong>in</strong>g system t<strong>ru</strong>stworth<strong>in</strong>ess,or the separation of <strong>in</strong>formation based on events or mandatory policies.The Turaya [13,14] and MILS [15,16] architectures are designed to host commercialoperat<strong>in</strong>g systems and security services as parallel application-doma<strong>in</strong>entities, with certa<strong>in</strong> <strong>in</strong>teractions between those entities controlled by a microkernel(e.g., L4) and a separation kernel, respectively. The security architecturepresented here differs from these efforts <strong>in</strong> that it does not rely on applicationdoma<strong>in</strong> programs for enforcement of the primary underly<strong>in</strong>g security policy, andit provides an <strong>in</strong>terface for the enforcement of <strong>in</strong>tra-OS least privilege policiesas well as <strong>in</strong>ter-OS shar<strong>in</strong>g policies. Additionally, the Turaya and MILS effortsdo not address the temporal conf<strong>in</strong>ement, revocation, and distributed statechangeissues <strong>in</strong>herent to emergency management of <strong>in</strong>formation, and they do not


Secur<strong>in</strong>g Emergency Response Data 149provide processor cryptographic transformations or processor protection of criticalkey<strong>in</strong>g material.T<strong>ru</strong>sted Channels provide po<strong>in</strong>t-to-po<strong>in</strong>t encrypted tunnels between a TMLand a remote TCB that has at least as much assurance of security enforcementas the TML. T<strong>ru</strong>sted Channels are similar to Virtual Private Networks [17]although VPNs are usually expected to support arbitrary and chang<strong>in</strong>g sets ofnetwork nodes rather than po<strong>in</strong>t-to-po<strong>in</strong>t connections.The “t<strong>ru</strong>sted path” has been understood as a requirement for secure computersystems s<strong>in</strong>ce the early 1970s [18], and has been implemented <strong>in</strong> manyhigh assurance [19,20] and commercial systems [21,22]. In our work, the T<strong>ru</strong>stedPath Application implements a traditional user <strong>in</strong>terface for t<strong>ru</strong>sted <strong>in</strong>teractionbetween the user and the TCB (TML). The Remote T<strong>ru</strong>sted Path extendsthe user’s ability to communicate, from the local TCB to a remote TCB. Ourwork differs from previous remote t<strong>ru</strong>sted pathresults(e.g.,[23,6])<strong>in</strong>thatthesecurity of the communication is rooted <strong>in</strong> a processor-resident secret key, forcommunication with the Authority.The Xen “hypervisor” provides support for security policies by way of “doma<strong>in</strong>s”that are similar to TML partitions. Security labels can be associatedwith a doma<strong>in</strong>, and a security policy can be def<strong>in</strong>ed to describe resource isolationor controlled <strong>in</strong>ter-doma<strong>in</strong> <strong>in</strong>formation flow [24]. However, Xen was builtspecifically to provide hardware-assisted virtualization of operat<strong>in</strong>g systems [25]rather than a more generic operat<strong>in</strong>g environment with other services, such asthose provided by the TML.With the Extended T<strong>ru</strong>sted Channel we replace the T<strong>ru</strong>sted Path’s human<strong>in</strong>terface to the TCB with a direct programmatic <strong>in</strong>terface, which allows applicationsto <strong>in</strong>teract with a remote TCB (via a T<strong>ru</strong>sted Channel). Similarly, forthe T<strong>ru</strong>sted Application Display, the TML exports a programmatic <strong>in</strong>terface forsubmitt<strong>in</strong>g data to the TCB for display. A TML-resident TSM subsequently decryptsthe data and then the TML displays it on the screen <strong>in</strong> a reserved area.Secur<strong>in</strong>g the computer display aga<strong>in</strong>st subversion has been reflected <strong>in</strong> early workon multilevel w<strong>in</strong>dow<strong>in</strong>g [26], and subsequent hardware and software-supporteddevelopment [27,28]. Our work differs from these developments <strong>in</strong> provid<strong>in</strong>g ameans for an application execut<strong>in</strong>g <strong>in</strong> the context of an <strong>in</strong>secure operat<strong>in</strong>g systemto securely write to the screen.In its Global Information Grid (GIG), the US Government has recognizedthat, <strong>in</strong> emergencies, the need to access <strong>in</strong>formation may be more important thanthe need to protect the <strong>in</strong>formation, and has developed extensive technical andpolicy roadmaps to support that vision [29,30]. Our framework for managementof emergency <strong>in</strong>formation advances these concepts by provid<strong>in</strong>g a theory andconcrete realization to conf<strong>in</strong>e <strong>in</strong>formation made available under extraord<strong>in</strong>arycircumstances and to resc<strong>in</strong>d access after the completion of those circumstances.OASIS provides the EDXL standard [31] for <strong>in</strong>formation exchange dur<strong>in</strong>gemergencies, such as payload and message encryption. Our architecture providesa t<strong>ru</strong>sted context for the management of EDXL data.


150 T.E. Lev<strong>in</strong> et al.8 ConclusionsTo address the <strong>in</strong>ability of exist<strong>in</strong>g IT systems to support <strong>in</strong>tegrated <strong>in</strong>formationshar<strong>in</strong>g, temporary emergency data access, and secure revocation of thataccess, we have developed an architectural solution that <strong>in</strong>tegrates hardwareanchoredcryptographic protection with a high assurance software architecturethat provides data separation and security services. We have proposed a securehardware-software platform for an E-Device that can provide t<strong>ru</strong>stworthy dissem<strong>in</strong>ationand revocation of access to sensitive data dur<strong>in</strong>g an emergency.We described the architectural support for t<strong>ru</strong>sted communication channels,<strong>in</strong>clud<strong>in</strong>g a remote t<strong>ru</strong>sted path between the authority and the E-Device, as wellas t<strong>ru</strong>sted display channels <strong>in</strong> the E-device. We <strong>in</strong>tegrated the SP protocols forDRK-based key-generation <strong>in</strong>to the t<strong>ru</strong>sted channel mechanism to protect thestorage of channel keys and ensure the authentication of parties who will ga<strong>in</strong>access to the Emergency Partition.We presented a comprehensive design for the management of distributed emergencystate, which is critical for effective emergency response. We also describedthe T<strong>ru</strong>sted Application Display to allow user-space applications to securely communicatewith the user via direct x86-style call gates to a kernel-TSM. We alsodescribed the multifaceted conta<strong>in</strong>ment of emergency data and reliable revocationof access at the end of the emergency, us<strong>in</strong>g a comb<strong>in</strong>ation of hardware andsoftware mechanisms and t<strong>ru</strong>st cha<strong>in</strong>s.F<strong>in</strong>ally, we have built a prototype that validates key concepts of the architecture,<strong>in</strong>dicat<strong>in</strong>g the feasibility of us<strong>in</strong>g commodity mobile and wearable platformsfor secure emergency-response data dissem<strong>in</strong>ation. In the future, <strong>in</strong>-depth usabilityand performance test<strong>in</strong>g, as well as formal system security verification, willfurther validate this work.Acknowledgments. This material is based upon work supported by the National<strong>Science</strong> Foundation under Grants No. CNS-0430566, CNS-0430487 andCNS-0430598 with support from DARPA ATO. This paper does not necessarilyreflect the views of the National <strong>Science</strong> Foundation or of DARPA ATO.References1. Johns Hopk<strong>in</strong>s University, National center for study of preparedness and catastrophicevent response. Technical Report,http://www.pacercenter.org2. IAD: U.S. Government Protection Profile for Separation Kernels <strong>in</strong> EnvironmentsRequir<strong>in</strong>g High Robustness. Version 1.021 edn. National Information AssurancePartnership (March 2007)3. Lev<strong>in</strong>, T.E., Irv<strong>in</strong>e, C.E., Weissman, C., Nguyen, T.D.: Analysis of three multilevelsecurity architectures. In: Proceed<strong>in</strong>gs 1st <strong>Computer</strong> Security ArchitectureWorkshop, Fairfax, VA, 37–46 (November 2007)4. Dwosk<strong>in</strong>, J.S., Lee, R.B.: Hardware-rooted t<strong>ru</strong>st for secure key management andtransient t<strong>ru</strong>st. In: Proc. of 14th ACM conference on <strong>Computer</strong> and communicationssecurity, pp. 389–400. ACM, New York (2007)


Secur<strong>in</strong>g Emergency Response Data 1515. Sterne, D.F.: On the buzzword “security policy”. In: Proceed<strong>in</strong>gs of the IEEESymposium on Research on Security and Privacy, Oakland, CA, pp. 219–230. IEEE<strong>Computer</strong> Society Press, Los Alamitos (1991)6. CCMB: Common Criteria for Information Technology Security Evaluation, Part 2:Security functional components. 3.1 revision 1 edn. Number CCMB-2006-09-001<strong>in</strong> Criteria. Common Criteria Ma<strong>in</strong>tenance Board (September 2006)7. Kent, S., Atk<strong>in</strong>son, R.: Security Architecture for the Internet Protocol. Number4301 <strong>in</strong> Request for Comments. The Internet Society (December 2005)8. Badra, M., Hajjeh, I.: Key-exchange authentication us<strong>in</strong>g shared secrets. <strong>Computer</strong>39(3), 58–66 (2006)9. Dolev, D., Yao, A.C.: On the security of public key protocols. In: Proc. Of 22Thannual symposium on foundations of computer science. IEEE <strong>Computer</strong> Societypress, Los Alamitos (1981)10. Smith, S., We<strong>in</strong>gart, S.: Build<strong>in</strong>g a high-performance, programmable secure coprocessor.<strong>Computer</strong> Networks 31, 831–860 (1999)11. T<strong>ru</strong>sted Comput<strong>in</strong>g Group: TCG specification architecture overview. TechnicalReport Rev 1.2, T<strong>ru</strong>sted Comput<strong>in</strong>g Group (April 28, 2004)12. IBM: Ibm extends enhanced data security to consumer electronics products.Technical Report,http://www.cio.com/article/20075/IBM to Offer Chip Based Encryption for PCs PDAs13. Alkassar,A.,Scheibel,M.,Sadeghi,A.R.,Stüble, C., W<strong>in</strong>andy, M.: Security architecturefor device encryption and vpn. In: Proc. of Information Security SolutionEurope (ISSE) (2006)14. Sadeghi, A.R., Stüble, C., Pohlmann, N.: European Multilateral Secure Comput<strong>in</strong>gBase - Open T<strong>ru</strong>sted Comput<strong>in</strong>g for You and Me. In: Datenschutz und Datensicherheit(DUD), pp. 548–554. Vieweg Verlag (2004)15. Alves-Foss, J., Taylor, C., Oman, P.: A multi-layered approach to security <strong>in</strong> highassurance systems. In: Proceed<strong>in</strong>gs of the 37th Annual Hawaii International Conferenceon System <strong>Science</strong>s, Big Island, HI (January 2004)16. Vanfleet, W.M., Beckwith, R.W., Calloni, B., Luke, J.A., Taylor, C., Uchenick,G.: Mils: Architecture for high assurance embedded comput<strong>in</strong>g. CrossTalk 18(8),12–16 (2005)17. Gleeson, B., L<strong>in</strong>, A., He<strong>in</strong>anen, J., Armitage, G., Malis, A.: A framework for ipbased virtual private networks. Technical Report RFC 2764, IETF (Feb<strong>ru</strong>ary 2000)18. Bell, D.E., Fiske, R.S., Gasser, M., Tasker, P.S.: Secure on-l<strong>in</strong>e process<strong>in</strong>g technology- f<strong>in</strong>al report. Technical Report ESD–TR-74–186, The MITRE Corporation,Bedford, MA (August 1974)19. Solutions, G.G.: XTS-400, STOP 6.0, User’s Manual. Getronics Government Solutions,LLC, Herndon, VA. Xtdoc0005-01 edn. (August 2002)20. National <strong>Computer</strong> Security Center: F<strong>in</strong>al Evaluation Report of Gem<strong>in</strong>i <strong>Computer</strong>s,Incorporated Gem<strong>in</strong>i T<strong>ru</strong>sted Network Processor, Version 1.01 (June 28, 1995)21. Gligor, V., Burch, E., Chandersekaran, G., Chapman, R., Dotterer, L., Hecht, M.,Jiang, W., Luckenbaugh, G., Vasudevan, N.: On the design and implementationof secure xenix workstations. In: IEEE Symposium on Security, pp. 102–117 (May1986)22. Bickel, R., Cook, M., Haney, J., Kerr, M., Parker, T.: Guide to Secur<strong>in</strong>g MicrosoftW<strong>in</strong>dows XP. National Security Agency (2002)23. Burger, W., et al.: Remote t<strong>ru</strong>sted path mechanism for telnet. Number 07/150966<strong>in</strong> Patent. International Bus<strong>in</strong>ess Mach<strong>in</strong>es Corporation, Armonk, NY (May 1989)


152 T.E. Lev<strong>in</strong> et al.24. Xen User’s Manual. Xen v3.0 edn. University of Cambridge (2005)25. Barham, P., et al.: Xen and the art of virtualization. In: Proc. N<strong>in</strong>eteenth ACMSymposium on Operat<strong>in</strong>g System Pr<strong>in</strong>ciples, pp. 164–177 (2003)26. Epste<strong>in</strong>, J., et al.: Evolution of a t<strong>ru</strong>sted b3 w<strong>in</strong>dow system prototype. In: Proc.of the 1992 IEEE Symposium on Research <strong>in</strong> Security and Privacy (May 1992)27. Anderson, M., North, C., Griff<strong>in</strong>, J., Milner, R., Yesberg, J., Yiu, K.: Starlight:Interactive l<strong>in</strong>k. In: Proceed<strong>in</strong>gs 12th <strong>Computer</strong> Security Applications Conference,San Diego, CA (December 1996)28. Epste<strong>in</strong>, J.: Fifteen years after tx: A look back at high assurance multi-level securew<strong>in</strong>dow<strong>in</strong>g. In: <strong>Computer</strong> Security Applications Conference. ACSAC 22nd Annual,pp. 301–320 (2006)29. National Security Agency. Executive Summary of the End-to-End IA Componentof the GIG Integrated Architecture. Version 1.0 edn. National Security AgencyInformation Assurance Directorate (April 2005)30. Wolfowitz, P.: Global Information Grid (GIG) Overarch<strong>in</strong>g Policy, directive number8100.1. U.S. Department of Defense (September 2002)31. OASIS Emergency Data Exchange Language (EDXL) Distribution Element. v1.0edn, http://docs.oasis-open.org/emergency/EDXL-DE/V1.0


T<strong>ru</strong>stable Remote Verification of Web ServicesJohn LyleOxford University Comput<strong>in</strong>g Laboratory,Wolfson Build<strong>in</strong>g, Parks Road, Oxford, OX1 3QDjohn.lyle@comlab.ox.ac.ukAbstract. Service Oriented Architectures currently provide little or noevidence that each remote component has been implemented correctly.This is a problem for bus<strong>in</strong>esses hop<strong>in</strong>g to exploit the potential benefitsof SOA. We present a technique called T<strong>ru</strong>stable Remote Verification,which lets providers create behavioural guarantees of their web services.Our approach is flexible, us<strong>in</strong>g Extended Static Check<strong>in</strong>g for verificationand has the significant advantage of requir<strong>in</strong>g no additional t<strong>ru</strong>sted thirdparty.1 IntroductionAs applications and services move onl<strong>in</strong>e, we are implicitly expected to placemore t<strong>ru</strong>st <strong>in</strong> the developers and providers of these systems. But how do weknow if a remote service is t<strong>ru</strong>stworthy? Bugs and vulnerabilities will cont<strong>in</strong>ueto exist, and while dedicated providers might be considered more capable ofadm<strong>in</strong>ister<strong>in</strong>g systems than end users, they also become valuable targets forattack. As a s<strong>in</strong>gle po<strong>in</strong>t of failure, a poorly implemented service will affecteveryone who relies upon it. We therefore need some way of establish<strong>in</strong>g t<strong>ru</strong>st<strong>in</strong> remote systems.There are several issues to overcome before be<strong>in</strong>g able to t<strong>ru</strong>st an onl<strong>in</strong>e application.Fundamentally, the users of a web service have no <strong>in</strong>formation about thequality of its implementation. Furthermore, most services only have a WSDL[1]description, which conta<strong>in</strong>s little semantic <strong>in</strong>formation, only method names andbasic data types. Without a more detailed behavioural <strong>in</strong>terface, t<strong>ru</strong>stworth<strong>in</strong>essis difficult to establish. If we do not know how it should work, whether or notit has been programmed correctly becomes irrelevant. F<strong>in</strong>ally, software <strong>in</strong>stalledat a service will frequently be patched and upgraded, usually without warn<strong>in</strong>gor notification. As a result, a rely<strong>in</strong>g party will potentially need to reassess itbefore every request.We have developed a solution to some of these problems which uses t<strong>ru</strong>stedcomput<strong>in</strong>g and tools for specify<strong>in</strong>g and verify<strong>in</strong>g Java programs. A brief overviewof these <strong>in</strong> given <strong>in</strong> Section 2. In Sections 3, 4 and 5 we ref<strong>in</strong>e the problem,<strong>in</strong>troduce the idea of T<strong>ru</strong>stable Remote Verification, and present details of ourprototype. It is then evaluated and compared aga<strong>in</strong>st exist<strong>in</strong>g solutions <strong>in</strong> Section6. Future work is discussed <strong>in</strong> Section 7 and <strong>in</strong> Section 8 we conclude.L. Chen, C.J. Mitchell, and A. Mart<strong>in</strong> (Eds.): T<strong>ru</strong>st 2009, LNCS <strong>5471</strong>, pp. 153–168, 2009.c○ Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2009


154 J. Lyle2 Background, Def<strong>in</strong>itions and Related Work2.1 Remote AttestationRemote attestation is an authentication technique for t<strong>ru</strong>sted comput<strong>in</strong>g platforms.It uses the ‘TPM Quote’ operation to create a signed record of the attest<strong>in</strong>gcomputer’s Platform Configuration Registers (PCRs)[2]. These are <strong>in</strong>tendedto be used to record the platform’s boot process, <strong>in</strong>clud<strong>in</strong>g the bios, bootloader,OS and applications. A quote can therefore be considered t<strong>ru</strong>stworthy evidenceof what software has been <strong>ru</strong>n on the attest<strong>in</strong>g platform. This is a valuable pieceof <strong>in</strong>formation, as it potentially gives a remote user the ability to identify andmake a judgement about the software that is <strong>ru</strong>nn<strong>in</strong>g.In a basic server implementation, PCRs are held on a separate chip, theT<strong>ru</strong>sted Platform Module (TPM), and store a 20 byte SHA-1 hash value. Thesevalues can only be modified by software through the extend(..) command.This appends the current PCR value to the supplied <strong>in</strong>put, hashes it, and storesthe result <strong>in</strong> the PCR. A PCR value therefore reflects a cha<strong>in</strong> of <strong>in</strong>dividualhashes. The TPM Quote operation takes a number of these PCR values andsigns them with the private half of an Attestation Identity Key (AIK), whichis held with<strong>in</strong> the platform’s TPM. This AIK must have a credential, issuedby a t<strong>ru</strong>sted third party (a ‘Privacy CA’), which typically states that the platformhas a valid TPM[3]. Upon receiv<strong>in</strong>g a quote, therefore, it is necessaryto check that the AIK used has been certified by a t<strong>ru</strong>stworthy Privacy CA.Quotes can also conta<strong>in</strong> a nonce, set by the challenger, <strong>in</strong> order to guaranteefreshness.On platforms which support authenticated boot, every piece of code executed<strong>in</strong> the boot process is hashed and extended <strong>in</strong>to a PCR. This is done sequentially(a cha<strong>in</strong> of t<strong>ru</strong>st), with each preced<strong>in</strong>g step extend<strong>in</strong>g a measurement of the nextbefore allow<strong>in</strong>g it to execute. This means that a malicious piece of code cannotbe <strong>ru</strong>n without its identity first be<strong>in</strong>g recorded. So long as every step <strong>in</strong> theprocess is t<strong>ru</strong>sted to perform measurements faithfully, it is possible to attestthat a platform is only <strong>ru</strong>nn<strong>in</strong>g known pieces of software. Remote attestationis therefore about report<strong>in</strong>g system <strong>in</strong>tegrity measurements, as the modificationof any executable will be noticed. This is obviously attractive from a systemsecurity perspective, as it becomes possible to identify a mach<strong>in</strong>e which hasbeen <strong>in</strong>fected with a vi<strong>ru</strong>s or rootkit.However, attestation does not necessarily give any <strong>in</strong>dication of a platform’ssecurity state but rather its execution state[4]. Sadeghi and Stüble[5] <strong>in</strong>troducethe notion of ‘Property-Based Attestation’ (PBA) <strong>in</strong> order to simplify the process.In PBA, platforms provide a list of guaranteed security properties, ratherthan just a b<strong>in</strong>ary <strong>in</strong>tegrity measurement. This can be implemented <strong>in</strong> a numberof ways, but generally relies upon at least one party be<strong>in</strong>g able to match thePCR values to security properties, and then issu<strong>in</strong>g certificates to this end. PBAis a level of <strong>in</strong>direction which can take some of the burden from the attestationrequester.


T<strong>ru</strong>stable Remote Verification of Web Services 1552.2 Web ServicesWeb services are a well-established approach to creat<strong>in</strong>g large, component-basedapplications[6]. Services communicate and describe themselves us<strong>in</strong>g standarddata formats, such as SOAP[7] and WSDL, and have <strong>in</strong>teroperability as a primaryrequirement. Each service offers some k<strong>in</strong>d of useful functionality, but thereal benefit of SOA is that they can be comb<strong>in</strong>ed together easily, allow<strong>in</strong>g therapid creation of new, custom applications. These workflows also have the potentialto be very reliable, as services can be chosen and composed together atthe last m<strong>in</strong>ute. This means that an <strong>in</strong>dividual fault can be dynamically avoidedby choos<strong>in</strong>g alternative services where necessary.However, many of the perceived advantages rely upon better specification andassurance of the component services. Without know<strong>in</strong>g precisely how each willbehave, it is difficult to use them <strong>in</strong> comb<strong>in</strong>ation with any confidence. Test<strong>in</strong>g webservices is also difficult, as they might exist <strong>in</strong> different adm<strong>in</strong>istrative doma<strong>in</strong>sor operate on live data. This becomes more of an issue when consider<strong>in</strong>g serviceswith critical functionality, such as <strong>in</strong> f<strong>in</strong>ancial, medical or valuable <strong>in</strong>tellectualproperty scenarios. Remote verification of web services therefore seems necessary,but few methods of do<strong>in</strong>g so have been developed.2.3 JML and Design by ContractThe Design by Contract (DbC) approach advocates hav<strong>in</strong>g a ‘precise def<strong>in</strong>itionof every module’s claim and responsibilities’[8] <strong>in</strong> order to create reliableand, importantly, reusable components. This is exactly what we would like to/*@ requires@ accFrom != null && accTo != null && amount > 0;@@ ensures@ ((accFrom.getBalance() == \old(accFrom.getBalance())) &&@ (accTo.getBalance() == \old(accTo.getBalance())) ) &&@ (errLog.content.theSize == \old(errLog.content.theSize+1))@ ||@ ((accFrom.getBalance() == (\old(accFrom.getBalance()) - amount)) &&@ (accTo.getBalance() == \old(accTo.getBalance()) + amount) &&@ (transLog.content.theSize == \old(transLog.content.theSize+1)));@*/public void makeTransfer(Account accFrom, Account accTo, <strong>in</strong>tamount) {...}Fig. 1. An example web method, complete with JML annotations. Two outcomes arespecified: either the account balances change <strong>in</strong> the expected way, or both rema<strong>in</strong> thesame. An entry is added to the transaction log <strong>in</strong> the first case, and to the error log <strong>in</strong>the second.


156 J. Lyleachieve with web services. Module <strong>in</strong>terfaces are annotated with pre- and postconditions<strong>in</strong> the form of requires and ensures clauses. There are also class<strong>in</strong>variants, which express ‘general consistency constra<strong>in</strong>ts that apply to everyclass <strong>in</strong>stance as a whole’[8]. Several annotation languages exist for the DbCmethodology, <strong>in</strong>clud<strong>in</strong>g Eiffel, Spec# and JML, the Java Model<strong>in</strong>g Language.JML[9] offers other language features, <strong>in</strong>clud<strong>in</strong>g specification of exceptions, nonnullannotations and class ownership. A simple example of JML can be found <strong>in</strong>Figure 1.2.4 ESC/Java2The annotations <strong>in</strong>troduced by Design by Contract can be used for automaticsource-code check<strong>in</strong>g. This is usually performed with a static analyser, whichattempts to verify assertions without ever execut<strong>in</strong>g the code. One such analyseris ESC/Java2[10], an extended static checker for Java and JML. It translates codeand annotations <strong>in</strong>to logical terms, and then <strong>ru</strong>ns these through the Simplifytheorem prover, produc<strong>in</strong>g either a counter example or an ‘ok’ result.3 A Basic Web Service Behavioural Attestation ModelFor the purposes of this work, we assume a simple scenario where a servicerequester (R) wants to use a web service (W ). Before do<strong>in</strong>g so, R wants to f<strong>in</strong>dout two th<strong>in</strong>gs: what software is be<strong>in</strong>g <strong>ru</strong>n at W and what that software promisesto do. The first part can (<strong>in</strong> theory) be achieved through remote attestation,but the second is more difficult. The approach we have taken is to add JMLannotations to the service end po<strong>in</strong>t. This means that each web method can<strong>in</strong>clude pre- and post- conditions, as well as other formal properties. Althoughonly Java services are supported, similar methods could be used with Spec# for.Net services, or any other Design by Contract language.However, we have yet to show that the annotations attached to a service arereally implemented. In this basic architecture, a T<strong>ru</strong>sted Compilation Service (C)fulfils this role. The source code (W src )ofW is compiled and checked aga<strong>in</strong>st itsannotations (W ann )byC, us<strong>in</strong>g a method such as model check<strong>in</strong>g. A certificateis then produced by C which conta<strong>in</strong>s a hash of the compiled application (W b<strong>in</strong> ),a list of any dependent libraries used <strong>in</strong> the compilation process and an assertionstat<strong>in</strong>g which program properties hold. W can then present this certificate to R,along with a fresh remote attestation 1 ,andR will have a much greater level ofconfidence that W has the promised behaviour.There are a number of assumptions. R must t<strong>ru</strong>st that C will do a thoroughanalysis of the source code at W . W must t<strong>ru</strong>st C with all the source code,which may not be possible. More fundamental assumptions <strong>in</strong>clude:1 The fresh attestation must, of course, conta<strong>in</strong> an entry which is identical to W b<strong>in</strong> .If it does not, then the certificate produced by C cannot be used to validate thisservice.


T<strong>ru</strong>stable Remote Verification of Web Services 157– C must be capable of analys<strong>in</strong>g the source code at W . This is not a trivialtask, and may depend on the availability of numerous code libraries, operat<strong>in</strong>gsystem features, and so on.– The middleware and OS <strong>ru</strong>nn<strong>in</strong>g at W must also be t<strong>ru</strong>sted by C and R.– All important configuration sett<strong>in</strong>gs must be either made available to C or R.This might be undesirable if they conta<strong>in</strong> passwords or confidential sett<strong>in</strong>gs.– The middleware and OS must be attestable. Each part of the software stackmust support <strong>in</strong>tegrity measurement. It must be possible for R to receive aremote attestation from W and <strong>in</strong>terpret it. This implies the existence of an<strong>in</strong>tegrity management <strong>in</strong>frast<strong>ru</strong>cture, which has a list of ‘known-good’ piecesof software. Every b<strong>in</strong>ary <strong>ru</strong>nn<strong>in</strong>g at W will need to be on this list.Overall, this is a proposal for us<strong>in</strong>g Remote Attestation to establish mean<strong>in</strong>gfulproperties of a web service. However, there are a number of drawbacks, <strong>in</strong>clud<strong>in</strong>gthe requirement for a t<strong>ru</strong>sted third party, C. The rest of this paper <strong>in</strong>troducesT<strong>ru</strong>stable Remote Verification, which allows us to remove C altogether.4 T<strong>ru</strong>stable Remote VerificationThere are generally two approaches to program verification. It can be done by at<strong>ru</strong>sted third party, but they may charge a high price for their services. They arealso a target for attack, and should be avoided if at all possible. The alternativeis to verify an application locally. If source code can be <strong>in</strong>spected before compilation,any errors can potentially be spotted before it is <strong>ru</strong>n. However, giventhe size of any complex application, even a highly skilled programmer wouldst<strong>ru</strong>ggle to spot potentially erroneous behaviour <strong>in</strong> source code. This has beenimproved by Proof Carry<strong>in</strong>g Code[11], where the majority of the effort is carriedout by the application distributor. However, this is not a suitable solution forweb services, where all applications are <strong>ru</strong>nn<strong>in</strong>g remotely. Users have no ideawhat source code is be<strong>in</strong>g <strong>ru</strong>n at the service, and have no way of verify<strong>in</strong>g it.Neither third-party nor local analysis can be considered appropriate and <strong>in</strong>steadwerequiresomewaytolettheprovider perform verification, and then prove tousers that they have done so.4.1 OverviewT<strong>ru</strong>stable Remote Verification (TRV) uses TPM attestations as credentials. Theservice provider performs program analysis us<strong>in</strong>g a local mach<strong>in</strong>e (the verificationplatform, V ) and then attests the result. To do this, V must be booted <strong>in</strong>toa t<strong>ru</strong>stworthy OS, which measures every step of the process and extends each<strong>in</strong>to a PCR. After authenticated boot, the annotations (W ann ) which representthe service contract are measured. These will specify some important propertyof the service which the requester requires (see Figure 1 as an example). Thena program verifier (TV) is measured and loaded, and the source code (W src )isanalysed aga<strong>in</strong>st its annotations. The result of this step (TV res )isalsomeasured


158 J. Lyle Fig. 2. An overview of the T<strong>ru</strong>stable Remote Verification process, show<strong>in</strong>g the orderof execution and all items measured <strong>in</strong>to PCRsand extended <strong>in</strong>to a PCR. Next, the source code is compiled by a t<strong>ru</strong>sted compiler,TC. A hash of it and all the compiled b<strong>in</strong>aries (W b<strong>in</strong> ) are measured andextended. At the end of the verification process, a quote (V quote ) is producedwhich conta<strong>in</strong>s two sets of PCRs, hold<strong>in</strong>g measurements:{ }PCR 0..15 = { [ boot process at V ] }V quote =(1)PCR 21 = { TV,TC,W ann ,TV res ,W b<strong>in</strong> }AIK VThis is a credential, which will be used by the provider to show that a programb<strong>in</strong>ary, W b<strong>in</strong> , was compiled from source code which was verified aga<strong>in</strong>stits annotations, with analysis result TV res . In the ideal case, TV res would statesometh<strong>in</strong>g simple such as ‘verified’. The credential can be checked by mak<strong>in</strong>g surethat TV, TC and the boot process are all t<strong>ru</strong>stworthy, check<strong>in</strong>g that TV res doesnot show any errors and f<strong>in</strong>ally verify<strong>in</strong>g that the annotations are sufficientlystrong for the program to be t<strong>ru</strong>sted.At <strong>ru</strong>ntime, the service provider attests <strong>in</strong> the normal way, creat<strong>in</strong>g anotherquote:{ }PCR 0..15 = { [ boot process at W ] }W quote =(2)PCR 21 = { L b<strong>in</strong> }AIK WWhere L b<strong>in</strong> is the measurement of the b<strong>in</strong>ary that has been loaded at service<strong>ru</strong>ntime and will be accept<strong>in</strong>g requests. In order for the V quote credential to beuseful, L b<strong>in</strong> must be equal to W b<strong>in</strong> .4.2 AssumptionsT<strong>ru</strong>stable Remote Verification relies on several assumptions:– The platform perform<strong>in</strong>g verification has a valid TPM which has not beentampered with.– A PKI <strong>in</strong>frast<strong>ru</strong>cture for issu<strong>in</strong>g AIKs exists and all platforms have validAIKs and certificates available to them.– There exists a verifier, a piece of software which can read the program contractand source code and automatically decide whether the latter correspondswith the former. This must <strong>ru</strong>n without any user <strong>in</strong>teraction, and


T<strong>ru</strong>stable Remote Verification of Web Services 159 Fig. 3. The cha<strong>in</strong> of t<strong>ru</strong>st for T<strong>ru</strong>stable Remote Verification, show<strong>in</strong>g execution orderand measurement storagebe t<strong>ru</strong>sted to work properly by the client. In our proof-of-concept implementationwe have JML annotations as a contract and use ESC/Java2 forverification.– There is a simple operat<strong>in</strong>g system and boot loader, aga<strong>in</strong> t<strong>ru</strong>sted by theclient, which the verifier can <strong>ru</strong>n on without <strong>in</strong>terference. This will measureall programs executed on the platform, and is itself measured as part of theboot process.– The verifier, compiler and operat<strong>in</strong>g system have SHA-1 identities known tothe client.– Any third-party libraries that the verified application uses are either annotatedand verified with the service, or their identities are published by theserver and t<strong>ru</strong>sted by the client.– All configuration files used by the web service or the verifier are made availableto the client.4.3 The New Cha<strong>in</strong> of T<strong>ru</strong>stTRV decouples the process of certification and application execution. This meansthat once the web service b<strong>in</strong>ary has been verified, it can be <strong>ru</strong>n on any servicewhich supports authenticated boot, and the same credential can certify it. Thisis desirable from an end-user perspective, as the amount of effort required to establisht<strong>ru</strong>st <strong>in</strong> a set of remote services (perhaps implemented for load-balanc<strong>in</strong>greasons) is greatly reduced. The disadvantage is that the cha<strong>in</strong> of t<strong>ru</strong>st is nowlonger, and conta<strong>in</strong>s potentially two TPMs, one for the web server (TPM W )andone for the verifier (TPM V ).5 Prototype ImplementationWe developed two parts of this system: the credential-creation stage on V andrequester validation stage at R. In our prototype, services are written <strong>in</strong> Java,with methods from one class exposed as a web service. This class is annotatedwith JML assertions, which are the properties that this service promises to fulfil.ESC/Java2 is used as the program verifier (TV) and Ant plus the standard


160 J. LyleSun JDK are used as the compiler (TC). The result of compilation is a WAR 2file which is <strong>ru</strong>n from the Glassfish Application Server. We did not implementauthenticated boot for either the verification or web service, but several potentialcandidates exist for this purpose[12].5.1 Server Credential Creation StageThe program verification stage requires the follow<strong>in</strong>g steps:1. The service source code and configuration files are placed onto V .2. An AIK certificate is obta<strong>in</strong>ed from a Privacy CA.3. The t<strong>ru</strong>stworthy OS with authenticated boot is started.4. The OS measures the JVM, and then <strong>ru</strong>ns the verifier. This measures thefollow<strong>in</strong>g items <strong>in</strong>to the TPM:– The front-end JML annotations of the service.– All libraries and files necessary for compilation.– The WAR archived created by compil<strong>in</strong>g the service.– The output of <strong>ru</strong>nn<strong>in</strong>g ESC/Java2.5. A quote (V quote ) is created, signed by the AIK, conta<strong>in</strong><strong>in</strong>g 2 sets of PCRvalues. One has the t<strong>ru</strong>stworthy OS and application measurements and theother has all the measurements made by the verifier.Additionally, an archive is created to help the service requester validate themeasurements. This <strong>in</strong>cludes references to external libraries, ESC/Java2 output,JML annotations and a log of the entire process. This is used by the requesterto validate the process later on. References to external libraries should po<strong>in</strong>t towhere the end user can download the library to verify its identity.V arch = { V quote , [ libraries ],W ann ,TV res , log , [ config files ] } (3)The compilation stage and WAR file creation is complicated by <strong>in</strong>compatibilities.Java web service annotations are only valid <strong>in</strong> Java 1.5 and above butESC/Java2 can only <strong>in</strong>terpret version 1.4 source code. As a result, the servicemustbewritten<strong>in</strong>Java1.4andthenwrapped by an automatically-generatedJava 1.5 front-end class.5.2 Credential Validation StepsThe service requester, R, must obta<strong>in</strong> and verify the credential that was createdus<strong>in</strong>g the steps <strong>in</strong> Section 5.1. This requires the requester to download V arch andobta<strong>in</strong> a fresh attestation of the web service’s current configuration, W quote ,andthen do the follow<strong>in</strong>g:1. Check that the software <strong>ru</strong>nn<strong>in</strong>g on W ,asreported<strong>in</strong>W quote is t<strong>ru</strong>stworthy.2. Check that the currently-<strong>ru</strong>nn<strong>in</strong>g web service application, L b<strong>in</strong> ,matchestheverified service identity W b<strong>in</strong> , <strong>in</strong>cluded <strong>in</strong> V arch .2 Web application archive http://java.sun.com/developer/technicalArticles/Servlets/servletapi/


T<strong>ru</strong>stable Remote Verification of Web Services 1613. Check the AIK used to sign W quote and V quote .4. Check the freshness of W quote . V quote is not time dependent, so a freshnesscheck is unnecessary.5. Check that V ’s OS and boot process are t<strong>ru</strong>stworthy.6. Check that the verification program (<strong>in</strong>clud<strong>in</strong>g TV and TC) is t<strong>ru</strong>stworthy.We imag<strong>in</strong>e check<strong>in</strong>g aga<strong>in</strong>st a public list of verifiers (with available sourcecode) which are known to be sound and complete.7. V arch conta<strong>in</strong>s a log of the verification process, which will need to be checkedaga<strong>in</strong>st the PCR values held <strong>in</strong> V quote .8. Each <strong>in</strong>dividual step described <strong>in</strong> the log must now be verified. The servermust provide any comparison resources that the client does not have accessto. This <strong>in</strong>cludes:– All configuration files used <strong>in</strong> the verification process.– The external libraries used and any assumptions made about them.– The verification result itself.– The verified service annotations.Additionally, some useful service properties must be described <strong>in</strong> the annotations,and the verification result should not show any situation where they donot hold. With our sample implementation, some of the checks described areperformed manually, but it would be feasible to create automated tools. Part 1and 5 require an <strong>in</strong>tegrity management <strong>in</strong>frast<strong>ru</strong>cture, such as IMI [13].5.3 Configuration Files and Compilation with AntBecause the credential-creation step is complex, <strong>in</strong>volv<strong>in</strong>g program compilationand creation of web service artifacts, there are a number of configuration options.These could potentially make the verification process unt<strong>ru</strong>stworthy (forexample, <strong>ru</strong>nn<strong>in</strong>g ESC/Java2 on one piece of software and then compil<strong>in</strong>g andmeasur<strong>in</strong>g another). Therefore, we measure the configuration files and <strong>in</strong>cludethem <strong>in</strong> V arch .Program compilation can also be complicated, <strong>in</strong>volv<strong>in</strong>g libraries, configuration,and archive creation. As a result, most Java developers use Ant ratherthan just javac . For the compilation step of our prototype, we have to dealwith the same issues, so reus<strong>in</strong>g the Ant build file seems sensible. However, Antis a powerful tool and it would be possible to write a malicious build file toavoid verification. In order to stop this from happen<strong>in</strong>g, the build file must bemeasured <strong>in</strong>to the quote and <strong>in</strong>cluded <strong>in</strong> V arch .Itmustalsobecheckedbytherequester, along with all the libraries and files it references. In our prototypethis is done manually.Another problem arises from <strong>ru</strong>ntime configuration. Most applications are designedto work differently at <strong>ru</strong>ntime depend<strong>in</strong>g on how they are configured. Ifany of the security properties of a service can be violated by a change of sett<strong>in</strong>gsfile, then they will (correctly) not pass the verification step of our system.The same is t<strong>ru</strong>e for a service which depends upon a <strong>ru</strong>nn<strong>in</strong>g database or human


162 J. Lyle<strong>in</strong>put. Essentially, any system that can be made to violate its specification aftercompilation will be a problem. The alternative method discussed <strong>in</strong> Section 7does not have this limitation.6 Evaluation6.1 Benefits of T<strong>ru</strong>stable Remote VerificationIn our proposed system it is possible to determ<strong>in</strong>e, with a fairly high level ofassurance, someth<strong>in</strong>g about what a remote service will do when <strong>in</strong>voked. Thissometh<strong>in</strong>g will range from a complete logical description of the functionality ofthe service, down to perhaps a simple <strong>in</strong>variant. In the example given <strong>in</strong> Figure1, we ga<strong>in</strong> the knowledge that the method makeTransfer will at least revertback to our previous state rather than fail <strong>in</strong> an unknown way. We also knowthat the error log is guaranteed to keep track of any failures. In terms of security,we could use assertions about <strong>in</strong>formation flow to be sure of confidentiality. JMLhas been used before for security properties[14].JML’s ability to express useful properties (and ESC/Java2’s ability to checkthem) is a significant consideration when evaluat<strong>in</strong>g the prototype. There areproperties that cannot be expressed or checked, and the properties that theservice provider has asserted may not be important to the requester. BecauseESC/Java2 requires a significant amount of support<strong>in</strong>g JML, time must be spentannotat<strong>in</strong>g the source code for each particular property. However, this time canbe justified by consider<strong>in</strong>g some of the other benefits of Design by Contract, suchas improv<strong>in</strong>g documentation and overall code robustness. Furthermore, we mustalso assume that the requester will correctly understand the given properties,and not mis<strong>in</strong>terpret a set of conditions or <strong>in</strong>variants which may be complex.More research is needed to f<strong>in</strong>d out where T<strong>ru</strong>stable Remote Verification wouldbe most beneficial, but it is likely to be services which have simple propertiesto assert, such as the conditions <strong>in</strong> which an exception will be thrown, or thecorrect implementation of simple mathematical functions.No additional third party is required to create the service credentials, beyonda Privacy CA which may exist already. However, as noted <strong>in</strong> Section 5.2, an<strong>in</strong>tegrity measurement <strong>in</strong>frast<strong>ru</strong>cture will be needed for verify<strong>in</strong>g the t<strong>ru</strong>stedsoftware components, such as TC and TV. This may require a t<strong>ru</strong>sted thirdparty. The client and server-side code needed to implement these features isfairly small (the prototype is under 3000 l<strong>in</strong>es of code), with the only significantextra requirement be<strong>in</strong>g an operat<strong>in</strong>g system that supports authenticated boot.Furthermore, this system allows for software update, as each new version of aservice can be re-verified and a new credential produced. This can be part ofthe standard build-cycle for a project. Another key benefit to this system overthe basic architecture is that the source code of the service never needs to berevealed, not even to a third party. This would be attractive to a company withvaluable or confidential code.


T<strong>ru</strong>stable Remote Verification of Web Services 1636.2 T<strong>ru</strong>stworth<strong>in</strong>ess of the ArchitectureThe strength of TRV can be measured by how difficult it is for a provider tofalsely claim that a service has certa<strong>in</strong> properties. Any system can be brokenthrough weaknesses <strong>in</strong> its t<strong>ru</strong>sted components, so we will now assess ours. Werely upon one (or more) TPMs, a verification OS, verification tool, compiler andthe software stack <strong>ru</strong>nn<strong>in</strong>g at the web service. TPMs are designed to be immuneto software attack, and hardware attacks are non-trivial. They are thereforeunlikely to be the weakest po<strong>in</strong>t <strong>in</strong> the system.The verification environment also needs to be a t<strong>ru</strong>sted component. However,theverificationOScanbesmallandsimpleandonlyneedstobeableto<strong>ru</strong>na program verifier and compiler. It does not need network access, or the abilityto accept user <strong>in</strong>put at <strong>ru</strong>ntime. Future CPUs which <strong>ru</strong>n bytecode might bea good way of avoid<strong>in</strong>g vulnerabilities, as might a microkernel-based OS. Theverifier and compiler, on the other hand, are a bigger issue. They are necessarilycomplex systems, which accept <strong>in</strong>put <strong>in</strong> the form of program code and configurationfiles. Arguably, however, we must already t<strong>ru</strong>st the compilers we use, andthere are several open source compilers which have gone through considerablesc<strong>ru</strong>t<strong>in</strong>y. A weakness <strong>in</strong> the verifier would be a problem. If it produced falsenegatives, it could then potentially certify a system which does not ma<strong>in</strong>ta<strong>in</strong> itsproperties.Weoffernosolutiontothisproblem, but expect that creat<strong>in</strong>g oneacceptable verifier or compiler is likely to be easier than creat<strong>in</strong>g many perfectapplications.Perhaps the most significant t<strong>ru</strong>sted element is the rest of the software <strong>ru</strong>nn<strong>in</strong>gat the web service. If a bug or vulnerability causes it to behave <strong>in</strong> an unexpectedmanner, then the properties guaranteed by the web service application are irrelevant.This is likely to happen, as the amount of code <strong>ru</strong>nn<strong>in</strong>g which has notbeen formally checked greatly outweighs the small amount that has. It <strong>in</strong>cludesthe service middleware, operat<strong>in</strong>g system, and any libraries that the service reliesupon. This ‘middleware problem’ has been discussed <strong>in</strong> a grid scenario byCooper and Mart<strong>in</strong>[15], and solutions <strong>in</strong>volv<strong>in</strong>g virtualization sound promis<strong>in</strong>g.This problem is t<strong>ru</strong>e of almost all t<strong>ru</strong>sted comput<strong>in</strong>g systems <strong>in</strong>volv<strong>in</strong>g legacyapplications, and ours is no exception.Overall, TRV is clearly limited <strong>in</strong> the level of t<strong>ru</strong>st it can establish, and isnot appropriate for extremely high assurance systems. Instead, it would workbest as an additional check for service providers who are attempt<strong>in</strong>g to improvetheir perceived reliability <strong>in</strong> the marketplace. In such a scenario, one threat isthat a company with normally good <strong>in</strong>tentions tries to subvert the system fora new version of their service. They might try to <strong>ru</strong>sh a new feature, at theexpense of verification. TRV would make this much more difficult to do, andso the provider would be more likely to spend the extra effort on verification<strong>in</strong>stead.6.3 Related WorkHaldar et al. [16] <strong>in</strong>troduce Semantic Remote Attestation, a technique for verify<strong>in</strong>gthe remote behaviour of a platform. They use a T<strong>ru</strong>sted Virtual Mach<strong>in</strong>e


164 J. Lyle(TVM) to attest to high-level properties of the <strong>ru</strong>nn<strong>in</strong>g code. The presence ofthe TVM is attested first us<strong>in</strong>g normal methods, then the TVM can reporton properties such as class hierarchies, Java VM security constra<strong>in</strong>ts and <strong>ru</strong>ntimedynamic state. Arbitrary properties can also be tested by request<strong>in</strong>g theTVM accept and <strong>ru</strong>n code written by the requester. This is a powerful technique,offer<strong>in</strong>g remote users the ability to make better t<strong>ru</strong>st decisions. However,the focus of this work is on dynamic feedback and test<strong>in</strong>g rather thanshow<strong>in</strong>g formal properties. We feel that our work compliments this by prov<strong>in</strong>gdifferent semantic properties. Our approach is also significantly different, notrely<strong>in</strong>g on a <strong>ru</strong>ntime virtual mach<strong>in</strong>e, thus remov<strong>in</strong>g any potential performanceissues.Yoshihama et al. [17] and Monetoh et al. [13] have created and extendeda web service attestation architecture called WS-Attestation. It uses a thirdparty Validation Service (VS), which ma<strong>in</strong>ta<strong>in</strong>s an <strong>in</strong>tegrity database, l<strong>in</strong>k<strong>in</strong>gsoftware hash values to known application identities. The VS also has accessto a vulnerability database. The idea is that the attest<strong>in</strong>g platform reports its<strong>in</strong>tegrity measurement to the requester along with a certificate issued by theVS. This certificate can state a more easily <strong>in</strong>terpreted property, such as thenumber of known vulnerabilities. However, this system is best suited to verify<strong>in</strong>gthe <strong>in</strong>tegrity of the OS and middleware of a platform, rather than ofa custom application, which is unlikely to have any entries <strong>in</strong> the vulnerabilitydatabase. It is also not clear how properties beyond vulnerability counts might beestablished.Bet<strong>in</strong>-Can et al. [18] use a design for verification approach to verify services.They <strong>in</strong>troduce the ‘Peer Controller Pattern’ which separates out the messageexchange from the logic, simplify<strong>in</strong>g the verification process. An explicit behavioural<strong>in</strong>terface is also generated. Assertions that are known to hold <strong>in</strong> <strong>in</strong>dividualservices are then comb<strong>in</strong>ed and the behaviour of the whole system can bechecked with regard to synchronizability. Individual implementations are consideredto conform with their <strong>in</strong>terfaces if their call-sequences are acceptable to itsstate mach<strong>in</strong>e. This is verified us<strong>in</strong>g the JavaPathF<strong>in</strong>der model checker. It seemsan excellent approach when consider<strong>in</strong>g concurrency issues, but does depend onall source code be<strong>in</strong>g available to the verifier, with t<strong>ru</strong>st <strong>in</strong> remote parties be<strong>in</strong>gless of an issue.Tsai et al. [19] describe a framework (‘WebStrar’) for web service assurance.Services are registered and a series of tests are performed on it. Each servicehas a specification written <strong>in</strong> OWL-S and this is checked via ‘Completeness andConsistency’ analysis and model check<strong>in</strong>g of the specification and verificationpatterns. There is also a step <strong>in</strong>volv<strong>in</strong>g positive and negative test cases, which allgo towards rank<strong>in</strong>g the services <strong>in</strong> terms of reliability. This approach is a logicalway of ga<strong>in</strong><strong>in</strong>g assurance, but does have some issues. Test<strong>in</strong>g is not appropriate<strong>in</strong> a situation where the service operates on live data, and it is also not clearwhether the tested services have any obligation to re-register <strong>in</strong> the case of achange to their implementation.


7 Observations and Future WorkT<strong>ru</strong>stable Remote Verification of Web Services 1657.1 Runtime Check<strong>in</strong>g and Compile-Time TranslationA similar but alternative approach to the one taken <strong>in</strong> our prototype is to usethe JML compiler[9], jmlc, as opposed to the Java compiler. Jmlc adds <strong>ru</strong>ntimeassertion checks <strong>in</strong>to the program bytecode <strong>in</strong> addition to normal compilation.These will raise an exception if any of the preconditions, postconditions or <strong>in</strong>variantsfail. Except for a small performance hit, this behaviour is transparentunless one of the assertions is violated.The advantage of this scheme is that we no longer need to perform staticanalysis. This was one of the issues identified <strong>in</strong> Section 6.2. As a result, <strong>ru</strong>ntimecomponents such as configuration files and databases can be accessed withoutbreak<strong>in</strong>g the assertions. However, the major downside is that an unt<strong>ru</strong>stworthyservice can make promises, and then break when they are not fulfilled. This mightresult <strong>in</strong> lost data and an unreliable system. The best this would be able to sayis that if the service does not fail, it will work as expected. However, despitethese limitations it may be worth <strong>in</strong>vestigat<strong>in</strong>g <strong>in</strong> the future. This approach issimilar to earlier work by Haldar et al. [16].7.2 Multiple Verifications and the New Cha<strong>in</strong> of T<strong>ru</strong>stOne useful property of our system is that the credential-creationprocessisentirelyseparate from the <strong>ru</strong>ntime attestation. As a result, we can extend ourprototype to offer multiple, potentially <strong>in</strong>dependent verifications and certificatesfor the same service. For example, one service provider could first verify theirsource code with ESC/Java2, produc<strong>in</strong>g a certificate, and then do the same withan alternative program analyser. This might satisfy users who will only t<strong>ru</strong>st aparticular analysis program.We can go even further, and let multiple organisations verify the same service.Assum<strong>in</strong>g they are given the source code, they can all <strong>in</strong>dependently <strong>ru</strong>n a verifierand produce a certificate. This significantly strengthens the cha<strong>in</strong> of t<strong>ru</strong>st, as itis no longer ‘anchored’ by just one TPM. Figure 3 is no longer as big a problem,as the top cha<strong>in</strong> can be put <strong>in</strong> parallel with several others. This might be usefulfor high-assurance systems, such as e-vot<strong>in</strong>g.7.3 Us<strong>in</strong>g a Dynamic Root of T<strong>ru</strong>stOne way <strong>in</strong> which we could optimise our proposed TRV system, with respect ofthe number of <strong>in</strong>tegrity measurements, would be to use a dynamic root of t<strong>ru</strong>st.Rather than measur<strong>in</strong>g every part of the boot process, <strong>in</strong>clud<strong>in</strong>g the BIOS, wecould use either AMD’s Secure Virtual Mach<strong>in</strong>e (SVM) architecture or Intel’sT<strong>ru</strong>sted Execution Technology (TXT) to dynamically load and measure (‘latelaunch’) a t<strong>ru</strong>stworthy operat<strong>in</strong>g system. McCune et al. [20] provide a goodsummary of these technologies. This would reduce the number of measurementsthat the service requester needs to verify, and therefore make the overall system


166 J. LyleCert B0Pre: ...Post: Q or ZVerifier: ESC/Java2Cert B1Pre: ...Post: ZVerifier:T<strong>ru</strong>stedThird Party Cert A0Pre: ...Post: X and YVerifier: ESC/Java2Cert A1Pre: ...Post: X and WVerifier: SPINCert A2Pre: WPost: YVerifier: NoneFig. 4. The challenge of verify<strong>in</strong>g service workflowst<strong>ru</strong>stworth<strong>in</strong>ess easier to quantify. With the recent development of a suitablebootloader[21] this would be a sensible future improvement.7.4 Verify<strong>in</strong>g Multiple ServicesWe have not considered verify<strong>in</strong>g web services which themselves contact otherservices. This is quite a common scenario, and a significant limitation of ourprototype. However, there do not seem to be any obvious reasons why any serviceswhich have also followed this scheme could not be <strong>in</strong>corporated. These ‘subservices’ could be wrapped by a stub object, which asserts the same annotatedproperties. This would not be verified, and <strong>in</strong>stead all the certificates could bepresented to the user. Implement<strong>in</strong>g this <strong>in</strong> a user friendly and secure mannerwould be a challenge.Present<strong>in</strong>g multiple service certificates presents another set of problems.Firstly, what happens if one of the sub services is not considered t<strong>ru</strong>stworthy?This could be for a number of reasons, for example the verification tool might beout of date, or the AIK certificate could have expired. The implications of thismay affect all or part of the overall comb<strong>in</strong>ed service. Secondly, do we still t<strong>ru</strong>sta system with so many t<strong>ru</strong>sted components? If a TPM was successfully attackedon any of the sub services it might compromise the whole process. F<strong>in</strong>ally, itis possible that we will be contact<strong>in</strong>g services which do not use this certificationsystem. They may have a different t<strong>ru</strong>st mechanism, or none at all. How toweight the t<strong>ru</strong>stworth<strong>in</strong>ess of this service is an open question.8 ConclusionWe have <strong>in</strong>troduced the idea of T<strong>ru</strong>stable Remote Verification, a technique whichallows a service provider to verify its own software and create a t<strong>ru</strong>stworthyguarantee of the result. The ma<strong>in</strong> advantages are that no new third partiesare needed, and providers can easily create a new verification result whenever


T<strong>ru</strong>stable Remote Verification of Web Services 167necessary. Furthermore, one verification can be used as a credential for manyplatforms. We have also identified the key shortcom<strong>in</strong>gs and limitations to ourwork, <strong>in</strong>clud<strong>in</strong>g the large amount of necessarily t<strong>ru</strong>sted code, and the need for anannotated, verifiable service. However, our prototype implementation uncoveredfew additional issues, and we feel justified <strong>in</strong> persu<strong>in</strong>g these ideas further. Overall,this technique has great potential, and could be a viable way of add<strong>in</strong>g assuranceto Service Oriented Architectures. Future work will concentrate on f<strong>in</strong>d<strong>in</strong>g wherethe best applications of this idea are, what properties it can guarantee, andwhether architectural approaches can be used to reduce the t<strong>ru</strong>sted comput<strong>in</strong>gbase of verified services.AcknowledgementsSpecial thanks go to Andrew Mart<strong>in</strong> and Jun Ho Huh for several helpful discussionswhile writ<strong>in</strong>g this paper and develop<strong>in</strong>g the concepts. I am also grateful toJoe Loughry, Andrew Cooper, Shamal Faily and Cornelius Namiluko for theircomments. F<strong>in</strong>ally, I thank the reviewers for their useful and positive feedback.References1. Christensen, E., Curbera, F., Meredith, G., Weerawarana, S.: Web Services DescriptionLanguage (WSDL) 1.1. Technical report, W3C (March 2001),http://www.w3.org/TR/2001/NOTE-wsdl-200103152. The T<strong>ru</strong>sted Comput<strong>in</strong>g Group: TCG Specification Architecture Overview, Revision1.4 (August 2007), https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/groups/TCG 1 4 Architecture Overview.pdf3. The T<strong>ru</strong>sted Comput<strong>in</strong>g Group: TCG Glossary of Technical Terms (2008),https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/groups/glossary/4. Poritz, J.A.: T<strong>ru</strong>st[ed | <strong>in</strong>] Comput<strong>in</strong>g, Signed Code and the Heat Death of theInternet. In: SAC 2006: Proceed<strong>in</strong>gs of the 2006 ACM Symposium on AppliedComput<strong>in</strong>g, pp. 1855–1859. ACM Press, New York (2006)5. Sadeghi, A.R., Stüble, C.: Property-based Attestation for Comput<strong>in</strong>g Platforms:Car<strong>in</strong>g About Properties, Not Mechanisms. In: NSPW 2004: Proceed<strong>in</strong>gs of the2004 Workshop on New Security Paradigms, pp. 67–77. ACM Press, New York(2004)6. Papazoglou, M.P., Dubray, J.j.: A Survey of Web Service Technologies. TechnicalReport DIT-04-058, Informatica e Telecomunicazioni, University of Trento (June2004)7. The W3C: Simple Object Access Protocol (SOAP) (April 2007),http://www.w3.org/TR/soap/8. Meyer, B.: Design by Contract: Build<strong>in</strong>g Reliable Software. In: Object-OrientedSoftware Const<strong>ru</strong>ction, pp. 331–341. Prentice Hall, Englewood Cliffs (1997)9. Leavens, G., Cheon, Y.: Design by Contract with JML (2003),http://citeseer.ist.psu.edu/leavens04design.html10. Cok, D.R., K<strong>in</strong>iry, J.R.: ESC/Java2: Unit<strong>in</strong>g eSC/Java and JML. In: Barthe, G.,Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS,vol. 3362, pp. 108–128. Spr<strong>in</strong>ger, Heidelberg (2005)


168 J. Lyle11. Necula, G.: Proof-Carry<strong>in</strong>g Code. Website (July 2002),http://raw.cs.berkeley.edu/pcc.html12. Jaeger, T., Sailer, R., Shankar, U.: PRIMA: Policy-Reduced Integrity MeasurementArchitecture. In: SACMAT, pp. 19–28 (2006)13. Munetoh, S., Nakamura, M., Yoshihama, S., Kudo, M.: Integrity Management Infrast<strong>ru</strong>cturefor T<strong>ru</strong>sted Comput<strong>in</strong>g. IEICE Transactions on Information and SystemsE91-D(5), 1242–1251 (2008)14. Pavlova, M., Barthe, G., Burdy, L., Huisman, M., Lanet, J.L.: Enforc<strong>in</strong>g High-LevelSecurity Properties for Applets (2004)15. Cooper, A., Mart<strong>in</strong>, A.: Towards a secure, tamper-proof grid platform. In: CCGRID2006. Sixth IEEE International Symposium on Cluster Comput<strong>in</strong>g and the Grid,2006, vol. 1, p. 8 (May 2006)16. Haldar, V., Chandra, D., Franz, M.: Semantic Remote Attestation - Virtual Mach<strong>in</strong>eDirected Approach to T<strong>ru</strong>sted Comput<strong>in</strong>g. In: Virtual Mach<strong>in</strong>e Research andTechnology Symposium, USENIX, pp. 29–41 (2004)17. Yoshihama, S., Ebr<strong>in</strong>ger, T., Nakamura, M., Munetoh, S., Ma<strong>ru</strong>yama, H.: WSattestation:efficient and f<strong>in</strong>e-gra<strong>in</strong>ed remote attestation on Web services. In: ICWS2005. Proceed<strong>in</strong>gs. 2005 IEEE International Conference on Web Services, pp. 743–750 (July 2005)18. Bet<strong>in</strong>-Can, A., Bultan, T.: Verifiable Web services with Hierarchical Interfaces. In:ICWS 2005. Proceed<strong>in</strong>gs. 2005 IEEE International Conference on Web Services,vol.1, pp. 85–94 (July 2005)19. Tsai, W., Wei, X., Chen, Y., Xiao, B., Paul, R., Huang, H.: Develop<strong>in</strong>g and assur<strong>in</strong>gt<strong>ru</strong>stworthy Web services. In: Autonomous Decentralized Systems, 2005. ISADS2005. Proceed<strong>in</strong>gs, pp. 43–50 (April 2005)20. McCune, J.M., Parno, B.J., Perrig, A., Reiter, M.K., Isozaki, H.: Flicker: an execution<strong>in</strong>frast<strong>ru</strong>cture for tcb m<strong>in</strong>imization. In: Eurosys 2008: Proceed<strong>in</strong>gs of the3rd ACM SIGOPS/EuroSys European Conference on <strong>Computer</strong> Systems 2008, pp.315–328. ACM, New York (2008)21. Wei, J., Cihula, J., Wang, S.: T<strong>ru</strong>sted Boot Sourceforge Project Website (2008),http://sourceforge.net/projects/tboot/


T<strong>ru</strong>stworthy Log Reconciliation for DistributedVirtual OrganisationsJunHoHuhandJohnLyleOxford University Comput<strong>in</strong>g LaboratoryWolfson Build<strong>in</strong>g, Parks RoadOxford, OX1 3QD{jun.ho.huh,john.lyle}@comlab.ox.ac.ukAbstract. Secure management of logs <strong>in</strong> an organisational grid environmentis often considered a task of low priority. However, it must berapidly upgraded when the logs have security properties <strong>in</strong> their ownright. We present several use cases where log <strong>in</strong>tegrity and confidentialityare essential, and propose a log reconciliation architecture <strong>in</strong> whichboth are ensured. We use a comb<strong>in</strong>ation of t<strong>ru</strong>sted comput<strong>in</strong>g and virtualizationto enable bl<strong>in</strong>d log analysis, allow<strong>in</strong>g users to see the results oflegitimate queries, while still withhold<strong>in</strong>g access to privileged raw data.1 IntroductionThe notion of a Virtual Organisation (VO) <strong>ru</strong>ns commonly through many def<strong>in</strong>itionsof what constitutes a grid: “many disparate logical and physical entitiesthat span multiple adm<strong>in</strong>istrative doma<strong>in</strong>s are orchestrated together as a s<strong>in</strong>glelogical entity” [15]. The rise of many types of organisational grid systems,and associated security threats, makes the provision of t<strong>ru</strong>stworthy audit-basedmonitor<strong>in</strong>g services necessary; for <strong>in</strong>stance, to monitor and report violation ofservice-level agreements [18], or to detect events of dubious user behaviour acrossmultiple doma<strong>in</strong>s and take retrospective actions [17].In reality, a lot of these audit-based controls are prone to be compromiseddue to the lack of verification mechanisms for check<strong>in</strong>g the correctness and the<strong>in</strong>tegrity of logs collected from different sites; and also because some of theselogs are highly sensitive, and without the necessary confidentiality guarantees,neither t<strong>ru</strong>sts the other to see the raw data. Many log anonymisation techniqueshave been proposed [9,12,19] to solve the latter issue; however, adapt<strong>in</strong>g suchtechniques and assur<strong>in</strong>g that these anonymisation policies will be correctly enforcedat a remote site, is a whole new security issue. The problem with exist<strong>in</strong>gsolutions is that they provide only weak protection (or none) for such securityproperties upon distributed log collection and reconciliation (Section 3).In our previous work [8] we have proposed a logg<strong>in</strong>g <strong>in</strong>frast<strong>ru</strong>cture us<strong>in</strong>g thedriver virtualization <strong>in</strong> Xen that enables t<strong>ru</strong>stworthy generation and storage ofthe log data. In this paper, we take a step further and describe a log reconciliationmethod for guarantee<strong>in</strong>g their <strong>in</strong>tegrity and confidentiality.L. Chen, C.J. Mitchell, and A. Mart<strong>in</strong> (Eds.): T<strong>ru</strong>st 2009, LNCS <strong>5471</strong>, pp. 169–182, 2009.c○ Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2009


170 J.H. Huh and J. LyleThe rest of the paper is organised as follows. In Section 2, we present a numberof motivational examples and highlight dist<strong>in</strong>ct security challenges with process<strong>in</strong>gdistributed log data. Section 3 discusses the security gaps of exist<strong>in</strong>gsolutions. Then, <strong>in</strong> Section 4, we present the t<strong>ru</strong>stworthy log reconciliation requirementswhich address these security gaps. M<strong>in</strong>dful of such requirements, wedescribe a reconciliation <strong>in</strong>frast<strong>ru</strong>cture for a VO <strong>in</strong> Sections 5 and 6. F<strong>in</strong>ally, <strong>in</strong>Section 7 we discuss the contribution of this paper and the rema<strong>in</strong><strong>in</strong>g work.2 Motivational Examples2.1 Healthcare Grids and Dynamic Access ControlThe first example application arises <strong>in</strong> the context of a healthcare grid. In ‘e-Health’, many data grids are be<strong>in</strong>g const<strong>ru</strong>cted and <strong>in</strong>terconnected <strong>in</strong> order tofacilitate the better provision of cl<strong>in</strong>ical <strong>in</strong>formation. Each cl<strong>in</strong>ic (an <strong>in</strong>dependentlegal entity) participat<strong>in</strong>g <strong>in</strong> the grid owns and manages physical databases whichtogether form the virtualized cl<strong>in</strong>ical data and log stores. To motivate the usecases described later <strong>in</strong> this section we use an abstract viewoftheVO(seeFigure1): each node consists of external and <strong>in</strong>ternal services where the virtualizationof data sources takes place; it also has its own local data and logs; a standardexternal service enables communication between different nodes.Consider the follow<strong>in</strong>g example <strong>in</strong> the context of Figure 1. A simplified healthcaregrid consists of two nodes, a GP Practice (GP ) and a Specialist Cl<strong>in</strong>ic (SC).A patient <strong>in</strong> GP is often referred to SC to see a specialist. We shall assume thata s<strong>in</strong>gle table at each cl<strong>in</strong>ic (T 1 ,T 2 ) is made accessible to a researcher R, andthat the National Health Index (NHI) uniquely identifies a patient across thegrid to enable the l<strong>in</strong>k<strong>in</strong>g of data. R is carry<strong>in</strong>g out a study that looks at associationbetween smok<strong>in</strong>g status (T 1 ) and development of lung cancer (T 2 )<strong>in</strong>thepopulation of Oxfordshire.R has orig<strong>in</strong>ally been granted full access to both T 1 (at GP )andT 2 (at SC)to conduct this research. By jo<strong>in</strong><strong>in</strong>g the data across two cl<strong>in</strong>ics, R would haveaccess to potential identifiable <strong>in</strong>formation about patients: for example, R couldFig. 1. Abstract View of the Virtual Organisation


T<strong>ru</strong>stworthy Log Reconciliation for Distributed Virtual Organisations 171f<strong>in</strong>d out that patient 1, born on the 20/05/88 and liv<strong>in</strong>g <strong>in</strong> OX2 5PS who hasDr. Anderson as their GP, is a smoker and has a lung cancer.GP Practice (GP ) T 1NHI DOB GP Smoke Risks1 20/05/88 Dr. Anderson yes overweight2 30/07/88 Dr. Anderson no allergiesSpecialist Cl<strong>in</strong>ic (SC) T 2NHI Postcode LungCancer1 OX2 5PS yes2 OX2 6QA noIn a secure VO, as soon as R f<strong>in</strong>ds out from query<strong>in</strong>g T 2 that patient 1 haslung cancer, R’s access on T 1 for patient 1 needs to be restricted to, for example,only the NHI and Smoke fields. For GP to have restricted R’s access rights to<strong>in</strong>formation perta<strong>in</strong><strong>in</strong>g to patient 1 on T 1 , would have required GP to collectdata access logs from SC to build up a picture of what R already knows, andto update its own access control policies to prevent R from collect<strong>in</strong>g potentialidentifiable <strong>in</strong>formation. Although, <strong>in</strong> general, SC would never give out patients’lung cancer status <strong>in</strong> the form of audit logs to an unt<strong>ru</strong>sted GP .This type of distributed audit approach has been suggested [17] to detectpatterns of behaviour across multiple adm<strong>in</strong>istrative doma<strong>in</strong>s by comb<strong>in</strong><strong>in</strong>g theiraudit logs. However, the problem arises from the fact that log owners do not t<strong>ru</strong>stother sites to see their privileged raw logs. This approach will only work if logowners can be assured of confidentiality dur<strong>in</strong>g transit and reconciliation.2.2 The Monitorability of Service-Level Agreements (SLAs)The provision of Service-Level Agreements (SLAs) and ensur<strong>in</strong>g their monitorabilityis another example use for t<strong>ru</strong>stworthy log reconciliation.A SLA is a contract between customers and their service provider which specifiesthe levels of various attributes of a service like its availability, performanceand the associated penalties <strong>in</strong> the case of violation of these agreements. Considera case where the client receives no response for a service (for which theyhave entered <strong>in</strong>to a SLA) with<strong>in</strong> the agreed <strong>in</strong>terval of time, compla<strong>in</strong>s to theprovider that a timely response was not received and requests f<strong>in</strong>ancial compensation.The provider argues that no service request was received, and producesa log of requests <strong>in</strong> their defense. There is no way for the client to f<strong>in</strong>d out thet<strong>ru</strong>th: the provider could have delivered tampered evidence regard<strong>in</strong>g this event.The problem with this type of SLA is that it is def<strong>in</strong>ed <strong>in</strong> terms of events thatthe client cannot directly monitor, and they must take the word of the providerwith respect to the service availability.Skene et al [18] suggest a way of achiev<strong>in</strong>g the monitorability with t<strong>ru</strong>stedcomput<strong>in</strong>g. This <strong>in</strong>volves generat<strong>in</strong>g t<strong>ru</strong>stworthy logs, ensur<strong>in</strong>g that unmodified


172 J.H. Huh and J. Lylelogs have been reported by both parties and that these logs have been usedfor monitor<strong>in</strong>g SLAs. For <strong>in</strong>stance, if the client is able to verify with remoteattestation that t<strong>ru</strong>stworthy logg<strong>in</strong>g and report<strong>in</strong>g services operate at a remotesite, then the client may place conditions on any event of their <strong>in</strong>terest andconst<strong>ru</strong>ct more useful SLAs. This approach needs to guarantee the <strong>in</strong>tegrity ofall service request/response logs to an evidential standard (i.e. to a standardacceptable for judicial usages) upon distributed reconciliation and analysis. Amonitor<strong>in</strong>g service would then be able to generate a reliable SLA report for theclient to make claims.Logs often conta<strong>in</strong> sufficient <strong>in</strong>formation to be used as evidence <strong>in</strong> a varietyof context. However, the <strong>in</strong>ability of a site to verify the <strong>in</strong>tegrity of logs collectedfrom other sites and the lack of guarantees that their own logs are be<strong>in</strong>g usedunmodified at remote sites, make it extremely challeng<strong>in</strong>g for one to adapt theusual audit-based monitor<strong>in</strong>g method to the VO.3 Relevant Work and a Gap AnalysisHav<strong>in</strong>g identified the security challenges of impos<strong>in</strong>g audit-based controls, weare now <strong>in</strong> a position to present a gap analysis on exist<strong>in</strong>g solutions.DiLoS (Distributed General Logg<strong>in</strong>g Architecture for Grid Environments) [5]provides general logg<strong>in</strong>g facilities <strong>in</strong> service oriented grid environments to enabletrack<strong>in</strong>g of the whole system. One of its application models is to facilitate account<strong>in</strong>gfor resource-provid<strong>in</strong>g services: to measure and annotate who has usedwhich services, and to bill usage prices. In this account<strong>in</strong>g doma<strong>in</strong>, however,DiLoS does not consider the log <strong>in</strong>tegrity issues and the possible threats thathave been covered <strong>in</strong> Section 2.2. Without security mechanisms to protect log<strong>in</strong>tegrity, their architecture cannot be relied upon to perform calculat<strong>in</strong>g andbill<strong>in</strong>g functions.Piro et al [14] have developed a more secure and reliable data grid account<strong>in</strong>gsystem based on meter<strong>in</strong>g resource usage. All communications are encrypted [13];but a privileged user may still configure the Home Location Register (HLR), acomponent that collects remote usage records for account<strong>in</strong>g, to disclose sensitiveusage records. A rogue resource owner may modify the Comput<strong>in</strong>g Element(CE), which measures the exact resource usage, <strong>in</strong> order to fabricate recordsand prices for profit.The NetLogger Toolkit [20] provides client application libraries (C, Java,Python APIs) that enable one to generate log messages <strong>in</strong> a common format. Italso <strong>in</strong>cludes monitor<strong>in</strong>g tools for log collection and analysis at a central po<strong>in</strong>t.Aga<strong>in</strong>, the log <strong>in</strong>tegrity and confidentiality threats discussed <strong>in</strong> the previoussection underm<strong>in</strong>e their approach: access requests are processed without any authorisationpolicy enforcement, and the logs are transferred across the network<strong>in</strong> an unencrypted and unsigned format. No attempt is made to safeguard thelogs while they are be<strong>in</strong>g collected and processed at the reconciliation po<strong>in</strong>t.Similar security problems underm<strong>in</strong>e other exist<strong>in</strong>g grid monitor<strong>in</strong>g tools suchas APEL (Account<strong>in</strong>g Processor for Event Logs) [3], which builds account<strong>in</strong>g


T<strong>ru</strong>stworthy Log Reconciliation for Distributed Virtual Organisations 173records from system and gatekeeper logs generated by a site; and GMS (GridMonitor<strong>in</strong>g System) [11], a system that captures and stores job <strong>in</strong>formation <strong>in</strong>a relational database, and supports resource usage monitor<strong>in</strong>g and visualis<strong>in</strong>g.4 T<strong>ru</strong>stworthy Log Reconciliation RequirementsTo fill the security gaps identified above, we provide a high-level overview of thekey requirements with respect to our motivational examples.Log Migration Service. Due to the number of potential security vulnerabilities,complex grid middleware services can not be relied upon to perform t<strong>ru</strong>stedoperations [4]. Instead the security controls required for safe log data transferneed to operate with<strong>in</strong> a more secure migration service. This implies data flowencryption and sign<strong>in</strong>g requirements upon log access and transfer requests. Theseare <strong>in</strong>tegral <strong>in</strong> prevent<strong>in</strong>g <strong>in</strong>t<strong>ru</strong>ders from sniff<strong>in</strong>g the logs processed through <strong>in</strong>securegrid middleware, and from launch<strong>in</strong>g man-<strong>in</strong>-the-middle type of attacks. Itis also possible for a log owner to deliver fabricated logs, as the service providermight do <strong>in</strong> the SLA example. To provide a safeguard aga<strong>in</strong>st such a threat, themigration service needs to access the signed logs (and the orig<strong>in</strong>al logs) directlyfrom the protected log storage. This would give sufficient <strong>in</strong>formation for an enduser to verify the log <strong>in</strong>tegrity.Log Reconciliation Service. Our examples have a common set of requirementsfor a t<strong>ru</strong>stworthy reconciliation service. They require each site to negotiate withothers and grant permissions to view their logs. These sites (before grant<strong>in</strong>g permissions)need to be assured that their logs will not be compromised and will beused without modification. The <strong>in</strong>tegrity and the confidentiality of the collectedlogs as well as the processed results (e.g. summaries on SLA violation) need to beprotected to prevent a malicious user from modify<strong>in</strong>g or steal<strong>in</strong>g them.To make it harder for <strong>in</strong>siders to ga<strong>in</strong> unauthorised access and modify thereconciled logs, this service needs to <strong>ru</strong>n <strong>in</strong> a strongly isolated compartmentwith robust memory protection. It should also be a small and simple code tom<strong>in</strong>imise the number of security holes that might be exploited.Bl<strong>in</strong>d Analysis of the Logs. Return<strong>in</strong>g to our healthcare example, imag<strong>in</strong>ethat SC has agreed to share their logs with GP for dynamic access control. Butat the same time they are unwill<strong>in</strong>g to let the system adm<strong>in</strong>istrator at GP seethe actual contents of the logs; or only let part of the data be seen as a summary<strong>in</strong>formation. For example, “R’s access rights on T 1 for a patient with NHI 1,aged 20 and liv<strong>in</strong>g <strong>in</strong> OX2 area, have been restricted to NHI and Smoke fields.”.Such anonymisation of end results ensures that the adm<strong>in</strong>istrator cannot f<strong>in</strong>dout about a patient’s lung cancer status, and yet, still know exactly how theaccess control policy has been changed for R.Log owners need to be assured that any sensitive <strong>in</strong>formation conta<strong>in</strong>ed <strong>in</strong>their logs will only be revealed to an extent that has been agreed and stated <strong>in</strong>


174 J.H. Huh and J. Lyleanonymisation policies: this requires a mechanism, possibly with<strong>in</strong> the reconciliationservice, to carry out a bl<strong>in</strong>d analysis of the collected logs so that a useronly sees the <strong>ru</strong>nn<strong>in</strong>g application and the end results, which are just sufficientfor them to carry out post log analysis or to know about the important systemupdates.5 T<strong>ru</strong>stworthy Logg<strong>in</strong>g ArchitectureIn our previous work [8], we have developed a logg<strong>in</strong>g architecture based onVirtual Mach<strong>in</strong>e (VM) isolation and remote attestation (see Figure 2). Upon<strong>in</strong>stallation of this architecture, each VO participant will be capable of generat<strong>in</strong>gand stor<strong>in</strong>g log data, and prov<strong>in</strong>g to other sites that these logs are t<strong>ru</strong>stworthy.The T<strong>ru</strong>sted Comput<strong>in</strong>g Group (TCG) [1] has developed a series of technologiesbased around a T<strong>ru</strong>sted Platform Module (TPM) which helps to provide twonovel capabilities [7]: a cryptographically strong identity and report<strong>in</strong>g mechanismfor the platform, and a means to measure reliably a hash of the softwareloaded and <strong>ru</strong>n on the platform (from the BIOS upwards); such measurementsare stored and retrieved from Platform Configuration Registers (PCRs) <strong>in</strong> theTPM. These provide the means to seal data so that it is available only to a particularplatform state, and to undertake remote attestation: prov<strong>in</strong>g to a thirdparty that a remote device is <strong>in</strong> a particular software state. TPM-generatedAttestation Identity Keys (AIKs) are used to sign PCR values and to preventtrack<strong>in</strong>g of platforms. These t<strong>ru</strong>sted comput<strong>in</strong>g capabilities can be used <strong>in</strong> a virtualizedenvironment where a physical host is segmented <strong>in</strong>to strongly isolatedcompartments to make attestation feasible (with robust memory protection),and to limit the impact of any vulnerability <strong>in</strong> attested code. Our architectureuses the Xen Virtual Mach<strong>in</strong>e Monitor (VMM) [2] to achieve this isolation: ath<strong>in</strong> layer of software operat<strong>in</strong>g on top of the hardware to enable VM abstractionand control the way a VM accesses the hardware and peripherals.All log security functions are enforced by the log security manager VM, a smallamount of code <strong>ru</strong>nn<strong>in</strong>g <strong>in</strong>side back-end driver VMs and the log analysis managerVM; each of which has been designed to perform a small number of simpleoperations so that it can be compartmented with a high degree of assurance.Fig. 2. Abstract View of T<strong>ru</strong>sted Logg<strong>in</strong>g Services


T<strong>ru</strong>stworthy Log Reconciliation for Distributed Virtual Organisations 175Attestation of these compartments, the Policy Enforcement Po<strong>in</strong>t (PEP) andthe VMM is sufficient for one to establish t<strong>ru</strong>st with a VO platform, and tobe assured that its log security functions have not been subverted; this is ourT<strong>ru</strong>sted Comput<strong>in</strong>g Base (TCB).A small number of t<strong>ru</strong>sted back-end driver VMs are responsible for generat<strong>in</strong>gall logg<strong>in</strong>g requests upon use of device drivers. All other VMs must communicatewith one of these driver VMs to access the physical hardware. Inside these VMs,the log transit component collects important I/O details and submits requeststo the log security manager. Applications and middleware services <strong>ru</strong>nn<strong>in</strong>g <strong>in</strong>other compartments are no longer relied upon to generate t<strong>ru</strong>stworthy log data.The log security manager performs a range of security functions through thefollow<strong>in</strong>g services:– The logg<strong>in</strong>g service ensures that no adversaries can access or modify thelog data dispatched from log transits. It filters out unt<strong>ru</strong>stworthy logg<strong>in</strong>grequests and verifies their <strong>in</strong>tegrity before stor<strong>in</strong>g them.– The reconciliation service facilitates t<strong>ru</strong>stworthy reconciliation and transformationof the collected logs. It enables bl<strong>in</strong>d analysis of the logs by enforc<strong>in</strong>ganonymisation policies.– The migration service is an external service which facilitates secure communicationbetween VMs <strong>in</strong> one or more sites by enforc<strong>in</strong>g security controlsrequired for safe log transfer.End-user applications only have access to the externally fac<strong>in</strong>g visualisationservice <strong>ru</strong>nn<strong>in</strong>g <strong>in</strong>side the log analysis manager, which provides the m<strong>in</strong>imal<strong>in</strong>terface necessary for user applications to <strong>in</strong>teractively analyse the processedlog <strong>in</strong>formation. A compartment manager with<strong>in</strong> the PEP executes a job <strong>in</strong> aper-user log access VM configured with t<strong>ru</strong>stworthy services. The grid servicescompartment isolates the middleware stack and is unt<strong>ru</strong>sted; it performs resourcebroker<strong>in</strong>g and job schedul<strong>in</strong>g.6 T<strong>ru</strong>stworthy Log ReconciliationBased on the work <strong>in</strong> previous section and the requirements analysed <strong>in</strong> Section4, we present a t<strong>ru</strong>stworthy reconciliation <strong>in</strong>frast<strong>ru</strong>cture.6.1 The Configuration ResolverWe expand our abstract view of the VO to <strong>in</strong>clude a Configuration Resolver(CR) that manages metrics about the available sites <strong>in</strong> the VO and their currentsoftware configurations. To become part of the VO a site needs to first registeritself with the CR by submitt<strong>in</strong>g the PCR representations of its TCB and logaccess VM image files, and a credential conta<strong>in</strong><strong>in</strong>g its public key for which theprivate-half has been sealed to both PCR values. The CR then creates a ConfigurationToken (CT) from this <strong>in</strong>formation:


176 J.H. Huh and J. LyleCT =(PCR AIKS(N) (TCB),PCR AIKS(N) (LA),cred AIKS(N) (P K ))A t<strong>ru</strong>stworthy PCR(TCB) value proves that secure logg<strong>in</strong>g VMs have beenresponsible for generat<strong>in</strong>g and protect<strong>in</strong>g the log data; this allows a participant tohave high confidence <strong>in</strong> the correctness of the logs stored <strong>in</strong> node N.Furthermore,a t<strong>ru</strong>stworthy PCR(LA) value guarantees the security configurations of a logaccess VM. A value of PCR(LA) isstored<strong>in</strong>aresettable PCR 23 because theseVM image files will be remeasured and verified by the PEP at <strong>ru</strong>n-time beforebe<strong>in</strong>g launched.The CR acts as a token repository <strong>in</strong> our system and offers no other complexfunctionality. The burden of verify<strong>in</strong>g tokens is left to the participant. This isattractive from a security perspective, as the CR can rema<strong>in</strong> an unt<strong>ru</strong>sted component.The worst that a malicious CR can do is affect the availability of the<strong>in</strong>frast<strong>ru</strong>cture. However, the simple CR does <strong>in</strong>crease the management overheadon each node. They will all need the ability to check tokens. This <strong>in</strong>volves ma<strong>in</strong>ta<strong>in</strong><strong>in</strong>ga list of t<strong>ru</strong>stworthy software (a white-list), and keep<strong>in</strong>g a revocation listof compromised TPMs and platforms. The security of our system depends on theproper management of this <strong>in</strong>formation. We suggest that a suitable compromisemight be to devolve some of this functionality to local proxy-CRs, which wouldperform the token filter<strong>in</strong>g for one specific adm<strong>in</strong>istrative doma<strong>in</strong>. This keepscontrol local to one site, but would decrease the effort at each <strong>in</strong>dividual node.To conform to exist<strong>in</strong>g standards, we imag<strong>in</strong>e that CR would be implementedas a WS-ServiceGroup [10]. Each node would then be a member of this CR’sgroup, and have a ServiceEntry <strong>in</strong> its list. The membership constra<strong>in</strong>ts wouldbe simple, requir<strong>in</strong>g only a valid token and identity. We assume that there isa public key <strong>in</strong>frast<strong>ru</strong>cture available to verify their identity. As a result, thelevels of <strong>in</strong>direction <strong>in</strong>troduced by the TCG to prevent any loss of anonymityare unnecessary. We would suggest that the Privacy CA is not a key componentof the system, and a publically-available one could be used. AIKs can be createdas soon as the platform is first <strong>in</strong>stalled, and should very rarely need updat<strong>in</strong>g.6.2 T<strong>ru</strong>stworthy Log Reconciliation Infrast<strong>ru</strong>ctureWith the resolver <strong>in</strong> place, security procedures of the reconciliation <strong>in</strong>frast<strong>ru</strong>cturehave been carefully designed. Our healthcare example <strong>in</strong> Section 2.1 has beenrevisited to expla<strong>in</strong> these procedures.Creation and Distribution of a Log Access Grid Job. All end user <strong>in</strong>teractionswith a cl<strong>in</strong>ic node are made via the visualisation service. It providesthe m<strong>in</strong>imal <strong>in</strong>terface (APIs) necessary for development of grid-enabled applications.An analysis tool should be designed to allow a user to select acceptablehost configurations and user credentials, and enter the log access code/query (1,numbers refer to Figure 3).A system adm<strong>in</strong>istrator at GP , us<strong>in</strong>g one of these tools, requests for dynamicupdates on the local access control policies. The visualisation service requestsfor the list of available configuration tokens (CTs) (2, 3, Figure 3); the list is


T<strong>ru</strong>stworthy Log Reconciliation for Distributed Virtual Organisations 177Fig. 3. Creation and Distribution of a Log Access Grid Jobforwarded to the log migration service <strong>ru</strong>nn<strong>in</strong>g <strong>in</strong>side the log security manager(4, Figure 3). The migration service makes a list of acceptable hosts by compar<strong>in</strong>geach CT aga<strong>in</strong>st a user-specified white-list. It then creates a set of gridjobs, each of which conta<strong>in</strong>s the adm<strong>in</strong>istrator’s credential, log access code, jobdescription, a nonce (N GP ) and an Attestation Token (AT ) that can be used byany SCs to verify the security state of the system <strong>ru</strong>nn<strong>in</strong>g at GP (5, Figure3);AT consists of the follow<strong>in</strong>g <strong>in</strong>formation:AT =(PCR AIKS(GP ) (TCB GP ),cred AIKS(GP ) (P K ))cred AIK(GP ) (P K )isGP ’s P K credential which identifies the correspond<strong>in</strong>gS K as be<strong>in</strong>g sealed to PCR(TCB GP ).For each job, the credential, the code and N GP are encrypted with a P K (SC)obta<strong>in</strong>ed from a CT to prevent an adversary from modify<strong>in</strong>g the code and toensure that the credential is only revealed to a t<strong>ru</strong>stworthy SC. The use of thenonce, N GP , is expla<strong>in</strong>ed further on <strong>in</strong> this section. After encryption, these jobsare sent across the network via an unt<strong>ru</strong>sted grid middleware compartment whichcan only read the job description to identify the target SC; jobs are submittedto the PEPs of their target nodes that handle job submission (6, Figure3).Operations of a T<strong>ru</strong>sted Log Access VM. In Figure 4 we take a closerlook at how a job gets processed at one of the target nodes, SC A . Any securityprocess<strong>in</strong>g required before becom<strong>in</strong>g ready to be deployed <strong>in</strong> a per-user log accessVM is done through the PEP: it compares PCR AIKS(GP ) (from AT )withitssetof known-good values stated <strong>in</strong> a policy to verify that the job has been createdand dispatched from a correctly configured log security manager; this is howthe job is authenticated at SC A (1, Figure 4). Upon successful attestation, thePEP first measures the local copy of log access VM image (and a configuration


178 J.H. Huh and J. LyleFig. 4. Submission of a Grid Job, Creation and Operations of a Log Access VMfile), and resets PCR 23 with the new measurement, PCR(LA A ); this imageconsists of the guest OS and the t<strong>ru</strong>sted middleware stack (authorisation policymanagement and migration services) which provides a common <strong>in</strong>terface fora job to access the logs. The PEP then attempts to unseal the decryption key,S K (SC A ) (bound to PCR(TCB A )andPCR(LA A )), <strong>in</strong> order to decrypt the job.Note that S K (SC A ) will only be available if SC A is still <strong>ru</strong>nn<strong>in</strong>g with t<strong>ru</strong>stworthyconfigurations and the VM image files have not been subverted. This is <strong>in</strong>tendedto guarantee that only a t<strong>ru</strong>sted VM has access to the decrypted credential, codeand N GP .If these security checks pass, the compartment manager launches a t<strong>ru</strong>stedVM from the verified VM image files, and deploys the decrypted job on topof the middleware stack (2, Figure 4). The migration service first requests thepolicy management service to decide whether the adm<strong>in</strong>istrator is authorised toview the requested logs (3, 4, Figure 4). If the conditions are satisfied, the codegets executed. A log anonymisation policy (Pols) specified by the log owner,which states what part of the requested log data should be available to theadm<strong>in</strong>istrator at GP , is also selected (5, Figure 4): <strong>in</strong> this scenario Pols wouldrestrict disclosure of LungCancer status (see T 2 ). Exist<strong>in</strong>g log anonymisationtechniques such as FLAIM [19] can be used <strong>in</strong> specify<strong>in</strong>g these policies, <strong>in</strong> orderto sanitise the sensitive data while perta<strong>in</strong><strong>in</strong>g sufficient <strong>in</strong>formation for analysis.The migration service then generates a secure message conta<strong>in</strong><strong>in</strong>g these results(6, Figure4):R = {Logs, P ols, N GP } PK(GP )GP ’s nonce, N GP , is sufficient to verify that this message has been generatedfrom a t<strong>ru</strong>sted VM and unmodified code has been executed. The entire messageis encrypted with P K (GP ) so that it can only be decrypted if the system


T<strong>ru</strong>stworthy Log Reconciliation for Distributed Virtual Organisations 179Fig. 5. Reconciliation of Collected Logsat GP is still configured to match PCR(TCB GP )(fromAT ); a compromisedsystem will not be able to decrypt this message. An attacker will not be able totamper with it s<strong>in</strong>ce the private-half, S K (GP ), is strongly protected <strong>in</strong>side theTPM.Reconciliation of Collected Logs. This message arrives at the PEP of GP ’ssystem where it is decrypted us<strong>in</strong>g S K (GP )(1, Figure 5). The decrypted messageis then forwarded to the migration service which compares the returned N GPwith the orig<strong>in</strong>al nonce (2, Figure 5). A match<strong>in</strong>g value verifies the correctnessand the <strong>in</strong>tegrity of the collected Logs.The <strong>in</strong>ternal reconciliation service reconciles the logs collected from SC A ,SC B and SC C and updates the access control policies accord<strong>in</strong>g to what usershave previously seen from these three specialist cl<strong>in</strong>ics (3, Figure 5). Dur<strong>in</strong>gthis process Pols are enforced to fully anonymise the log data. Attestationof GP ’s log security manager (1, back <strong>in</strong> Figure 4) is sufficient to establishthat these anonymisation policies will be imposed correctly dur<strong>in</strong>g reconciliation.VM isolation and its robust memory protection prevent an attackerfrom access<strong>in</strong>g the memory space of the log security manager to steal the rawdata.A summary of the policy updates is then generated us<strong>in</strong>g the anonymised dataand forwarded to the orig<strong>in</strong>al requestor, the visualisation service (4, 5, Figure5). The adm<strong>in</strong>istrator only sees this summary <strong>in</strong>formation on how the policiesfor their patient data have been updated for different users, and performs bl<strong>in</strong>dlog analysis (6, Figure 5). VM Policy Attestation [6] may be used on the loganalysis VM to verify that it does not permit the summary to be exported toan unauthorised device.


180 J.H. Huh and J. LyleTable 1. T<strong>ru</strong>stworthy Log Reconciliation FeaturesSecurity GoalsT<strong>ru</strong>stworthy Log Reconciliation FeaturesLogs need to be protected Isolation of unt<strong>ru</strong>sted grid middleware services; the logfrom the grid middleware migration service encrypts logs us<strong>in</strong>g a log owner’s publicserviceskey for which the private-half is strongly protected <strong>in</strong>sidelog owner’s TPM.A log requester needs to be T<strong>ru</strong>stworthy log-generat<strong>in</strong>g sites are selected from configurationtoken verification; only a t<strong>ru</strong>sted log access VMable to verify the <strong>in</strong>tegrity ofthe collected logsis able to decrypt the grid job and return the logs from aremote site.A log owner needs to be Attestation token (part of the grid job) is used to verifythe t<strong>ru</strong>stworth<strong>in</strong>ess of a log requester’s platform andassured that their logs willbe safeguarded from compromiseits reconciliation services; the logs are encrypted us<strong>in</strong>g re-and used unmodified at quester’s public key for which the private-half is sealed toremote sitesa t<strong>ru</strong>stworthy configuration.Bl<strong>in</strong>d log analysisLog anonymisation policies are enforced by the reconciliationservice and the raw data never leaves the log securitymanager; an end user only sees the fully anonymised data.6.3 ObservationsConfiguration Token Verification. The t<strong>ru</strong>stworth<strong>in</strong>ess of our architectureis dependent on the ability for each participant to make the right decision aboutthe security provided by software at other nodes. The identity of this software isreported <strong>in</strong> the PCR values conta<strong>in</strong>ed <strong>in</strong> the CTs. We imag<strong>in</strong>e that these valueswill then be compared to a white-list of acceptable software. However, this assumesprior knowledge of all t<strong>ru</strong>sted node configurations, which may not be thecase if the VO is particularly large. Such a scalability issue is magnified whenconsider<strong>in</strong>g sett<strong>in</strong>gs files, many of which will have the same semantic mean<strong>in</strong>gbut different measured values. It is difficult to assess how big a problem this is,but future work may look at us<strong>in</strong>g Property-Based Attestation [16] as a potentialsolution.Node Upgrades. The most significant overhead of our system is the cost of upgrad<strong>in</strong>gexist<strong>in</strong>g nodes to support the new <strong>in</strong>frast<strong>ru</strong>cture. This <strong>in</strong>volves <strong>in</strong>stall<strong>in</strong>gthe Xen VMM and various logg<strong>in</strong>g VMs. While this is a large change, the advantageof our architecture is that legacy operat<strong>in</strong>g systems and middleware can stillbe used <strong>in</strong> their own VMs. The overall adm<strong>in</strong>istration task is therefore not solarge. Furthermore, virtualization is <strong>in</strong>creas<strong>in</strong>g <strong>in</strong> popularity, and it seems likelythat the scalability and management advantages will persuade VO participants<strong>in</strong>to upgrad<strong>in</strong>g to a suitable system anyway.7 Conclusions and Future WorkIn this paper, we have described a t<strong>ru</strong>stworthy log reconciliation <strong>in</strong>frast<strong>ru</strong>cture tofacilitate audit-based monitor<strong>in</strong>g <strong>in</strong> distributed virtual organisations with strong


T<strong>ru</strong>stworthy Log Reconciliation for Distributed Virtual Organisations 181guarantees of the log <strong>in</strong>tegrity and confidentiality. Table 1 summarises how our<strong>in</strong>frast<strong>ru</strong>cture satisfies the security requirements analysed <strong>in</strong> Section 4.Prototype implementations of some of these features will be const<strong>ru</strong>cted andtheir <strong>in</strong>herent security and practicality will be carefully evaluated.We <strong>in</strong>tend to extend and generalise this work <strong>in</strong>to a Digital Rights Management(DRM) framework <strong>in</strong> the future. Our reconciliation and migration VMs,as the root of t<strong>ru</strong>st, will enforce DRM policies to protected data and ensure thatthey are safeguarded wherever they move <strong>in</strong> a virtual organisation.AcknowledgementsThe work described is supported by a studentship from Q<strong>in</strong>etiQ. Andrew Mart<strong>in</strong>reviewed an early draft of this paper and provided const<strong>ru</strong>ctive comments andsuggestions. David Power and Peter Lee provided help with the healthcare gridexample.The authors would also like to thank the anonymous reviewers for their carefulattention and <strong>in</strong>sightful comments.References1. T<strong>ru</strong>sted comput<strong>in</strong>g group backgrounder (October 2006),https://www.t<strong>ru</strong>stedcomput<strong>in</strong>ggroup.org/about/2. Barham, P., Dragovic, B., Fraser, K., Hand, S., Harris, T.: Xen and the art ofvirtualization. Technical report, University of Cambridge, <strong>Computer</strong> Laboratory(2003)3. Byrom, R., Cordenonsi, R., Cornwall, L., Craig, M., Djaoui, A., Duncan, A., Fisher,S.: Apel: An implementation of grid account<strong>in</strong>g us<strong>in</strong>g r-gma. Technical report,CCLRC - Rutherford Appleton Laboratory, Queen Mary - University of London(2005)4. Cooper, A., Mart<strong>in</strong>, A.: T<strong>ru</strong>sted delegation for grid comput<strong>in</strong>g. In: The SecondWorkshop on Advances <strong>in</strong> T<strong>ru</strong>sted Comput<strong>in</strong>g (2006)5. de Alfonso, C., Caballer, M., Carrión, J.V., Hernández, V.: Distributed general logg<strong>in</strong>garchitecture for grid environments. In: Daydé, M., Palma, J.M.L.M., Cout<strong>in</strong>ho,Á.L.G.A., Pacitti, E., Lopes, J.C. (eds.) VECPAR 2006. LNCS, vol. 4395, pp. 589–600. Spr<strong>in</strong>ger, Heidelberg (2007)6. England, P.: Practical techniques for operat<strong>in</strong>g system attestation. In: Lipp, P.,Sadeghi, A.-R., Koch, K.-M. (eds.) T<strong>ru</strong>st 2008. LNCS, vol. 4968, pp. 1–13. Spr<strong>in</strong>ger,Heidelberg (2008)7. Grawrock, D.: The Intel Safer Comput<strong>in</strong>g Initiative, pp. 3–31. Intel Press (2006)8. Huh, J.H., Mart<strong>in</strong>, A.: T<strong>ru</strong>sted logg<strong>in</strong>g for grid comput<strong>in</strong>g. In: 3rd Asia-PacificT<strong>ru</strong>sted Infrast<strong>ru</strong>cture Technologies Conference, Ch<strong>in</strong>a (2008)9. L<strong>in</strong>coln, P., Porras, P., Shmatikov, V.: Privacy-preserv<strong>in</strong>g shar<strong>in</strong>g and correction ofsecurity alerts. In: 13th conference on USENIX Security Symposium, p. 17 (2004)10. Maguire, T., Snell<strong>in</strong>g, D.: Web services service group 1.2 (ws-servicegroup). Technicalreport, OASIS Open (June 2004)


182 J.H. Huh and J. Lyle11. Ng, H.-K., Ho, Q.-T., Lee, B.-S., Lim, D., Ong, Y.-S., Cai, W.: Nanyang campus<strong>in</strong>ter-organization grid monitor<strong>in</strong>g system. Technical report, Grid Operationand Tra<strong>in</strong><strong>in</strong>g Center, School of <strong>Computer</strong> Eng<strong>in</strong>eer<strong>in</strong>g - Nanyang TechnologicalUniversity (2005)12. Pang, R.: A high-level programm<strong>in</strong>g environment for packet trace anonymizationand transformation. In: ACM SIGCOMM Conference, Germany (2003)13. Piro, R.M.: Datagrid account<strong>in</strong>g system - basic concepts and current status. Workshopon e-Infrast<strong>ru</strong>ctures (May 2005)14. Piro, R.M., Guarise, A., Werbrouck, A.: An economy-based account<strong>in</strong>g <strong>in</strong>frast<strong>ru</strong>cturefor the datagrid. In: Fourth International Workshop on Grid Comput<strong>in</strong>g (2003)15. Power, D.J., Politou, E.A., Slaymaker, M.A., Simpson, A.C.: Towards secure gridenabledhealthcare. Software Practice And Experience (2002)16. Sadeghi, A.-R., Stüble, C.: Property-based attestation for comput<strong>in</strong>g platforms:Car<strong>in</strong>g about properties, not mechanisms. In: NSPW 2004: Proceed<strong>in</strong>gs of the2004 workshop on New security paradigms. ACM Press, New York (2004)17. Simpson, A., Power, D., Slaymaker, M.: On tracker attacks <strong>in</strong> health grids. In: 2006ACM Symposium on Applied Comput<strong>in</strong>g, pp. 209–216 (2006)18. Skene, J., Skene, A., Crampton, J., Emmerich, W.: The monitorability of servicelevelagreements for application-service provision. In: 6th International Workshopon Software and Performance, pp. 3–14 (2007)19. Slagell, A., Lakkaraju, K., Luo, K.: Flaim: A multi-level anonymization frameworkfor computer and network logs. In: 20th Large Installation System Adm<strong>in</strong>istrationConference (2006)20. Tierney, B., Gunter, D.: Netlogger: A toolkit for distributed system performancetun<strong>in</strong>g and debugg<strong>in</strong>g. Technical report, Lawrence Berkeley National Laboratory(December 2002)


Attack<strong>in</strong>g the BitLocker Boot ProcessSven Türpe, Andreas Poller, Jan Steffan,Jan-Peter Stotz, and Jan T<strong>ru</strong>kenmüllerFraunhofer Institute for Secure Information Technology (SIT),Rhe<strong>in</strong>strasse 75, 64295 Darmstadt, Germany{sven.tuerpe,andreas.poller,jan.steffan,jan-peter.stotz,jan.t<strong>ru</strong>kenmueller}@sit.fraunhofer.dehttp://testlab.sit.fraunhofer.deAbstract. We discuss five attack strategies aga<strong>in</strong>st BitLocker, whichtarget the way BitLocker is us<strong>in</strong>g the TPM seal<strong>in</strong>g mechanism. BitLockeris a disk encryption feature <strong>in</strong>cluded <strong>in</strong> some versions of Microsoft W<strong>in</strong>dows.It represents a state-of-the-art design, enhanced with TPM supportfor improved security. We show that, under certa<strong>in</strong> assumptions,a dedicated attacker can circumvent the protection and break confidentialitywith limited effort. Our attacks neither exploit vulnerabilities <strong>in</strong>the encryption itself nor do they directly attack the TPM. They ratherexploit sequences of actions that T<strong>ru</strong>sted Comput<strong>in</strong>g fails to prevent,demonstrat<strong>in</strong>g limitations of the technology.1 IntroductionOne promise of T<strong>ru</strong>sted Comput<strong>in</strong>g is better protection of system <strong>in</strong>tegrity. Variousapplications can profit from mechanisms that protect software on a computerfrom be<strong>in</strong>g tampered with. To this end, a v1.2 TPM supports authenticatedboot, keep<strong>in</strong>g track of the boot process and eventually bas<strong>in</strong>g operations suchas seal<strong>in</strong>g and attestation upon the result. This is one step short of what theorysuggests for best security: stopp<strong>in</strong>g the boot process of fix<strong>in</strong>g the issue as soonas a manipulation has been detected [1,2].This leads to the question what the implications of this difference are <strong>in</strong> practice.We explore this question for one particular software design and application:BitLocker. Included with some editions of Microsoft W<strong>in</strong>dows Vista and W<strong>in</strong>dowsServer, BitLocker encrypts volumes on disk and uses the seal<strong>in</strong>g functionof a v1.2 TPM for part of its key management. We devise several scenarios fortargeted attacks that break the confidentiality BitLocker is supposed to protect.Note that there are two dist<strong>in</strong>ct attack strategies aga<strong>in</strong>st which BitLockershould ideally protect. Opportunistic attacks use only what is easily obta<strong>in</strong>edunder common real-world conditions. An example is recover<strong>in</strong>g data on a disk orcomputer that has been bought <strong>in</strong> used condition from somebody else, or stolensomewhere. A targeted attack is different <strong>in</strong> that the attacker attempts to getaccess to data on a specific, predeterm<strong>in</strong>ed disk or mach<strong>in</strong>e, usually with<strong>in</strong> sometime and resource constra<strong>in</strong>ts. Accord<strong>in</strong>g to Microsoft, BitLocker is designedL. Chen, C.J. Mitchell, and A. Mart<strong>in</strong> (Eds.): T<strong>ru</strong>st 2009, LNCS <strong>5471</strong>, pp. 183–196, 2009.c○ Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2009


184 S. Türpe et al.to withstand at least opportunistic attacks. Consider<strong>in</strong>g targeted attacks as weare do<strong>in</strong>g here may be beyond its specification. However, disk encryption alongwith TPM-based key management might be expected and perceived to be morepowerful than what the manufacturer is will<strong>in</strong>g to promise, and we deem it usefulto explore the actual security properties and limitations regardless of claims andcautionary notes.The rema<strong>in</strong>der of this paper is organized as follows. Section 2 briefly describesthe design of BitLocker, focus<strong>in</strong>g on its key management and how it is us<strong>in</strong>g theTPM. Our adversary model and security considerations are outl<strong>in</strong>ed <strong>in</strong> section 3.Section 4 describes attack scenarios that seem feasible and either yield secret keyor data or achieve some important steps towards a successful attack. Causes andcontribut<strong>in</strong>g factors are discussed <strong>in</strong> section 5. Section 6 outl<strong>in</strong>es our practicalimplementation of the attack, followed by the conclusions <strong>in</strong> section 7. Relatedliterature is referenced where appropriate but not specifically discussed.2 An Overview of BitLockerThis section only mentions facts about BitLocker that we will use <strong>in</strong> this paper.For further details refer to the documentation available from the manufacturer[3,4] and from unofficial sources [5].2.1 Integrity Model and Design Constra<strong>in</strong>tsBitLocker works, at boot time, as a component of the boot loader and lateras a driver of the operat<strong>in</strong>g system kernel. Its design assumes that the kernelboots from a BitLocker-protected volume, that BitLocker sufficiently protectsthe <strong>in</strong>tegrity of data on this volume, and that anyth<strong>in</strong>g that happens after <strong>in</strong>itiat<strong>in</strong>gthe OS boot process is sufficiently controlled by other security mechanisms.We do not challenge these assumptions here; see [6,7,8] for two known attacksaga<strong>in</strong>st the <strong>ru</strong>nn<strong>in</strong>g system.Accord<strong>in</strong>g to these assumptions, BitLocker has to protect the <strong>in</strong>tegrity of theboot loader and its execution environment up to the po<strong>in</strong>t where the kernel canbe read from the locked volume. This code is read from an unencrypted partof the disk and needs to be supplied with a secret key for the AES algorithm.This is where the TPM is be<strong>in</strong>g used <strong>in</strong>. BitLocker uses the seal<strong>in</strong>g functionto store all or part of its key material <strong>in</strong> such a way that it becomes accessibleonly if the platform configuration as represented by the PCR values is <strong>in</strong> l<strong>in</strong>ewith the reference configuration. The reference configuration is determ<strong>in</strong>ed bythe adm<strong>in</strong>istrator accept<strong>in</strong>g the current system configuration at some po<strong>in</strong>t <strong>in</strong>time. This adoption of a reference configuration is <strong>in</strong>itially done dur<strong>in</strong>g BitLockeractivation but can be repeated at any time from the <strong>ru</strong>nn<strong>in</strong>g W<strong>in</strong>dows system.2.2 Key Management and Recovery MechanismsApart from special cases—BitLocker can also be operated without a TPM orwith all key material be<strong>in</strong>g managed by the TPM—key material is divided. One


Attack<strong>in</strong>g the BitLocker Boot Process 185part is managed by the TPM and released only if the platform is <strong>in</strong> the t<strong>ru</strong>stedstate, the other is supplied by the user as a password and/or key file on a USBmemory stick.If the TPM works as desired, there is no way accord<strong>in</strong>g to the design to ga<strong>in</strong>access to all required key material if the platform state measured is differentfrom the reference state. This is <strong>in</strong>tended if the platform state is modified byan attack, it is not, if state is modified for a legitimate reason and the changecan not be reverted easily, e.g. after BIOS update or hardware repair. BitLockertherefore offers two recovery mechanisms, the recovery password and the recoverykey. Both are designed to circumvent the TPM and supply BitLocker with itssecret key <strong>in</strong>dependent of the current platform state. The recovery mechanismsdon’t correct the problem, though. This is left to the adm<strong>in</strong>istrator who, afterthe recovery boot, may set a new reference state from the <strong>ru</strong>nn<strong>in</strong>g system.The actual encryption key does not change dur<strong>in</strong>g the recovery process.2.3 User ExperienceThe user experience hides most of the details. When switch<strong>in</strong>g on their PC, userswill see a text-mode prompt for their PIN and/or USB stick. If the platform is not<strong>in</strong> reference state they will next be prompted for their recovery key or password.Otherwise the boot process will resume after the PIN or USB key have beenprovided. Depend<strong>in</strong>g on how the computer is be<strong>in</strong>g used, users may experiencea recovery prompt from time to time, e.g. after accidentally leav<strong>in</strong>g a bootableCD or DVD <strong>in</strong> the drive or when a bootable USB stick is plugged <strong>in</strong>to theircomputer.3 Security Considerations3.1 Security ObjectivesThe primary security objective is confidentiality of any data stored on the encryptedvolume. Encryption alone, however, cannot guarantee confidentiality asa system security property. Its scope has—at least—two <strong>in</strong>tr<strong>in</strong>sic limitations.First, disk encryption is not expected to protect cleartext data before en- or afterdecryption. The system must provide further security mechanisms to providesuch protection. Second, encryption does not solve confidentiality problems butrather shifts them: from the data to the key(s). Encryption therefore cannot bemore secure than its key management allows it to be.A secondary objective is <strong>in</strong>tegrity of the data stored on disk. We consider<strong>in</strong>tegrity here only <strong>in</strong>sofar as it is a prerequisite for protect<strong>in</strong>g cleartext dataand keys.3.2 Attack Success ConditionsThere are several dist<strong>in</strong>ct conditions that, if achieved by an attacker, wouldviolate the primary security objective:


186 S. Türpe et al.– The attacker obta<strong>in</strong>s all or some ciphertext and breaks the encryption.– The attacker obta<strong>in</strong>s the cleartext from place or situation where cleartext isnormally handled. The attacker works outside the scope of the encryption<strong>in</strong> this case and exploits a vulnerability elsewhere.– The attacker obta<strong>in</strong>s all or some ciphertext as well as sufficient key material,and decrypts the ciphertext.An attack may achieve everyth<strong>in</strong>g at once, or it may comprise a sequence ofsteps, each of which br<strong>in</strong>gs the attacker closer to success. We assume that stepscan be arranged <strong>in</strong> arbitrary sequence. But we require that no step except thelast one may spoil cont<strong>in</strong>uation, e.g. by prevent<strong>in</strong>g necessary subsequent stepsor by clearly alert<strong>in</strong>g the user to the ongo<strong>in</strong>g attack before it is f<strong>in</strong>ished.3.3 Attack SituationsWhen access<strong>in</strong>g the system, the attacker may encounter one of several differentsituations. Situations can be thought of as a set of parameters that the attackerdoes not control. The situation found, together with capabilities, determ<strong>in</strong>e whatthe attacker can achieve dur<strong>in</strong>g the visit. Though not be<strong>in</strong>g able to control thesituation, <strong>in</strong> a targeted attack the attacker can wait for the right moment. Someparameters, however, may have a very low probability of chang<strong>in</strong>g. An exampleis the configuration of a disk encryption scheme once it has been <strong>in</strong>stalled.Situational parameters are:– The time and channel available for undetected <strong>in</strong>teraction with the targetsystem. This is really a cont<strong>in</strong>uum but we can roughly dist<strong>in</strong>guish threeclasses of physical access: brief visits (up to few m<strong>in</strong>utes), temporary controlof the device (up to a few days), and permanent possession. Another channelis remote communication. We assume that the attacker must successfully<strong>in</strong>stall software on the target mach<strong>in</strong>e to ga<strong>in</strong> such a channel, and the channelis available only while this software is <strong>ru</strong>nn<strong>in</strong>g.– The boot state of the target computer. The system may be powered on andfully booted, or it may be powered off. When it is <strong>ru</strong>nn<strong>in</strong>g, encryption keysare present <strong>in</strong> RAM. The attacker can power it down at the risk of thechange be<strong>in</strong>g noticed by the user. If the system is powered off, the attackeris not able to fully boot the system without the user-managed secrets. Hemay boot his own software, however; this is <strong>in</strong>deed one of the actions thatus<strong>in</strong>g a TPM should protect aga<strong>in</strong>st.– System configuration. There is a vast amount of system configurations thatan unprepared attacker may encounter. For a particular target system, however,the configuration rarely changes. If it does, and the system has a TPMand uses it, expected or deliberate changes are likely to be accepted, chang<strong>in</strong>gthe reference configuration.If the attacker encounters the system <strong>ru</strong>nn<strong>in</strong>g and has enough time available,the attack is successful immediately: keys can be read from memory us<strong>in</strong>g oneof the known onl<strong>in</strong>e attack techniques, and used to decrypt disk contents.


Attack<strong>in</strong>g the BitLocker Boot Process 1873.4 Adversary CapabilitiesWith physical access to the target system the attacker can perform one or multipleactions depend<strong>in</strong>g on the time available, the state of the system and whether(later) detection is acceptable or not. We are th<strong>in</strong>k<strong>in</strong>g along the l<strong>in</strong>es of [9] herebut do not attempt to establish a comprehensive model. Our lists below arelikely <strong>in</strong>complete.Brief visits Dur<strong>in</strong>g a brief visit the attacker could:Power off or on the system, depend<strong>in</strong>g on its current state. Power<strong>in</strong>g off impliesthat the orig<strong>in</strong>al state cannot be restored if the attacker does not knowthe secrets requested at boot time. Although the change is noticeable, theattacker may get away with it if the change is plausible to the user. If thesystem is orig<strong>in</strong>ally powered off, the attacker can revert to the orig<strong>in</strong>al stateat any time. The attacker will not be able to boot <strong>in</strong>to the regular systemwithout know<strong>in</strong>g the boot-time secrets.Modify boot code if the system is powered off or can plausibly be left <strong>in</strong> thiscondition. Whether and when such a modification might be detected by theuser depends on various side conditions, particularly on the use of a TPMand the actions the code performs. We can expect such code to be executedat least once.Steal the system, turn<strong>in</strong>g a brief visit <strong>in</strong>to permanent possession of the mach<strong>in</strong>e.Theft will usually be detected. The attacker may or may not be ableto preserve the boot state of the mach<strong>in</strong>e, depend<strong>in</strong>g on whether it has asufficiently charged battery or not.Replace the mach<strong>in</strong>e with one that looks exactly the same. This requires somepreparation and <strong>in</strong>vestment but seems feasible. In addition to gett<strong>in</strong>g handson the target mach<strong>in</strong>e permanently the attacker reta<strong>in</strong>s the ability of <strong>in</strong>teract<strong>in</strong>gwith the target user. The attack will be noticed as soon as the copybehaves differently than the target would, or any other dist<strong>in</strong>guish<strong>in</strong>g featurebecomes visible and noticed.Copy small amounts of data from the disk but not an entire volume or disk.This leaves no traces if the system is powered off, or changes its state if itwas powered on. (We assume the software <strong>ru</strong>nn<strong>in</strong>g on the mach<strong>in</strong>e cannot beexploited to this end.) Copy<strong>in</strong>g entire disks fails not because of any securitymechanism but due to the amount of time required.Possibly copy small amounts of RAM contents if a DMA-capable <strong>in</strong>terface isavailable and supported, and the system is up and <strong>ru</strong>nn<strong>in</strong>g.Temporary control. If the attacker can spend more, but sill limited time withthe system, additional actions become available:Install a concealed hardware extension such as a key logger. Whether the systemhas to be powered down if encountered <strong>ru</strong>nn<strong>in</strong>g depends on the type ofextension and various details of the hardware design.


188 S. Türpe et al.Copy the entire disk or an entire volume of data. This leaves no traces if thesystem is powered off, or may change its power state if it was powered on.However, given sufficient time the attacker may be able to disconnect thedisk from the system without resett<strong>in</strong>g the mach<strong>in</strong>e, connect it to anothermach<strong>in</strong>e, copy all data, and reconnect the drive to the target mach<strong>in</strong>e.Non-dest<strong>ru</strong>ctive attacks aga<strong>in</strong>st a TPM or other hardware components such asa TPM reset attack [10,11]. Such attacks may have specific prerequisites. Areset attack aga<strong>in</strong>st a TPM, for <strong>in</strong>stance, requires that the attacker knows theproper sequence of PCR values dur<strong>in</strong>g regular boot. One way of obta<strong>in</strong><strong>in</strong>g thissequence would be to record it dur<strong>in</strong>g such a boot process, which requires theability to boot the unmodified system to the po<strong>in</strong>t where the TPM is used.Permanent access. An attacker <strong>in</strong> permanent possession of the target systemhas all the capabilities described above. The difference from temporary controlis that the attacker does not have to hide anyth<strong>in</strong>g from the user. Dest<strong>ru</strong>ctiveattacks become an option.Communication. Communication with the attacker is possible whenever the attackermanages to <strong>ru</strong>n his own software on the target system or controls exist<strong>in</strong>gsoftware with communication capabilities. There are different modes of communication.The most common are: stor<strong>in</strong>g data locally where they can be pickedup later; transmitt<strong>in</strong>g data through a network <strong>in</strong>terface card to the local wiredor wireless network; or us<strong>in</strong>g an IP network if the computer is connected toone. None of these options requires that the attacker uses the operat<strong>in</strong>g system<strong>in</strong>stalled on the target system.4 Attack Strategies4.1 Plausible RecoveryThe attacker modifies the BitLocker code on disk, add<strong>in</strong>g a backdoor. Such abackdoor could be as simple as sav<strong>in</strong>g a clear key <strong>in</strong> some location on disk orelsewhere <strong>in</strong> the system from where it can be retrieved later. This modificationwill of course be detected the next time the system is started by a legitimate user.However, the attacker hopes that the user applies one of the TPM-<strong>in</strong>dependentrecovery mechanisms to overcome the problem. The attacker later visits thesystem aga<strong>in</strong> to collect the key. Encrypted volume data could be copied dur<strong>in</strong>geach visit to the target system as the actual encryption key does not usuallychange.Requirements This attack requires:– that recovery mechanisms are used at all, and– that the attacker can physically access the target mach<strong>in</strong>e at just the righttime without tak<strong>in</strong>g it away permanently, and– that the reported platform validation error seems plausible for the victim.


Attack<strong>in</strong>g the BitLocker Boot Process 189One obvious implementation of this attack would be to wait for a situationthat plausibly changes the state of the platform, such as a repair. It may alsobe possible to provoke such a situation. The attacker will then have to sneak<strong>in</strong>to the process somewhere before the user accepts the seem<strong>in</strong>gly legitimatemodification. This would mask the malicious change with the legitimate one.Result. If the attack succeeds, the attacker has successfully planted a backdoor<strong>in</strong>to the system <strong>in</strong> such a way that all software-based security features could becircumvented. The attack is unlikely to be noticed by the victim. In order to getboth the encrypted data and the secret key the attacker will have to visit thetarget system at least twice. However, the backdoor may also use other channelsto leak cleartext data, possible <strong>in</strong>creas<strong>in</strong>g the risk of detection.4.2 Spoofed PromptSimilar to the plausible recovery attack, the attacker modifies BitLocker on thetarget system and lives with the fact that the TPM will detect this modification.The attacker adds code that spoofs the user <strong>in</strong>terface of BitLocker up to the po<strong>in</strong>twhere the user has given up his secrets. The malicious code may spoof either thenormal-operations UI or the prompt for a recovery key.Requirements. This attack requires that the attacker can physically access thetarget system. It is not necessary that the attacker takes the system away permanently.Result. The attack is easily detected as soon as secrets have been provided to thespoofed prompt. After detection it is generally possible to prevent the attackerfrom <strong>in</strong>teract<strong>in</strong>g with the compromised system aga<strong>in</strong>. Also, the TPM will refuseto unseal its part of the key material while the platform is <strong>in</strong> this modified state.If a recovery prompt is successfully spoofed and operated by the user, the attackwill yield sufficient key material for decryption of a volume.Extensions. Although it may work under some circumstances, this attack doesnot appear very critical. However, the next subsection describes a more criticalextension.4.3 Tamper and RevertThe tamper and revert attack extends the spoofed prompt attack. Instead ofsimply accept<strong>in</strong>g that platform modifications can be detected, the attacker attemptsto exploit tamper<strong>in</strong>g yet hid<strong>in</strong>g it. This becomes surpris<strong>in</strong>gly easy if oneadditional boot cycle is possible. The attacker could make a temporary modificationto TPM-verified code. If we stick to the spoofed prompt example, thismeans to add a cleanup function to the malicious code, whose purpose it is torestore the former platform state. After a reboot—which might be <strong>in</strong>itiated bythe malicious code after show<strong>in</strong>g a bogus error message—the platform state asmeasured will be compliant with the reference PCR values aga<strong>in</strong>.


190 S. Türpe et al.Requirements. Requirements are similar to those of the spoofed prompt attack.In addition the attacker needs to get away with a boot cycle after platform<strong>in</strong>tegrity failure without disturb<strong>in</strong>g the victim so much as to spoil further stepsof the attack. Depend<strong>in</strong>g on how the credentials or keys obta<strong>in</strong>ed are transmittedto the attacker, a further visit to the system may or may not be required.Results. This attack yields copies of keys controlled by the user. In a simpleimplementation these keys will end up <strong>in</strong> clear somewhere on the target systemitself but more sophisticated approaches can be imag<strong>in</strong>ed, for <strong>in</strong>stance send<strong>in</strong>gthe key somewhere us<strong>in</strong>g a built-<strong>in</strong> WLAN <strong>in</strong>terface. Additional effort is requiredon the attacker’s part to ga<strong>in</strong> access to TPM-managed key material.4.4 Replace and RelayThis is a hardware-level phish<strong>in</strong>g attack. The attacker replaces the entire targetmach<strong>in</strong>e with another computer prepared for the attack. The replacement, whenturned on, produces all the messages and prompts that the orig<strong>in</strong>al mach<strong>in</strong>ewould have produced. Up to the po<strong>in</strong>t where BitLocker would start, it takes alluser <strong>in</strong>puts (via keyboard or USB) and relays them to the attacker, e.g. us<strong>in</strong>gradio. The attacker, be<strong>in</strong>g <strong>in</strong> possession of the unmodified orig<strong>in</strong>al system, usesthis <strong>in</strong>formation to start up the stolen computer.Requirements. This attack requires that:– the attacker is capable of replac<strong>in</strong>g the BitLocker-protected mach<strong>in</strong>e altogetherwith an identically-look<strong>in</strong>g copy, and– the mach<strong>in</strong>e is plausibly turned off or <strong>in</strong> suspend-to-disk mode when thelegitimate user returns, and– the replacement device is capable of relay<strong>in</strong>g user <strong>in</strong>put to the attacker.The attacker will have to rema<strong>in</strong>—or leave some device—<strong>in</strong> proximity to thetarget until the next boot is <strong>in</strong>itiated by the victim. The attacker will also needsome prior knowledge of non-secret facts, specifically everyth<strong>in</strong>g that might beneeded to perfectly reproduce the user experience.Result. As a result of this attack, the attacker receives the user-controlled secrets.Depend<strong>in</strong>g on the mode <strong>in</strong> which BitLocker is deployed on the target system,the result is either key material or authentication credentials or both. Either onecan be used <strong>in</strong> conjunction with the unmodified system to start up the operat<strong>in</strong>gsystem. Security mechanisms of the operat<strong>in</strong>g system rema<strong>in</strong> <strong>in</strong>tact; anotherattack will be required to actually access any encrypted data. Such attacks exist[8,7]. The attack will likely be noticed right after the victim provided credentialsor keys to the spoofed mach<strong>in</strong>e. This attack may be comb<strong>in</strong>ed with any attackthat yields the TPM-managed portion of the key material.Extensions and Variants. A more sophisticated version of this attack <strong>in</strong>volvestwo-way communications, turn<strong>in</strong>g the replacement <strong>in</strong>to a term<strong>in</strong>al of the stolentarget mach<strong>in</strong>e. This would probably require quite some additional effort but


Attack<strong>in</strong>g the BitLocker Boot Process 191might extend the time span between success and detection of the attack. Allvariants of this attack may also be attempted aga<strong>in</strong>st recovery mechanisms,which yields sufficient key material to decrypt disk contents immediately.4.5 Preemptive ModificationThis attack is similar to the plausible recovery attack, but at a different po<strong>in</strong>t <strong>in</strong>time. The recovery attack targets systems on which BitLocker has already beenactivated. Preemptive modification attacks earlier, before BitLocker has beenactivated at all.When def<strong>in</strong><strong>in</strong>g the reference state for future boot<strong>in</strong>g, the operator has nochoice other than us<strong>in</strong>g the current platform state. BitLocker does not providethe user with any means of verify<strong>in</strong>g that this current state has or hasn’t anyparticular property. If an attacker manages to modify critical parts of the platformbefore BitLocker is activated, this modification therefore goes unnoticedand will be <strong>in</strong>corporated <strong>in</strong>to the t<strong>ru</strong>sted (but not t<strong>ru</strong>stworthy) platform state.Requirements. Preemptive modification requires that the attacker gets physicalaccess to the target system before BitLocker is activated. Arbitrary modificationsare possible at that time that would weaken the security of the BitLocker<strong>in</strong>stance affected forever. Another physical visit may be required later to retrievea disk image for decryption or leaked cleartext. However, the system may alsobe modified <strong>in</strong> such a way that it leaks data at <strong>ru</strong>ntime. Everyone who getsphysical access to the mach<strong>in</strong>e or OS <strong>in</strong>stallation media before BitLocker setupis a potential attacker.Results. The attacker potentially ga<strong>in</strong>s read and write access to all data handledon the system throughout its lifetime. This attack is hard to detect unless thereare additional means of verify<strong>in</strong>g the <strong>in</strong>tegrity of executable code aga<strong>in</strong>st externalreferences.5 Causes and Contribut<strong>in</strong>g FactorsThis section identifies factors that make the overall system—a PC with BitLockerand T<strong>ru</strong>sted Comput<strong>in</strong>g technology—vulnerable to the attacks described above.Factors <strong>in</strong>clude fundamental properties of the security mechanisms <strong>in</strong>volved aswell as features <strong>in</strong> the design and implementation of BitLocker and the T<strong>ru</strong>stedComput<strong>in</strong>g platform.Authenticated boot. Theory states that secure boot<strong>in</strong>g requires an appropriateaction if the measured state deviates from the reference. The boot processcould be stopped or it may be possible to fix the issue once it had beendetected [2]. So far, however, we have only authenticated boot. The TPMdoes not enforce a t<strong>ru</strong>sted platform state, it only refuses to unseal a key ifthe state is currently not t<strong>ru</strong>sted. This leaves loopholes for attacks, but alsomakes it easier to provide recovery mechanisms if they are desired.


192 S. Türpe et al.No t<strong>ru</strong>sted path to the user. BitLocker uses secrets to authenticate the user:the PIN and key material. The channel between the legitimate user and thesystem <strong>in</strong> a t<strong>ru</strong>sted state is prone to spoof<strong>in</strong>g and man-<strong>in</strong>-the-middle attacks(replace and relay; spoofed prompt; and tamper and revert). or specifically,the system lacks context-awareness and the user is unable of authenticat<strong>in</strong>gthe system. Similar problems exist elsewhere, e.g. ATM skimm<strong>in</strong>g. Bothdirections of authentication can be discussed separately:No context-awareness. The BitLocker has no means of determ<strong>in</strong><strong>in</strong>g whetherthe computer is under control of a legitimate user or somebody else. Itsimply assumes that whoever provides the correct key or credential is alegitimate user. Although request<strong>in</strong>g a PIN or key may be <strong>in</strong>terpreted asauthentication, it is not a very strong one, and add<strong>in</strong>g stronger authenticationmay be difficult.Lack of system authentication. While BitLocker is capable of authenticat<strong>in</strong>gits user at least <strong>in</strong> the weak sense described above, the user has no meansof verify<strong>in</strong>g authenticity and <strong>in</strong>tegrity of the device. Keys and passwordsare to be entered <strong>in</strong>to an unauthenticated computer.History-bounded platform validation. The T<strong>ru</strong>sted Comput<strong>in</strong>g platform detectsand reports platform modifications only with<strong>in</strong> the scope of the current bootcycle. BitLocker uses this feature through the seal<strong>in</strong>g function of the TPMand does not add anyth<strong>in</strong>g. The system is therefore unable to detect, andreact to, any tamper<strong>in</strong>g <strong>in</strong> the past that has not left permanent traces <strong>in</strong> thesystem.Incomplete diagnostic <strong>in</strong>formation. If current and reference state are out ofsync, it is difficult or even impossible for the user or adm<strong>in</strong>istrator to determ<strong>in</strong>ethe exact cause(s). This leaves the user with a difficult choice: touse recovery mechanisms bl<strong>in</strong>dly, or not to use them at all. The lack of diagnostic<strong>in</strong>formation contributes to the plausible recovery attack. Note thatdetailed diagnostic <strong>in</strong>formation may not be required where a t<strong>ru</strong>sted statecan be enforced, e.g. by re-<strong>in</strong>stall<strong>in</strong>g software from t<strong>ru</strong>sted sources.Lack of external reference. This is another issue that has already been discussed<strong>in</strong> the literature. BitLocker is capable only of us<strong>in</strong>g any current platform stateas a reference for future boot cycles. There are no means of verify<strong>in</strong>g that thisreference state is t<strong>ru</strong>stworthy, open<strong>in</strong>g the road to preemptive modificationattacks.Recovery mechanisms that circumvent the TPM altogether. Except for TPMreset and preemptive modification, all attacks described above do or mayprofit from the recovery mechanisms built <strong>in</strong>to BitLocker. These mechanismspose a particularly attractive target as they yield a key that is <strong>in</strong>dependentfrom the TPM and thus can be used more flexibly. The plausible recoveryattack would not even be possible without recovery mechanisms.Onl<strong>in</strong>e attacks. Disk encryption does not protect from onl<strong>in</strong>e attacks [6,7,8] andis not expected to do so. They must be considered, however, as they offer astraightforward way of f<strong>in</strong>ish<strong>in</strong>g the attack once the attacker has obta<strong>in</strong>edthe target system along with sufficient secrets to complete the boot process.


Attack<strong>in</strong>g the BitLocker Boot Process 193Table 1. Attack scenarios and contribut<strong>in</strong>g factorsReplaceand relayPlausibleRecoverySpoofedpromptTamperand revertAuthenticated boot • •No t<strong>ru</strong>sted path to user • • •No context awareness •Lack of systemauthentication• •History-boundedplatform validationIncomplete diagnostic<strong>in</strong>formationLack of externalreference••Preemptivemodification• •Onl<strong>in</strong>e attacks • • •Recovery mechanismscircumvent<strong>in</strong>g TPM• • • •Unprotected disk space • • •Confidentiality assecurity objective• • • • •Large amount of unprotected disk space. This is a secondary contribut<strong>in</strong>g factorto attacks <strong>in</strong>volv<strong>in</strong>g purposeful, detectable modification of the platform(plausible recovery; spoofed prompt; tamper and revert). Large amounts ofdisk space are available for the attacker to <strong>in</strong>stall software or data <strong>in</strong>. Thismay be difficult to avoid, though.Confidentiality as the security objective. The security objective of disk encryptionalso has an impact on attacks. In order to achieve this objective, theattacker has to obta<strong>in</strong> a small amount of protected data—the key—alongwith a larger amount of unprotected data—the ciphertext—or a function<strong>in</strong>gdecryption device. This entails a great deal of flexibility on the attacker’spart: <strong>in</strong>dividual steps of the attack can be executed <strong>in</strong> almost arbitrary sequence,and there is little the victim can do to restore secrecy once it hasbeen lost. The latter is what Whitten and Tygar call the barn door property[12].Table 1 shows how these causes and factors contribute to the attacks describedbefore. Each column represents an attack, each l<strong>in</strong>e a cause or factor. If a factorcontributes to an attack—makes it possible, makes it easier, or makes the resultmore useful for the attacker—the respective cell is marked with an X. The lasttwo l<strong>in</strong>es conta<strong>in</strong> question marks <strong>in</strong> all cells: the authors do not fully understandthe impact of these factors yet.


194 S. Türpe et al.Fig. 1. Spoofed BitLocker PIN-entry screen6 Proof-of-concept ImplementationWe have fully implemented the tamper and revert attack described <strong>in</strong> section 4.3,<strong>in</strong> order to show its practical feasibility.The attacker <strong>in</strong>stalls the BitLocker PIN Trojan on the victim’s computerby start<strong>in</strong>g it from a specially prepared USB drive which conta<strong>in</strong>s a strippeddown L<strong>in</strong>ux system. This takes less than two m<strong>in</strong>utes and requires no<strong>in</strong>teraction.The BitLocker PIN Trojan consists of a boot loader <strong>in</strong>stalled <strong>in</strong>to the MBRand a second stage that is loaded from an unencrypted NTFS partition which ispart of every BitLocker <strong>in</strong>stallation. An <strong>in</strong>stallation tool is responsible for stor<strong>in</strong>gthe second stage along with the old MBR as a normal file <strong>in</strong>to a cont<strong>in</strong>uous areaof the unencrypted NTFS partition. The LBA address of the beg<strong>in</strong>n<strong>in</strong>g of thefile is written <strong>in</strong>to the MBR.At the next boot, the MBR boot loader loads this file and transfers control toit. A fake BitLocker prompt is displayed (see figure 1); the entered PIN is stored<strong>in</strong> the NTFS partition, the orig<strong>in</strong>al MBR is restored and the system rebooted.Later, the entered PIN can be read from the NTFS partition.7 ConclusionWe outl<strong>in</strong>ed five strategies for targeted attacks aga<strong>in</strong>st BitLocker, a TPMsupported,software-based disk encryption system. All five strategies requireand exploit physical <strong>in</strong>teraction of the attacker with the target computer. WhileT<strong>ru</strong>sted Comput<strong>in</strong>g is expected to help protect aga<strong>in</strong>st such attacks, our


Attack<strong>in</strong>g the BitLocker Boot Process 195research shows this is not necessarily the case. Us<strong>in</strong>g a TPM for key management<strong>in</strong> a straightforward way provides only very limited protection aga<strong>in</strong>st a dedicatedattacker. None of our attack strategies targets the TPM as such. Theyall exploit the way it is be<strong>in</strong>g used by one particular implementation of diskencryption.Designers as well as users of disk encryption solutions should be aware ofthese attack strategies <strong>in</strong> order to realistically assess how much security they getout of t<strong>ru</strong>sted comput<strong>in</strong>g. The most important lesson to be learned is that evenwith T<strong>ru</strong>sted Comput<strong>in</strong>g a system needs additional physical protection for goodsecurity. This has been known for the <strong>ru</strong>nn<strong>in</strong>g system [7]; our research showsthat it is t<strong>ru</strong>e as well if the attacker ga<strong>in</strong>s physical access only when the systemis powered off. Even if direct physical attacks are excluded from consideration,T<strong>ru</strong>sted Comput<strong>in</strong>g does not offer the same level of protection as conventionalmeasures of physical security [13,14]Out of the contribut<strong>in</strong>g factors discussed above, three seem c<strong>ru</strong>cial. First,T<strong>ru</strong>sted Comput<strong>in</strong>g as of today is limited to authenticated boot. The technologycannot enforce any policy for a program, malicious or not, that does not requireany support from the TPM to <strong>ru</strong>n. Second, to successfully attack an encryptionscheme one needs to f<strong>in</strong>d just one way to obta<strong>in</strong> a small secret, the key. TheTPM helps protect keys but only dur<strong>in</strong>g part of their life cycle. Third, theuser is forced to t<strong>ru</strong>st the computer with his secrets, regardless of its state.There is no way for the user to detect skillful tamper<strong>in</strong>g and man-<strong>in</strong>-the-middleattacks.A proof-of-concept implementation of the tamper and revert attack showsthat malicious manipulation of boot code is not only a theoretical issue.Our work leads to several questions for further research:– Design standards and evaluation criteria for TPM-supported disk encryption.The po<strong>in</strong>t of this paper is not to dismiss T<strong>ru</strong>sted Comput<strong>in</strong>g as uselessbut rather to get a better idea how it should be used <strong>in</strong> particular applicationsto achieve the security properties desired.– More generally, it seems that the exact role of T<strong>ru</strong>sted Comput<strong>in</strong>g technologywith<strong>in</strong> applications is still unclear. Like any technology, T<strong>ru</strong>sted Comput<strong>in</strong>gprovides primitives and build<strong>in</strong>g blocks that need to be employed and arranged<strong>in</strong> mean<strong>in</strong>gful ways. We hope that a set of patterns will emerge overtime to show developers how to apply T<strong>ru</strong>sted Comput<strong>in</strong>g properly.– Solutions to particular problems, such as establish<strong>in</strong>g t<strong>ru</strong>sted channels betweenthe user and the TPM, or provid<strong>in</strong>g useful diagnostic and reference<strong>in</strong>formation for users and operators to help them <strong>in</strong> mak<strong>in</strong>g their securitydecisions.– Model<strong>in</strong>g of attacker capabilities. We have not found a practical methodthat would have allowed us to model and analyze <strong>in</strong> a systematic way whatan attacker might do to a system. An easy way of describ<strong>in</strong>g a system andanalyz<strong>in</strong>g what could or could not be done to it would be helpful.


196 S. Türpe et al.References1. Mitchell, C.J. (ed.): Research workshop on future TPM functionality: F<strong>in</strong>al report,http://www.softeng.ox.ac.uk/etiss/t<strong>ru</strong>sted/research/TPM.pdf2. Arbaugh, W.A., Farbert, D.J., Smith, J.M.: A secure and reliable bootstrap architecture.In: Proceed<strong>in</strong>gs of the IEEE Symposium on Security and Privacy, pp.65–71. IEEE <strong>Computer</strong> Society, Los Alamitos (1997)3. Fergusson, N.: AES-CBC + Elephant diffuser: A disk encryption algorithm forw<strong>in</strong>dows vista. Tech. rep., Microsoft (2006)4. Microsoft TechNet. BitLocker Drive Encryption Technical Overview (May 8, 2008),http://technet.microsoft.com/en-us/library/cc732774.aspx5. NVlabs: NVbit: Access<strong>in</strong>g bitlocker volumes from l<strong>in</strong>ux. Web page (2008),http://www.nvlabs.<strong>in</strong>/node/96. Hendricks, J., van Doorn, L.: Secure bootstrap is not enough: Shor<strong>in</strong>g up thet<strong>ru</strong>sted comput<strong>in</strong>g base. In: Proceed<strong>in</strong>gs of the Eleventh SIGOPS European Workshop,ACM SIGOPS. ACM Press, New York (2004)7. Halderman, J.A., Schoen, S.D., Hen<strong>in</strong>ger, N., Clarkson, W., Paul, W., Calandr<strong>in</strong>o,J.A., Feldman, A.J., Appelbaum, J., Felten, E.W.: Lest we remember: Cold bootattacks on encryption keys. Tech. rep., Pr<strong>in</strong>ceton University (2008)8. Becher, M., Dornseif, M., Kle<strong>in</strong>, C.N.: Firewire: all your memory are belong to us.Slides, http://md.hudora.de/presentations/#firewire-cansecwest9. Templeton, S.J., Levitt, K.: A requires/provides model for computer attacks. In:Proceed<strong>in</strong>gs of New Security Paradigms Workshop, pp. 31–38. ACM Press, NewYork (2000)10. Sparks, E.R.: Security assessment of t<strong>ru</strong>sted platform modules. Tech. rep., DartmouthCollege (2007)11. Sparks, E.R.: TPM reset attack. Web page,http://www.cs.dartmouth.edu/~pkilab/sparks/12. Whitten, A., Tygar, J.D.: Why Johnny can’t encrypt. In: Proceed<strong>in</strong>gs of the 8thUSENIX Security Symposium (1999)13. We<strong>in</strong>gart, S.H.: Physical security devices for computer subsystems: A survey ofattacks and defenses. In: Paar, C., Koç, Ç.K. (eds.) CHES 2000. LNCS, vol. 1965,pp. 302–317. Spr<strong>in</strong>ger, Heidelberg (2000)14. We<strong>in</strong>gart, S.: Physical Security Devices for <strong>Computer</strong> Subsystems: A Surveyof Attacks and Defenses 2008, updated from the ches 2000 version (2008),http://www.atsec.com/downloads/pdf/phy_sec_dev.pdf15. Drimer, S., Murdoch, S.J.: Keep your enemies close: Distance bound<strong>in</strong>g aga<strong>in</strong>stsmartcard relay attacks. In: USENIX Security 2007 (2007)16. Tygar, J.D., Yee, B.: Dyad: A system for us<strong>in</strong>g physically secure coprocessors.In: Tech. rep., Proceed<strong>in</strong>gs of the Jo<strong>in</strong>t Harvard-MIT Workshop on TechnologicalStrategies for the Protection of Intellectual Property <strong>in</strong> the Network MultimediaEnvironment (1991)17. Grawrock, D.: The Intel Safer Comput<strong>in</strong>g Initiative: Build<strong>in</strong>g Blocks for T<strong>ru</strong>stedComput<strong>in</strong>g. Intel Press (2006)18. Hargreaves, C., Chivers, H.: Recovery of encryption keys from memory us<strong>in</strong>g a l<strong>in</strong>earscan. In: Proceed<strong>in</strong>gs of Third International Conference on Availability, Reliabilityand Security, ARES 2008, pp. 1369–1376 (2008), doi:10.1109/ARES.2008.109


Secure VPNs for T<strong>ru</strong>sted Comput<strong>in</strong>g EnvironmentsSteffen Schulz and Ahmad-Reza SadeghiHorst-Görtz Institute and Chair for System Security, Ruhr-University Bochum{steffen.schulz,ahmad.sadeghi}@t<strong>ru</strong>st.<strong>ru</strong>b.deAbstract. Virtual Private Networks are a popular mechanism for build<strong>in</strong>g complexnetwork <strong>in</strong>frast<strong>ru</strong>ctures. Such <strong>in</strong>frast<strong>ru</strong>ctures are usually accompanied bystrict adm<strong>in</strong>istrative restrictions on all VPN endpo<strong>in</strong>ts to protect the perimeter ofthe VPN. However, enforcement of such restrictions becomes difficult if theseendpo<strong>in</strong>ts are personal computers used for remote VPN access. Commonly employedmeasures like anti-vi<strong>ru</strong>s or software agents fail to defend aga<strong>in</strong>st unanticipatedattacks. The T<strong>ru</strong>sted Comput<strong>in</strong>g Group <strong>in</strong>vested significant work <strong>in</strong>toplatforms that are capable of secure <strong>in</strong>tegrity report<strong>in</strong>g. However, t<strong>ru</strong>sted bootand remote attestation also require a redesign of critical software components toachieve their full potential.In this work, we design and implement a VPN architecture for t<strong>ru</strong>sted platforms.We solve the conflict between security and flexibility by implement<strong>in</strong>g aself-conta<strong>in</strong>ed VPN service that resides <strong>in</strong> an isolated area, outside the operat<strong>in</strong>gsystem environment visible to the user. We develop a hardened version of theIPsec architecture and protocols by address<strong>in</strong>g known security issues and reduc<strong>in</strong>gthe overall complexity of IPsec and IKEv2. The result<strong>in</strong>g prototype providesaccess control and secure channels for arbitrary local compartments and is alsocompatible with typical IPsec configurations. We expect our focus on security andreduced complexity to result <strong>in</strong> much more stable and thus also more t<strong>ru</strong>stworthysoftware.1 IntroductionVPNs are a simple and cost effective way to manage and control complex networks.With <strong>in</strong>creas<strong>in</strong>g user mobility however, the VPN perimeter also becomes <strong>in</strong>creas<strong>in</strong>glycomplex. Mobile systems are expected to serve as secure VPN gateways, workstationsand personal devices at the same time. As a result, it becomes <strong>in</strong>creas<strong>in</strong>gly difficult toassure the security of such systems. Allow<strong>in</strong>g them to connect to a VPN potentiallyunderm<strong>in</strong>es perimeter security and may expose the network to outside attacks. Vendorstry to solve this conflict with proprietary security software and software agents, but suchsolutions <strong>in</strong>crease complexity of the software stack while decreas<strong>in</strong>g <strong>in</strong>teroperabilitywith other software solutions.With t<strong>ru</strong>sted comput<strong>in</strong>g, the state of a system can be measured at boot time. A hardwareanchor is used to vouch for the correctness of measurement reports, so that the<strong>in</strong>tegrity of a system can be verified by remote parties before grant<strong>in</strong>g any k<strong>in</strong>d of access.The measurement itself however is not sufficient to t<strong>ru</strong>st the system. The <strong>in</strong>tegrityof a software configuration is only useful if the software itself can be t<strong>ru</strong>sted to fulfillthe security requirements. This implies a resistance to attacks and misconfiguration thatL. Chen, C.J. Mitchell, and A. Mart<strong>in</strong> (Eds.): T<strong>ru</strong>st 2009, LNCS <strong>5471</strong>, pp. 197–216, 2009.© Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2009


198 S. Schulz and A.-R. Sadeghicurrent commodity systems do not achieve. We follow architecture proposed <strong>in</strong> [1] toseparate volatile userspace environments from components that are critical to systemsecurity and to allow strong isolation of userspaces for the different roles assumed bythe user.An architecture similar to ours is described <strong>in</strong> <strong>in</strong> [2]. However, their work does notconsider <strong>in</strong>tegration with t<strong>ru</strong>sted comput<strong>in</strong>g technologies. and proved unsuitable for ourwork to build up on.1.1 ContributionThis work adapts the IPsec security architecture for a robust and reliable VPN servicefor t<strong>ru</strong>sted platforms. In our design, critical functionality is externalized <strong>in</strong>to isolated,self-conta<strong>in</strong>ed security services <strong>in</strong> a t<strong>ru</strong>sted hypervisor environment. We use acentral security policy from t<strong>ru</strong>sted storage to establish secure channels between isolateduserspace environments and to connect them to other IPsec networks. As a result,our architecture enables coexistence of arbitrary userspace environments with restrictedworkspaces while reliably enforc<strong>in</strong>g the platform owner’s network access policy.To harden our VPN security service, we <strong>in</strong>vestigate a simplified IPsec architecturesupport<strong>in</strong>g only tunnel mode with ESP 1 protection [3] and IKEv2 2 key negotiation [4].By remov<strong>in</strong>g unnecessary functionality and features that allow <strong>in</strong>secure IPsec operationmodes, we resolve known security issues <strong>in</strong> IPsec and significantly reduce the complexityof architecture and implementation.We have implemented a prototype based on the L4 microkernel to verify the feasibilityof our solution, to evaluate its <strong>in</strong>teroperability with commodity IPsec implementations,and to measure the complexity <strong>in</strong> terms of code size. F<strong>in</strong>ally, we discusscompatibility and security of our architecture and suggest feature improvements.1.2 ApplicationsOur architecture has significant security-benefits for users that assume different rolesdur<strong>in</strong>g their work. The typical example for home users is onl<strong>in</strong>e bank<strong>in</strong>g, where thesVPN architecture allows to setup a fully isolated userspace environment with strongadm<strong>in</strong>istrative restrictions to secure bank<strong>in</strong>g sessions. Similar use-cases can be found<strong>in</strong> corporate environments, where access to critical network resources is often restrictedto mach<strong>in</strong>es with specific software configurations. In such setups, the sVPN service resolvesthe conflict between flexibility and security by mov<strong>in</strong>g all critical functionalityout of the userspace environment. Once we f<strong>in</strong>ish our <strong>in</strong>tegration with t<strong>ru</strong>sted storageand remote attestation, our architecture also allows to verify the state of a peer’s securitysubsystem, enforce arbitrary security requirements on connected userspaces. Additionally,our design also delivers a very simple and usable way to deploy secure andIPsec-compatible VPNs. S<strong>in</strong>ce our design also focuses on m<strong>in</strong>imal complexity for thecritical components, environments with high security demands may also benefit fromthe possibility of formal code-reviews of the critical components of their VPN. F<strong>in</strong>ally,1 Encapsulated Security Payload.2 Internet Key Exchange version 2.


Secure VPNs for T<strong>ru</strong>sted Comput<strong>in</strong>g Environments 199our implementation also provides virtualized IPsec gateways that can be used to consolidatehardware resources <strong>in</strong> more complex VPN setups.1.3 Outl<strong>in</strong>eWe present the general idea of our architecture <strong>in</strong> section 2, followed by a requirementsanalysis <strong>in</strong> section 3. In section 4, we <strong>in</strong>vestigate related VPN designs and security architecturesfor microkernel environments. Section 5 reviews the security of the IPsecarchitecture we leverage on. Based on these results, we design a secure compartmentalizedVPN service <strong>in</strong> <strong>in</strong> section 6. Section 7 presents our prototype implementationand compares its code-complexity with standard implementations. In sections 8 and 9,we discusses how our modifications <strong>in</strong>fluence compatibility and security. We concludewith summary of results and suggestions for future work.2 High-Level ArchitectureFigure 1 shows the VPN architecture of two platforms connected through a wide areanetwork (WAN). The right system shows a commodity IPsec implementation, while theleft system shows the design proposed <strong>in</strong> this work.In commodity systems, IPsec packet process<strong>in</strong>g is typically implemented as partof the network stack <strong>in</strong> the kernel. An IPsec boundary enforces the IPsec security policy(BYPASS, DISCARD, PROTECT) on all traffic that passes through it, divid<strong>in</strong>g the system<strong>in</strong>to a "protected" and "unprotected" area. Userspace environments (compartments) <strong>in</strong>the"protected"areausetheVPNservicebyspecify<strong>in</strong>gthePROTECT-target on specificProposed ArchitectureTypical ArchitectureunprotectedHardwareNICWANNICHardwareHypervisorSecurity ServicesPRNG storage ...sVPNIKE IPsecunprotectedIPsecKernelspaceIKEUserspace"A"Userspace"B"Upl<strong>in</strong>kProviderUserspace "C"protected protected unprotectedIPsec channel from userspace A to CLocal <strong>in</strong>secured IPCprotectedFig. 1. Overview of the sVPN architecture <strong>in</strong>terfac<strong>in</strong>g with a commodity IPsec implementationthrough WAN/Internet. The sVPN security service processes all data pass<strong>in</strong>g through a localchannel between "B" and the "Upl<strong>in</strong>k Provider", accord<strong>in</strong>g its IPsec policy. By apply<strong>in</strong>g IPsecprotection to some of the data streams, local channels are logically extended <strong>in</strong>to secure remotechannels that reach through the unprotected area to a peer IPsec gateway.


200 S. Schulz and A.-R. Sadeghitraffic flows. The IPsec boundary then provides a secure channel through the "unprotected"area. The channel ends at a peer IPsec boundary, which decapsulates the dataand forwards it to its local "protected" area. In such systems, key negotiation is typicallyhandled by the "protected" endpo<strong>in</strong>ts of the channel. With only a s<strong>in</strong>gle IPsec boundary,such systems also support only a s<strong>in</strong>gle "protected" area that must be shared betweenall userspace applications.The left-hand system <strong>in</strong> contrast provides multiple isolated userspace environmentsby design. Virtualization of legacy operat<strong>in</strong>g systems and basic operat<strong>in</strong>g system functionalityis provided by a t<strong>ru</strong>sted hypervisor, which is accompanied by an environmentof system and security services. S<strong>in</strong>ce the different userspace environments have potentiallyconflict<strong>in</strong>g security requirements, they build separate "protected" areas <strong>in</strong> IPsecthat require a dedicated logical IPsec boundary for policy enforcement. Similarly, thekey negotiation component is not part of any particular userspace environment anymorebut must be implemented as a neutral security service of the system. Both componentsare thus implemented as self-conta<strong>in</strong>ed security services <strong>in</strong> the t<strong>ru</strong>sted hypervisor environment.They are configured by the platform owner and do not rely on any unt<strong>ru</strong>stedcomponents to ma<strong>in</strong>ta<strong>in</strong> their security. Once packets are processed, the "unprotected"area has the non-critical task of deliver<strong>in</strong>g the data to the dest<strong>in</strong>ation IPsec gateway. Figure1 thus only shows a s<strong>in</strong>gle common upl<strong>in</strong>k provider for post-process<strong>in</strong>g and upl<strong>in</strong>kmanagement.The proposed compartmentalized architecture is called sVPN architecture throughoutthis paper, our prototype implementation of it is called sVPN service or just sVPN.In <strong>in</strong>cludes the two mentioned security services <strong>in</strong> the hypervisor environment and someunt<strong>ru</strong>sted applications for pre- and post-process<strong>in</strong>g.3 Requirement Analysis3.1 Functional RequirementsIPsec Virtualization. In contrast to typical IPsec implementations, the sVPN servicehas to be able to provide its VPN service for multiple "protected" areas with potentiallyconflict<strong>in</strong>g security requirements./R1/ sVPN must establish bidirectional channels between local compartments andmanage a separate IPsec security policy database (SPD) and security associationdatabase (SAD) for each channel.Usability. To let users to benefit from the enhanced security of our design, it is necessarythat the user <strong>in</strong>terface provides high usability and prevents typical configurationerrors./R2/ sVPN must provide a usable VPN configuration <strong>in</strong>terface that is able to def<strong>in</strong>eand deploy secure VPNs and prevents accidental use of <strong>in</strong>secure cryptographicprimitives, operation modes or authentication schemes./R3/ sVPN must depend on as few components as possible to implement its security.These dependencies must be specified and easy to understand.


Secure VPNs for T<strong>ru</strong>sted Comput<strong>in</strong>g Environments 201Compatibility. Interoperability with other IPsec-based VPN solutions is strongly desired,as long as it does not conflict with the security of the VPN service./R4/ sVPN must be compatible with IPsec <strong>in</strong> typical VPN configuration./R5/ sVPN must provide basic support for the canonical key exchange protocol forIPsec VPNs (i.e., IKEv2).Security Subsystem. We optimize our VPN service for low <strong>in</strong>ternal complexity tofacilitate formal security analysis and to reduce the possibility of security flaws <strong>in</strong> theimplementation./R6/ The sVPN architecture must isolate components that must be t<strong>ru</strong>sted to meet thesecurity requirements./R7/ All critical subcomponents and the services they depend on must be of manageable<strong>in</strong>ternal complexity with simple communication <strong>in</strong>terfaces.3.2 Security RequirementsAdversary Model. To simulate the susceptibility of complex applications to local andremote attacks, we assume an adversary to have full access to all userspaces a legal userof the platform has access to. In contrast to legal users however, adversaries are assumedto have no physical access to the platform. An adversary is considered successful if hemanages to extract secret key material from the sVPN security service or if he is able toviolate the sVPN security policy, for example by creat<strong>in</strong>g additional channels betweenlocal compartments. In addition, when attack<strong>in</strong>g only from "unprotected" compartmentsor networks, i.e. without implicit knowledge of transmitted data, he is also consideredsuccessful if he manages to extract data that is labeled with PROTECT <strong>in</strong> the sVPNsecurity policy.The attack model for the sVPN security service is stronger than that of traditionalIPsec-based VPN solutions. The ma<strong>in</strong> difference is that local compartments which <strong>in</strong>terfacewith sVPN are assumed to be compromised, thus provid<strong>in</strong>g an attacker with reliableaccess to data transfers and statistics about resource usage to launch side-channelattacks (e.g. tim<strong>in</strong>g attacks, traffic pattern analysis). We assume however that isolationprovided by the hypervisor also protects aga<strong>in</strong>st side-channel attacks based on sharedresources[5,6]. Therefore, we only considers side-channel attacks <strong>in</strong> form of traffic patternanalysis.Further, we assume that the IPsec architecture has no security flaws aside from thosementioned <strong>in</strong> section 5.1, i.e. that the core IKEv2 protocol, the ESP protocol and theIPsec architecture itself are sound. Based on these assumptions, we identify the follow<strong>in</strong>grequirements for the sVPN architecture to rema<strong>in</strong> secure <strong>in</strong> the described attack model.Virtualization Security. sVPN has to provide a logically isolated IPsec boundary forevery compartment that uses the service, thus isolat<strong>in</strong>g every connected userspace environment<strong>in</strong>to a separate "protected" area./S1/ sVPN must be able to identify endpo<strong>in</strong>ts of a local channel and must enforce thecorrespond<strong>in</strong>g IPsec policy for that channel.


202 S. Schulz and A.-R. Sadeghi/S2/ Communication channels between local compartments that are not directedthrough sVPN must be restricted by the hypervisor such that they can not be usedto circumvent the security enforced by sVPN./S3/ Although act<strong>in</strong>g as a common endpo<strong>in</strong>t for multiple local channels, sVPN mustnot break isolation between compartments that are not allowed to establish a channelbetween each other.IPsec Security. sVPN must provide a secure VPN service through secure authentication,key management and secure channels./S4/ The sVPN architecture must provide a secure channel for deploy<strong>in</strong>g IPsec policyand authentication secrets to the sVPN service./S5/ sVPN must never disclose any key data to unt<strong>ru</strong>sted components. Accessibilityof key material must be m<strong>in</strong>imized to the necessary sub-components of sVPN./S6/ sVPN must be able to directly authenticate the user of a "protected" area whenrequired so by IPsec policy./S7/ The IPsec compatible remote channels provided by sVPN must be secure./S8/ sVPN must be able to enforce restrictions on the configuration of compartmentsthat request a particular VPN access.S<strong>in</strong>ce non-critical functionality of sVPN, <strong>in</strong>clud<strong>in</strong>g receiv<strong>in</strong>g and send<strong>in</strong>g of data, is externalizedto the connect<strong>in</strong>g "protected" and "unprotected" compartments which are expectedto be compromised, it is not possible to protect aga<strong>in</strong>st DoS <strong>in</strong> the adversary modeldescribed above. If a DoS resistance similar to commodity IPsec implementations is desired,it can thus be implemented <strong>in</strong> the traffic pre-process<strong>in</strong>g <strong>in</strong> unt<strong>ru</strong>sted compartments.4 Related WorkHypervisor-based operat<strong>in</strong>g systems environments with userspaces on multiple virtualmach<strong>in</strong>es have recently been reconsidered as a base for <strong>in</strong>creased security. The idea toexternalize security subsystems <strong>in</strong>to a hypervisor environment resulted <strong>in</strong> several newarchitectures like sHype, Terra, EROS, Nizza and Perseus [7,8,9,10,1,11].A conceptionally similar setup can be found <strong>in</strong> many microkernel operat<strong>in</strong>g systems,but their current IPsec implementations do not exploit the features of their environmentfor additional security. They exist only <strong>in</strong> form of adapted versions from monolithicsystems or university classes 3 .With µSINA, the authors of [2] present a comparable redesign of IPsec for Nizza.In their architecture, a "network hub" is added to the operat<strong>in</strong>g system environment ofa Fiasco/L4 microkernel. It processes traffic between two paravirtualized L<strong>in</strong>ux compartmentsthat <strong>ru</strong>n on top of the microkernel (L4L<strong>in</strong>ux compartments), enforc<strong>in</strong>g IPsecpolicies and traffic protection. µSINA aims for enhanced reliability and security bym<strong>in</strong>imiz<strong>in</strong>g the attack surface of critical components. An implementation of the IPsecpacket process<strong>in</strong>g component is provided with the Viaduct security service.3 See for example www.cis.syr.edu/~wedu/seed/Labs/IPSec/, where simple IPsec process<strong>in</strong>gis regularly implemented on M<strong>in</strong>ix 3.


Secure VPNs for T<strong>ru</strong>sted Comput<strong>in</strong>g Environments 203µSINA was later supplemented by a key negotiation component [12]. To manage thehigh complexity of the IKEv1 protocol, this component was implemented as a port ofthe isakmpd server from the OpenBSD project. Two adapter components for translationto Unix sockets and the servers native management <strong>in</strong>terface PF_KEYv2 [13] whereadded to simplify the port.However, the Viaduct source code is difficult to read, poorly documented and conta<strong>in</strong>sconsiderable amount of non-critical code, for example to route packets betweencompartments. We were also unable to test it s<strong>in</strong>ce the development was discont<strong>in</strong>uedand does not work with the current DROPS environment. From the descriptions of theIKEv1 implementation <strong>in</strong> [12], it is also obvious that µSINA suffers from the highcomplexity of the IKEv1 standard.In contrast to µSINA, we do not aim for a generic IPsec implementation. As detailed<strong>in</strong> the follow<strong>in</strong>g sections, we propose a more abstract VPN service <strong>in</strong>stead thatimplements only a reduced set of the IPsec functionalities and exploits the potentialof secure virtualization and t<strong>ru</strong>sted comput<strong>in</strong>g architecture. The result<strong>in</strong>g design solvesmany common security issues of VPN endpo<strong>in</strong>ts and maximizes the leverage on policyenforcement available through remote attestation.5 IPsec SecurityThe IPsec security standard was first specified <strong>in</strong> 1995 [14]. It is a collection of Internetstandards that provide access control, <strong>in</strong>tegrity protection and authentication, confidentialityand partial protection aga<strong>in</strong>st packet replay.The Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force (IETF) published the latest version of the architecture<strong>in</strong> [15], featur<strong>in</strong>g ma<strong>in</strong>ly a simplified design and description. The associatedInternet Key Exchange (IKE) protocol was subject to a major redesign and publishedas version 2 (IKEv2) <strong>in</strong> [4]. IPsec uses two protocols to implement its security serviceson a per packet basis, Authenticated Header (AH) and Encapsulated SecurityPayload (ESP). While the latest version of AH was published without major modifications[16], the current revision of ESP [3] was enhanced with extended Traffic FlowConfidentiality (TFC) and Comb<strong>in</strong>ed Cipher Modes. The term IPsec is used throughoutthis work to refer to this latest revision of architecture and protocols.The reader is referred to [17] for an <strong>in</strong>troduction to IPsec or [18] for a review thatfocuses on cryptographic aspects. For a discussion of the IKE protocol design and alternativessee [19].5.1 Security IssuesOne of the early known security evaluation of IPsec is the comprehensive analysis <strong>in</strong>[20]. Its authors criticize the complexity of the architecture, po<strong>in</strong>t out several designweaknesses and also demonstrate some simple attacks. Their concerns have been confirmedwhen systematic design flaws where found <strong>in</strong> IPsec operation modes that useESP without <strong>in</strong>tegrity protection[21,22]. In addition, concerns about <strong>in</strong>formation leakagedue to traffic analysis led to the advanced TFC scheme <strong>in</strong>troduced <strong>in</strong> [23]. Thiscriticism from the academic community found only limited recognition <strong>in</strong> the IETF,


204 S. Schulz and A.-R. Sadeghiwith the result that <strong>in</strong>secure configurations are still part of the standard and thus alsostill <strong>in</strong> operation. Based on these works and our own review of the latest revision of theIPsec standards and implementations, we identify the follow<strong>in</strong>g security issues <strong>in</strong> thecurrent specifications./P1/ Encryption-only ESP. While previous attacks on ESP encryption without authenticationor with AH-based authentication have been blamed on implementations,[22] shows that it is <strong>in</strong>deed a flaw <strong>in</strong> the standard to allow encrypted traffic tobe unauthenticated or make use of other layers to authenticate the traffic./P2/ Traffic Flow Confidentiality. To prevent <strong>in</strong>formation leakage via traffic flowanalysis, the authors of [23] propose a comb<strong>in</strong>ation of payload padd<strong>in</strong>g, <strong>in</strong>jectionof dummy packets and recomb<strong>in</strong>ation of payloads. But although the problem isacknowledged, only a small subset of the proposed traffic obfuscation mechanismswas standardized <strong>in</strong> the latest version of ESP. In addition, even these simplified TFCmeasures are not yet implemented <strong>in</strong> commodity operat<strong>in</strong>g systems like L<strong>in</strong>ux andOpenBSD./P3/ Manual Key<strong>in</strong>g. Manual key<strong>in</strong>g poses a serious security threat. It provides noforward or backward secrecy and enables attacks through observation of ciphertextblock collisions. IPsec however demands explicit support for manual key<strong>in</strong>g forIPsec packet process<strong>in</strong>g [15], even though any secure key provision<strong>in</strong>g could beadapted to use the automated key<strong>in</strong>g <strong>in</strong>terface. As a result, popular IPsec <strong>in</strong>st<strong>ru</strong>ctionguides 4 tend to discuss manual key<strong>in</strong>g <strong>in</strong> great detail and it must be assumed thatsuch configurations are <strong>in</strong> widespread use./P4/ Pre-Shared Key (PSK) Authentication. The IKEv2 specification [4] describesauthentication based on pre-shared keys, a feature that is also much appreciated<strong>in</strong> IPsec configuration guides 5 and likely <strong>in</strong> broad use. As also po<strong>in</strong>ted out <strong>in</strong> thespecification, PSK authentication is only secure when keys with high entropy areused. However, although such an assumption does typically not hold when keys arechosen or transmitted by humans, the specification requires ("MUST") PSK supportfor scenarios where the <strong>in</strong>itiator uses a shared key and the responder uses public-keyauthentication, clearly a scheme that addresses password-based user authentication.The specification also fails to mention any rate limit behavior to counter b<strong>ru</strong>te forceattacks on short PSKs./P5/ Pseudo User Authentication. The IKEv2 authentication mechanismsthemselves are not aware of the type of entity that provides authentication data. Thetwo most common authentication mechanisms, public-key authentication based onX.509 certificates (PKIX) and pre-shared keys, are both often used to authenticateusers. However, none of the major IKEv2 implementations currently support "direct"user authentication. Instead, the shared key or secret key is typically stored onthe local disk, <strong>in</strong> files that are assumed to be accessible only to the platform adm<strong>in</strong>istrator.Authentication secrets are thus actually used as tokens, allow<strong>in</strong>g simpleattacks like theft or use of the access <strong>in</strong> absence of the user./P6/ Complexity. The complexity of IPsec and particularly IKEv1 has often beensubject to criticism, for example <strong>in</strong> [20] and [24]. Subsequent versions of the4 http://www.ipsec-howto.org/5 http://wiki.bsdforen.de/howto/ipsec-vpn


Secure VPNs for T<strong>ru</strong>sted Comput<strong>in</strong>g Environments 205architecture and particularly IKE <strong>in</strong>clude some improvements. However, the complexityof the IPsec architecture and IKEv1 still leads to <strong>in</strong>secure deployments andeven <strong>in</strong>compatibilities <strong>in</strong> the key exchange. This complexity is not necessary however.It was noted <strong>in</strong> [20] already that transport mode is a subset of tunnel mode andthat security features provided AH can by large be replaced by a correspond<strong>in</strong>g configurationand application of the ESP protocol. The IKEv2 is much more simple <strong>in</strong>design than IKEv1, but still has considerable complexity, e.g. <strong>in</strong> the SA negotiationpayloads and the general payload design (wire format). Simpler key negotiationschemes like SKIP [25] and JFK [19] have been proposed, but not accepted for thestandard./P7/ Miscellaneous Issues. Both versions of IKE employ hash-cookies, simple challengesto efficiently filter spoofed <strong>in</strong>itialization requests, thus mitigat<strong>in</strong>g DoS attacks[26]. More advanced protection aga<strong>in</strong>st DoS is possible by forc<strong>in</strong>g <strong>in</strong>itiatorsto <strong>in</strong>vest computation resources, but such proposals have been discarded by theIETF due to unclear patent encumbrance 6 . Also, s<strong>in</strong>ce timeout lengths, retransmissioncounts and session keep-alive behavior for UDP packet transfer <strong>in</strong> IKE is notspecified, it is trivial to f<strong>in</strong>gerpr<strong>in</strong>t IKE servers by observ<strong>in</strong>g such behavior [27].To achieve the security requirements, sVPN has to implement measures aga<strong>in</strong>st thementioned problems. Section 6.6 presents measures taken to mitigate /P1/ to /P6/./P7/ is not covered <strong>in</strong> this work however, s<strong>in</strong>ce any <strong>in</strong>formation leaked this way is notconsidered sensitive. As already mentioned <strong>in</strong> 3, DoS protection is not necessarily atask of the sVPN service and shall be discussed separately <strong>in</strong> section 6.2.6 sVPN DesignThe IPsec architecture uses secure channels essentially to b<strong>in</strong>d transferred data to cryptographicidentities. This mapp<strong>in</strong>g is used to enforce a security policy for each transferreddata packet and provides the secure access control and secure channels needed <strong>in</strong>sVPN. In this section we describes how the sVPN architecture was designed to complywith our requirements and how the IPsec issues discussed <strong>in</strong> 5.1 are resolved.6.1 IPsec VirtualizationAs described <strong>in</strong> requirement /R1/, sVPN must be able to implement an isolated IPsecboundary for each "protected" area. For a secure IPsec virtualization as def<strong>in</strong>ed <strong>in</strong> requirements/S1/ to /S3/, sVPN must also be able to identify endpo<strong>in</strong>ts of a requestedchannel and locate the correspond<strong>in</strong>g IPsec policy.We therefore extend the IPsec policy for sVPN with fields for the source and dest<strong>in</strong>ationidentity of local channels. These identities can be arbitrary labels that are providedto sVPN by other security services. To establish remote channels with other IPsec gatewaysit must be possible to unambiguously address and authenticate the dest<strong>in</strong>ationof a channel. In particular, a standard IPsec implementation must be able to request a6 http://www.ietf.org/mail-archive/web/ipsec/current/msg02606.html


206 S. Schulz and A.-R. Sadeghichannel to a specific compartment "protected" by sVPN. To achieve this level of <strong>in</strong>teroperability,exist<strong>in</strong>g methods for identification and authentication of peers must be used,which is why sVPN behaves like multiple VPN gateways. It uses separate IP addressesfor identification on the network layer and separate cryptographic identities for unambiguousauthentication dur<strong>in</strong>g key exchange. If multiple IPs for a s<strong>in</strong>gle host are notavailable, NAT (Net Address Translation) can be used to map them to a s<strong>in</strong>gle address.This limitation is <strong>in</strong>herent to the IPsec architecture.6.2 Critical ComponentsRequirement /R6/ is achieved by aggressively delegat<strong>in</strong>g functionality <strong>in</strong>to the unt<strong>ru</strong>sted"protected" and "unprotected" endpo<strong>in</strong>ts of each local channel. This process isrestricted by /R7/, which requires all critical functionality to reside <strong>in</strong> t<strong>ru</strong>sted components,i.e. <strong>in</strong> the security service <strong>in</strong> the hypervisor environment. Based on our securityrequirements, we identify the follow<strong>in</strong>g functions as critical.– The virtualized policy enforcement described <strong>in</strong> /S1/ requires that identification,classification and policy match<strong>in</strong>g algorithms are implemented <strong>in</strong> t<strong>ru</strong>sted components.– /S3/ requires that any component that is connected to multiple local channels thatshould rema<strong>in</strong> isolated must be t<strong>ru</strong>sted.– To meet requirement /S5/, authentication and key exchange via IKEv2 and IPsectraffic process<strong>in</strong>g must be t<strong>ru</strong>sted. Availability of key material is reduced by divid<strong>in</strong>gthe t<strong>ru</strong>sted sVPN security service <strong>in</strong>to two separate modules, the IKEv2 serveriked and the ipsec traffic process<strong>in</strong>g component. As a result, the bulk traffic process<strong>in</strong>gcomponent is isolated from any k<strong>in</strong>d of long-term authentication keys orkey negotiation <strong>in</strong>ternals.– /S6/ and /S7/ require the complete IKEv2 key negotiation and IKE SA managementto be t<strong>ru</strong>sted, as well as the traffic process<strong>in</strong>g components for ESP encapsulation,TFC padd<strong>in</strong>g, replay-protection and lifetime management of sessions andkeys.Any rema<strong>in</strong><strong>in</strong>g functionality is not critical and should be provided by other compartments.Examples are IP rout<strong>in</strong>g, packet fragmentation, hardware drivers and NATtraversal. S<strong>in</strong>ce the protected and unprotected compartments need to function correctlyto establish a connection, DoS protection is only relevant if these are not compromised.Therefore, this feature can be delegated to unt<strong>ru</strong>sted components as well.The rather generic analysis of critical subcomponents is sufficient s<strong>in</strong>ce our choices<strong>in</strong> <strong>in</strong>terfaces and components are limited by complexity limitation /R7/.6.3 UsabilityWe address our usability requirements /R2/ and /R3/ by provid<strong>in</strong>g a more abstractVPN service <strong>in</strong>stead of a universal IPsec implementation. This allows us to ignore specialuse cases of IPsec and make additional assumptions about the user’s <strong>in</strong>tentions. As aresult, we can ignore the IPsec transport mode as well as AH encapsulation and enforce


Secure VPNs for T<strong>ru</strong>sted Comput<strong>in</strong>g Environments 207secure usage of ESP encapsulation. This reduces the complexity of our key negotiationand traffic process<strong>in</strong>g components and facilitates the design of a usable configuration<strong>in</strong>terface. We solve the deployment issue mentioned <strong>in</strong> /R2/ and /S4/ by leverag<strong>in</strong>gt<strong>ru</strong>sted storage, a basic t<strong>ru</strong>sted comput<strong>in</strong>g service that allows secure transport and storageof <strong>in</strong>formation by seal<strong>in</strong>g data to known-good system states. [28]6.4 CompatibilityAs described <strong>in</strong> /R4/ and /R5/, sVPN is required to provide basic <strong>in</strong>teroperability withother IPsec-based VPNs. We implement this by stay<strong>in</strong>g compatible with certa<strong>in</strong> operationmodes of IPsec, namely authenticated ESP encryption <strong>in</strong> tunnel mode, and byprovid<strong>in</strong>g a IKEv2 implementation that is sufficiently compatible with standard implementationsto negotiate this particular configuration. We leverage the flexibility of theIKEv2 negotiation to activate additional non-standard features if supported by the peer.A more detailed discussion of <strong>in</strong>teroperability issues follows <strong>in</strong> section 8.6.5 Remote UsersS<strong>in</strong>ce VPN access for remote users is one of the ma<strong>in</strong> use cases of VPN technology,requirement /R4/ implies support for this scenario <strong>in</strong> sVPN. Apart from direct userauthentication required by /S6/, IP configuration of the remote "protected" compartmentis also desirable <strong>in</strong> this use case. For sVPN, we currently rely on higher levelprotocols like the Layer 2 Tunnel<strong>in</strong>g Protocol (L2TP, see [29]) to provide dynamic IPconfiguration. 7For direct user authentication, we aim to leverage t<strong>ru</strong>sted user I/O paths of the operat<strong>in</strong>gsystem to protect the user’s log<strong>in</strong> credentials when unseal<strong>in</strong>g the IPsec authenticationkey from t<strong>ru</strong>sted storage. The actual authentication keys are always asymmetricand either imported from an exist<strong>in</strong>g PKI or automatically generated by the configurationfrontend, which also provides secure deployment. For more complex authenticationmechanisms, remote attestation of the peer’s TCB will allow to delegate critical functionalityto other security services which then vouch for successful authentication of thecorrect user.6.6 IPsec Harden<strong>in</strong>gSection 5.1 discussed several issues <strong>in</strong> IPsec that need to be resolved to meet our requirementsfor sVPN. Unfortunately, the manipulation of IPsec <strong>in</strong>ternals is limited byour compatibility requirements /R4/ and /R5/, with the result that our IKEv2 implementationstill suffers from high complexity when compared to our process<strong>in</strong>g component.Nevertheless, our modifications address all identified problems except for f<strong>in</strong>gerpr<strong>in</strong>t<strong>in</strong>gand DoS, which we declared m<strong>in</strong>or.7 Native IKEv2 support through IKE configuration payloads and traffic selector narrow<strong>in</strong>g isstill under <strong>in</strong>vestigation. Although simpler <strong>in</strong> design, these would also add non-critical functionalityto the security service.


208 S. Schulz and A.-R. Sadeghi/M1/ ESP protection. To prevent attacks based on /P1/, sVPN enforces ESP encapsulationwith encrypted authentication for all traffic that is labeled PROTECT <strong>in</strong> thesecurity policy. Weak ciphers are not supported./M2/ Advanced TFC. To mitigate /P2/, ESP process<strong>in</strong>g supports Traffic Flow Confidentiality(TFC) padd<strong>in</strong>g as specified <strong>in</strong> [4] as well as advanced TFC featuresdescribed <strong>in</strong> [23]. Both are negotiated if supported by the peer or enforced bypolicy./M3/ Manual Key<strong>in</strong>g and PSKs. To prevent weak keys and exploitable key managementas mentioned <strong>in</strong> /P3/ and /P4/, our process<strong>in</strong>g component exposes only alow-level <strong>in</strong>terface for automated configuration of keys and policies. To resolveproblems with weak PSKs, PSK authentication is not supported <strong>in</strong> sVPN./M4/ User Authentication. As described <strong>in</strong> 6.5, sVPN authenticates users eitherthrough direct user authentication or by leverag<strong>in</strong>g other security services andt<strong>ru</strong>sted storage. We expect these mechanisms to supersede the often weak and complexauthentication schemes provided by EAP or PSK and to discourage the behaviordescribed <strong>in</strong> /P5/./M5/ Reduced Complexity. To mitigate the complexity issues described <strong>in</strong> /P6/,transport mode and AH protection are not supported <strong>in</strong> sVPN. It implements onlythe m<strong>in</strong>imal set of functionalities of the IKEv2 specification, which additionallywas stripped of authentication <strong>in</strong> X.509 certificate-based public key <strong>in</strong>frast<strong>ru</strong>ctures(PKIX). Instead, sVPN currently authenticates peers based on raw RSA keysand key f<strong>in</strong>gerpr<strong>in</strong>t whitelists. Leverag<strong>in</strong>g remote attestation, sVPN may also delegateauthentication to t<strong>ru</strong>sted remote security services.7 ImplementationWe implemented a prototype as a proof-of-concept, to identify <strong>in</strong>teroperability issuesand to estimate complexity of the solution. It encompasses the two critical sVPN componentsipsec and iked as well as simple adapters named tun2ipc and udp2ipc for connectivitywith userspace compartments.Turaya was chosen as the operat<strong>in</strong>g system environment. It is open source and implementsthe PERSEUS security framework based on the L4/Fiasco microkernel andmicrokernel environment of the DROPS project [30,31]. With L4L<strong>in</strong>ux, a paravirtualizedversion of the L<strong>in</strong>ux kernel, L4/Fiasco is also able <strong>ru</strong>n L<strong>in</strong>ux systems as guestVMs. Access control for <strong>in</strong>ter-process communication (IPC) and secure identificationof compartments through the compartment manager is not yet implemented <strong>in</strong> Turaya.Our prototype currently simulates this functionality through a local name registrationservice.7.1 sVPN ArchitectureFigure 2 provides a more detailed view of the sVPN architecture. It shows a platformwith two virtualized L4L<strong>in</strong>ux compartments <strong>ru</strong>nn<strong>in</strong>g on top of the Fiasco hypervisorand its environment. The two critical sVPN components reside <strong>in</strong> the hypervisor environment,next to other security services like t<strong>ru</strong>sted storage and the randservice random


Secure VPNs for T<strong>ru</strong>sted Comput<strong>in</strong>g Environments 209Unt<strong>ru</strong>sted Components T<strong>ru</strong>sted Services KernelLANnameservicerandservicetun2ipcadapterSADSPDIDsSPDikedeth0 tun0tun0 lo:0 eth0IPsec−protectedL4L<strong>in</strong>ux KernelFiasco Kernel / Ressource Managementip2ipcipsect<strong>ru</strong>sted storageip2ipcIPsec boundarytun2ipcadapterpolicy <strong>in</strong>terfaceudp2ipcadapte<strong>ru</strong>dp2ipcL4L<strong>in</strong>ux KernelIPsec−unprotectedWANFig. 2. Detailed architecture of sVPN. A s<strong>in</strong>gle platform acts as a VPN gateway with two physicalnetwork <strong>in</strong>terfaces. The "protected" compartment routes pla<strong>in</strong>text traffic between the LAN andsVPN. The "unprotected" compartment is responsible for rout<strong>in</strong>g the secured data streams <strong>in</strong>tothe WAN.number generator. The two L4L<strong>in</strong>ux compartments have established a local channelthrough the ipsec module and each also connect to a physical network <strong>in</strong>terface. Byconfigur<strong>in</strong>g the sVPN security policy such that one compartment is <strong>in</strong> the "protected"and one <strong>in</strong> the "unprotected" area, the platform is transformed <strong>in</strong>to a VPN gateway,process<strong>in</strong>g traffic between its two <strong>in</strong>terfaces.Traffic Process<strong>in</strong>g. The tun2ipc adapters establish a local po<strong>in</strong>t-to-po<strong>in</strong>t IP connectionbetween the "protected" and "unprotected" compartments. The connection is set up byconnect<strong>in</strong>g to the ipsec module and request<strong>in</strong>g a forward<strong>in</strong>g to the dest<strong>in</strong>ation compartment.The adapters then translate between the socket <strong>in</strong>terface expected by the L<strong>in</strong>uxuserspace and the ip2ipc IPC <strong>in</strong>terface of the sVPN service. The ipsec module acceptsthe local connection request only if correspond<strong>in</strong>g policy entries exist <strong>in</strong> the SPD. Inthat case, a dedicated filter thread is spawned to handles the actual traffic process<strong>in</strong>g forthis channel. The filter thread then f<strong>in</strong>alizes the local ip2ipc connection by establish<strong>in</strong>gthe second part to the actual dest<strong>in</strong>ation of the channel. Once the connection is established,each thread is responsible for enforc<strong>in</strong>g the locally relevant subset of the securitypolicy. Interface and implementation are further simplified by mak<strong>in</strong>g all ip2ipc channelsunidirectional. The dest<strong>in</strong>ation tun2ipc adapter is responsible for establish<strong>in</strong>g theip2ipc connection <strong>in</strong> the other direction, provok<strong>in</strong>g another filter thread to be spawnedwith correspond<strong>in</strong>g subset of SPD and SAD.To identify relevant subsets of SPD and SAD, each SPD entry <strong>in</strong> sVPN also conta<strong>in</strong>stwo labels identify<strong>in</strong>g source and dest<strong>in</strong>ation of the ip2ipc channel they apply to, andeach SAD entry is l<strong>in</strong>ked to an SPD entry. With the relevant parts of SPD, SAD anda unidirectional channel, traffic process<strong>in</strong>g is straight forward. The filter threads haveto enforce one of the policy targets (DISCARD, BYPASS, PROTECT) on all traffic they


210 S. Schulz and A.-R. Sadeghiip2ipcadapterip2ipcadapterconnect()write()close()connect()write()close()startFilter()ipsecfilter threadprocess()encapsulate()decapsulate()SPD(slave)SAD<strong>in</strong>itSPD()needSA()addSA()delSA()reset()send_<strong>in</strong>it()handle_<strong>in</strong>it()send_auth()...upload_SA()ConStateikedmyIKE−SPIpeerIKE−SPIflagskeyMaterialtemp_dataSPD(master)AuthDBactiveSA SPIsget_config()new_config()connect()connect()write()close()T<strong>ru</strong>stedStorageudp2ipcadapterFig. 3. Schematic overview of the iked and ipsec security modules and IPC channels. Arrows<strong>in</strong>dicate the possible direction of a call, order of calls represents a possible session flow for that<strong>in</strong>terface. The iked component creates a ConState st<strong>ru</strong>cture for each handshake attempt and ma<strong>in</strong>ta<strong>in</strong>sa list of active SPIs.receive, which is trivial to achieve for the first two targets. If PROTECT is specified or anencapsulated package is encountered, the packet must be de- or encapsulated with ESP.All required <strong>in</strong>formation for ESP process<strong>in</strong>g is conta<strong>in</strong>ed <strong>in</strong> the SAD entries availableto the thread. If the required SAD entry is not available, the packet is discarded. In caseof encapsulation, miss<strong>in</strong>g SAD entries additionally trigger a request to the iked moduleto establish the required SAs. In case of decapsulation, the frames are once more parsedand matched aga<strong>in</strong>st the SPD to check if the protected environment is allowed to receivethis packet. At this po<strong>in</strong>t, the SPD would typically specify BYPASS or DISCARD as thetarget, but re-encapsulation with a different SA is also possible.Successfully processed IP frames are forwarded to the adapter of the dest<strong>in</strong>ationcompartment. An ip2ipc adapter or its environment may implement additional uncriticalpre- and post-process<strong>in</strong>g of received traffic, like IP (de-)fragmentation, NAT or bandwidthmanagement. Our prototypes simply forward all IP frames between the ip2ipcchannel and the L4L<strong>in</strong>ux socket <strong>in</strong>terface.Key and Protocol Negotiation. The key negotiation component iked is a simplifiedIKEv2 implementation. On startup, it retrieves SPD and long-term authentication keysfrom t<strong>ru</strong>sted storage and establishes the local policy and udp2ipc connections to the ipsecand udp2ipc components. The udp2ipc adapter essentially provides a UDP socket to iked,allow<strong>in</strong>g it to send and receive IKEv2 UDP traffic. As can be seen <strong>in</strong> figure 3, the possiblecalls for ip2ipc and udp2ipc are very similar, the ma<strong>in</strong> difference is that udp2ipcattaches to a UDP socket and that the <strong>in</strong>com<strong>in</strong>g IPC connection comes from the sameiked thread. Like the ip2ipc adapter, it may implement uncritical traffic transformationslike defragmentation or even handle IKEv2 protocol features like DoS protection cookiesand NAT traversal support. The policy <strong>in</strong>terface between ipsec and iked is used prelim<strong>in</strong>aryby iked to <strong>in</strong>itialize the ipsec SPD at startup and manage the ipsec SAD at <strong>ru</strong>ntime.The ipsec component only uses it to request a refresh for expired or not yet negotiatedSAD entries. Both ends are also able to submit a reset command <strong>in</strong> case database <strong>in</strong>consistenciesare detected, e.g. when one component was manually restarted.As IPsec key negotiation does not require high throughput, iked is implementedas a simple s<strong>in</strong>gle-threaded application. SA negotiation requests from ipsec or remote


Secure VPNs for T<strong>ru</strong>sted Comput<strong>in</strong>g Environments 211IKEv2 servers trigger a simple IKEv2 negotiation and that negotiates authenticated encryptionwith tunnel mode ESP encapsulation and the strongest available cipher suite.Features like NAT detection, DoS protection, endpo<strong>in</strong>t configuration or renegotiationof SAs are not supported. If desired, these should be implement <strong>in</strong> the unt<strong>ru</strong>sted compartments.On success, the result<strong>in</strong>g SAs pair is uploaded to the ipsec SAD, possiblyreplac<strong>in</strong>g previous <strong>in</strong>stances for that SPD entry.7.2 ComplexityWe estimate the complexity of the prototype by count<strong>in</strong>g l<strong>in</strong>es of source code (LoC)with SLOCCount 8 , which excludes comments from the measurements. As it is custom,our measurements do not <strong>in</strong>clude external libraries and cryptographic primitives.However, the two critical components do not make use of use any complex librariesand the cryptographic primitives are comparatively easy to verify. Although the Mikro-SINA project did not document how LoC were measured, their reports for the Viaductcomponent do not substantially deviate from our own measurement of it with SLOC-Count (3,575 LoC). Our prototype has a total code-complexity of 5,187 LoC <strong>in</strong>clud<strong>in</strong>gadapter components. The critical subcomponents iked and ipsec have a complexityof only 2,919 and 839 LoC, respectively, plus 917 LoC for common SPD and SADmanagement. Although our prototype still misses some important features, the differenceto standard IPsec implementations is impressive. The Mikro-SINA adaption of theisakmpd IKEv1 server <strong>in</strong> [12] has an estimated 22,800 critical LoC if unnecessary componentswere to be removed. We counted 46,600 and 30,800 LoC for the IKEv1 andIKEv2 implementations of the strongSwan project, plus 30,000 l<strong>in</strong>es of IKE specificlibraries. Our ipsec module is significantly less complex than the Mikro-SINA Viaduct(839+917 vs. 3,575 LoC), s<strong>in</strong>ce we exclude transport mode and AH encapsulation. Forcomparison, a sample of obviously IPsec related files <strong>in</strong> L<strong>in</strong>ux 2.6.26 9 results <strong>in</strong> a similarfigure of about 3,500 LoC.7.3 Current StatusOur prototype successfully establishes ESP tunnels with a standard IPsec implementationand the strongSwan IKEv2 server. The connection was established with PSK authenticationhowever, s<strong>in</strong>ce raw public key authentication is not yet implemented <strong>in</strong> ikedand strongSwan. The negotiated SAs for IKEv2 and ESP use AES-128, SHA-1 and thestandard Diffie-Hellman groups from [4]. The current implementation still misses somenecessary functionality like timeout handl<strong>in</strong>g and public key authentication for iked andadvanced TFC for ipsec. Still, we do not expect their complexity to rise anywhere nearthe size of standard implementations.8 Interoperability IssuesThe IPsec modifications /M1/ to /M5/ and the untypical compartmentalized architecturepotentially result <strong>in</strong> <strong>in</strong>teroperability problems with standard IPsec implementations. As8 SLOCCount by David A. Wheeler: http://www.dwheeler.com/sloccount/9 <strong>in</strong>clude/net/{ip.h,ah.h,esp.h,xfrm.h,ipcomp.h} net/ipv4/{esp4.c,ah4.c,xfrm4*,ipcomp.c}.


212 S. Schulz and A.-R. Sadeghiwill be seen <strong>in</strong> this section however, most modifications are simply a matter of appropriateconfiguration of the IPsec peer. We shall also discuss some optional features likeIPComp and NAT detection that conflict with our compartmentalized design approach.IPsec Modifications. To reduce implementation complexity and improve security, section6.6 specified modifications to the IPsec implementation <strong>in</strong> sVPN. As described belowhowever, most of these modifications are only a question of correct configurationso that <strong>in</strong>teroperation with standard IPsec implementations is still possible./M1/ Authenticated Encryption and Primitives. Employed cryptographic algorithmsand their comb<strong>in</strong>ation are by design negotiated dur<strong>in</strong>g key exchange and subject toSPD configuration. Standard IPsec implementations tend to <strong>in</strong>clude as many strong andrequired suites as possible, <strong>in</strong>creas<strong>in</strong>g the chance to f<strong>in</strong>d a common cipher suite./M2/ Advanced TFC Padd<strong>in</strong>g. Similarly to the extended TFC, support for advancedTFC padd<strong>in</strong>g can be negotiated dur<strong>in</strong>g IKEv2 key exchange. It thus does not <strong>in</strong>terferewith standard implementations except when enforced by sVPN policy./M3/ Manual Key<strong>in</strong>g and PSK. Manual key provision<strong>in</strong>g and pre-shared key authenticationare alternative key distribution models supported by IPsec, along with public keyauthentication and others. sVPN <strong>in</strong> contrast supports only public key authentication.However, any result<strong>in</strong>g <strong>in</strong>teroperability problems are an <strong>in</strong>tended trade off for complexityand security. If desired, it is possible to use alternative key management systems<strong>in</strong>stead and directly <strong>in</strong>terface with the policy IPC <strong>in</strong>terface of the ipsec module./M4/ No direct User Authentication. Although identity types are supported <strong>in</strong> theIKEv2 protocol, the authentication mechanism is ignorant of the type of entity that isauthenticated. However, direct user authentication can obviously not be enforced onIPsec implementations that do not support remote attestation or direct user authentication.The enhanced user authentication can only be beneficial to the platform thatsupports it, possibly decreas<strong>in</strong>g the security of the overall network security./M5/ Transport Mode, AH, raw RSA Keys. Miss<strong>in</strong>g support for transport mode and theAH protocol should not result <strong>in</strong> unsolvable <strong>in</strong>teroperability issues s<strong>in</strong>ce their use is amatter of policy configuration and negotiated via IKE. The same applies for raw RSAkey authentication, although this authentication mode is less commonly supported byother IKEv2 implementations.Automated NAT Traversal. IPsec uses UDP encapsulation of ESP payloads for compatibilitywith NAT, add<strong>in</strong>g 8 bytes of overhead per packet to traverse NAT routers[32,33]. In IKEv2, existence of NAT is automatically detected dur<strong>in</strong>g SA negotiationand UDP encapsulation is activated. In sVPN however, udp2ipc abstracts from the UDPsocket <strong>in</strong>terface and currently just provides a channel ID <strong>in</strong>stead of ports and addresses,reliev<strong>in</strong>g iked from any layer 3 protocol handl<strong>in</strong>g. Additionally, NAT detection is not acritical feature and should ideally be implemented <strong>in</strong> unt<strong>ru</strong>sted components.


Secure VPNs for T<strong>ru</strong>sted Comput<strong>in</strong>g Environments 213From a security perspective, the best solution may be to add fake NAT detection payloads<strong>in</strong>to the IKEv2 exchange and thus transform the automated detection <strong>in</strong>to a manualconfiguration option controlled by the adapters. Alternatively, the udp2ipc adapterscould provide network layer <strong>in</strong>formation to iked when establish<strong>in</strong>g a new udp2ipc channel,thus enabl<strong>in</strong>g iked to implement NAT detection.IP Fragmentation. As discussed <strong>in</strong> section 7 of the specification <strong>in</strong> [15], the IPsecarchitecture has systematic issues with fragmentation. For sVPN, the relevant placeswhere fragmentation may be encountered are ESP encapsulation and decapsulation,where header <strong>in</strong>formation may be miss<strong>in</strong>g for correct policy match<strong>in</strong>g of packets orauthentication of ESP fragments may fail. Additionally, the ip2ipc channel also imposesa limitation to the size of packets that may have been defragmented to larger frames <strong>in</strong>the unt<strong>ru</strong>sted compartment.Our approach is similar to the suggestions <strong>in</strong> [15]. At startup, our ipsec process<strong>in</strong>gthread searches their sub-SPD for any entries that require knowledge of higher layerprotocols. If such entries are not encountered, any k<strong>in</strong>d of packet can be parsed accord<strong>in</strong>gto policy. Otherwise, it will drop any fragmented packets and leave defragmentationto the send<strong>in</strong>g adapter or its environment. For successful decapsulation, the securityservice has no choice but to rely on the send<strong>in</strong>g compartment to defragment the ESPframes. Fragmented frames are dropped based on IP header <strong>in</strong>formation, s<strong>in</strong>ce they willalways fail to authenticate. The behavior is optimized by sett<strong>in</strong>g the Don’t Fragmentbit <strong>in</strong> the IP header of outgo<strong>in</strong>g ESP frames. The Maximum Transmission Unit (MTU)of the ip2ipc IPC channel is also handled <strong>in</strong> the adapter components. They must watchthe size of defragmented ESP frames or other payloads and <strong>in</strong>form the sender on thelimited maximum segment size if required.IP Compression. The IP compression standard IPComp specified <strong>in</strong> [34] compressesIP payloads, <strong>in</strong>sert<strong>in</strong>g itself as a logical protocol layer between the payload and the IPlayer before encryption of the packet. While it should be implemented <strong>in</strong> the tun2ipcadapters, IPComp changes the <strong>in</strong>formation available to ipsec. The protocol type ischanged to <strong>in</strong>dicate a compressed payload and the transport layer <strong>in</strong>formation is notdirectly available to the ipsec module. Therefore, IPComp has to be applied betweenprocess<strong>in</strong>g steps <strong>in</strong> the ipsec component and can not be delegated to unt<strong>ru</strong>sted components.9 Security ConsiderationsIn this section, we re-evaluate our design based on our security requirements <strong>in</strong> 3.2 toshow that all demands are met./S1/ For local IPC channels, identification of the endpo<strong>in</strong>ts is an implementation detailthat should be solved by the operat<strong>in</strong>g system’s IPC mechanisms. We alsoextended the standard SPD entries by two fields to specify source and dest<strong>in</strong>ationidentity each <strong>ru</strong>le applies to. Even without OS support, this already allows us toimplement secure identification by provid<strong>in</strong>g random unique identification labelsto the unt<strong>ru</strong>sted compartments at startup time. Requirement /S1/ is thus fulfilled.


214 S. Schulz and A.-R. Sadeghi/S2/ We fulfill this requirement s<strong>in</strong>ce we assume that the hypervisor enforces isolationbetween all local compartments and channels. It follows directly that any<strong>in</strong>terconnection of compartments is thus be routed through sVPN or other t<strong>ru</strong>stedservices./S3/ This requirement is fulfilled by a correct implementation of the t<strong>ru</strong>sted service,i.e. logically isolated process<strong>in</strong>g of channels <strong>in</strong> the service. We implemented thisby launch<strong>in</strong>g a separate process<strong>in</strong>g thread for each local channel. The threads donot share any writeable resources; they could even be encapsulated <strong>in</strong> separate L4tasks so that the memory isolation is enforced by the kernel./S4/ This requirement is fulfilled s<strong>in</strong>ce sVPN is designed to retrieve its IPsec policyand authentication secrets directly from t<strong>ru</strong>sted storage. The seal<strong>in</strong>g functionalityof t<strong>ru</strong>sted comput<strong>in</strong>g systems protects the configuration data us<strong>in</strong>g public keycryptography and local attestation of the environment that requests accesses tothe data./S5/ As discussed <strong>in</strong> section 6.2, we implement all critical functionality, <strong>in</strong>clud<strong>in</strong>g allfunctionality that requires long-term authentication secrets or session keys, <strong>in</strong> thesVPN security service. Keys are only transmitted <strong>in</strong>side this module or <strong>in</strong> a localisolated channel between sVPN and t<strong>ru</strong>sted storage. The <strong>in</strong>terfaces exposed bysVPN are equivalent to those exposed by standard IPsec implementations. Basedon the security of the IKEv2 and ESP protocols, it follows that no covert channelsexist to retrieve key material. Additionally, we reduced the availability of shortandlong-term keys to the required subcomponents./S6/ As a t<strong>ru</strong>sted component <strong>in</strong> the security services layer, our service is able to directlyconnect to other t<strong>ru</strong>sted security services. These <strong>in</strong> turn are able to establishphysical presence of a user or to enforce arbitrary authentication schemes.Although not yet implemented <strong>in</strong> our prototype, our design thus fulfills /S6/./S7/ We hardened our traffic process<strong>in</strong>g based on our review of IPsec security issues <strong>in</strong>section 5.1. Additionally, we aim to provide optional advanced protection aga<strong>in</strong>sttraffic flow analysis (advanced TFC). Except for possibly weak authenticationmodes, which we addressed through direct user authentication <strong>in</strong> section 6.5,there are no relevant security issues with IKEv2. There are thus no known problemswith the secure channels provided by sVPN.10 ConclusionWe proposed an adaption of the IPsec architecture for VPNs <strong>in</strong> t<strong>ru</strong>sted comput<strong>in</strong>g environments.In accordance with the PERSEUS security concepts, we isolated criticalfunctionality <strong>in</strong>to self-conta<strong>in</strong>ed subcomponents of m<strong>in</strong>imal complexity. We solved severalsecurity issues of IPsec by reduc<strong>in</strong>g the framework to a simple VPN service anddiscussed how additional features can be <strong>in</strong>tegrated <strong>in</strong> a compatible fashion.The result is a high-security VPN service that should provide a high usability. Thearchitecture solves the conflict of <strong>in</strong>terest between owner and user <strong>in</strong> the remote user usecase, allow<strong>in</strong>g companies to deploy mach<strong>in</strong>es that are highly secure regard<strong>in</strong>g access tothe company VPN and applications, but use flexible compartments to suite the needs ofthe employees. Its small code-size and modular design make sVPN an ideal target forfuture research on secure channels <strong>in</strong> t<strong>ru</strong>sted environments.


Secure VPNs for T<strong>ru</strong>sted Comput<strong>in</strong>g Environments 21511 Further WorkAs noted <strong>in</strong> section 7.3, our implementation is far from complete. We also postponed<strong>in</strong>vestigation of IKE mobility extensions [35] , resistance aga<strong>in</strong>st tim<strong>in</strong>g-based sidechannelattacks and detailed performance optimizations.For remote attestation, the T<strong>ru</strong>sted Network Group (TNG) proposes an extensiveframework <strong>in</strong> [36]. However, these specifications seem to add significant overhead tosVPN. It rema<strong>in</strong>s an open question if similar flexibility can be achieved through othermeans or if this level of flexibility is even required.References1. Sadeghi, A.R., Stüble, C.: Bridg<strong>in</strong>g the Gap between TCPA/Palladium and Personal Security(2003), citeseer.ist.psu.edu/575430.html2. Helmuth, C., Warg, A., Feske, N.: Mikro-SINA - Hands-on Experiences with the Nizza SecurityArchitecture. In: Proceed<strong>in</strong>gs of the D.A.CH Security (March 2005)3. Kent, S.: IP Encapsulat<strong>in</strong>g Security Payload (ESP). RFC 4303, Internet Eng<strong>in</strong>eer<strong>in</strong>g TaskForce (December 2005)4. Kaufman, C.: Internet Key Exchange (IKEv2) Protocol. RFC 4306, Internet Eng<strong>in</strong>eer<strong>in</strong>gTask Force (December 2005)5. Kocher, P.C.: Tim<strong>in</strong>g attacks on implementations of diffie-hellman, rsa, dss, and other systems.In: Koblitz, N. (ed.) CRYPTO 1996. LNCS, vol. 1109, pp. 104–113. Spr<strong>in</strong>ger, Heidelberg(1996)6. Percival, C.: Cache miss<strong>in</strong>g for fun and profit. In: Proceed<strong>in</strong>gs of BSDCan 2005 (2005)7. Sailer, R., Valdez, E., Jaeger, T., Perez, R., van Doorn, L., Griff<strong>in</strong>, J.L., Berger, S.: sHype:Secure Hypervisor Approach to T<strong>ru</strong>sted Virtualized Systems. Research Report RC23511,IBM Research (Feb<strong>ru</strong>ary 2005)8. Garf<strong>in</strong>kel, T., Pfaff, B., Chow, J., Rosenblum, M., Boneh, D.: Terra: A Virtual Mach<strong>in</strong>e-BasedPlatform for T<strong>ru</strong>sted Comput<strong>in</strong>g. In: Proceed<strong>in</strong>gs of the 9th ACM Synopsium on Operat<strong>in</strong>gSystem Pr<strong>in</strong>ciples, pp. 193–206 (2003)9. Shapiro, J., Hardy, N.: EROS: A Pr<strong>in</strong>ciple-Driven Operat<strong>in</strong>g System from the Ground Up.IEEE Software, 26–33 (January 2002)10. Härtig, H., Hohmuth, M., Feske, N., Helmuth, C., Lackorzynski, A., Mehnert, F., Peter, M.:The Nizza Secure-System Architecture. In: Proceed<strong>in</strong>gs of IEEE CollaborateCom 2005, p.10. IEEE Press, Los Alamitos (2005)11. Heiser, G., Elph<strong>in</strong>stone, K., Kuz, I., Kle<strong>in</strong>, G., Petters, S.M.: Towards T<strong>ru</strong>stworthy Comput<strong>in</strong>gSystems: Tak<strong>in</strong>g Microkernels to the Next Level. ACM Operat<strong>in</strong>g Systems Review 41(4),3–11 (2007)12. Syckor, J.: IPSec Infrast<strong>ru</strong>ktur für Mikro-SINA, Diplomarbeit, Technische Universität Dresden(November 2004), os.<strong>in</strong>f.tu-dresden.de/papers_ps/syckor-diplom.pdf13. McDonald, D., Metz, C., Phan, B.: PF_KEY Key Management API, Version 2. RFC 2367,Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force (July 1998)14. Atk<strong>in</strong>son, R.: Security Architecture for the Internet Protocol. RFC 1825, Internet Eng<strong>in</strong>eer<strong>in</strong>gTask Force (August 1995)15. Kent, S., Seo, K.: Security Architecture for the Internet Protocol. RFC 4301, Internet Eng<strong>in</strong>eer<strong>in</strong>gTask Force (2005)16. Kent, S.: IP Authentication Header. RFC 4302, Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force (December2005)


216 S. Schulz and A.-R. Sadeghi17. Doraswamy, N., Hark<strong>in</strong>s, D.: IPsec: The new Security Standard for the Internet, Intranetsand Virtual Private Networks, 2nd edn. Prentice Hall PTR, Englewood Cliffs (2003)18. Paterson, K.G.: A Cryptographic Tour of the IPsec Standards,citeseer.ist.psu.edu/737404.html19. Aiello, W., Bellov<strong>in</strong>, S.M., Blaze, M., Ioannidis, J., Re<strong>in</strong>gold, O., Canetti, R., Keromytis,A.D.: Efficient, DoS-resistant, secure key exchange for <strong>in</strong>ternet protocols. In: CCS 2002:Proceed<strong>in</strong>gs of the 9th ACM conference on <strong>Computer</strong> and communications security, pp. 48–58. ACM, New York (2002)20. Ferguson, N., Schneier, B.: A Cryptographic Evaluation of IPsec (2000),www.schneier.com/paper-ipsec.html21. Bellov<strong>in</strong>, S.: Problem Areas for the IP Security Protocols. In: Proceed<strong>in</strong>gs of the Sixth UsenixSecurity Symposium (July 1996)22. Degabriele, J.P., Paterson, K.G.: Attack<strong>in</strong>g the IPsec Standards <strong>in</strong> Encryption-only Configurations(2007), epr<strong>in</strong>t.iacr.org/2007/12523. Kiraly, C., Bianchi, G., Formisano, F., Teofili, S., Lo Cigno, R.: Traffic mask<strong>in</strong>g <strong>in</strong> IPsec:architecture and implementation. In: Mobile and Wireless Communications Summit, 16thIST, pp. 1–5 (2007)24. Simpson, W.A.: IKE/ISAKMP Considered Harmful. Usenix, log<strong>in</strong> 24(6) (December 1999)25. Aziz, A., Patterson, M.: Design and Implementation of SKIP. In: INET 1995 HypermediaProceed<strong>in</strong>gs (1995)26. Kaufman, C., Perlman, R., Sommerfeld, B.: DoS protection for UDP-based protocols. In:CCS 2003: Proceed<strong>in</strong>gs of the 10th ACM conference on <strong>Computer</strong> and communicationssecurity, pp. 2–7. ACM, New York (2003)27. Izad<strong>in</strong>ia, V.D., Kourie, D., Eloff, J.: Uncover<strong>in</strong>g identities: A study <strong>in</strong>to VPN tunnel f<strong>in</strong>gerpr<strong>in</strong>t<strong>in</strong>g.<strong>Computer</strong>s & Security 25(2), 97–105 (2006)28. Storage Work Group. Tcg storage architecture core specification. Technical report, T<strong>ru</strong>stedComput<strong>in</strong>g Group (May 2007)29. Lau, J., Townsley, M., Goyret, I.: Layer Two Tunnel<strong>in</strong>g Protocol - Version 3 (L2TPv3). RFC3931, Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force (2005)30. Alkassar, A., Stüble, C.: Die Sicherheitsplattform Turaya. In: T<strong>ru</strong>sted Comput<strong>in</strong>g, pp. 86–96.Vieweg+Teubner (May 2008)31. Härtig, H., Roitzsch, M.: Ten years of research on l4-based real-time systems. In: Proceed<strong>in</strong>gsof the Eighth Real-Time L<strong>in</strong>ux Workshop (2006)32. Aboba, B., Dixon, W.: IPsec-Network Address Translation (NAT) Compatibility Requirements.RFC 3715, Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force (2004)33. Huttunen, A., Swander, B., Volpe, V., DiBurro, L., Stenberg, M.: UDP Encapsulation of IPsecESP Packets. RFC 3948, Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force (2005)34. Shacham, A., Monsour, R., Pereira, R., Thomas, M.: IP Payload Compression Protocol (IP-Comp). RFC 2393, Internet Eng<strong>in</strong>eer<strong>in</strong>g Task Force (December 1998)35. Eronen, P.: IKEv2 Mobility and Multihom<strong>in</strong>g Protocol (MOBIKE). RFC 4555, Internet Eng<strong>in</strong>eer<strong>in</strong>gTask Force (June 2006)36. TNC Work Group. Architecture for <strong>in</strong>teroperability. Specification, T<strong>ru</strong>sted Comput<strong>in</strong>g Group(April 2008)


Merx: Secure and Privacy Preserv<strong>in</strong>g DelegatedPaymentsChristopher Soghoian 1 and Imad Aad 21 Berkman Center for Internet and Society, Harvard University, USAcsoghoian@gmail.com2 DOCOMO Euro-Labs, Germanyaad@docomolab-euro.comAbstract. In this paper we present Merx, a secure payment system thatenables a user to delegate a transaction to a third party while protect<strong>in</strong>gthe user’s privacy from a variety of threats. We assume that the user doesnot t<strong>ru</strong>st the delegated person nor the merchant and wishes to m<strong>in</strong>imizethe <strong>in</strong>formation transmitted to the user’s bank. Our system protects theuser from fraud perpetrated by the delegated party or by the merchant.The scheme has a number of other applications such as delegat<strong>in</strong>g thewithdrawal of cash from Automated Teller Mach<strong>in</strong>es (ATM) and allow<strong>in</strong>gcompanies to restrict an employee’s expenses dur<strong>in</strong>g bus<strong>in</strong>ess trips.Merx is designed to be used with mobile phones and mobile comput<strong>in</strong>gdevices, especially <strong>in</strong> situations where end-users do not have access to theInternet. We evaluate the performance of the proposed mechanism andshow that it requires negligible overhead and can be gradually deployedas it is able to piggyback on exist<strong>in</strong>g payment-network <strong>in</strong>frast<strong>ru</strong>ctures.1 IntroductionA new form of mobile electronic payments is on the horizon and is alreadybe<strong>in</strong>g used <strong>in</strong> a few advanced markets. This technology, based on Near FieldCommunications (NFC), allows people to use their mobile phones to pay fortickets, goods and services <strong>in</strong> a practical and fast way. Users simply wave theirmobile phone over a pad and they’re done [1]. Mobile phones with e-wallet andcredit card capabilities will soon replace our wallets and the paper currencywith<strong>in</strong> as the means of pay<strong>in</strong>g for shopp<strong>in</strong>g, a restaurant bill or even as a wayto give “virtual pocket money” to your children before they go on holiday.While these NFC-based mobile payment systems are ideal for <strong>in</strong>-person transactions,they do not (yet) allow users to delegate purchases. Mobile systems arenot alone <strong>in</strong> fail<strong>in</strong>g to address this need, as most other exist<strong>in</strong>g electronic paymentschemes also fail to provide usable delegated payment functionality.Traditional payment methods require that users place significant t<strong>ru</strong>st <strong>in</strong> thoseto whom they delegate tasks. Parents cannot prevent their teenage children, awayon holiday, from spend<strong>in</strong>g food money on alcohol and other unapproved products.Servants and cooks may opt to purchase lower quality food with the week’sL. Chen, C.J. Mitchell, and A. Mart<strong>in</strong> (Eds.): T<strong>ru</strong>st 2009, LNCS <strong>5471</strong>, pp. 217–239, 2009.c○ Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2009


218 C. Soghoian and I. Aadbudget and keep the money that they saved for themselves. Companies cannotbe sure how their travel<strong>in</strong>g employees are spend<strong>in</strong>g their per diem budget. Manypeople <strong>in</strong> remote areas of develop<strong>in</strong>g countries without bank<strong>in</strong>g services nearbymust give their ATM card and Personal Identification Number (PIN) to friendsor family who are themselves mak<strong>in</strong>g the journey to the ATM several hours away[2]. While these <strong>in</strong>dividuals only wish to have a moderate sum withdrawn, theymust t<strong>ru</strong>st their friends not to completely dra<strong>in</strong> their account.We present a system for securely delegat<strong>in</strong>g a payment or withdrawal task toa third party (e.g. the concierge, <strong>in</strong> an example sett<strong>in</strong>g <strong>in</strong>volv<strong>in</strong>g a customer, aconcierge, a merchant and a bank). We provide a means for restrict<strong>in</strong>g the itemsthat can be purchased. Our system is privacy preserv<strong>in</strong>g, <strong>in</strong> that the accountholder does not reveal her shopp<strong>in</strong>g list to the bank, yet it provides a means forthe bank and merchant to communicate <strong>in</strong> order to prevent un-approved itemsfrom be<strong>in</strong>g purchased. Our scheme does not suffer from the problems of doublespend<strong>in</strong>g. Furthermore, merchants do not learn the customer’s name or bankaccount details. The scheme allows for a shopp<strong>in</strong>g list to be partially fulfilled bymultiple merchants, without requir<strong>in</strong>g that the consumer specify them ahead oftime. The scheme also enables the consumer to restrict which delegated partiesmay retrieve the items, as well as restrict<strong>in</strong>g, should she wish, which merchantsare permitted to sell the selected items.Our proposed payment system provides privacy preserv<strong>in</strong>g transaction delegationto users with mobile phones and portable comput<strong>in</strong>g devices. Our schemeis not dependent on mobile Internet access or NFC capabilities. As we will show<strong>in</strong> the follow<strong>in</strong>g sections, our system can also be used by fixed computers withor without Internet service. However, the most likely usage scenario <strong>in</strong>volves auser delegat<strong>in</strong>g payments with her smart-phone, PDA or laptop.When consider<strong>in</strong>g the problem of payment delegation <strong>in</strong> the real-life scenariosthat we have described, it is easy to see that the exist<strong>in</strong>g payment methods,such as cash, credit cards and even some digital payment schemes, simply donot provide the needed functionality. As we show below, exist<strong>in</strong>g schemes thatpermit payment delegation are simple and prone to abuse. Later, <strong>in</strong> the relatedwork section, we show why the Internet-based solutions lack the features requiredfor real-world mobile commerce.The Problems of Delegation Us<strong>in</strong>g Cash: The simplest of the traditional delegationmethods <strong>in</strong>volves giv<strong>in</strong>g someone cash and tell<strong>in</strong>g them what they canand cannot purchase. The security of this system relies completely on t<strong>ru</strong>st. Thepayer has no way of know<strong>in</strong>g if the delegated party will <strong>ru</strong>n off with the moneyor attempt to purchase <strong>in</strong>ferior-quality goods and pass them off as the genu<strong>in</strong>earticle.The Problems of Delegation Us<strong>in</strong>g Credit Cards: Many bus<strong>in</strong>esses give theiremployees corporate credit cards. This method of delegation also <strong>in</strong>volves a fairlysignificant amount of t<strong>ru</strong>st. Information on the <strong>in</strong>dividual items purchased is notprovided to the credit card company by the merchants but rather the merchant


Merx: Secure and Privacy Preserv<strong>in</strong>g Delegated Payments 219ID only. Thus, the bus<strong>in</strong>ess has no reliable method of know<strong>in</strong>g which items anemployee has purchased.Another significant problem which credit cards <strong>in</strong>troduce is that of <strong>in</strong>sidertheft, or a data loss <strong>in</strong>cident by the merchant. For a credit card transaction toprocess successfully, the customer, or concierge must provide her credit card detailsto the merchant dur<strong>in</strong>g the sale. A malicious merchant, a cor<strong>ru</strong>pt employee,or an <strong>in</strong>t<strong>ru</strong>sion by hackers and subsequent theft of data from the merchant’sdatabase can result <strong>in</strong> the theft of a customer’s credit card <strong>in</strong>formation. Whilemost credit card companies place m<strong>in</strong>imal, if any liability on the customer <strong>in</strong>cases of credit card fraud, the very act of disput<strong>in</strong>g <strong>in</strong>valid charges, cancel<strong>in</strong>ga credit card and request<strong>in</strong>g a new one can be time consum<strong>in</strong>g and dis<strong>ru</strong>ptive.Any scheme which prevents the merchant from ga<strong>in</strong><strong>in</strong>g access to the customer’scredit card <strong>in</strong>formation will avoid these problems.The Problems of Delegation Us<strong>in</strong>g Reimbursement. Another delegation schemecommonly used by bus<strong>in</strong>esses requires that employees pay for all expenses withtheir own funds, collect receipts, and then submit expense reports afterwards.This system has a number of downsides. Employees often resent the loan theyare essentially mak<strong>in</strong>g to their employer. Prolonged bus<strong>in</strong>ess travel or legitimatelarge purchases can result <strong>in</strong> f<strong>in</strong>ancial difficulties for employees. Employees canalso forge false receipts.The rest of the paper is organized as follows: In Sec. 2 we discuss related work<strong>in</strong> the field of electronic payment systems. In Sec. 3 we present the system modeland the proposed solution. In Sec. 4 we evaluate the privacy protections providedby our solution and the process<strong>in</strong>g and communication overhead. Section 5 showsexample applications of our payment delegation method., and Sec. 6 concludesthe paper.2 Related WorkThere has been a considerable amount of research <strong>in</strong>to electronic payment systemsover the past few years. [3] lists several of these payment schemes. Theunderly<strong>in</strong>g characteristic of all of the proposed systems is obviously “security.”Other desirable properties <strong>in</strong>clude scalability, anonymity, non-repudiation, delegability,and various others that are specific to certa<strong>in</strong> applications. We can splitmost of the electronic payment techniques <strong>in</strong>to two groups: macro and micropayments.While macro-payments are typically used to exchange high valuesums, micro-payment techniques [4,5,6,7,8,9,10,11] <strong>in</strong>volve far smaller amounts ofmoney that are typically used to pay for Internet-based services such as stream<strong>in</strong>gmulti-media, software downloads, VoIP etc. The major features that differentiateour scheme from exist<strong>in</strong>g payment systems are: delegability and theability to function offl<strong>in</strong>e. Other differences are cited <strong>in</strong> the later sections, after<strong>in</strong>troduc<strong>in</strong>g the technical details of our approach.Anonymity is an appeal<strong>in</strong>g feature for numerous applications. The challeng<strong>in</strong>gproblem with anonymity is that it typically contradicts non-repudiation, an essentialproperty <strong>in</strong> payment systems. The iKP scheme [4], one of the first papers


220 C. Soghoian and I. Aadto tackle this issue, is also quite similar to our system. iKP (where i=1,2,or3) is a set of protocols where the security and complexity of the system <strong>in</strong>creasewith i. The protocols implement credit card based transactions between a customer,a merchant, and a bank while us<strong>in</strong>g the exist<strong>in</strong>g payment networks forgradual deployment. A requirement of the 1KP protocol is that the bank mustcreate an asymmetric encryption key pair and publish its public key. Customersand merchants must have a copy of the bank’s public key <strong>in</strong> order to engage <strong>in</strong>commerce. While the bank’s communications can be authenticated through theuse of public key based signatures, a customer can only authenticate herself <strong>in</strong>1KP by us<strong>in</strong>g her credit card number and PIN which she then encrypts with thebank’s public key. The 2KP protocol is similar, although both the merchant andbank are required to have asymmetric cryptographic keys. 3KP further requiresthat the customer also have a public and private encryption key pair. Unlike oursystem, the iKP protocols do not support delegation 1 . As a result, our goals ofattempt<strong>in</strong>g to control which items can be purchased and a desire to keep themsecret from the bank are both not possible with the iKP protocols.Until recently, research <strong>in</strong>to payment delegation was almost completely absentfrom the literature. The projects most relevant to our work is the research doneby Patil et al. [12,13,14,15]. In [12,13] the authors propose a micro-paymentsystem called e-coupons. Their system is secure, like most payment schemes.However, they also provide transaction delegation <strong>in</strong> such a way that users donot have to obta<strong>in</strong> an authorization from the bank before each payment. Ane-coupons user wish<strong>in</strong>g to delegate payments first requests a “PayWord” [8]cha<strong>in</strong> from the bank, which enables them to pre-register multiple transactiondelegations for a s<strong>in</strong>gle vendor. The user must sync with each vendor before aPayWord cha<strong>in</strong> can be used. The user can also delegate control of a portion ofa PayWord cha<strong>in</strong> to other agents. For Internet-based commerce, it is perfectlyreasonable to require users to synchronize with the bank and vendor beforeany actual exchange of goods. However, this requirement can be a significantproblem for real life scenarios <strong>in</strong> which users might not have regular Internetaccess. Furthermore, the e-coupons scheme requires that the delegat<strong>in</strong>g personknow the identity of the merchants ahead of time, which is almost impossible <strong>in</strong>many situations. F<strong>in</strong>ally, the e-coupons system does not allow the customer torema<strong>in</strong> anonymous with respect to the merchant.Our delegation solution applies to the real-life scenarios discussed above withoutthe need for any apriori customer contact with the bank or the merchants.It is secure, preserves the anonymity of the user, and can <strong>in</strong>volve one or severalmerchants without extra preparation overhead. In fact, our solution keepsthe apriori contacts between all <strong>in</strong>volved parties to an absolute m<strong>in</strong>imum: withoutcontact<strong>in</strong>g the bank or the merchant(s), the user passes the “token” to theconcierge at the same time as the shopp<strong>in</strong>g list. The concierge passes the tokento the merchant as she purchases at the checkout. The merchant contacts the1 More precisely, iKP assumes that the issuer and <strong>in</strong>quirer (the customer and concierge<strong>in</strong> our protocol) share some level of t<strong>ru</strong>st, an assumption that <strong>ru</strong>ns contrary to oneof the central design requirements for our system.


Merx: Secure and Privacy Preserv<strong>in</strong>g Delegated Payments 221bank only dur<strong>in</strong>g the payment. We believe that reduc<strong>in</strong>g the number of aprioricontacts is vital for a system to succeed <strong>in</strong> real-life scenarios.In addition to keep<strong>in</strong>g the number of contacts to a m<strong>in</strong>imum, our techniquepreserves the privacy of the user foremost. The concierge obviously has no accessto the user account number or PIN (similar to e-coupons), and the user’s identityis kept hidden from the vendor, and even optionally from the concierge, unlikee-coupons. The shopp<strong>in</strong>g items are kept hidden from the bank, while still giv<strong>in</strong>git control over what is allowed to be purchased. The e-coupons system can hidethe purchased items from the bank, however, it is not possible to control whatcan be bought from a given vendor. For these reasons, we believe that e-couponsand the other payment schemes are not suited to real-world delegated payments.One of the key standards for secur<strong>in</strong>g electronic payments is SET [11], orig<strong>in</strong>allydeveloped by VISA and MasterCard. In spite of the strong <strong>in</strong>dustry back<strong>in</strong>g,SET failed to ga<strong>in</strong> market share due to a number of reasons, one of which wasthe logistics of client-side certificate distribution, i.e. requir<strong>in</strong>g every user to havean asymmetric key pair. Merx leverages the level of t<strong>ru</strong>st that customers usuallyshare with their banks, to keep the “default requirements” for the customers to am<strong>in</strong>imal level, and therefore <strong>in</strong>crease the chance of rapid market penetration.F<strong>in</strong>ally, mobile-bank<strong>in</strong>g (commonly known as m-bank<strong>in</strong>g) [16] is a rapidlygrow<strong>in</strong>g <strong>in</strong>dustry, that aims to br<strong>in</strong>g f<strong>in</strong>ancial services to the world’s underbankedvia the millions of deployed mobile phone handsets. M-bank<strong>in</strong>g schemesare similar to Merx, <strong>in</strong> that they function primarily us<strong>in</strong>g the customer’s phone.However, the m-bank<strong>in</strong>g products already on the market do not allow for delegationof payments, controlled purchases are limited to specific products, nor dothey function when the customers are <strong>in</strong> areas without cellular connectivity.3 System ModelWe will first <strong>in</strong>troduce the actors who <strong>in</strong>teract us<strong>in</strong>g Merx 2 , their goals, andwhat they will hope to get out of the scheme. We then provide the technicaldescription of the whole system.3.1 The ActorsWithout loss of generality, we consider an example scenario <strong>in</strong> which a customerdelegates a concierge to purchase goods from a merchant, wherethepaymentisprocessed by the customer’s bank.The Customer: This person would like to have a third party, the concierge,purchase one or more items for her. She wants to be sure that the concierge canonly buy the items that she has specified, with<strong>in</strong> the price constra<strong>in</strong>ts she hasdictated. She also requires that the merchant does not know who she is, thatthe bank does not know what she bought, and that neither the concierge normerchant should be able to learn her credit card or bank account <strong>in</strong>formation.2 From Lat<strong>in</strong>, “merchandise, goods”.


222 C. Soghoian and I. AadThe Concierge: This person is hired by the customer to visit one or moremerchants and purchase items listed on a supplied shopp<strong>in</strong>g list. Depend<strong>in</strong>g onhow the list is transmitted to the concierge (possible methods <strong>in</strong>clude Bluetooth,Multimedia Messag<strong>in</strong>g Service (MMS), email and a paper pr<strong>in</strong>t out) and howitems are delivered to the customer, it is quite possible that the concierge maynever learn the customer’s identity. The concierge will not learn the customer’sf<strong>in</strong>ancial details, <strong>in</strong>clud<strong>in</strong>g her bank or credit card account numbers.The Merchant: The merchant is a bus<strong>in</strong>ess with goods or services to sell.It wants to be sure that the customer’s bank<strong>in</strong>g <strong>in</strong>formation provided by theconcierge is valid and that the items are authorized (by the user, then the bank)before it permits the transaction. The merchant will not learn the identity northe f<strong>in</strong>ancial details of the customer.The Bank: The customer has a pre-exist<strong>in</strong>g relationship with the bank. Thiscan be a more traditional bank account, a debit card, or a credit card. Thebank will never learn which items the customer has purchased. It will, however,learn the maximum price specified for each item as well as a maximum value forthe entire shopp<strong>in</strong>g list. The bank will enforce these limits by refus<strong>in</strong>g to allowtransactions with a total price higher than the customer specified maximumvalue. Work<strong>in</strong>g with the merchant, the bank will also ensure that only those itemsdescribed <strong>in</strong> the shopp<strong>in</strong>g list will be approved for purchase by the customer.In other use cases, the bank can be substituted by a mobile phone operatorcharg<strong>in</strong>g its susbscribers us<strong>in</strong>g their monthly bills.Unlike most of the various exist<strong>in</strong>g techniques cited before, we reduce thenumber of <strong>in</strong>teractions between the different actors to an absolute m<strong>in</strong>imum:Neither the customer nor the concierge need to contact the bank and/or merchantprior to the actual sale of goods. Reduc<strong>in</strong>g the requirements for contactbetween the actors is of high practical relevance s<strong>in</strong>ce we are primarily focus<strong>in</strong>gon <strong>in</strong>-person retail experiences, rather than onl<strong>in</strong>e purchases. Furthermore, thisis essential to permit the creation of tokens when the customer and concierge donot have Internet access.3.2 Secure and Privacy-Preserv<strong>in</strong>g Delegation SystemThe customer creates a shopp<strong>in</strong>g list (Fig. 1(a)) and the correspond<strong>in</strong>g token(Fig. 1(b)). She transmits them both to the concierge, who acts as the delegatedparty. The concierge then passes the token and the list of items to be purchasedto the merchant, which validates the purchases with the bank. This process willbe described <strong>in</strong> detail below.Creat<strong>in</strong>g The Token: We now gradually present our solution, along with themotivation for each added component.– Motivation: The customer wishes to securely communicate her account <strong>in</strong>formationto the bank, while keep<strong>in</strong>g her account number (Acct#) and PINsecret from the merchant and concierge.


Merx: Secure and Privacy Preserv<strong>in</strong>g Delegated Payments 223(a) List (b) Decrypted token (c) Token QR codeFig. 1. A sample Merx shopp<strong>in</strong>g list, with the decrypted contents of the correspond<strong>in</strong>gtoken and its QR codeSolution: Encrypt the token us<strong>in</strong>g the bank’s public key and require thatthe user enter her PIN each time a token is created. 3(...Acct#,PIN...) BankPubKAdvantages:• If the concierge’s mobile phone is stolen, a pr<strong>in</strong>ted copy of the token islost or if the concierge is malicious, the customer’s Acct# andPINarenot revealed.• If the merchant accidentally loses a copy of the transaction data or suffersfrom a data breach, the customer’s Acct# and PIN are kept safe.• The merchant does not learn the customer’s identity.• If enough customers delegate the same concierge, it is possible to ga<strong>in</strong>some level of anonymity with respect to the merchant. As the numberof customers delegat<strong>in</strong>g any one concierge grows, the anonymity set also<strong>in</strong>creases. One example of this is a grocery delivery service used by severalcustomers.• If customers transmit their data to the concierge via Bluetooth, MMS,fax or the Internet, it is even possible to be anonymous with regard tothe concierge (us<strong>in</strong>g some k<strong>in</strong>d of drop-box for the delivery of goodsafterwards).3 To validate the PIN locally, and avoid giv<strong>in</strong>g the concierge a token with an <strong>in</strong>validPIN, a hash of the PIN concatenated to a salt value (h(PIN||salt)) can be encryptedand stored on the phone. This data will be encrypted with the phone’s PIN, whichthe user will be required to enter (along with her bank PIN) each time a token iscreated.


224 C. Soghoian and I. Aad– Motivation: Restrict the concierge to purchas<strong>in</strong>g only those pre-selecteditems specified by the customer.Solution: Include the list of items <strong>in</strong> the token.(...item 0 ...item i ...) BankPubK– Motivation: Prevent the bank from learn<strong>in</strong>g which items are to be purchased.Solution: Compute a unique item identifier for each item, made by hash<strong>in</strong>gthe concatenation of the item number and the transaction ID. Then, create a256-bit unique random number for each item. F<strong>in</strong>ally, concatenate the itemidentifier and the random number, and hash this result. This will act as aprivacy-preserv<strong>in</strong>g item hash, which can be given to the bank.(...h(item 0 ||TransactionID||r 0 ) ...h(item i ||TransactionID||r i )...) BankPubKWhen items are purchased by the concierge, the merchant will calculate thehash of the item and its associated random number, and send the hash tothe bank to validate the purchase.Advantages:• The transaction can be split <strong>in</strong>to n sub-transactions 4 .– Motivation: Restrict the concierge role to a specific <strong>in</strong>dividual.Solution: Include the Concierge’s ID <strong>in</strong> the token and/or require a transactionPIN at time of purchase.(...ConciergeID,TransactionPIN...) BankPubK– Motivation: Forbid double spend<strong>in</strong>g.Solution: Include a transaction identifier <strong>in</strong> the token, e.g. a timestamp anda unique, randomly generated transaction ID:(...TimeStamp,TransactionID...) BankPubK– Motivation: Set a maximum total price for all transactions authorized by atoken.Solution: Include a maximum total price field <strong>in</strong> the token, which the bankwill verify before permitt<strong>in</strong>g a transaction.(...TransTotal...) BankPubK– Motivation: Include open options <strong>in</strong> the token to enable future features, e.g.disallow specific merchants.4 From a b<strong>ru</strong>te-force attack computation po<strong>in</strong>t of view, h(item||TransactionID||r)is equivalent to h(item||r ∗ ) where r ∗ is orders of magnitude larger than r.h(item||TransactionID||r) is used <strong>in</strong>stead to save storage space.


Merx: Secure and Privacy Preserv<strong>in</strong>g Delegated Payments 225(...options...) BankPubK– Motivation: Protect the transaction token from tamper<strong>in</strong>g by malicious persons.Solution: Use a Keyed-Hash Message Authentication Code (HMAC) to makethe token tamper evident. This is done by <strong>in</strong>clud<strong>in</strong>g a 256-bit randomly generatedkey, MacKey <strong>in</strong> the token, which is used to compute the HMAC ofthe encrypted token. Both the HMAC and encrypted token will be given tothe concierge, merchant and bank.(...MacKey...) BankPubKThe result<strong>in</strong>g token format therefore is:TransToken= Acct#,PIN,h(item 0 ||TransactionID||r 0 ) ...h(item i ||TransactionID||r i ),TransTotal,ConciergeID,TimeStamp,...T ransactionID, MacKey, options) BankPubKWith an associated Transaction HMAC calculated by 5 :Trans H MAC = HMAC MacKey (TransToken)A sample Merx shopp<strong>in</strong>g list with the correspond<strong>in</strong>g token and its QR codeare shown <strong>in</strong> Fig. 1. The customer transmits the token, its HMAC, along withthe list of items item 0 ...item i and the associated random numbers r 0 ...r i (<strong>in</strong>clear text) to the concierge by one of many mediums <strong>in</strong>clud<strong>in</strong>g us<strong>in</strong>g MMS,Bluetooth, Infrared, Display on Mobile, or a paper pr<strong>in</strong>t-out.From Concierge to Merchant: Once at the place of bus<strong>in</strong>ess, the conciergetransmits the token (us<strong>in</strong>g MMS, Bluetooth, <strong>in</strong>frared, reader/camera/OCR) andthe list of only those items that will be purchased to the merchant. Giv<strong>in</strong>g themerchant the complete shopp<strong>in</strong>g list (item 0 ...item i ) with each item’s randomnumber (r 0 ...r i ) will enable a malicious merchant to submit charges to thebank for authorized but not as yet purchased items. In order to ensure thatthe concierge ma<strong>in</strong>ta<strong>in</strong>s control over the items for which the merchant can requestpayment, the concierge gives the merchant us<strong>in</strong>g any of the communicationmethods mentioned above:– the token,– item i of each item purchased from this merchant,– r i of each item purchased from this merchant,– ConciergeID or transaction PIN, if specified by the customer at time of tokencreation,5 Comput<strong>in</strong>g an HMAC of the encrypted token, a.k.a. Encrypt-then-MAC, is themost robust among the 3 choices [17,18]: Encrypt-and-MAC, MAC-then-encrypt,and Encrypt-then-MAC.


226 C. Soghoian and I. AadFrom Merchant to Bank: The merchant computes the hash of each of theactually purchased items h(item 0 ||TransID||r 0 ) ...h(item i ||TransID||r i )andpasses them along with the encrypted transaction token to the bank.The bank decrypts the token us<strong>in</strong>g its private key and then:– checks the token <strong>in</strong>tegrity us<strong>in</strong>g the HMAC– validates the customer’s account number and PIN, ensur<strong>in</strong>g that sufficientfunds are available <strong>in</strong> her account,– looks up the token’s transaction ID <strong>in</strong> a database of previously redeemedtokens. It then verifies that none of the items to be purchased have alreadybeen bought us<strong>in</strong>g that token,– compares the concierge ID or transaction PIN transmitted by the merchantto the one conta<strong>in</strong>ed <strong>in</strong> the encrypted token,– compares the actually purchased items as computed by the merchanth(h(item 0 ||TransID)||r 0 ) ...h(h(item i ||TransID)||r i ) to those <strong>in</strong> the encryptedtoken,– checks the additional options <strong>in</strong> the token,then approves or rejects the transaction accord<strong>in</strong>gly.3.3 Specification languageSo far we have assumed that the user can convey her shopp<strong>in</strong>g or restrictionneeds <strong>in</strong> an <strong>in</strong>tuitive way to the bank. When it gets to the implementation,a specification language must be designed [19], similar to the ones used <strong>in</strong> supermarketsnowadays: groups (e.g. dr<strong>in</strong>ks), sub-groups (e.g. alcohol), sub-subgroups,..., down to the <strong>in</strong>dividual items (e.g. beer). This group<strong>in</strong>g should befurther comb<strong>in</strong>ed with “black list”, “white list” that permit the user to specifywhich groups/items are allowed, and which are not. Us<strong>in</strong>g such a specificationlanguage, a company can give its employees, go<strong>in</strong>g on a bus<strong>in</strong>ess trip, some tokensfor buy<strong>in</strong>g given items (e.g. food, dr<strong>in</strong>k), while restrict<strong>in</strong>g others (e.g. strongalcohols). Though essential to the deployment of Merx for large scale automaticusage, and s<strong>in</strong>ce it is orthogonal to the security and privacy aspects, we keepthis specification language out of scope of this paper.3.4 A Revocation ProtocolThe customer can contact the bank us<strong>in</strong>g any secure method (onl<strong>in</strong>e, phone, <strong>in</strong>person) to revoke a given token. The customer will need to provide the uniquetransaction token ID or the entire token, as well as confirm<strong>in</strong>g her account numberand PIN to prove that she created the token. The requirement to transmither PIN to the bank can be elim<strong>in</strong>ated through the use of a zero knowledgebased key exchange protocol [20,21], but this is beyond the scope of our paper.Should the customer wish to permit concierges to revoke tokens, such as <strong>in</strong>cases where the concierge loses a token that has not been locked with a transactionPIN, the customer would need to <strong>in</strong>clude a unique and random revocation


Merx: Secure and Privacy Preserv<strong>in</strong>g Delegated Payments 227number with<strong>in</strong> the options field of the transaction token at time of token creation.This number would then be communicated to the concierge along withthe encrypted token and shopp<strong>in</strong>g list, as well as <strong>in</strong>st<strong>ru</strong>ctions on how to contactthe bank <strong>in</strong> case of loss.4 System PerformanceIn this section we evaluate our scheme and its ability to withstand a number ofdifferent attackers with a variety of capabilities. We also evaluate the system’scommunication and process<strong>in</strong>g overhead.4.1 Adversarial ModelWe consider a multi-role adversarial model that takes <strong>in</strong>to consideration whatthe adversary is assumed to be able to do dur<strong>in</strong>g an attack aga<strong>in</strong>st the system.1. A malicious concierge is able to save and later access transaction tokens andshopp<strong>in</strong>g lists. She can attempt to modify and reproduce the saved tokensand lists at a later date as well as attempt to use them with non-collud<strong>in</strong>gmerchants. In cases where the user discloses her identity to the concierge,that concierge may disclose the user’s identity to others.2. A malicious merchant is able to save and later view transaction tokens,shopp<strong>in</strong>g lists, concierge IDs and any other data given to it dur<strong>in</strong>g previoustransactions. It may later attempt to redeem them with a non-collud<strong>in</strong>gbank.3. A malicious bank is able to save and later view transaction tokens and anydata given to it by merchants.4. A malicious customer, will<strong>in</strong>g to fraudulently repudiate his shopp<strong>in</strong>g bills.5. A collud<strong>in</strong>g concierge and merchant is the comb<strong>in</strong>ation of adversaries (1) and(2). The concierge works with the merchant to try and defraud the customeror to evade the restra<strong>in</strong>ts imposed by the shopp<strong>in</strong>g list.6. A collud<strong>in</strong>g merchant and bank is the comb<strong>in</strong>ation of adversaries (2) and(3). The merchant and bank work together to try to reveal the identity andfull shopp<strong>in</strong>g list of the customer.7. A collud<strong>in</strong>g concierge and bank is the comb<strong>in</strong>ation of adversaries (1) and(3). The concierge and bank work together to reveal the identity and fullshopp<strong>in</strong>g list of the customer.4.2 Security and Privacy AnalysisWe now explore the options available to each adversary, and describe whichsensitive <strong>in</strong>formation they know and can potentially reveal to those with whomthey collude. This can also be seen visually <strong>in</strong> Figure 2.


228 C. Soghoian and I. AadConciergeNormal exchangeCollusion exchangeUser (?)(PIN)_BankPubK(Accnt#)_BankPubKitem_a , r_a{item_b , r_bitem_c , r_c{(unpurchased) item_d , r_dclear txtMerchant(PIN)_BankPubK(Accnt#)_BankPubKitem_a , r_aitem_b , r_b}item_c , r_cUserPINAccnt#h(item_a , r_a)h(item_b , r_b)h(item_c , r_c){{}HashedBankFig. 2. A representation of the <strong>in</strong>formation that each potentially malicious party knowsand what they can provide to those other entities with whom they collude. One caneasily see the advantage over exist<strong>in</strong>g payment systems, for <strong>in</strong>stance the one-time-usecredit cards: us<strong>in</strong>g Merx the merchant does not know who the customer is.A Malicious Concierge: This attacker has very few options. Any attemptsat modify<strong>in</strong>g, forg<strong>in</strong>g or replay<strong>in</strong>g transaction tokens will be detected by thebank and rejected. If the customer sends the token to the concierge via anelectronic medium, the concierge may never never learn the customer’s identity.Furthermore, the concierge never learns the customer’s account number and PIN,and thus, it is impossible to later create fraudulent tokens.The size of the customer’s anonymity set [22] <strong>in</strong>creases as the number ofother customers employ<strong>in</strong>g a s<strong>in</strong>gle concierge (or a delivery service) <strong>in</strong>creases.Customers who purchase uncommon items will reveal some <strong>in</strong>formation, enabl<strong>in</strong>gthe l<strong>in</strong>k<strong>in</strong>g of multiple transactions even though the customer’s t<strong>ru</strong>e identityrema<strong>in</strong>s unknown.A Malicious Merchant: This adversarial scenario <strong>in</strong>cludes both cor<strong>ru</strong>pt merchantsand situations <strong>in</strong>volv<strong>in</strong>g an <strong>in</strong>sider attack, where an employee of themerchant misuses or steals customer records. As the merchant never learns thecustomer’s name or account <strong>in</strong>formation, any system breach or data loss <strong>in</strong>cident<strong>in</strong>volv<strong>in</strong>g the merchant’s computer systems will not result <strong>in</strong> the release ofidentifiable customer data or bill<strong>in</strong>g <strong>in</strong>formation. The only l<strong>in</strong>k to the customerthat the merchant has is the identity of the concierge. This l<strong>in</strong>k can be furtherweakened if the customer communicates with the concierge electronically.


Merx: Secure and Privacy Preserv<strong>in</strong>g Delegated Payments 229A Malicious Bank: The bank is prohibited from learn<strong>in</strong>g the <strong>in</strong>dividual itemsthat a customer purchases at each merchant. The bank is only able to learnhow many total items are on a shopp<strong>in</strong>g list, how many items from the list havebeen purchased at each merchant, and the total transaction cost charged by eachmerchant.Customers have their anonymity reduced when large shopp<strong>in</strong>g lists are brokenup <strong>in</strong>to smaller transactions. In situations where consumers wish to permit thepurchase of a number of fixed and uniquely priced items from multiple merchants,it may be possible for the bank to learn which items the customer listed <strong>in</strong> theirshopp<strong>in</strong>g list.For example, this attack is possible when a concierge buys a s<strong>in</strong>gle item fromeach of several merchants. While the bank does not know which items have beenpurchased, it does know how much each item costs, due to the the fact that eachtransaction was for a s<strong>in</strong>gle item. Bank employees can later visit the merchant’sstore and attempt to f<strong>in</strong>d all items sold by the merchant for any particular price.This item identification risk can be mitigated through the purchase of variableprice/quantity items (such as bulk weight food items), items from merchantsthat charge the same price for a large variety of different goods, or by requir<strong>in</strong>gper-merchant transactions to consist of at least two or more items.Repudiation Issues: Rely<strong>in</strong>gonsharedPINsthatareknowntoboththecustomer and the bank for authentication can lead to repudiation issues: thecustomer may try to dispute a given shopp<strong>in</strong>g bill by accus<strong>in</strong>g the bank of forg<strong>in</strong>git. This same problem exists under the exist<strong>in</strong>g bank<strong>in</strong>g system, and with thef<strong>in</strong>ger po<strong>in</strong>t<strong>in</strong>g that has occurred with “phantom withdrawals.” That particularproblem has been mostly solved through legal liability. In many countries, theburden is on the bank to prove that the charge was valid, not for the customerto prove that it was fraudulent [23].Our scheme provides customers and banks with the same level of t<strong>ru</strong>st thatthey currently have us<strong>in</strong>g exist<strong>in</strong>g bank<strong>in</strong>g technologies (ATM, credit cardcharges without a signature, etc.). To avoid many repudiation issues, just aswith 3KP [4], the bank could require that specific customers (e.g. who usuallyperform highly valuable transactions) sign transaction tokens with their privatekeys. This of course <strong>in</strong>troduces the overhead of issueu<strong>in</strong>g public/private key pairsfor those customers. By assum<strong>in</strong>g a level of mutual t<strong>ru</strong>st between the bank andthe customer equal to the relationship that already exists with “traditional”bank accounts, we are able to keep the default authentication of Merx as PINbased,and <strong>in</strong>troduce key pairs for a fraction of customers, should they or themarket demand it.In addition to the repudiation issues between a customer and a bank, there isalso the possibility of a dispute between the customer and merchant. In the casethat a merchant sells a concierge a defective or poor quality item, the customerwould not discover the problem until the concierge delivered the goods. Thissituation is <strong>in</strong> no way unique to our scheme, and is a major problem for cashbasedtransactions. This problem is beyond the scope of our scheme, as we focus


230 C. Soghoian and I. Aadon giv<strong>in</strong>g customers at least the same level of protection that they have withcash-based transactions.A Collud<strong>in</strong>g Concierge and Merchant: The bank does not learn the pricecharged for each item and <strong>in</strong>stead relies on the merchant to enforce the maximumprice specified for each item <strong>in</strong> the shopp<strong>in</strong>g list. Thus, <strong>in</strong> this collusion scenario,the merchant can also overcharge for <strong>in</strong>dividual items. This risk can be mitigatedby requir<strong>in</strong>g that merchants transmit the price of each item to the bank, butthis will result <strong>in</strong> a loss of purchase privacy for the customer.It is not possible to protect the privacy of the customer’s shopp<strong>in</strong>g list fromthe bank, without at the same time enabl<strong>in</strong>g a collud<strong>in</strong>g merchant and conciergeto bypass the shopp<strong>in</strong>g list restrictions. This more advanced adversary is able toneutralize the enforcement of shopp<strong>in</strong>g lists. For example, the customer can listapples on her shopp<strong>in</strong>g list, yet the concierge can <strong>in</strong>stead purchase oranges. Thecollud<strong>in</strong>g merchant will provide the concierge with oranges but send the banka transaction with the (hashed) apple item <strong>in</strong> the shopp<strong>in</strong>g list. The maximumtotal price specified <strong>in</strong> the transaction token will at least protect the customerfrom more egregious abuses.A Collud<strong>in</strong>g Merchant and Bank: This advanced adversary is able to neutralizethe privacy protection associated with shopp<strong>in</strong>g lists. The merchant canreveal the complete shopp<strong>in</strong>g list to the bank, and thus permit the bank to createa full record of every item purchased by the customer at that merchant.The bank is also able to share the customer’s <strong>in</strong>formation with the merchant,and thus strip the customer of her anonymity. In such a situation, the merchantwill know who the customer is, and the bank will know every item that thecustomer purchases from the collud<strong>in</strong>g merchant.A Collud<strong>in</strong>g Concierge and Bank: This is a more extreme case of theprevious adversary. Whereas a collud<strong>in</strong>g merchant and bank are only able toviolate the customer’s privacy for that specific merchant, a collud<strong>in</strong>g conciergeand bank are able to do so for all transactions. Thus, the bank is able to createa complete list of every item purchased through the concierge by the customer.If the customer has attempted to hide her identity from the concierge bytransmitt<strong>in</strong>g the transaction tokens electronically, this collusion will strip thecustomer of her privacy. The bank can reveal the customer’s identity to theconcierge, while the concierge can reveal the complete list of purchased items tothe bank.A Law Enforcement Investigation: In situations where government agentsor law enforcement officers are able to compel multiple actors to disclose transaction<strong>in</strong>formation, the customer’s anonymity and transaction privacy are lost.For purposes of privacy analysis, a search warrant executed on the bank anda merchant is the same as the collusion scenario outl<strong>in</strong>ed above <strong>in</strong> section 4.2.Our system is not designed to protect the customer’s purchase privacy aga<strong>in</strong>st


Merx: Secure and Privacy Preserv<strong>in</strong>g Delegated Payments 231government <strong>in</strong>vestigations. Customers wish<strong>in</strong>g that level of protection may wantto stick with cash.As we can see, Merx provides high levels of security and privacy aga<strong>in</strong>st <strong>in</strong>dividualactors. The collusion between non-t<strong>ru</strong>sted parties leads to m<strong>in</strong>or “controllable”effects. The only severe damages result from collusions <strong>in</strong>volv<strong>in</strong>g thebank. However, such collusions are the least likely to occur <strong>in</strong> everyday life.4.3 Communication and Process<strong>in</strong>g OverheadIn this section we evaluate the additional costs, process<strong>in</strong>g, and communicationoverhead our system requires from all parties. The ma<strong>in</strong> observation is that thedelegation mechanism we propose, <strong>in</strong> its most basic form, requires no additionalhardware. It is a simple software solution us<strong>in</strong>g off-the-shelf components thatpiggyback on the exist<strong>in</strong>g payment-network <strong>in</strong>frast<strong>ru</strong>cture.For the numerical evaluation, we assume the customer uses a low-capacitymobile device (200MHz processor, 64MB RAM), whereas the merchant and thebank use an average speed server or desktop PC (Intel P4 2.8Ghz, 500MB RAM).We chose the SHA256 algorithm for all hashes, which we compute us<strong>in</strong>g thefree OpenSSL library. GnuPG, an open-source implementation of Pretty GoodPrivacy was used for all encryption. We selected GnuPG’s default algorithmsof El Gamal with 2048 bit keys (public key encryption) and AES (symmetricencryption) as these provide sufficient security while be<strong>in</strong>g quick to computeon a mobile platform. While we have chosen these particular algorithms, thescheme is flexible, and alternative encryption/hash<strong>in</strong>g technologies could easilybe substituted.The process<strong>in</strong>g time results shown <strong>in</strong> Fig. 3 are averaged over 10 <strong>ru</strong>ns for eachnumber of items. The confidence <strong>in</strong>tervals are very small, therefore omitted fromthe figure.The Customer: To use such a system, the customer must have access to eithera mobile telephone or a computer. These devices do not necessarily need to beowned by the customer. In many cases, she merely needs to have temporaryaccess to them. If the customer owns the device, the she can store her accountnumber <strong>in</strong> it. If she is borrow<strong>in</strong>g the device from someone else, she will need tof<strong>in</strong>d a way to <strong>in</strong>put her account number. This can be done manually (e.g. byenter<strong>in</strong>g a 16+ digit number), or perhaps by read<strong>in</strong>g a QR code pr<strong>in</strong>ted ontothe back of her bank card with a camera phone.Figure 3 shows the process<strong>in</strong>g time required to create a token, for a givennumber of items <strong>in</strong> the shopp<strong>in</strong>g list. We can observe that <strong>in</strong> spite of the lowprocess<strong>in</strong>gpower of the customer’s device, the process<strong>in</strong>g delay is still acceptableeven for an exaggerated number of items. For low number of items, the process<strong>in</strong>gdelay rema<strong>in</strong> below 10 s.The total size of an encrypted transaction token for 10 items is approximately1.6 KBytes, with an additional 1 KByte required for the shopp<strong>in</strong>g list. For atransaction <strong>in</strong>volv<strong>in</strong>g 50 items, the token grows to nearly 3 KBytes while the


232 C. Soghoian and I. AadProcess<strong>in</strong>g time (s)504540353025201510564200 10 20 3000 100 200 300 400 500Number of itemsBankCustomerMerchantFig. 3. Process<strong>in</strong>g time for the customer, merchant and bank, with respect to thenumber of purchased itemsshopp<strong>in</strong>g list grows to 4.5 KBytes, as the shopp<strong>in</strong>g lists are currently transmitted<strong>in</strong> pla<strong>in</strong> text and are not compressed.Depend<strong>in</strong>g on the level of personal <strong>in</strong>teraction that the customer wishes tohave with the concierge, the method of transmission and technical requirementswill differ. A transaction token can be electronically transmitted us<strong>in</strong>g email,<strong>in</strong>stant message, Bluetooth, IR, or MMS. The token, and its HMAC, can alsobe pr<strong>in</strong>ted on to paper by represent<strong>in</strong>g them as a QR codes which can then behand-delivered or faxed to the concierge.With Bluetooth 2.0 transmission rates of 2.1 Mbit/s, it is clear that a usershould be able transmit the token, its HMAC, and the shopp<strong>in</strong>g list to theconcierge <strong>in</strong> under a second (plus the time required to setup and teardown theBluetooth connection). If the user is not near to the concierge, the user can useMMS on her phone to transmit the token and shopp<strong>in</strong>g list. 3G cellular networkstypically offer speeds of 144Kbit/s <strong>in</strong> a high-velocity mov<strong>in</strong>g environment, 384Kbit/s <strong>in</strong> a low-velocity mov<strong>in</strong>g environment, and 2 Mbit/s <strong>in</strong> a stationary environment.Aga<strong>in</strong>, it takes less than a second for the token, its HMAC, and theshopp<strong>in</strong>g list to be transmitted.The Concierge: If the token has been electronically transmitted to theconcierge, she will either need to br<strong>in</strong>g it to the merchant <strong>in</strong> electronic form,us<strong>in</strong>g a mobile phone or any other mobile comput<strong>in</strong>g device, or pr<strong>in</strong>t it out ontopaper. The technical requirements for the concierge’s device will depend on thereceiv<strong>in</strong>g equipment that the merchant has. There are no process<strong>in</strong>g tasks tobe performed by the concierge, as she merely relays the token and shopp<strong>in</strong>g listgiven to her by the customer. It is therefore possible for the concierge to simplyreceive paper pr<strong>in</strong>touts of the token and shopp<strong>in</strong>g list, which she can thenhand-deliver to the merchant when she purchases items.The Merchant: The merchant must have a means of read<strong>in</strong>g <strong>in</strong> the transactiontokens. At the most basic and <strong>in</strong>ter-operable level, the merchant will need


Merx: Secure and Privacy Preserv<strong>in</strong>g Delegated Payments 233to have the ability to read QR codes. To accept electronic tokens, the merchantwill also need to support either MMS, Bluetooth or IR. All of these tasks can beaccomplished with a camera-enabled smart phone. Complex <strong>in</strong>tegration with themerchant’s exist<strong>in</strong>g computerized po<strong>in</strong>t-of-sale system will of course require additionalhardware. The merchant will also need a way to transmit the encryptedtransaction tokens, the HMACs, and hashes of the purchased items to the bank<strong>in</strong> order to validate the transaction. However, most merchants already have anelectronic transmission system that enables them to process ATM and creditcard transactions. The transaction token system can easily piggyback on theexist<strong>in</strong>g f<strong>in</strong>ancial transaction transfer <strong>in</strong>frast<strong>ru</strong>cture, although the eng<strong>in</strong>eer<strong>in</strong>gtask of this <strong>in</strong>tegration is beyond the scope of our work [24]. On the other hand,po<strong>in</strong>t-of-sales that already support mobile-phone payments, e.g. [25] widely deployed<strong>in</strong> Japan, would require simple software updates.Smaller merchants may use a basic credit card mach<strong>in</strong>e with a 56Kbps modem,while the larger firms may use a sophisticated po<strong>in</strong>t of sale system connected toan ISDN l<strong>in</strong>e or even use a VPN over a broadband Internet connection. Even forthese smaller merchants, the transmission time required to send a 1.6 KBytestransaction token for 10 items and a 1 KByte transaction request (list<strong>in</strong>g theprice of each item, as well as the hash of each item and associated randomnumber) rema<strong>in</strong>s under 1 s. For the larger merchants with an even faster connectionto a payment processor, the transmission time for the transaction tokenis negligible.For a merchant to be able to process a Merx transaction, it must calculatea SHA256 hash for each item i ,r i pair before send<strong>in</strong>g the list of hashes and thetransaction token to the bank. Thus, <strong>in</strong> addition to transmission time analyzedabove previously, we must also consider the time required to compute the itemhashes. On the merchant’s mach<strong>in</strong>e, a SHA256 hash takes approximately 10 ms.Therefore, even with 100 item hashes to calculate, the merchant will only <strong>in</strong>troducea 1 second delay to the retail checkout process.Figure 3 shows that the time required for the merchant’s server to process atoken is approximately 4 s for 500 items. For a lower and more common numberof items, the process<strong>in</strong>g time is below 1 s.The Bank: The bank already communicates with merchants dur<strong>in</strong>g transactionsover the exist<strong>in</strong>g f<strong>in</strong>ancial network, so that credit card numbers can beverified. Merx additionally requires that the bank decrypts the transaction token,verify the contents and then transmit a message back to the merchant. Inorder to stop double spend<strong>in</strong>g and allow transactions to be broken up <strong>in</strong>to multiplesub-transactions serviced by different merchants, the bank must keep trackof and remember the contents of a transaction token for a significant time <strong>in</strong> thefuture.Let us assume that the bank stores 100 Bytes of <strong>in</strong>formation per item purchased(which <strong>in</strong>cludes the item hash, the price paid, the customer’s accountnumber, and a time stamp), as well as an additional 100 Bytes for every transactiontoken that has been used at least once. Thus, the storage overhead for a


234 C. Soghoian and I. Aadtransaction token with 100 purchased items is approximately 11 KByte. Assum<strong>in</strong>gstorage costs of $250 per GByte for a Fiber Channel RAID system ($7 permonth for three years), the storage costs for a transaction token and 100 itemsis approximately 1/4 of a penny.Figure 3 shows that the process<strong>in</strong>g time for the bank <strong>in</strong>creases very slowly withthe number of items <strong>in</strong> the shopp<strong>in</strong>g list, however it rema<strong>in</strong>s less than 500 mseven for a transaction token with 500 items. Compar<strong>in</strong>g the cumulative delays(≈ 4s for transmission + process<strong>in</strong>g) of the concierge, bank, and merchant, to thetypical values of queu<strong>in</strong>g delays at cash desks <strong>in</strong> [26], shows that the additionaloverhead <strong>in</strong>troduced by Merx rema<strong>in</strong>s negligible.Insider theft is a major threat to the f<strong>in</strong>ancial service <strong>in</strong>dustry [27]. Whilecustomers can buy shredders, monitor their credit reports and take otherpro-active steps to protect themselves aga<strong>in</strong>st identity theft, there is little thatthey can do to stop a cor<strong>ru</strong>pt merchants (or their employees) from sav<strong>in</strong>g a copyof the customer’s credit card <strong>in</strong>formation. Due to pro-consumer legislation, thebanks are often responsible for this fraud. As a result, the banks often bear thef<strong>in</strong>ancial consequences of merchant <strong>in</strong>sider theft. In our scheme, the credit cardor account details are stored <strong>in</strong> an encrypted token. As the merchant has no wayof read<strong>in</strong>g this <strong>in</strong>formation, there is no way for a cor<strong>ru</strong>pt employee to write downthe user’s account number for later use. By switch<strong>in</strong>g to Merx, banks should beable to significantly reduce their exposure to merchant <strong>in</strong>sider theft.5 Example ApplicationsMerx, as described <strong>in</strong> the previous sections, has various use cases such as:– Delegated concierge service– Corporate environments, where the employer delegates payments to her employeesdur<strong>in</strong>g bus<strong>in</strong>ess trips. Merx gives the company more control overthe payments, while offer<strong>in</strong>g more flexibility to the employee. Moreover, theemployer has the option of keep<strong>in</strong>g her identity hidden to the merchant.– Family situations where parents typically give money to their children (e.g.go<strong>in</strong>g on vacation), tak<strong>in</strong>g the risk of hav<strong>in</strong>g it stolen, or simply used by thechildren for unwanted purchasesIn addition to the above scenarios, Merx can be slightly modified to support otherappeal<strong>in</strong>g applications such as ATM withdrawal delegation, or self-delegatedtravelers cheques.5.1 ATM Withdrawal DelegationPIN and password shar<strong>in</strong>g is common amongst married couples and even somet<strong>ru</strong>sted friends [2]. Unfortunately, bank<strong>in</strong>g policies do not reflect the reality ofthe real world t<strong>ru</strong>st relationships. Often, f<strong>in</strong>ancial <strong>ru</strong>les stipulate that the bankswill only be held responsible for fraud <strong>in</strong> cases where the customer has not shared


Merx: Secure and Privacy Preserv<strong>in</strong>g Delegated Payments 235their log<strong>in</strong> <strong>in</strong>formation with anyone else. Thus, when users share their accountauthentication <strong>in</strong>formation with spouses or t<strong>ru</strong>sted friends, they lose any form oflegal liability protection <strong>in</strong> cases of fraud, even when the fraud is later committedby complete strangers [2].People <strong>in</strong> remote areas of the world often live and work very far from thenearest bank or ATM. Out of necessity, people must rely on their friends, familymembers or even neighbors for access to bank<strong>in</strong>g facilities. Typically, one personwill travel to the nearest large town and take care of everyone else’s bus<strong>in</strong>essfor them. This person will carry a large number of ATM cards, each with anaccompany<strong>in</strong>g PIN written down on a piece of paper [2].This system requires a huge amount of t<strong>ru</strong>st, <strong>in</strong> that the t<strong>ru</strong>sted person couldchoose to draw down everyone else’s accounts, and then leave the country. Usersare not able to convey their <strong>in</strong>tent (e.g. “Please allow Tom to withdraw 40dollars from my account”), and <strong>in</strong>stead must give complete control over theirbank account to that t<strong>ru</strong>sted person.While mobile-phone based e-bank<strong>in</strong>g would also provide a solution to thisproblem (<strong>in</strong> that customers could transfer money onl<strong>in</strong>e to the account of theconcierge, who would then withdraw it), this would require that each customerhave access to onl<strong>in</strong>e bank<strong>in</strong>g facilities. This is often not a practical requirement<strong>in</strong> remote parts of the world, and so our scheme is designed to work withoutaccess to the Internet. Users can be offl<strong>in</strong>e when they create transaction tokens.We propose two adaptations of Merx to this problem. Both schemes requirethat the user wish<strong>in</strong>g to delegate withdrawal have access to a mobile phone orcomputer. The first requires that the user have access to a pr<strong>in</strong>ter or a Bluetoothenabled mobile phone and that the bank deploy a Bluetooth compatible ATMmach<strong>in</strong>e. The second solution does not require Bluetooth mobile support, canbe used with a pen and paper and only requires that the bank deploy a softwareupgrade to enable the ATM mach<strong>in</strong>e to support long PINs.The first solution works as follows:Alice, who is stay<strong>in</strong>g at home, has asked her friend Bob to go to the ATM <strong>in</strong>the nearest large town, which is 8 hours away by bus. Us<strong>in</strong>g her mobile phone,Alice thus creates a transaction token, and its HMAC:TransactionToken =(Acct#,PIN,TimeStamp,Amount,ConciergeID,T ransactionP IN, MacKey, n) BankPubKWhere n is a random nonce added to protect aga<strong>in</strong>st dictionary attacks target<strong>in</strong>gthe user’s PIN. This token is then either transmitted to Bob’s mobile phonevia a Bluetooth connection or Alice pr<strong>in</strong>ts the token <strong>in</strong> a computer-readableform, such as us<strong>in</strong>g QR codes.If Bob tries to modify the transaction token <strong>in</strong> any way, it will be rejectedby the bank. As he does not have Alice’s PIN, he cannot create a valid token.Thus, the security of this scheme depends on Alice ma<strong>in</strong>ta<strong>in</strong><strong>in</strong>g the privacyof her PIN, which is an exist<strong>in</strong>g requirement for the security of her bank account.


236 C. Soghoian and I. AadFurthermore, if Bob tries to reuse the same token twice, the bank will rejectit. This of course requires that the bank must ma<strong>in</strong>ta<strong>in</strong> a list of all redeemedtokens.The second solution works as follows:If Bob does not have a mobile phone, or the bank’s ATM mach<strong>in</strong>e does notsupport Bluetooth, it is not possible to use the previously described scheme.We must then fall-back to a more limited protocol, which uses the exist<strong>in</strong>g<strong>in</strong>frast<strong>ru</strong>cture.This scheme still requires that Alice have access a mobile phone or a comput<strong>in</strong>gdevice, but it does not need to support Bluetooth. Alice must, at someprevious time, have established a long shared key (LongP IN) with the bank.This key must be suitably large, such that it is resistant to a dictionary attack.If Alice is will<strong>in</strong>g to type <strong>in</strong> her authentication details each time, it is possiblefor her to use someone else’s phone to generate the token. This puts her at riskof PIN theft through keyboard sniff<strong>in</strong>g and other attacks, and so it would be farsafer for her to use her own device. However, <strong>in</strong> cases where users are will<strong>in</strong>g torisk these additional threats, it is possible for a large group of people to share as<strong>in</strong>gle mobile phone to generate their delegated ATM withdrawal tokens.Us<strong>in</strong>g her mobile phone, Alice then creates the transaction token:TransactionToken= h(Acct#||LongP IN||Timestamp||Amount||BobID,TransactionPIN)Alice can then write this hash down on a piece of paper, along with her accountnumber, the timestamp, the transaction PIN and the amount to be withdrawn.We use SHA256 as our hash, which can be written as a 64 character str<strong>in</strong>g. Thisis short enough that it is reasonable to expect someone to type it <strong>in</strong>to an ATMby hand.5.2 Self-delegated Travelers ChequesThe delegated concierge scheme described before can be modified slightly toprovide traveler cheque functionality. A user can either assign the ConciergeIDto be her own ID, or to protect aga<strong>in</strong>st cases where she loses her wallet and allother forms of identification, a password or one time PIN can be substituted forthe ConciergeID field.The transaction token can also specify loose requirements for the k<strong>in</strong>ds ofitems or services that can be purchased. Examples of this can <strong>in</strong>clude a travelerscheque limited to one tra<strong>in</strong> ticket priced less than 100 dollars, a night <strong>in</strong> a 4 staror below hotel or a meal <strong>in</strong> a restaurant that cost less than 30 dollars. 6Such travelers cheques could be photocopied, allow<strong>in</strong>g an <strong>in</strong>dividual to keepmultiple copies on her person, should she be robbed or lose her wallet. A copycould be kept onl<strong>in</strong>e by email<strong>in</strong>g it to herself. Likewise, bus<strong>in</strong>ess travelers could6 Aga<strong>in</strong>, the flexibility of such a system typically depends on the specification languageused,asdiscussed<strong>in</strong>Section3.3.


Merx: Secure and Privacy Preserv<strong>in</strong>g Delegated Payments 237leave a copy with their secretaries back at the office, who could then fax themthe transaction token upon demand.Advantages Over Exist<strong>in</strong>g Travelers Cheques and money wir<strong>in</strong>gTravelers cheques are a stored payment medium, and not <strong>in</strong> any way a form ofcredit. In contrast with Merx, travelers Cheques have the follow<strong>in</strong>g drawbacks:– They cannot be photocopied, transmitted by fax or email.– They must be paid up-front, therefore mak<strong>in</strong>g the customer lost the <strong>in</strong>terests.– Travelers cheques are often used by customers <strong>in</strong> emergencies. However, dueto the requirement that the customer purchase travelers cheques before theyare used, it may be reasonable for someone to go <strong>in</strong>to unforeseen debt, dueto the circumstances of the situation.– If lost, the issu<strong>in</strong>g authority must be contacted to get them canceled andhave new ones issued, therefore <strong>in</strong>troduc<strong>in</strong>g undesirable delays.As for the advantages over wir<strong>in</strong>g money– Banks typically charge a fairly significant commission or fee for a wire transfer.– The two banks, at the sender’s and recipient’s locations, must be open forthe money wir<strong>in</strong>g to occur.– Wir<strong>in</strong>g money also requires the co-operation of someone on the other end ofthe transaction, which <strong>in</strong> emergency situations <strong>in</strong> foreign countries, can berather difficult.6 ConclusionIn this paper we present a secure and privacy preserv<strong>in</strong>g payment delegation system,Merx, for end-users with mobile devices not necessarily connected to theInternet. It allows users to delegate a third party that will purchase a specificlist of items from a merchant, keep<strong>in</strong>g the user’s ID secret from the merchant,and the list of items secret from the bank, while secur<strong>in</strong>g the transactions fromany fraudulent acts. The same mechanisms can be used to delegate money withdrawalfrom ATMs, for controll<strong>in</strong>g children’s expenses, or employees’ expensesdur<strong>in</strong>g bus<strong>in</strong>ess trips. When the user delegates himself for the transaction, themechanism works as a secure travelers cheques solution. The user is required touse a comput<strong>in</strong>g device, which can be a shared one. The transactions can beperformed us<strong>in</strong>g SMS, Bluetooth/IR, camera phones, or even us<strong>in</strong>g a pen and apaper. F<strong>in</strong>ally, we evaluate the performance of our system at thwart<strong>in</strong>g differentlevels of attack models, and its capacity and communication overhead. Merxcan be gradually deployed s<strong>in</strong>ce it can be used over exist<strong>in</strong>g payment network<strong>in</strong>frast<strong>ru</strong>ctures.


238 C. Soghoian and I. AadReferences1. The Near Field Communication (NFC) Fo<strong>ru</strong>m (2007), http://www.nfc-fo<strong>ru</strong>m.org2. S<strong>in</strong>gh, S., Cabraal, A., Demosthenous, C., Astbr<strong>in</strong>k, G., Furlong, M.: Passwordshar<strong>in</strong>g: implications for security design based on social practice. In: CHI 2007:Proceed<strong>in</strong>gs of the SIGCHI conference on Human factors <strong>in</strong> comput<strong>in</strong>g systems(2007)3. Peirce, M.: Payment mechanisms designed for the Internet (2001),http://ntrg.cs.tcd.ie/mepeirce/Project/on<strong>in</strong>ternet.html4. Bellare, M., Garay, J., Hauser, R., Herzberg, A., Krawczyk, H., Ste<strong>in</strong>e, M., Tsudik,G., Waidner, M.: iKP – A family of secure electronic payment protocols. In: FirstUSENIX Workshop on Electronic Commerce (1995)5. Anderson, R.J., Manifavas, C., Sutherland, C.: Netcard - a practical electroniccashsystem. In: Proceed<strong>in</strong>gs of the International Workshop on Security Protocols(1997)6. Gabber, E., Silberschatz, A.: Agora: a m<strong>in</strong>imal distributed protocol for electroniccommerce. In: WOEC 1996: Proceed<strong>in</strong>gs of the 2nd conference on Proceed<strong>in</strong>gs ofthe Second USENIX Workshop on Electronic Commerce (1996)7. Sirbu, M., Tygar, J.D.: Netbill: An <strong>in</strong>ternet commerce system optimized for networkdelivered services. In: COMPCON 1995: Proceed<strong>in</strong>gs of the 40th IEEE <strong>Computer</strong>Society International Conference (1995)8. Rivest, R.L., Shamir, A.: Payword and microm<strong>in</strong>t: Two simple micropaymentschemes. In: Security Protocols Workshop (1996)9. Glassman, S., Manasse, M., Abadi, M., Gauthier, P., Sobalvarro, P.: The millicentprotocol for <strong>in</strong>expensive electronic commerce. In: Proc. of the Fourth InternationWorld Wide Web Conference (WWW) (1995)10. Herzberg, A., Yochai, H.: M<strong>in</strong>i-Pay: Charg<strong>in</strong>g per Click on the Web. In: Proc. ofthe Sixth World Wide Web Conference (WWW) (1997)11. Paulson, L.C.: Verify<strong>in</strong>g the SET Protocol: Overview. In: FASec. (2002)12. Patil, V., Shyamasundar, R.K.: e-coupons: An efficient, secure and delegable micropaymentsystem. Information Systems Frontiers Journal (2005)13. Patil, V., Shyamasundar, R.: An efficient, secure and delegable micro-paymentsystem. In: Proc. of IEEE International Conference on e-Technoloty, e-Commerceand e-Service (EEE) (2004)14. Patil, V., Shyamasundar, R.: Towards a flexible access control mechanism for e-transactions. In: International Workshop on Electronic Government, and Commerce:Design, Model<strong>in</strong>g, Analysis and Security (EGCDMAS) (2004)15. Patil, V., Shyamasundar, R.: ROADS: Role-based Authorization and DelegationSystem - Authentication, Authorization and Applications. In: Proc. of Int. Conf.on Computational & Experimental Eng<strong>in</strong>eer<strong>in</strong>g and <strong>Science</strong>s (2003)16. Ivatury, G., Pickens, M.: Mobile phone bank<strong>in</strong>g and low-<strong>in</strong>come customers evidencefrom south africa. In: Consultative Group to Assist the Poor/The World Bank andUnited Nations Foundation (2006)17. Bellare, M., Namprempre, C.: Authenticated encryption: Relations among notionsand analysis of the generic composition paradigm. In: Okamoto, T. (ed.) ASI-ACRYPT 2000. LNCS, vol. 1976, pp. 531–545. Spr<strong>in</strong>ger, Heidelberg (2000)18. Okamoto, T. (ed.): ASIACRYPT 2000. LNCS, vol. 1976. Spr<strong>in</strong>ger, Heidelberg(2000)19. Blaze, M., Ioannidis, J., Keromytis, A.D.: Offl<strong>in</strong>e micropayments without t<strong>ru</strong>stedhardware. In: Syverson, P.F. (ed.) FC 2001. LNCS, vol. 2339, p. 21. Spr<strong>in</strong>ger,Heidelberg (2002)


Merx: Secure and Privacy Preserv<strong>in</strong>g Delegated Payments 23920. Jablon, D.P.: Strong password-only authenticated key exchange. SIGCOMM Comput.Commun. Rev. 26(5) (1996)21. Bellov<strong>in</strong>, S.M., Merritt, M.: Encrypted key exchange: Password-based protocolssecure aga<strong>in</strong>st dictionary attacks. In: SP 1992: Proceed<strong>in</strong>gs of the 1992 IEEE Symposiumon Security and Privacy (1992)22. Pfitzmann, A., Hansen, M.: Anonymity, unl<strong>in</strong>kability, undetectability, unobservability,pseudonymity, and identity management - a consolidated proposal for term<strong>in</strong>ology(2007)23. Anderson, R.J.: Liability and computer security: N<strong>in</strong>e pr<strong>in</strong>ciples. In: Gollmann, D.(ed.) ESORICS 1994. LNCS, vol. 875. Spr<strong>in</strong>ger, Heidelberg (1994)24. International Organization for Standardization: ISO 8583: F<strong>in</strong>ancial transactioncard orig<strong>in</strong>ated messages – Interchange message specifications (2003)25. http://www.nttdocomo.co.jp/english/service/osaifu/<strong>in</strong>dex.html26. Noldus Information Technology: L<strong>in</strong>eControl reduces wait<strong>in</strong>g time <strong>in</strong> supermarkets:Labor analysts use The Observer to get a grip on work processes (2004),http://www.noldus.com/site/doc20040110027. Sullivan, B.: Study: ID theft usually an <strong>in</strong>side job. MSNBC (2004),http://www.msnbc.msn.com/id/5015565


A Property-Dependent Agent Transfer ProtocolEimear Gallery 1,⋆ , Aarthi Nagarajan 2 , and Vijay Varadharajan 31 Royal Holloway, University of London, Egham, Surrey, TW20 0EX, United K<strong>in</strong>gdome.m.gallery@rhul.ac.uk2 Macquarie University, NSW 2109, Australiaaarthi@ics.mq.edu.au3 Macquarie University, NSW 2109, Australiavijay@ics.mq.edu.auAbstract. This paper exam<strong>in</strong>es how a secure agent transfer protocolbased upon TCG-def<strong>in</strong>ed mechanisms can be improved us<strong>in</strong>gproperty-based platform state <strong>in</strong>formation. In do<strong>in</strong>g so, we demonstratea practical implementation of property-based platform attestation us<strong>in</strong>gan enhanced version of the component property certificates def<strong>in</strong>ed <strong>in</strong>[16]. To illustrate our solution we provide examples of properties andcomponent property certificates given a mobile aglet that is dest<strong>in</strong>ed toexecute on a group of devices, where the mobile aglet orig<strong>in</strong>ator wishesto protect the confidentiality of the aglet code.1 IntroductionA mobile agent, which is comprised of code, data and execution state, is def<strong>in</strong>edas “an autonomous, reactive, goal-oriented, adaptive, persistent, socially awaresoftware entity, which can actively migrate from host to host” [27]. Mobile agentshave long been heralded as an important software paradigm <strong>in</strong> tackl<strong>in</strong>g problemssuch as bandwidth shortages, unreliable network connections, pre-def<strong>in</strong>edand rigid system architectures, and network latency [13,18], which persist <strong>in</strong> themobile environment due to the physical characteristics/constra<strong>in</strong>ts of the connections[26]. If, however, these persistent, autonomous programs are permittedto roam freely <strong>in</strong> a mobile network, <strong>in</strong>teract<strong>in</strong>g with systems and other agentsto fulfil their predef<strong>in</strong>ed goals, the risk of a mobile host with malicious <strong>in</strong>tentdamag<strong>in</strong>g a mobile agent or a malicious agent damag<strong>in</strong>g a mobile host becomesa very real danger. While the topic of host protection has been widely discussed,see for example [4,9,12,17,19,29,30,39,40], a relative dearth of <strong>in</strong>formation existson mobile agent protection. Recent research [3] suggests that the deployment oft<strong>ru</strong>sted comput<strong>in</strong>g technology <strong>in</strong> a mobile agent sett<strong>in</strong>g can solve many securityissues <strong>in</strong>tr<strong>in</strong>sic to mobile agent protection. However, the use of b<strong>in</strong>ary platformstate <strong>in</strong>formation has proved to be problematic. In this paper we exam<strong>in</strong>e howa secure agent transfer protocol which leverages t<strong>ru</strong>sted comput<strong>in</strong>g functionalitycan be enhanced us<strong>in</strong>g property-based platform state <strong>in</strong>formation <strong>in</strong> order⋆ Research was sponsored by the Open T<strong>ru</strong>sted Comput<strong>in</strong>g project of the EuropeanCommissions Framework 6 Programme.L. Chen, C.J. Mitchell, and A. Mart<strong>in</strong> (Eds.): T<strong>ru</strong>st 2009, LNCS <strong>5471</strong>, pp. 240–263, 2009.c○ Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2009


A Property-Dependent Agent Transfer Protocol 241to provide mobile agent protection. In do<strong>in</strong>g so, we extend and demonstrate apractical use of component property certificates, as def<strong>in</strong>ed <strong>in</strong> [16].Sections 2, 3 and 4 review the necessary background material. In section 2t<strong>ru</strong>sted comput<strong>in</strong>g concepts are explored. Section 3 highlights prior art relat<strong>in</strong>gto t<strong>ru</strong>sted comput<strong>in</strong>g and agent protection. In section 4 the concept of propertybasedattestation is <strong>in</strong>troduced. The rema<strong>in</strong>der of the paper describes a propertydependentagent transfer protocol. Section 5 identifies the security requirementsthat the protocol should satisfy and section 6 def<strong>in</strong>es a key migration-basedagent transfer protocol currently supported by the T<strong>ru</strong>sted Comput<strong>in</strong>g Group(TCG) specification set. Follow<strong>in</strong>g a discussion of why a TCG mechanism basedprotocol is not sufficient <strong>in</strong> this particular scenario, the assumptions upon whichour protocol is based are outl<strong>in</strong>ed <strong>in</strong> section 7. Section 8 develops the conceptof property-based state <strong>in</strong>formation and property certificates (with examplesperta<strong>in</strong><strong>in</strong>g to the aglet environment). In section 9 a secure agent transfer protocolwhich leverages property-based platform state <strong>in</strong>formation is def<strong>in</strong>ed andanalysed. We conclude <strong>in</strong> section 10.2 T<strong>ru</strong>sted Comput<strong>in</strong>g FundamentalsA T<strong>ru</strong>sted Platform (TP) is one that will behave <strong>in</strong> a particular manner fora specific purpose. The TCG’s T<strong>ru</strong>sted Platform Module (TPM) specifications[34,35,36] are central to the implementation of a t<strong>ru</strong>sted comput<strong>in</strong>g platform.These specifications describe a microcontroller with cryptographic coprocessorcapabilities that provides a platform with a number of special purpose registersfor record<strong>in</strong>g platform state <strong>in</strong>formation; a means of report<strong>in</strong>g this state toremote entities; secure volatile and non-volatile memory; random number generation;a SHA-1 hash<strong>in</strong>g eng<strong>in</strong>e; and asymmetric key generation, encryption anddigital signature capabilities. The current documentation from the TCG alsoencompasses a vast set of specifications rang<strong>in</strong>g from those relat<strong>in</strong>g to t<strong>ru</strong>stedpersonal computers [32], server systems [31], and to specifications for t<strong>ru</strong>stednetwork<strong>in</strong>g [33]. The TCG Mobile Phone Work<strong>in</strong>g Group (MPWG) has recentlypublished the TCG Mobile T<strong>ru</strong>sted Module (MTM) specification [37,38] (namely,a TPM designed for a handheld mobile device) which enables the developmentof a T<strong>ru</strong>sted Mobile Platform (TMP).T<strong>ru</strong>sted comput<strong>in</strong>g, as currently def<strong>in</strong>ed by the TCG, is built upon five fundamentalconcepts: <strong>in</strong>tegrity measurement, authenticated boot, secure boot, platformattestation, andprotected storage.– An <strong>in</strong>tegrity measurement is def<strong>in</strong>ed <strong>in</strong> [23] as the cryptographic digest orhash of a platform component (i.e., a piece of software execut<strong>in</strong>g on theplatform).– Dur<strong>in</strong>g an authenticated boot, a pre-def<strong>in</strong>ed set of platform components isreliably measured and the result<strong>in</strong>g <strong>in</strong>tegrity measurements condensed andreliably stored to form a set of platform <strong>in</strong>tegrity metrics.– Dur<strong>in</strong>g a secure boot, a pre-def<strong>in</strong>ed set of platform components is reliablymeasured, the result<strong>in</strong>g measurements verified aga<strong>in</strong>st their expected values,


242 E. Gallery, A. Nagarajan, and V. Varadharajanand stored as above. A secure boot mechanism is required <strong>in</strong> a TMP, but isnot mandated <strong>in</strong> other implementations.– Platform attestation enables a T(M)P to reliably report <strong>in</strong>formation aboutits current state (namely, the <strong>in</strong>tegrity metrics reflect<strong>in</strong>g (all or part of) theplatform’s software environment).– Us<strong>in</strong>g its protected storage functionality a TPM/MTM can generate an unlimitednumber of asymmetric key pairs. For each of these pairs, private keyuse and mobility can be constra<strong>in</strong>ed. The notions of b<strong>in</strong>d<strong>in</strong>g, the process ofencrypt<strong>in</strong>g data so that only a particular TPM/MTM can decrypt it, andseal<strong>in</strong>g, the process of encrypt<strong>in</strong>g data so that only a particular TPM/MTMcan decrypt it when the TPM/MTM’s host platform is <strong>in</strong> a particular state,are also of fundamental importance to t<strong>ru</strong>sted comput<strong>in</strong>g.For a platform to be considered t<strong>ru</strong>sted, it must first obta<strong>in</strong> the follow<strong>in</strong>g corecredentials from an endorsement Certification Authority (CA), a platform CA,and one or more conformance CAs, respectively.An endorsement credential: Each TPM is, and each MTM may be, associatedwith a unique asymmetric encryption key pair called an EndorsementKey (EK) pair. An endorsement credential b<strong>in</strong>ds the public component ofthis key pair to a TPM/MTM description and vouches that a TPM/MTMis genu<strong>in</strong>e. The endorsement CA is typically the TPM/MTM manufacturer,with the b<strong>in</strong>d<strong>in</strong>g tak<strong>in</strong>g the form of a digital signature created us<strong>in</strong>g a sign<strong>in</strong>gkey of the manufacturer.A platform credential: A platform credential asserts that a TPM/MTM hasbeen correctly <strong>in</strong>corporated <strong>in</strong>to a design conform<strong>in</strong>g to the TCG specifications.The platform CA is typically the platform manufacturer. In order tocreate a platform credential, the platform CA must exam<strong>in</strong>e the endorsementcredential, the conformance credentials relevant to the t<strong>ru</strong>sted platform, andthe platform to be certified.Oneormoreconformancecredentials:Conformance credentials vouchthat a particular type of TPM/MTM and associated components (such as aRTM and the connection of the RTM and TPM to a motherboard) conformto the TCG specifications. Conformance CAs must be entities with sufficientcredibility to evaluate platforms conta<strong>in</strong><strong>in</strong>g TPMs/MTMs, and are typicallyconformance test<strong>in</strong>g facilities.In order to address privacy concerns result<strong>in</strong>g from rout<strong>in</strong>e use of an EK, theTCG <strong>in</strong>troduced the ability for a TPM/MTM to generate and use an arbitrarynumber of pseudonyms, <strong>in</strong> the form of Attestation Identity Key (AIK) pairs. Inorder for a rely<strong>in</strong>g party to have assurance that an AIK represents a t<strong>ru</strong>stedplatform, a platform must obta<strong>in</strong> an AIK certificate from a mutually t<strong>ru</strong>stedthird party. Two approaches to AIK certification have been proposed by theTCG. In the first approach, a t<strong>ru</strong>sted third party, referred to as a Privacy-Certification Authority (P-CA), verifies a t<strong>ru</strong>sted platform’s core credential setand provides assurance that an AIK is bound to a genu<strong>in</strong>e t<strong>ru</strong>sted platform <strong>in</strong>the form of an AIK credential. However, this approach has attracted a certa<strong>in</strong>


A Property-Dependent Agent Transfer Protocol 243amount of criticism, as a P-CA is capable of l<strong>in</strong>k<strong>in</strong>g all the AIK credentials itissues to a specific platform via the EK, putt<strong>in</strong>g the P-CA <strong>in</strong> a position where it isable to defeat the anonymity protection provided by the use of AIKs. The secondapproach, Direct Anonymous Attestation (DAA), was <strong>in</strong>troduced to counteractthis criticism. DAA requires a DAA CA, which can produce an anonymous DAAcredential for a t<strong>ru</strong>sted platform, which <strong>in</strong> turn can be used by the platform tosign AIK credentials. Us<strong>in</strong>g this approach, t<strong>ru</strong>sted platforms can generate anduse AIKs which cannot be easily l<strong>in</strong>ked to a particular EK by any third party.As privacy is not always of concern <strong>in</strong> a t<strong>ru</strong>sted mobile platform an MTM maybe only be provisioned with a s<strong>in</strong>gle certified AIK pair which attests that it is<strong>in</strong>deed genu<strong>in</strong>e and is <strong>in</strong>tegrated <strong>in</strong>to a t<strong>ru</strong>sted mobile platform.The specification set produced by the TCG, however, is by no means the onlywork on t<strong>ru</strong>sted comput<strong>in</strong>g. T<strong>ru</strong>sted comput<strong>in</strong>g also encompasses new processordesigns [1,7,11] as well as Operat<strong>in</strong>g System (OS) support [22,23] which facilitatesoftware isolation, i.e. the unh<strong>in</strong>dered execution of software. For the <strong>in</strong>terestedreader, <strong>in</strong>troductory texts on t<strong>ru</strong>sted comput<strong>in</strong>g <strong>in</strong>clude [2,15].3 T<strong>ru</strong>sted Comput<strong>in</strong>g and Mobile Agent SecurityThe use of t<strong>ru</strong>sted hardware as a method of protect<strong>in</strong>g mobile agents can betraced back to Wilhelm, Staamann and Butty [41] who def<strong>in</strong>e a T<strong>ru</strong>sted Process<strong>in</strong>gEnvironment (TPE) to consist of a <strong>Computer</strong> Process<strong>in</strong>g Unit (CPU),random access memory, read only memory, and non-volatile storage, all of whichexecutes <strong>in</strong> a virtual mach<strong>in</strong>e. An agent executes with<strong>in</strong> this isolated TPE, whereit rema<strong>in</strong>s protected from observation by the host OS.The use of t<strong>ru</strong>sted comput<strong>in</strong>g <strong>in</strong> agent systems has been proposed <strong>in</strong>[6,20,21,25]. [6,20,21] describe how non-mobile agents can be used <strong>in</strong> the preservationof user privacy. Recently, a t<strong>ru</strong>sted comput<strong>in</strong>g enhanced mobile agentplatform called SMASH was proposed, [25]. In this system t<strong>ru</strong>sted comput<strong>in</strong>g isdeployed to form a middleware-based <strong>in</strong>stantiation of some aspects of Wilhelm,Staamann and Butty’s proposal [41].Most recently, <strong>in</strong> [3] Balfe and Gallery exam<strong>in</strong>ed how t<strong>ru</strong>sted comput<strong>in</strong>g functionalitycould be used to protect sensitive agent <strong>in</strong>formation (be it code, data orstate <strong>in</strong>formation) by demonstrat<strong>in</strong>g how an agent orig<strong>in</strong>ator can extend theircontrol over environments <strong>in</strong> which their agent will subsequently execute. Ineach approach described <strong>in</strong> [3], access to an agent is made provisional on thehost platform’s PCRs conta<strong>in</strong><strong>in</strong>g a particular set of b<strong>in</strong>ary <strong>in</strong>tegrity metrics,which is proved to be problematic. For example, an agent platform may leaveitself open to attack from an <strong>in</strong>com<strong>in</strong>g agent if its exact configuration (<strong>in</strong>clud<strong>in</strong>gall system vulnerabilities) is revealed. Privacy issues are also associated withsuch revelations. In conjunction with this, s<strong>in</strong>ce a software component’s b<strong>in</strong>arychanges every time a patch or update is applied, and as a mobile agent maypotentially make numerous hops, it becomes next to impossible for an agentorig<strong>in</strong>ator to choose a unique set of platform <strong>in</strong>tegrity metrics which reflect aplatform state that meets his/her requirements and which all dest<strong>in</strong>ation hosts


244 E. Gallery, A. Nagarajan, and V. Varadharajansatisfy, given updates, patches and the multiplicity of agent platform configurations/<strong>in</strong>stallations.4 Property-Based AttestationAs an alternative to traditional b<strong>in</strong>ary <strong>in</strong>tegrity metric-based mechanisms, asdescribed <strong>in</strong> section 2, the concept of property-based attestation and seal<strong>in</strong>g hasbeen <strong>in</strong>troduced [10,24,28,42]. Us<strong>in</strong>g this approach, a platform’s state is def<strong>in</strong>ed<strong>in</strong> terms of its security-related properties rather than a set of <strong>in</strong>tegrity metrics.In this way a platform’s exact implementation details can be hidden, as can itsvulnerabilities. In conjunction with this, properties of components do not changeas often as software component b<strong>in</strong>ary <strong>in</strong>tegrity measurement values, therebyalleviat<strong>in</strong>g problems relat<strong>in</strong>g to patches and updates. Properties are also easierto understand, which can be helpful when writ<strong>in</strong>g mean<strong>in</strong>gful policies. Threefundamental approaches to property-based attestation and seal<strong>in</strong>g have beenexplored: delegation-based, the use of code control, and code analysis/propertyderivation [5].Papers such as [24,28,42] describe a delegation-based approach, where a challengerplatform or attestor is required to prove that a t<strong>ru</strong>sted third party hascertified properties of its software state. The proof takes the form of propertycertificates, i.e. signed statements which describe the security properties of softwarecomponents. Nagarajan, Varadharajan and Hitchens [16] ref<strong>in</strong>e this notion,and discuss certificates which describe course-gra<strong>in</strong>ed platform properties, f<strong>in</strong>egra<strong>in</strong>edproperties of <strong>in</strong>dividual components, and mid-level properties of groupsof components.The property derivation approach of Halder, Chandra and Franz <strong>in</strong> [10] uses alanguage-based T<strong>ru</strong>sted Virtual Mach<strong>in</strong>e (TVM) <strong>in</strong> order to facilitate propertybasedattestation. A TVM (such as the Java Virtual Mach<strong>in</strong>e) derives variousproperties of applications <strong>ru</strong>nn<strong>in</strong>g with<strong>in</strong> it on behalf of a remote party. Forexample, code analysis may be completed on the code by the TVM. In thisscheme, software up to and <strong>in</strong>clud<strong>in</strong>g the TVM may be verified us<strong>in</strong>g b<strong>in</strong>aryattestation.The TVM described above also employs code control/policy enforcement,whereby the code is under the control of the TVM, which monitors its execution.This approach is also adopted <strong>in</strong> [14], where SEL<strong>in</strong>ux and its associatedpolicies are attested to, and the policies are enforced by the operat<strong>in</strong>g system.5 Security RequirementsIn order to provide comprehensive mobile agent protection, and so that a widerange of agent applications can be supported, the follow<strong>in</strong>g requirements mustbe fulfilled by the property-dependent agent transfer protocol.1. Dest<strong>in</strong>ation host platform t<strong>ru</strong>st verification, so that the status of an agenthost platform as a genu<strong>in</strong>e TP and its security-properties can be verified.


A Property-Dependent Agent Transfer Protocol 2452. Confidentiality of the agent code, data and state <strong>in</strong>formation <strong>in</strong> transit betweenand <strong>in</strong> storage on host platforms, so that unauthorised read<strong>in</strong>g can beprevented.3. Integrity protection of the agent code, data and state <strong>in</strong>formation <strong>in</strong> transitbetween and <strong>in</strong> storage on host platforms, so that any unauthorised alterationcan be prevented, be it malicious or accidental.4. Confidentiality and <strong>in</strong>tegrity protection of the agent code, data and state<strong>in</strong>formation dur<strong>in</strong>g execution.5. Availability of the required resources and services to an agent dur<strong>in</strong>gexecution.6 A TCG Mechanism-Based Agent Transfer ProtocolThe mobile agent architecture model upon which our protocol is based <strong>in</strong>volvesthree parties: an agent orig<strong>in</strong>ator platform (A O ); an agent host platform (A H );and a t<strong>ru</strong>sted third party property certifier (TTP). A O is the t<strong>ru</strong>sted (mobile)agent platform from which an agent (A) orig<strong>in</strong>ates, whereas A H representsthe t<strong>ru</strong>sted (mobile) agent platform upon which <strong>in</strong>com<strong>in</strong>g agents execute. Eacht<strong>ru</strong>sted (mobile) agent platform is supported by a TCG compliant TPM or MTM(<strong>in</strong> the protocol description a TPM or MTM will be denoted by TM). In thismodel an agent orig<strong>in</strong>ator does not need to have a long term relationship withthe host platforms upon which its agent executes.As shown <strong>in</strong> [3,8] there are a number of ways by which standard TCG functionalitymay be used to meet security requirements 1 — 5, as listed <strong>in</strong> section 5.All methods, however, utilise facets of the TCG protected storage functionality,Fig. 1. TCG migration — Key exchange phase


246 E. Gallery, A. Nagarajan, and V. Varadharajanas described <strong>in</strong> section 2. For this particular scenario <strong>in</strong>volv<strong>in</strong>g multi-hop mobileagents, an approach founded upon TCG key migration is most appropriate.This approach essentially <strong>in</strong>volves a key distribution phase and an agent transferphase.Figure 1 illustrates the key distribution phase of an approach based on TCGkey migration. In this case each agent host possesses an AIK pair (which identifiesit as a genu<strong>in</strong>e TP). Each agent host platform’s TM has also been used togenerate a non-migratable key pair and to certify (sign) the public key from thispair us<strong>in</strong>g a private AIK. The agent orig<strong>in</strong>ator generates a migratable key pai<strong>ru</strong>s<strong>in</strong>g his/her TM where private key use is bound to a specified host platformstate. The public key from this key pair is used to protect the outgo<strong>in</strong>g mobileagent. This key pair needs to be ‘migrated’ to all t<strong>ru</strong>sted (mobile) agent platformswhich require agent access.Prior to key pair migration a t<strong>ru</strong>sted (mobile) agent platform must forward itsAIK-certified non-migratable public key to the agent orig<strong>in</strong>ator for verification.Once this has been completed, and the agent orig<strong>in</strong>ator has been conv<strong>in</strong>ced thathe/she is communicat<strong>in</strong>g with a genu<strong>in</strong>e TP, the agent orig<strong>in</strong>ator key pair canbe migrated under the protection of the public non-migratable t<strong>ru</strong>sted (mobile)agent platform TM public key. The key distribution phase described above maybe completed while the agent is <strong>in</strong> transit or prior to its distribution. Once thekey distribution phase has been completed, the mobile agent can be protectedwith the agent orig<strong>in</strong>ator’s public migratable key and distributed as shown <strong>in</strong>figure 2.Problems, however, surround the use of TCG-def<strong>in</strong>ed platform state <strong>in</strong>formation(namely the PCR values) to restrict t<strong>ru</strong>sted (mobile) agent platformaccess to <strong>in</strong>com<strong>in</strong>g executables. A mobile agent is designed to hop from host toFig. 2. TCG migration — Agent transfer phase


A Property-Dependent Agent Transfer Protocol 247host. Given the huge number of possible platform configurations, and given theabundance of updates and patches, it is difficult if not impossible for an agentorig<strong>in</strong>ator to choose one platform state to which the agent orig<strong>in</strong>ator migratableprivate key (and therefore agent access) is bound. In order to overcome theseproblems we propose a property-based secure agent transfer protocol.7 System AssumptionsWe now exam<strong>in</strong>e how the secure agent transfer protocol based upon the TCGdef<strong>in</strong>edmechanism described <strong>in</strong> the previous section can be improved us<strong>in</strong>gproperty-based platform state <strong>in</strong>formation. In do<strong>in</strong>g so, we demonstrate a practicaluse case for property-based platform attestation us<strong>in</strong>g an enhanced versionof the component property certificates def<strong>in</strong>ed <strong>in</strong> [16]. To illustrate our use casewe provide examples of properties and component property certificates given amobile aglet that is dest<strong>in</strong>ed to execute on a group of devices, where the mobileaglet orig<strong>in</strong>ator wishes to protect the confidentiality of the aglet code. The follow<strong>in</strong>gpre-conditions need to be satisfied for use of the protocol described later<strong>in</strong> this paper.1. It is assumed, for the purposes of illustration, that the agent orig<strong>in</strong>ator andhost platforms support an aglet system architecture. An aglet is a mobileJava agent that supports the concepts of autonomous execution and dynamicrout<strong>in</strong>g on its it<strong>in</strong>erary [13]. An aglet system architecture is comprised of anaglet <strong>ru</strong>ntime layer and a communication layer. The ma<strong>in</strong> elements <strong>in</strong> anaglet <strong>ru</strong>ntime layer’s core framework <strong>in</strong>clude a context, i.e. the <strong>ru</strong>ntime environment<strong>in</strong> which an aglet executes, and a security manager. Asecuritymanager protects both the host and aglets from malicious entities. The securitymanager uses aglet permissions, message permissions, and a policydatabase, <strong>in</strong> which security policies for aglet contexts are stored. Privilegesmay be def<strong>in</strong>ed through the association of one of the follow<strong>in</strong>g resource typeswith a set of permissions: local file system; network sockets; local w<strong>in</strong>dows;Java properties; system resources such as memory and CPUs; security <strong>in</strong>formation;contexts; aglets; and messages.Aglets leverage this <strong>ru</strong>ntime environment. An aglet orig<strong>in</strong>ator may also def<strong>in</strong>ea set of aglet preferences for each aglet generated. The follow<strong>in</strong>g methodscan be restricted by the orig<strong>in</strong>ator of an aglet: clone; deactivate; dispatch;retract; dispose; get AgentClassName/AgletContext/CodeBase/Identifier/It<strong>in</strong>erary/Message Manager/Property/Property Keys/Text; send Message;set It<strong>in</strong>erary/Property/Text; subscribe/unsubscribe (all) messages [13]. Eachaglet is represented by a proxy, which acts as a shield object that protectsthe aglet from malicious entities. The aglet proxy provides a common wayof access<strong>in</strong>g the aglet beh<strong>in</strong>d it. When <strong>in</strong>voked, the proxy object consults asecurity manager, which <strong>in</strong> turn uses context and aglet policies to determ<strong>in</strong>ewhether the caller is permitted to perform the method.2. It is assumed that both the aglet orig<strong>in</strong>ator platform and the aglet hostplatform are T<strong>ru</strong>sted Aglet Platforms (TAPs) or <strong>in</strong>deed T<strong>ru</strong>sted Mobile Aglet


248 E. Gallery, A. Nagarajan, and V. VaradharajanPlatforms (TMAPs). Therefore, a fundamental component <strong>in</strong> both the agletorig<strong>in</strong>ator platform and the aglet host platform is a TPM or, <strong>in</strong> the caseof a TMAP, an MTM. One or more of these tamper evident modules, TM,is assumed to be bound either physically or cryptographically to each agletorig<strong>in</strong>ator and aglet host platform.3. The aglet orig<strong>in</strong>ator platform and the aglet host platform enable softwareisolation through the deployment of mechanisms described <strong>in</strong> section 2.4. Both the aglet orig<strong>in</strong>ator platform and the aglet host platform also <strong>in</strong>corporatea t<strong>ru</strong>sted comput<strong>in</strong>g extension which is capable of determ<strong>in</strong><strong>in</strong>g theproperties of a particular system configuration given a set of property certificatesand a list of entities t<strong>ru</strong>sted to issue property certificates, and ofdecid<strong>in</strong>g whether a particular system configuration provides a specific property.5. As a TMAP has more than one stakeholder, for example, the device manufacturer,network operator and potentially numerous service providers, allTMAPs conta<strong>in</strong> a set of eng<strong>in</strong>es, namely const<strong>ru</strong>cts that can “manipulatedata, provide evidence that they can be t<strong>ru</strong>sted to report the current state ofthe eng<strong>in</strong>e, and provide evidence about the current state of the eng<strong>in</strong>e” [38].Upon start-up and reset of the TMAP device manufacturer eng<strong>in</strong>e, the softwarestate of the eng<strong>in</strong>e is measured, verified and stored to the appropriateMTM PCRs (i.e. securely booted).6. Upon the start-up and reset of the rema<strong>in</strong><strong>in</strong>g TMAP eng<strong>in</strong>es, the softwarestate of each is measured and stored to the appropriate MTM PCRs.7. In the case of a TAP it is assumed upon platform start-up and reset that thesoftware state of the platform is measured and stored to the TPM PCRs.8. Each TAP or TMAP eng<strong>in</strong>e has at least one AIK pair.9. The public signature verification key from the pair referred to <strong>in</strong> po<strong>in</strong>t 8 iscertified by a P-CA t<strong>ru</strong>sted by both the agent orig<strong>in</strong>ator and agent hosts.10. The <strong>in</strong>itial platform from which the mobile aglet orig<strong>in</strong>ates, A O ,isconsideredt<strong>ru</strong>stworthy.11. The agent orig<strong>in</strong>ator platform possesses a signature key pair.12. The public signature verification key from the pair referred to <strong>in</strong> po<strong>in</strong>t 11is certified by a certification authority t<strong>ru</strong>sted by both the agent orig<strong>in</strong>atorand agent hosts.13. Every aglet host platform can acquire a set of software component propertycertificates to which the platform conforms from a t<strong>ru</strong>sted third partyproperty certifier.8 Required PropertiesAs described <strong>in</strong> [16], properties of comput<strong>in</strong>g platforms can be expressed us<strong>in</strong>gvarious levels of granularity. For the purpose of this paper we extend the conceptof more granular component property certificates proposed <strong>in</strong> [16] for use <strong>in</strong>the delegation-based models described <strong>in</strong> [24,28]. Figure 3 illustrates a propertygranularity pyramid for use <strong>in</strong> def<strong>in</strong><strong>in</strong>g properties of t<strong>ru</strong>sted platforms.


A Property-Dependent Agent Transfer Protocol 249Fig. 3. Property granularity pyramidAt the top of the pyramid, properties are def<strong>in</strong>ed at a high level. Here, propertiesexpress an overall purpose or function. Properties at the lowest level ofthe pyramid are f<strong>in</strong>e-gra<strong>in</strong>ed. More generally, as we descend from the top of thepyramid, properties are expressed with an <strong>in</strong>creas<strong>in</strong>g focus on the implementationdetails. The pyramid is comprised of the follow<strong>in</strong>g four levels (numbered1–4).– On top of the hierarchy are classes. A class is def<strong>in</strong>ed as a common <strong>in</strong>tentregard<strong>in</strong>g the services that belong to the class.– A service addresses a class of security requirement.– Services are provided us<strong>in</strong>g one or more service elements.– A mechanism is used to implement a service element <strong>in</strong> a system.Level 1 and 2 properties do not reveal platform implementation details and providemore privacy for the attest<strong>in</strong>g party. However, there is less flexibility forexpress<strong>in</strong>g f<strong>in</strong>e-gra<strong>in</strong>ed access control policies based on these properties. On theother hand, properties at the lower levels of the pyramid provide greater flexibilityfor express<strong>in</strong>g policies although they may compromise the privacy of theattest<strong>in</strong>g party. In the context of an agent environment, upper level propertiesallow an agent orig<strong>in</strong>ator to specify host platform requirements without restrict<strong>in</strong>gan agent host platform to a specific configuration. To illustrate our solutionwe provide examples of component properties <strong>in</strong> the context of a mobile aglet,dest<strong>in</strong>ed to execute on a group of T(M)APs, whose code the aglet orig<strong>in</strong>atorwishes to confidentiality protect dur<strong>in</strong>g execution [13].‘Aglet code confidentiality’ is a class of security service, as shown <strong>in</strong> figure 4,which may be broken down <strong>in</strong>to three core services — ‘aglet code confidentialitydur<strong>in</strong>g transmission’, ‘aglet code confidentiality dur<strong>in</strong>g storage’ and ‘aglet codeconfidentiality dur<strong>in</strong>g execution’. Confidentiality of aglet code <strong>in</strong> transit andwhile <strong>in</strong> storage on a host platform are provided through asymmetric encryptiondeployed <strong>in</strong> the secure transfer protocol described <strong>in</strong> section 9. In order to ensureconfidentiality of aglet code dur<strong>in</strong>g execution, a host on which the aglet executesmust possess certificates which <strong>in</strong>dicate that it provides a particular serviceand/or <strong>in</strong>corporates service elements/mechanisms which provide this particular


250 E. Gallery, A. Nagarajan, and V. VaradharajanFig. 4. Property granularity pyramid for aglet code confidentialitygrantcodeBase "http://some.host.com", owned by "RHUL" {{// aglet protectionsprotection com.ibm.aglet.security.AgletProtection"*", "dispatch,dispose,deactivate,activate,retract";};Fig. 5. Aglet code confidentialityservice. The service ‘aglet code confidentiality dur<strong>in</strong>g execution’ may be providedby a number of service elements, namely, software <strong>in</strong>tegrity, software isolation,a t<strong>ru</strong>stworthy aglet environment and the implementation of aglet code accesscontrol policies, as shown <strong>in</strong> figure 4. A t<strong>ru</strong>stworthy aglet environment and aset of aglet access control policies ensure that the aglet is protected from otheraglets execut<strong>in</strong>g <strong>in</strong> the context and <strong>in</strong>deed the host itself. Software isolationensures that the aglet environment is executed<strong>in</strong>anisolatedcompartmentsuchthat malicious software execut<strong>in</strong>g <strong>in</strong> parallel cannot ga<strong>in</strong> unauthorised access.F<strong>in</strong>ally, software <strong>in</strong>tegrity implies that the software isolation mechanism can beverified as correct. A selection of mechanisms that provide these service elements<strong>in</strong>clude a secure boot mechanism, an up-to-date isolation layer, an up-to-dateand reputable aglet environment and aglet access control policies (such as thatshown <strong>in</strong> figure 5).The sample policy statement, def<strong>in</strong>ed <strong>in</strong> figure 5, permits the host to dispatch,dispose, deactivate, activate and retract an aglet owned by ‘RHUL’ and orig<strong>in</strong>at<strong>in</strong>gfrom ‘http://some.host.com’ but does not at any stage permit aglet clon<strong>in</strong>g.Properties describ<strong>in</strong>g a secure boot mechanism, an up-to-date isolation layeror an up-to-date and reputable aglet environment may <strong>in</strong>clude identification,version and update <strong>in</strong>formation for each of the components.


A Property-Dependent Agent Transfer Protocol 2519 A Property-dependent Agent Transfer ProtocolIn order to meet all requirements def<strong>in</strong>ed <strong>in</strong> section 5, and <strong>in</strong> order to provide anefficient solution given a multi-hop agent, we modify the protocol described <strong>in</strong>section 6 to <strong>in</strong>corporate the use of property-based platform state <strong>in</strong>formation. Inthis case, due to the modified T(M)P architecture assumed <strong>in</strong> section 7, we haveTPM/MTM functionality as def<strong>in</strong>ed by the TCG and a TPM/MTM extension.This TM extension must enable the generation of a key pair where private keyuse is cont<strong>in</strong>gent on a platform fulfill<strong>in</strong>g a specific set of properties. It must alsosupport key use once a platform fulfills the set of properties to which private keyuse is bound. In order to do this the extension must be able to determ<strong>in</strong>e theproperties of a particular system configuration given a set of PCR values, a setof property certificates and a list of entities t<strong>ru</strong>sted to issue property certificates.9.1 Key GenerationIn order to implement key generation a variant of the TPM CreateWrapKeycommand functionality is required. Rather than specify<strong>in</strong>g the state constra<strong>in</strong>tsto which private key use is bound <strong>in</strong> terms of PCR values (as is the casewhen def<strong>in</strong><strong>in</strong>g the PCRInfo parameter of the keyInfo parameter <strong>in</strong>put to theTPM CreateWrapKey command) this new functionality <strong>in</strong>puts a new keyInfoparameter, for example propertyInfo, which allows state constra<strong>in</strong>ts to be specifiedas:– the property/properties to which a platform must comply prior to privatekey use;– the identity/identities of the third parties t<strong>ru</strong>sted to certify the propertiesspecified; and– the public key(s) of the root third party/parties t<strong>ru</strong>sted to certify the property/propertiesspecified.Private key use can be made dependent on a high level property, namely a level2 property such as ‘aglet code confidentiality dur<strong>in</strong>g execution’. Alternatively,depend<strong>in</strong>g on the requirement of the agent orig<strong>in</strong>ator, it may be dependent ona level 3 property such as ‘software isolation’ or <strong>in</strong>deed a level 4 property wherea particular isolation layer <strong>in</strong> a set version with the required updates must beprovided by a specified provider. An agent orig<strong>in</strong>ator may even choose to ‘mixand match’ the properties required of an agent host platform.9.2 Property CertificatesEach property certificate conta<strong>in</strong>s a validity period, component identifers, a set ofproperties to which the component complies, and an identifier for and a digitalsignature of a property certifier. When def<strong>in</strong><strong>in</strong>g level 4 properties a propertycertificate will conta<strong>in</strong> the <strong>in</strong>tegrity measurement (i.e. the hash) of a component<strong>in</strong> the ‘Component Identifiers’ field and the properties to which it complies <strong>in</strong>


252 E. Gallery, A. Nagarajan, and V. VaradharajanFig. 6. Level 2 property certificateFig. 7. Level 3 property certificatethe ‘Properties’ field. Given a level 2 or 3 property, however, the ‘ComponentIdentifiers’ field may conta<strong>in</strong> the <strong>in</strong>tegrity measurement of a component or aset of properties which identify a (set of) component(s). The ‘Properties’ fieldwill list properties which the component(s) fulfill(s). Property certificates whichdef<strong>in</strong>e the level 2 property of ‘aglet code confidentiality dur<strong>in</strong>g execution’, thelevel 3 property of ‘software isolation’, the level 4 properties of isolation layer‘name’, ‘version’, ‘software provider’ and ‘update status’ may be def<strong>in</strong>ed as shown<strong>in</strong> figures 6, 7 and 8.


A Property-Dependent Agent Transfer Protocol 253Fig. 8. Level 4 property certificateOnce the agent orig<strong>in</strong>ator key pair has been communicated to each T(M)AP,the T(M)AP can decrypt and exam<strong>in</strong>e the properties to which private key useis bound and the root third parties t<strong>ru</strong>sted to certify the properties specified.Follow<strong>in</strong>g this, the T(M)AP must acquire the required property certificates.This could <strong>in</strong>volve a T(M)AP provid<strong>in</strong>g the specified TTP(s) with the requiredproperties it must fulfill <strong>in</strong> return for all relevant property certificates.If, for example, the key is bound to the level 4 property set {Name =XEN on V T − x, V ersion =3.0, Software provider = Citrix, Updated >May 2009 || TTP2} the agent host could request all certificates where the nameis XEN on VT-x, the version is 3.0, the software provider is Citrix and the updateddate is after May 2009 from TTP2, or, alternatively, it could send themeasurement of its isolation layer <strong>in</strong> return for all certificates perta<strong>in</strong><strong>in</strong>g to thismeasurement. Once these certificates have been retrieved a cha<strong>in</strong> can be const<strong>ru</strong>ctedfrom an <strong>in</strong>tegrity measurement represent<strong>in</strong>g a platform component toa root t<strong>ru</strong>sted third party-certified property/set of properties to which privatekey use is bound.If, for example, the key is bound to the level 3 property set {Service elementname = software isolation || TTP1} the agent host could <strong>in</strong>itially requestall certificates where the property field <strong>in</strong>dicates that the service element nameis software isolation from TTP1. Once it has received these it must exam<strong>in</strong>ethe identifiers for components which fulfill the property ‘software isolation’,for example <strong>in</strong> the case of the Level 3 property certificate shown <strong>in</strong> figure7, the ‘Component Identifiers’ are {Name = XEN on V T − x, V ersion =3.0, Software provider = Citrix, Updated > May 2009 || TTP2}. Itmustthen <strong>in</strong> turn request of TTP2 all certificates where the ‘Properties’ field <strong>in</strong>dicatesthat the component’s name is XEN on VT-x, the version is 3.0, thesoftware provider is Citrix and the updated date is after May 2009. There is now


254 E. Gallery, A. Nagarajan, and V. Varadharajansufficient <strong>in</strong>formation to build a cha<strong>in</strong> represent<strong>in</strong>g a platform component to aroot t<strong>ru</strong>sted third party-certified property/set of properties to which private keyuse is bound. Us<strong>in</strong>g this method provides two advantages <strong>in</strong> the mobile agentenvironment. Firstly, it adds a level of abstraction which allows a mobile agentorig<strong>in</strong>ator to b<strong>in</strong>d a key to a property which multiple platforms with differentstate configurations can fulfill. Secondly, it enables a mobile host platform tocontrol the release of platform state <strong>in</strong>formation.9.3 Property Mapp<strong>in</strong>gOnce the agent orig<strong>in</strong>ator has generated and migrated an asymmetric key pairas described <strong>in</strong> sections 9.1 and 9.2, the agent orig<strong>in</strong>ator can sign and encryptany sensitive agent code, data, and state <strong>in</strong>formation (or <strong>in</strong>deed a symmetrickey used to confidentiality and <strong>in</strong>tegrity protect an agent) us<strong>in</strong>g the agent orig<strong>in</strong>atorpublic key, <strong>in</strong> the knowledge that this sensitive <strong>in</strong>formation can only beaccessed by a dest<strong>in</strong>ation host platform to which the agent orig<strong>in</strong>ator key pairhas been migrated and only when that platform fulfills the required securityproperty/properties.In order to use the private key the properties to which key use is bound mustbe compared to the properties which the host platform satisfies. A variant of theTPM Unb<strong>in</strong>d command functionality is required <strong>in</strong> this <strong>in</strong>stance. Assum<strong>in</strong>g wehave a full set of TM PCRs, the correspond<strong>in</strong>g stored measurement log (whichnames and lists the measurements of all components which have been reliablystored to the PCRs), and a set of property certificates, collected as described <strong>in</strong>the previous section, this command variant will result <strong>in</strong> the follow<strong>in</strong>g actions.– The {Security properties, TTP ID, TTP publickey} sets to which privatekey use is bound are exam<strong>in</strong>ed.– The <strong>in</strong>tegrity of the stored measurement log is <strong>in</strong>itially verified aga<strong>in</strong>st the<strong>in</strong>tegrity metrics stored <strong>in</strong> the PCRs.– Each <strong>in</strong>tegrity measurement is then compared aga<strong>in</strong>st those held <strong>in</strong> all retrievedcertificates.– When a match is found between an <strong>in</strong>tegrity measurement and a level nproperty certificate, the properties of this component are compared aga<strong>in</strong>stthe component identifiers listed with<strong>in</strong> the retrieved level n − 1 certificates.– When a match is found, the public key of the TTP listed <strong>in</strong> the componentidentifiers field of the level n − 1 property certificate is used to verify the<strong>in</strong>tegrity of the level n property certificate.– The property def<strong>in</strong>ed <strong>in</strong> the level n − 1 property certificate is then comparedaga<strong>in</strong>st the component identifers held <strong>in</strong> all retrieved level n − 2 propertycertificates.– When a match is found the signature of the TTP who signed the level n − 1property certificate is verified us<strong>in</strong>g a key belong<strong>in</strong>g to the TTP identified<strong>in</strong> the level n − 2 certificate.This process cont<strong>in</strong>ues until a match is found between the security property froma {Security properties, TTP ID, TTP public key} set to which private key


A Property-Dependent Agent Transfer Protocol 255use is bound and one def<strong>in</strong>ed <strong>in</strong> a property certificate and the certificate canbe verified us<strong>in</strong>g the public key associated with the TTP identified with<strong>in</strong> the{Security properties, TTP ID, TTP public key} set. This process is repeateduntil all required properties have been fulfilled.Suppose that the agent orig<strong>in</strong>ator private key is bound to the level 3 property‘software isolation’ and the identity and public key of the property certifier,TTP1. On receipt of the <strong>in</strong>com<strong>in</strong>g aglet, the certificates shown <strong>in</strong> figure7 and 8 are <strong>in</strong>put <strong>in</strong>to a T(M)AP t<strong>ru</strong>sted comput<strong>in</strong>g extension. The <strong>in</strong>tegrityof the stored measurement log is verified aga<strong>in</strong>st the <strong>in</strong>tegrity metrics stored<strong>in</strong> the PCRs. The measurement of the platform’s isolation layer is matched tothe component identifiers held <strong>in</strong> the property certificate shown <strong>in</strong> figure 8. Thismeasurement is mapped to a set of properties shown <strong>in</strong> figure 8 and these propertiesare <strong>in</strong> turn mapped to the service component property of ‘software isolation’(to which private key use is bound) us<strong>in</strong>g the certificate shown <strong>in</strong> figure 7. The<strong>in</strong>tegrity of the level 4 property certificate is then verified us<strong>in</strong>g the public key ofTTP2 listed <strong>in</strong> the level 3 certificate and the level 3 certificate is verified us<strong>in</strong>gthe public key of TTP1 conta<strong>in</strong>ed with<strong>in</strong> the property set to which private keyuse is bound.By design, once an aglet has executed, it is re-encrypted with the agent orig<strong>in</strong>atorpublic key prior to its migration, or <strong>in</strong>deed re-protected <strong>in</strong> terms of confidentialityand <strong>in</strong>tegrity us<strong>in</strong>g its associated symmetric key(s) which is/are <strong>in</strong>turn protected us<strong>in</strong>g the agent orig<strong>in</strong>ator public key. The protocol can be brokendown <strong>in</strong>to four phases: agent host key generation; agent orig<strong>in</strong>ator key generation;key transfer; and mobile agent transfer.9.4 Stage 1: Agent Host Key Generation1. A H → A H TM : TPM CreateWrapKey. ThekeyInfo <strong>in</strong>put parameter isused to request the generation of a non-migratable key.2. A H TM : Generates a non-migratable asymmetric key pair. A TPM Keyst<strong>ru</strong>cture, which conta<strong>in</strong>s the public key P AH and the encrypted private keyS AH , is output.3. A H → A H TM : TPM LoadKey2 — Request to load the TPM Key generated<strong>in</strong> step 2.4. A H TM : Loads the TPM Key.5. A H TM → A H : Outputs a handle to where the decrypted private key fromthe TPM Key is loaded.6. A H → A H TM : TPM LoadKey2 — Request to load the TPM Key st<strong>ru</strong>cture,which conta<strong>in</strong>s the A H attestation identity key pair as described <strong>in</strong>assumption 9.7. A H TM : Loads the TPM Key.8. A H TM → A H : Outputs a handle to where the private AIK is loaded.9. A H → A H TM : TPM CertifyKey2. ThekeyHandle and certHandle <strong>in</strong>putparameters are used to specify the handles of the key to be certified (loaded<strong>in</strong> step 4) and the private attestation identity key to be used to certify thekey (loaded <strong>in</strong> step 7).


256 E. Gallery, A. Nagarajan, and V. VaradharajanFig. 9. Stage 1:Agent host key generation10. A H TM :SignsH(certifyInfo) us<strong>in</strong>g the chosen private attestation identitykey.The certifyInfo st<strong>ru</strong>cture describes the key-to-be-certified, <strong>in</strong>clud<strong>in</strong>g anyauthorisation data requirements, a digest of the public key-to-be-certified,160 bits of external data, and a description of the platform configurationdata required for the release and use of the certified key.11. A H TM → A H : P AH || SIG AH (H(certifyInfo)) || A H TM AIKCertificateFollow<strong>in</strong>g stage 1 of the protocol A H is <strong>in</strong> possession of an AIK-certified nonmigratablekey pair, P AH and S AH . The protocol message flow is illustrated <strong>in</strong>figure 9.9.5 Stage 2: Agent Orig<strong>in</strong>ator Key Generation1. A O : Chooses the property/properties with which A H must comply <strong>in</strong> orderto ga<strong>in</strong> access to the agent it wishes to protect, and the identities and publickeys of the property certification authorities t<strong>ru</strong>sted to certify that a (setof) software component(s) provide(s) the property/properties specified, e.g.{Security properties, TTP ID, TTP public key}.2. A O → A O TM : TPM CreateWrapKey variant. The keyInfo <strong>in</strong>put parameteris used to request the generation of a migratable key pair. The migrationauthorisation data for the new key is set to a value known only to A O ,sothat the key pair can only be migrated by A O . An agent host which hasimported the key will not be able to migrate the key. In order to ensure thatthe private key from this key pair can only be used when the host platformconforms to a set of properties rather than a set of PCR values, the pcrInfoparameter of keyInfo must be changed. For example, a new keyInfo <strong>in</strong>putparameter called propertyInfo could be def<strong>in</strong>ed to hold a parameter calledpropertiesAtRelease which conta<strong>in</strong>s {Security properties, TTP ID, TTPpublic key} sets.


A Property-Dependent Agent Transfer Protocol 257Fig. 10. Stage 2:Agent orig<strong>in</strong>ator key generation3. A O TM : Generates an asymmetric migratable key pair, TPM Key, whichconta<strong>in</strong>s the public key, P AO , and the encrypted private key, S AO ,whereprivate key use is dependent on the host platform’s conformance to a set ofproperties, and key pair migration is dependent on proof of knowledge of themigration authorisation data.Follow<strong>in</strong>g stage 2 A O is <strong>in</strong> possession of a CA-certified sign<strong>in</strong>g key pair (as perassumptions 11 and 12) and a migratable key pair, P AO and S AO . The protocolmessage flow is illustrated <strong>in</strong> figure 9.9.6 Stage 3: Agent Creation and Key Transfer1. A O : Creates a mobile agent, A.2. A O : Formulates the it<strong>in</strong>erary for A.3. A O → A H : Requests the certified public key generated <strong>in</strong> stage 1 for everyA H on A’s it<strong>in</strong>erary.4. A H → A O :TransmitsP AH || SIG AH (H(certifyInfo)) || A H TM AIKCertificate.5. A O : Verifies A H T M AIK Certificate for each A H .6. A O : Verifies SIG AH (H(certifyInfo)) for each A H us<strong>in</strong>g the public AIK ofthe A H conta<strong>in</strong>ed <strong>in</strong> its correspond<strong>in</strong>g A H T M AIK Certificate.Through verification of the AIK signature, SIG AH (H(certifyInfo)), theagent orig<strong>in</strong>ator can verify whether or not the correspond<strong>in</strong>g private key isstored with<strong>in</strong> a genu<strong>in</strong>e T(M)AP TM.7. A O → A O TM : TPM AuthorizeMigrationKey.Us<strong>in</strong>g this command A O can authorise each A H public key under which theprivate key, S AO , will be migrated.8. A O → A O TM : TPM CreateMigrationBlob.Us<strong>in</strong>g this command A O <strong>in</strong>dicates the key pair to be migrated and provesknowledge of the key’s migration authorisation data.9. A O TM : Encrypts the migratable private key, S AO ,withtheA H public keyauthorised <strong>in</strong> step 7, E PAH (S AO ).10. A O TM → A O : E PAH (S AO ).11. A O → A H : P AO || E PAH (S AO ).12. A H → A H TM : TPM ConvertMigrationBlob.Us<strong>in</strong>g this command, E PAH (S AO ) is decrypted. Both S AO and P AO are thenimported <strong>in</strong>to the local A H TM key hierarchy.13. A H :Exam<strong>in</strong>es{Security properties, TTP ID, TTP public key} sets towhich private key use is bound.


258 E. Gallery, A. Nagarajan, and V. VaradharajanFig. 11. Stage 3:Agent key transfer14. A H → TTP : Requests the necessary property certificates from the specifiedthird party property certifiers asdescribed<strong>in</strong>section9.3.15. TTP → A H : The requested property certificates, for example those shown<strong>in</strong> figures 6, 7, 8.Follow<strong>in</strong>g stage 3, A H is <strong>in</strong> possession of A O ’s migratable key pair, where useof the private key S AO by A H is dependent on the platform conform<strong>in</strong>g to aset of A O -def<strong>in</strong>ed security properties. The protocol message flow is illustrated <strong>in</strong>figure 11.9.7 Stage 4: Mobile Agent Transfer1. A O :SignsA us<strong>in</strong>g its private sign<strong>in</strong>g key and encrypts the result us<strong>in</strong>g P AO ,E PAO (A || SIG AO (A)).Alternatively, A O may generate a symmetric key(s) <strong>in</strong> order to confidentialityand <strong>in</strong>tegrity-protect A andthensignandencryptthesymmetrickey(s)asshown above.2. A O → A H : E PAO (A || SIG AO (A)).3. A H → A H TM : TPM LoadKey2 — Request to load the private key, S AO ,which has been migrated to each A H <strong>in</strong> the agent’s it<strong>in</strong>erary.4. A H TM : Loads the TPM Key.5. A H TM → A H : Outputs a handle to where the private key, S AO ,fromtheTPM Key is loaded.6. A H → A H TM : Variant of TPM Unb<strong>in</strong>d(E PAO (A || SIG AO (A))). In orderto use S AO the properties of A H must conform to those to which S AO isbound.7. A H TM Extension : Exam<strong>in</strong>es the {Security properties,TTP ID, TTPpublic key} sets to which S AO is bound.8. A H → TM : TPM P CRRead9. A H TM → A H : PCR Values


A Property-Dependent Agent Transfer Protocol 259Fig. 12. Stage 4: Mobile agent transfer10. A H TM Extension : Verifies the stored measurement log entries (whichname and conta<strong>in</strong> the measurement of each platform component) aga<strong>in</strong>stthe PCR values to ensure their <strong>in</strong>tegrity.11. A H TM Extension : Attempts to build a cha<strong>in</strong> from the properties towhich S AO use is bound and the <strong>in</strong>tegrity measurements which reflect theplatform’s state as described <strong>in</strong> section 9.3.12. A H TM Extension :Verifies the property certificates with<strong>in</strong> each cha<strong>in</strong>.13. A H TM : Decrypts E PAO (A || SIG AO (A)) if all properties are fulfilled.14. A H : Verifies SIG AO (A) us<strong>in</strong>g the public key certificate of A O .15. A H : Executes A.16. A H : Re-encrypts the agent and the agent signature and forwards the agent.The protocol message flow for stage 4 is illustrated <strong>in</strong> figure 12.9.8 Security RemarksIn this protocol a mobile agent (or <strong>in</strong>deed a symmetric key used to confidentialityand <strong>in</strong>tegrity protect the agent) is signed and encrypted such that it can only bedecrypted and executed upon a host platform which has retrieved the requiredprivate key and which satisfies certa<strong>in</strong> security properties. In this way:1. A platform is verified as t<strong>ru</strong>sted prior to the migration of the agent orig<strong>in</strong>atorkey pair through the validation of the A H T M AIK Certificate andSIG AH (H(certifyInfo)) as shown <strong>in</strong> steps 5 and 6 <strong>in</strong> stage 3. The securityproperties of a host’s software environment are verified as t<strong>ru</strong>sted prior tokey use (i.e. agent decryption).2. The confidentiality of the aglet code, data and/or state <strong>in</strong>formation is protected<strong>in</strong> transit between and <strong>in</strong> storage on a host platform through the useof asymmetric encryption us<strong>in</strong>g the public agent orig<strong>in</strong>ator key P AO .(a) Secure encryption/decryption key pair generation: The migratable keypair (which is used to protect the confidentiality of the agent) is generatedsecurely with<strong>in</strong> the TPM or MTM of the mobile agent orig<strong>in</strong>ator.(b) Secure encryption/decryption key pair transmission: As stated above,the migratable key pair is <strong>in</strong>itially generated with<strong>in</strong> the agent orig<strong>in</strong>atorTPM/MTM and must then be securely transmitted to each mobile host.


260 E. Gallery, A. Nagarajan, and V. VaradharajanIn order to do this, the agent orig<strong>in</strong>ator takes an AIK-certified publicnon-migratable key from a mobile host, and verifies that it is from a nonmigratablekey pair and has <strong>in</strong>deed been generated with<strong>in</strong> a TPM/MTM.The private key from the agent orig<strong>in</strong>ator key pair is then encryptedus<strong>in</strong>g the public key from the mobile host’s non-migratable key pair andmigrated to the mobile host <strong>in</strong> conjunction with the correspond<strong>in</strong>g publickey.(c) Confidentiality-protected agent transmission, storage and access control:The mobile agent is then encrypted us<strong>in</strong>g the agent orig<strong>in</strong>ator publickey. The agent rema<strong>in</strong>s encrypted while <strong>in</strong> transit to and <strong>in</strong> storage onthe mobile host, until its use. Because the correspond<strong>in</strong>g private keyis known only to TPM/MTMs to which it has been migrated and canonly be used on the platform when it fulfills particular properties, anattacker cannot compromise the confidentiality of the agent <strong>in</strong> transit or<strong>in</strong> storage.3. The <strong>in</strong>tegrity of the aglet code, data and/or state <strong>in</strong>formation is protected<strong>in</strong> transit between and <strong>in</strong> storage on host platforms through the use of adigital signature SIG AO (A).(a) Secure signature/verification key pair generation: The signature key pairis generated securely by the mobile agent orig<strong>in</strong>ator. The TPM/MTMmay be used for key pair generation and private key storage to enhancethe security of its protection.(b) Secure verification key transmission: Is is assumed that the agent orig<strong>in</strong>atorpublic signature verification key is certified by a t<strong>ru</strong>sted certificationauthority.(c) Integrity-protected agent transmission and storage: The mobile agent isdigitally signed by the mobile agent orig<strong>in</strong>ator. This signature can beverified by an agent host prior to agent execution to verify that theagent has not been accidentally or maliciously modified.4. B<strong>in</strong>d<strong>in</strong>g the use of S AO to a set of properties as described <strong>in</strong> stage 2 steps 1–3allows A O to ensure A is protected as required when execut<strong>in</strong>g and also thatthe required services are available. Properties can be chosen such that theconfidentiality and/or <strong>in</strong>tegrity of agent code, data and state is protected,for example.10 Conclusions and Future WorkThis paper expla<strong>in</strong>s how t<strong>ru</strong>sted comput<strong>in</strong>g technologies can be extended toprotect mobile agents from attack. We outl<strong>in</strong>e the shortcom<strong>in</strong>gs of previoussolutions [3] that focus on the use of b<strong>in</strong>ary <strong>in</strong>tegrity measurements to allowan agent orig<strong>in</strong>ator to extend their control over subsequent environments <strong>in</strong>which their agents will execute. Instead we exam<strong>in</strong>e how a TCG mechanismbasedsecure agent transfer protocol can be enhanced to <strong>in</strong>corporate the use ofproperty-based state <strong>in</strong>formation. We extend the work completed on propertycomponent certificates <strong>in</strong> [16] through the def<strong>in</strong>ition of a property granularity


A Property-Dependent Agent Transfer Protocol 261pyramid and provide examples of properties (and property certificates) thatcan be used <strong>in</strong> the context of a mobile agent environment. If this solution isto succeed, however, further work must be completed <strong>in</strong> the area of propertyderivation/def<strong>in</strong>ition and certification. We are currently ref<strong>in</strong><strong>in</strong>g the propertygranularity pyramid def<strong>in</strong>ed <strong>in</strong> this paper and <strong>in</strong>vestigat<strong>in</strong>g its application.AcknowledgementsWe wish to acknowledge the valuable contributions provided by Sigi Guergens,Chris Mitchell and the anonymous TRUST2009 referees, which have significantlyimproved the paper.References1. Alves, T., Felton, D.: T<strong>ru</strong>stZone: Integrated Hardware and Software Security.White paper, ARM (July 2004)2. Balacheff, B., Chen, L., Pearson, S., Plaqu<strong>in</strong>, D., Proudler, G.: T<strong>ru</strong>sted Comput<strong>in</strong>gPlatforms: TCPA Technology <strong>in</strong> Context. Prentice Hall, Upper Saddle River (2003)3. Balfe, S., Gallery, E.: Mobile Agents and the Deus Ex Mach<strong>in</strong>a. In: Proceed<strong>in</strong>gs ofthe 2007 IEEE International Symposium on Ubisafe Comput<strong>in</strong>g (UBISAFE 2007),May 21–23, pp. 486–492. IEEE <strong>Computer</strong> Society, Los Alamitos (2007)4. Berkovits, S., Guttman, J.D., Swa<strong>ru</strong>p, V.: Authentication for Mobile Agents. In: Vigna,G. (ed.) Mobile Agents and Security. LNCS, vol. 1419, pp. 114–136. Spr<strong>in</strong>ger,Heidelberg (1998)5. Chen, L., Landerfermann, R., Rohe, H.L.M., Sadeghi, A.R., Stuble, C.: A Protocolfor Property-Based Attestation. In: Proceed<strong>in</strong>gs of the 1st ACM Workshop onScalable T<strong>ru</strong>sted Comput<strong>in</strong>g, Fairfax, Virg<strong>in</strong>ia, USA, November 3, 2006, pp. 7–16.ACM, New York (2006)6. Crane, S.: Privacy Preserv<strong>in</strong>g T<strong>ru</strong>st Agents. Technical Report HPL-2004-197, HPLabs, Bristol, UK (November 11, 2004)7. Ekberg, J.-E., Asokan, N., Kostia<strong>in</strong>en, K., Eronen, P.: OnBoard Credentials PlatformDesign and Implementation. Technical Report NRC-TR-2008-001, Nokia ResearchCenter, Hels<strong>in</strong>ki, F<strong>in</strong>land (January 2008)8. Gallery, E., Toml<strong>in</strong>son, A.: Secure Delivery of Conditional Access Applications toMobile Receivers. In: Mitchell, C.J. (ed.) T<strong>ru</strong>sted Comput<strong>in</strong>g. IEE ProfessionalApplications of Comput<strong>in</strong>g Series 6, ch. 7, pp. 195–238. The Institute of ElectricalEng<strong>in</strong>eers (IEE), London (2005)9. Gray, R.S., Kotz, D., Cybenko, G., Rus, D.: D’Agents: Security <strong>in</strong> Multiple-Language, Mobile Agent System. In: Vigna, G. (ed.) Mobile Agents and Security.LNCS, vol. 1419, pp. 154–187. Spr<strong>in</strong>ger, Heidelberg (1998)10. Haldar, V., Chandra, D., Franz, M.: Semantic Remote Attestation – A VirtualMach<strong>in</strong>e Directed Approach to T<strong>ru</strong>sted Comput<strong>in</strong>g. In: Proceed<strong>in</strong>gs of the 3rdConference on Virtual Mach<strong>in</strong>e Research And Technology Symposium, San Jose,California, USA, May 6–7, 2004, pp. 29–41. USENIX Association, Berkeley (2004)11. Intel. LaGrande Technology Architectural Overview. Technical Report 252491-001,Intel Corporation (September 2003)


262 E. Gallery, A. Nagarajan, and V. Varadharajan12. Johnston, W., Mudumbai, S., Thompson, M.: Authorization and Attribute Certificatesfor Widely Distributed Access Control. In: Proceed<strong>in</strong>gs of the IEEE 7thInternational Workshops on Enabl<strong>in</strong>g Technologies: Infrast<strong>ru</strong>cture for CollaborativeEnterprises (WETICE 1998), Palo Alto, California, USA, June 17–19, 1998,pp. 340–345. IEEE <strong>Computer</strong> Society, Wash<strong>in</strong>gton (1998)13. Lange, D.B., Oshima, M.: Programm<strong>in</strong>g and Deploy<strong>in</strong>g Java Mobile Agents withAglets. Addison Wesley Longman, Inc., Read<strong>in</strong>g (1998)14. Marches<strong>in</strong>i, J., Smith, S., Wild, O., Stab<strong>in</strong>er, J., Barsamian, A.: Open-source Applicationsof TCPA Hardware. In: ACSAC 2004, pp. 294–303. IEEE <strong>Computer</strong>Society, Wash<strong>in</strong>gton (2004)15. Mitchell, C. (ed.): T<strong>ru</strong>sted Comput<strong>in</strong>g. IEE Professional Applications of Comput<strong>in</strong>gSeries 6. The Institute of Electrical Eng<strong>in</strong>eers (IEE), London (2005)16. Nagarajan, A., Varadharajan, V., Hitchens, M.: T<strong>ru</strong>st Management for T<strong>ru</strong>stedComput<strong>in</strong>g Platforms <strong>in</strong> Web Services. In: Proceed<strong>in</strong>gs of the 2nd ACM Workshopon Scalable T<strong>ru</strong>sted Comput<strong>in</strong>g, Alexandria, Virg<strong>in</strong>ia, USA, November 2, 2007,pp. 58–62. ACM, New York (2007)17. Necula, G.C., Lee, P.: Safe, Unt<strong>ru</strong>sted Agents Us<strong>in</strong>g Proof-Carry<strong>in</strong>g Code. In:Vigna, G. (ed.) Mobile Agents and Security. LNCS, vol. 1419, pp. 61–91. Spr<strong>in</strong>ger,Heidelberg (1998)18. Nwana, H.S., Ndumu, D.T.: An Introduction to Agent Technology. In: Nwana,H.S., Azarmi, N. (eds.) Software Agents and Soft Comput<strong>in</strong>g: Towards Enhanc<strong>in</strong>gMach<strong>in</strong>e Intelligence. LNCS, vol. 1198, pp. 3–26. Spr<strong>in</strong>ger, Heidelberg (1997)19. Ousterhout, J.K., Levy, J.Y., Welch, B.B.: The Safe-Tcl Security Model. In: Vigna,G. (ed.) Mobile Agents and Security. LNCS, vol. 1419, pp. 217–235. Spr<strong>in</strong>ger,Heidelberg (1998)20. Pearson, S.: T<strong>ru</strong>sted Agents that Enhance User Privacy by Self-Profil<strong>in</strong>g. TechnicalReport HPL-2002-196, HP Labs, Bristol, UK (July 15, 2002)21. Pearson, S.: How T<strong>ru</strong>sted <strong>Computer</strong>s can Enhance for Privacy Preserv<strong>in</strong>g MobileApplications. In: Proceed<strong>in</strong>gs of the 1st International IEEE WoWMoM Workshopon T<strong>ru</strong>st, Security and Privacy for Ubiquitous Comput<strong>in</strong>g (WOWMOM 2005),Taorm<strong>in</strong>a, Sicily, Italy, June 13–16, 2005, pp. 609–613. IEEE <strong>Computer</strong> Society,Wash<strong>in</strong>gton (2005)22. Pe<strong>in</strong>ado, M., Chen, Y., England, P., Manferdelli, J.L.: NGSCB: A T<strong>ru</strong>sted OpenSystem. In: Wang, H., Pieprzyk, J., Varadharajan, V. (eds.) ACISP 2004. LNCS,vol. 3108, pp. 86–97. Spr<strong>in</strong>ger, Heidelberg (2004)23. Pe<strong>in</strong>ado, M., England, P., Chen, Y.: An Overview of NGSCB. In: Mitchell, C.J.(ed.) T<strong>ru</strong>sted Comput<strong>in</strong>g. IEE Professional Applications of Comput<strong>in</strong>g Series 6,ch. 7, pp. 115–141. The Institute of Electrical Eng<strong>in</strong>eers (IEE), London (2005)24. Poritz, J., Schunter, M., van Herreweghen, E., Waidner, M.: Property Attestation– Scalable and Privacy-friendly Security Assessment for Peer <strong>Computer</strong>s. ResearchReport RZ 3548, IBM Research GmbH, Zurich Research Laboratory, Switzerland(October 2004)25. Pridgen, A., Julien, C.: A Secure Modular Mobile Agent System. In: Proceed<strong>in</strong>gsof the 2006 International Workshop on Software Eng<strong>in</strong>eer<strong>in</strong>g for Large-Scale Multi-Agent Systems (SELMAS 2006), Shanghai, Ch<strong>in</strong>a, May 22–23, pp. 67–74. ACMPress, New York (2006)26. Re<strong>in</strong>icke, M., Strasser, M.: Decentralized Management of Persistent BandwidthProvision for Mobile Devices <strong>in</strong> Cellular Radio Networks. In: Sprague, R.H. (ed.)Proceed<strong>in</strong>gs of the 37th Annual Hawaii International Conference on System <strong>Science</strong>s(HICSS 2004), Big Island, Hawaii, January 5-8. IEEE <strong>Computer</strong> Society, LosAlamitos (2004)


A Property-Dependent Agent Transfer Protocol 26327. Rothermel, K., Schwehm, M.: Mobile Agents. In: Kent, A., Williams, J.G. (eds.)Encyclopedia for <strong>Computer</strong> <strong>Science</strong> and Technology, vol. 40, pp. 155–176. M.Dekker Inc., New York (1999)28. Sadeghi, A.R., Stuble, C.: Property-based Attestation for Comput<strong>in</strong>g Platforms:Car<strong>in</strong>g about Properties, not Mechanisms. In: Proceed<strong>in</strong>gs of the 2004 Workshopon New Security Paradigms (NSPW 2004), Nova Scotia, Canada, September 20-23,pp. 67–77. ACM, New York (2004)29. Sekar, R., Ranalrishnan, C.R., Ramakrishnan, I.V., Smolka, S.A.: Model Carry<strong>in</strong>gCode (MCC): A New Paradigm for Mobile Code Security. In: Proceed<strong>in</strong>gs of theNew Security Paradigms Workshop (NSPW 2001), Cloudcroft, New Mexico, USA,September 10–13, pp. 23–30. ACM Press, New York (2001)30. Tardo, J., Valente, L.: Mobile Agent Security and Telescript. In: Proceed<strong>in</strong>gs of the41st International IEEE <strong>Computer</strong> Society International Conference: Technologiesfor the Information Superhighway (COMPCON 1996), Santa Clara, California,USA, Feb<strong>ru</strong>ary 25–28, pp. 58–63. IEEE <strong>Computer</strong> Society Press, Los Alamitos(1996)31. TCG. TCG Generic Server Specification. TCG specification Version 1.0 Revision0.8, The T<strong>ru</strong>sted Comput<strong>in</strong>g Group (TCG), Portland, Oregon, USA (March 2005)32. TCG. TCG PC Client Specific Implementation Specification For ConventionalBIOS. TCG specification Version 1.2 F<strong>in</strong>al, The T<strong>ru</strong>sted Comput<strong>in</strong>g Group (TCG),Portland, Oregon, USA (July 2005)33. TCG. TCG T<strong>ru</strong>sted Network Connect TNC Architecture for Interoperability. TCGspecification Version 1.1 Revision 2, The T<strong>ru</strong>sted Comput<strong>in</strong>g Group (TCG), Portland,Oregon, USA (May 2006)34. TCG. TPM Ma<strong>in</strong>, Part 1: Design Pr<strong>in</strong>ciples. TCG Specification Version 1.2 Revision94, The T<strong>ru</strong>sted Comput<strong>in</strong>g Group (TCG), Portland, Oregon, USA (March2006)35. TCG. TPM Ma<strong>in</strong>, Part 2: TPM Data St<strong>ru</strong>ctures. TCG Specification Version1.2 Revision 94, The T<strong>ru</strong>sted Comput<strong>in</strong>g Group (TCG), Portland, Oregon, USA(March 2006)36. TCG. TPM Ma<strong>in</strong>, Part 3: Commands. TCG Specification Version 1.2 Revision 94,The T<strong>ru</strong>sted Comput<strong>in</strong>g Group (TCG), Portland, Oregon, USA (March 2006)37. TCG MPWG. The TCG Mobile Reference Architecture. TCG specification version1 revision 1, The T<strong>ru</strong>sted Comput<strong>in</strong>g Group (TCG), Portland, Oregon, USA (2007)38. TCG MPWG. The TCG Mobile T<strong>ru</strong>sted Module Specification. TCG specificationversion 1 revision 1, The T<strong>ru</strong>sted Comput<strong>in</strong>g Group (TCG), Portland, Oregon,USA (September 2007)39. Varadharajan, V.: Security Enhanced Mobile Agents. In: Proceed<strong>in</strong>gs of the 7thACM Conference on <strong>Computer</strong> and Communications Security, Athens, Greece,November 1–4, pp. 200–209. ACM, New York (2000)40. Vigna, G.: Cryptographic Traces for Mobile Agents. In: Vigna, G. (ed.) MobileAgents and Security. LNCS, vol. 1419, pp. 137–153. Spr<strong>in</strong>ger, Heidelberg (1998)41. Wilhelm, U.G., Staamann, S., Butty, L.: Introduc<strong>in</strong>g T<strong>ru</strong>sted Third Parties to theMobile Agent Paradigm. In: Vitek, J., Jensen, C. (eds.) Secure Internet Programm<strong>in</strong>g.LNCS, vol. 1603, pp. 469–489. Spr<strong>in</strong>ger, Heidelberg (1999)42. Yoshihama, S., Ebr<strong>in</strong>ger, T., Nakamura, M., Munetoh, S., Ma<strong>ru</strong>yama, H.: WS-Attestation: Effecient and F<strong>in</strong>e-Gra<strong>in</strong>ed Remote Attestation on Web Services. In:Proceed<strong>in</strong>gs of the IEEE International Conference on Web Services (ICWS 2005),Orlando, Florida, USA, July 11-15, pp. 743–750. IEEE <strong>Computer</strong> Society Press,Wash<strong>in</strong>gton (2005)


Author IndexAad, Imad 217Alam, Masoom 63Ali, Tamleek 63Baiardi, Fabrizio 81Benzel, Terry V. 133Bhaskara, Ganesha 133Ceccarelli, Francesco 81Cilea, Diego 81Clark, Paul C. 133Danner, Peter 101Dietrich, Kurt 29Duflot, Loïc 14Dwosk<strong>in</strong>, Jeffrey S. 133England, Paul 1Gallery, Eimear 240He<strong>in</strong>, Daniel 101Huh, Jun Ho 169Irv<strong>in</strong>e, Cynthia E. 133Katzenbeisser, Stefan 120Kursawe, Klaus 120Lee, Ruby B. 133Levilla<strong>in</strong>, Olivier 14Lev<strong>in</strong>, Timothy E. 133Löhr, Hans 45Lyle, John 153, 169Mor<strong>in</strong>, Benjam<strong>in</strong> 14Nagarajan, Aarthi 240Nauman, Mohammad 63Nguyen, Thuy D. 133Pirker, Mart<strong>in</strong> 101Poller, Andreas 183Sadeghi, Ahmad-Reza 45, 197Schulz, Steffen 197Sgandurra, Daniele 81Soghoian, Christopher 217Steffan, Jan 183Stotz, Jan-Peter 183Stüble, Christian 45Stumpf, Frederic 120Tariq, Talha 1Toegl, Ronald 101T<strong>ru</strong>kenmüller, Jan 183Türpe, Sven 183Varadharajan, Vijay 240Weber, Marion 45W<strong>in</strong>andy, Marcel 45W<strong>in</strong>ter, Johannes 29Zhang, X<strong>in</strong>wen 63

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!