Applying Trusted Computing to a Workflow System Po-Wah Yau, Allan Tomlinson, Shane Balfe and Eimear Gallery Information Security Group Royal Holloway, University of London www.isg.rhul.ac.uk Third e-Science Workshop Trusted Services: Requirements and Prospects, 8-9 July 2008, Edinburgh Contents • Introduction • Grid workflow security • Overview of Trusted Computing • Securing workflows • Summary 2 Introduction • Grid middleware used to achieve synergy from otherwise disparate resources: – Hardware (CPU, storage, computationally steerable equipment), – Applications, – Data, and – People. • Security issues when running a Grid job at a resource provider: – See Andy’s talk! 3 Introduction • Grid workflows used to achieve automated synergy from multiple tasks: – Logical ordering of tasks, – Each task can either process results of another task or new set of data, – Sequential, parallel, choice branching and loops. • Variety of workflow systems: – Low level, physical workflows, as opposed to – High level (e.g. Pegasus, P-Grade, Taverna). 4 Introduction • Workflow Resource Broker (WRB): – Typically maps abstract workflow of tasks to physical workflow of jobs (in a high level system), – Selects resource providers to run jobs (according to static requirements), and – Schedules jobs (taking into account dynamic requirements). 5 Contents • Introduction • Grid workflow security • Overview of Trusted Computing • Securing Grid workflows • Summary 6 Grid Workflow Security • Confidentiality, to protect: – An individual job, – A workflow of jobs, – The workflow/sub-workflow, and – The locations of where jobs are submitted. • Integrity, to prevent: – Error propagation, – Wasted resources, and – Loss of reputation. 7 Grid Workflow Security • WRB vulnerabilities: – Delegated control of user credentials – Resource provider selection – Scheduling and location of workflow jobs • Resource provider vulnerabilities: – Complex Grid middleware – Local user access – Network vulnerabilities 8 Contents • Introduction • Grid workflow security • Overview of Trusted Computing • Securing Grid workflows • Summary 9 Overview of Trusted Computing • Defined by the Trusted Computing Group: – www.trustedcomputinggroup.org • A ‘Trusted Platform’ consists of: – Trusted Platform Module (TPM) embedded into the host platform, – Protected capabilities, commands, that can access shielded locations (memory, registers), and – Creating proxy ‘roots of trust’ in hardware. 1 0 Overview of Trusted Computing • Three types of key: – Non-migratable keys never leave protection of the TPM in which they are created, and are certified by the TPM. – Migratable keys can be released by a TPM, encrypted using the public key of the destination, but are not certified. – Certifiable migratable keys are keys that are migrated under specific conditions, possibly under the control of a Migration Selection Authority (MSA). 1 1 Overview of Trusted Computing • Each TPM is shipped with a non-migratable Endorsement Key. • A non-migratable Storage root key (SRK) is created when a TPM is initialised/reset: – The SRK is used to encrypt other keys, which can then be stored outside of the TPM, – If a non-migratable key is used to encrypt data, then that data is ‘bound’ to the TPM, and – If use of that non-migratable key is only possible when the platform is in a specific state, then that data is ‘sealed’ to that platform state. 1 2 Overview of Trusted Computing • Integrity measurement: – The ability to record events that modify platform state, which are – Stored in Platform Configuration Registers (PCRs) via an ‘extend’ operation. • Sealed storage: – Binding data objects, including cryptographic keys, to a specific platform state. • Attestation: – The ability to prove platform state to an external entity, where – The PCR values are signed using an Attestation Identity Key (AIK). 1 3 Contents • Introduction • Grid workflow security • Overview of Trusted Computing • Securing Grid workflows: – Assumptions – Workflow preparation – Workflow execution • Summary 1 4 Securing Grid Workflows • The following proposal uses Trusted Computing to provide: – Trusted resource provider selection – Confidentiality of job information – Integrity of job information • Secondary properties: – Confidentiality and integrity of workflow – Information to possibly assist process provenance 1 5 Assumptions • Trusted Computing prevalence: – WRB platform – Subset of resource providers • Means of verifying that WRB can be trusted • User has a means of specifying high level security requirements: – Translated by WRB into low-level platform state requirements 1 6 Assumptions • All resource providers have a certified copy of the WRB’s public signature verification key. • The WRB has a copy of all resource providers’ public signature verification key. 1 7 Workflow preparation (1) • Consider a workflow of jobs a0, a1, … , an • Each job ai is associated with a symmetric key Ki, which will be used to ‘protect’ the job. • A private key SKi is also associated with each job ai: – This will be stored in a TPM. 1 8 Workflow preparation (1) • The resource provider RPi can obtain SKi using one of two methods: – The WRB creates a certifiable migratable key pair • Specifying the state i to which the private key is sealed • The key is then migrated to TPM of RPi – RPi creates a non-migratable key pair sealed to a specific platform state i: • The public key and platform state are advertised as part of an attestation token [Lohr et al. 06] 1 9 Workflow preparation (2) WRB RPi : 2 0 Workflow preparation (2) WRB RPi : IDW Identifiers of WRB and workflow 2 1 Workflow preparation (2) WRB RPi : IDW || ri Random nonce 2 2 Workflow preparation (2) WRB RPi : IDW || ri || gKi (ai || r i) Output of g is the ciphertext and message authentication code for the job and nonce 2 3 Workflow preparation (2) WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) Ki encrypted using PKi corresponding to SKi which is sealed to platform state i 2 4 Workflow preparation (2) WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) || IDi+1 || PKi+1 Identifier of resource provider RPi+1 to send job results to, and Public encryption key of RPi+1 corresponding to Ski+1 2 5 Workflow preparation (2) WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) || IDi+1 || PKi+1 || IDRPi-1 ||VKRPi-1 || i-1 Identifier of preceding resource provider, Public verification key of RPi-1 (non-TPM key), The platform state of RPi-1 required by WRB 2 6 Workflow preparation (2) WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) || IDi+1 || PKi+1 || IDRPi-1 ||VKRPi-1 || i-1 ||W The WRB’s digital signature on the whole message 2 7 Workflow preparation (2) • In summary: 1. Each job is ‘protected’ using a symmetric key, 2. This key is sealed to the required platform state, 3. The platform states to which the keys are sealed are decided/known before workflow execution, and 4. Each resource provider knows the state that the previous resource provider should have been in, in order to execute their designated job. 2 8 Workflow execution WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) || IDi+1 || PKi+1 || IDRPi-1 ||VKRPi-1 || i-1 ||W RPi-1 RPi : IDW || “ready” || RPi-1 2 9 Workflow execution WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) || IDi+1 || PKi+1 || IDRPi-1 ||VKRPi-1 || i-1 ||W RPi-1 RPi : IDW || “ready” || RPi-1 RPi : Verify W and RPi-1 RPi : Retrieve Ki using SKi (sealed to TPM) RPi : Decrypt and retrieve ai , and verify integrity 3 0 Workflow execution WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) || IDi+1 || PKi+1 || IDRPi-1 ||VKRPi-1 || i-1 ||W RPi-1 RPi-1 RPi : IDW || “ready” || RPi-1 RPi : 3 1 Workflow execution WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) || IDi+1 || PKi+1 || IDRPi-1 ||VKRPi-1 || i-1 ||W RPi-1 RPi-1 RPi : IDW || “ready” || RPi-1 RPi : IDW || C(rRPi) RPi : Generate random nonce RPi : Send attestation challenge 3 2 Workflow execution WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) || IDi+1 || PKi+1 || IDRPi-1 ||VKRPi-1 || i-1 ||W RPi-1 RPi-1 RPi-1 RPi : IDW || “ready” || RPi-1 RPi : IDW || C(rRPi) RPi : 3 3 Workflow execution WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) || IDi+1 || PKi+1 || IDRPi-1 ||VKRPi-1 || i-1 ||W RPi-1 RPi-1 RPi-1 RPi : IDW || “ready” || RPi-1 RPi : IDW || C(rRPi) RPi : IDW || F(i-1, rRPi) RPi-1 : Generates response to attestation challenge 3 4 Workflow execution WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) || IDi+1 || PKi+1 || IDRPi-1 ||VKRPi-1 || i-1 ||W RPi-1 RPi-1 RPi-1 RPi : IDW || “ready” || RPi-1 RPi : IDW || C(rRPi) RPi : IDW || F(i-1, rRPi) 3 5 RPi-1 : Generates symmetric key Ki’ and… Workflow execution WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) || IDi+1 || PKi+1 || IDRPi-1 ||VKRPi-1 || i-1 ||W RPi-1 RPi-1 RPi-1 RPi : IDW || “ready” || RPi-1 RPi : IDW || C(rRPi) RPi : IDW || F(i-1, rRPi) || gKi’ (R(ai-1, rRPi) || rRPi) 3 6 RPi-1 : Protects job results using Ki’ Workflow execution WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) || IDi+1 || PKi+1 || IDRPi-1 ||VKRPi-1 || i-1 ||W RPi-1 RPi-1 RPi-1 RPi : IDW || “ready” || RPi-1 RPi : IDW || C(rRPi) RPi : IDW || F(i-1, rRPi) || gKi’ (R(ai-1, rRPi) || rRPi) || ePKi (Ki’) 3 7 RPi-1 : Encrypts Ki’ using public key PKi Workflow execution WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) || IDi+1 || PKi+1 || IDRPi-1 ||VKRPi-1 || i-1 ||W RPi-1 RPi-1 RPi-1 RPi : IDW || “ready” || RPi-1 RPi : IDW || C(rRPi) RPi : IDW || F(i-1, rRPi) || gKi’ (R(ai-1, rRPi) || rRPi) || ePKi (Ki’) RPi : Verifies F(i-1, rRPi) 3 8 Workflow execution WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) || IDi+1 || PKi+1 || IDRPi-1 ||VKRPi-1 || i-1 ||W RPi-1 RPi-1 RPi-1 RPi : IDW || “ready” || RPi-1 RPi : IDW || C(rRPi) RPi : IDW || F(i-1, rRPi) || gKi’ (R(ai-1, rRPi) || rRPi) || ePKi (Ki’) 3 9 RPi : Retrieves Ki’ Workflow execution WRB RPi : IDW || ri || gKi (ai || r i) || ePKi (Ki) || IDi+1 || PKi+1 || IDRPi-1 ||VKRPi-1 || i-1 ||W RPi-1 RPi-1 RPi-1 RPi : IDW || “ready” || RPi-1 RPi : IDW || C(rRPi) RPi : IDW || F(i-1, rRPi) || gKi’ (R(ai-1, rRPi) || rRPi) || ePKi (Ki’) 4 0 RPi : Recovers ai-1, and processes ai Workflow execution • In summary: 1. Job are ‘protected’ using a symmetric key, 2. This key is sealed to the required platform state of the next resource provider in the workflow, 3. A resource provider should challenge the previous one to attest to its platform state. 4 1 Properties of the scheme • Security is provided in both directions of a workflow: – Forward – trusted resource provider selection, – Backward – detection of compromised jobs. • Efficient symmetric key cryptography to protect job data: – Symmetric key bound to trusted platform state, via sealed private key. • Each platform stores a “secure measurement log”: – Potentially useful (verifiable) information for process provenance. 4 2 Summary • Securing Grid workflows is paramount because a user’s entire dataset is being exposed. • Trusted computing can be used to improve trust establishment in Grids. • Trust in the Workflow Resource Broker is critical. • Proposed a scheme to ensure trusted workflow execution. 4 3 Acknowledgements • The first and second authors are being funded by the Engineering and Physical Sciences Research Council (EPSRC) UK e-Science programme of research (EP/D053269). • The third author is sponsored by the U.S. Army Research Laboratory and the UK Ministry of Defence (Agreement no. W911NF-06-3-0001) • The fourth author is sponsored by the Open Trusted Computing project of the European Commission Framework 6 Programme. • Thanks to Professor Chris J. Mitchell. • For more details of this project please refer to www.distributedtrust.org. 4 4 Thank you for listening • Any questions? 4 5