Internet DRAFT - draft-yang-teep-tee-dpr

draft-yang-teep-tee-dpr







TEEP                                                             P. Yang
Internet-Draft                                              China Mobile
Intended status: Standards Track                                 T. Pang
Expires: 8 January 2024                       Huawei Technology Co.,Ltd.
                                                                X. Zhang
                                                                AntGroup
                                                             7 July 2023


                   TEE Distributed Provisioning Relay
                       draft-yang-teep-tee-dpr-00

Abstract

   Big data computing framework uses Master-Worker structure to
   provision applications and process data.  When process remote
   attestation for this kind of framework in TEE cluster, Verifier or
   Relying party needs to know the dynamic reference value of Worker
   nodes.  This document shows how to use Master to relay Worker
   provision information to Verifier or Relying Party and its relevant
   protocol.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 8 January 2024.

Copyright Notice

   Copyright (c) 2023 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights



Yang, et al.             Expires 8 January 2024                 [Page 1]

Internet-Draft                   TEE-DPR                       July 2023


   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . .   3
   4.  Architecture  . . . . . . . . . . . . . . . . . . . . . . . .   3
   5.  Worker Runtime Provisioning Relay . . . . . . . . . . . . . .   4
     5.1.  Rationality . . . . . . . . . . . . . . . . . . . . . . .   5
     5.2.  Worker Runtime Provisioning Relay by CDDL . . . . . . . .   5
       5.2.1.  Task serialized . . . . . . . . . . . . . . . . . . .   6
       5.2.2.  Worker Hardware Manifest  . . . . . . . . . . . . . .   6
       5.2.3.  Worker Software Manifest  . . . . . . . . . . . . . .   7
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   7
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   7
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   7
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .   7
     8.2.  Informative References  . . . . . . . . . . . . . . . . .   8
   Appendix A.  Appendix 1 Full CDDL of TEE DP protocol  . . . . . .   9
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10

1.  Introduction

   In big data area, different from stand-alone application, distributed
   application like machine learning always need to be split by Master-
   Worker framework like MESOS[MESOS], YARM[YARN], Spark[Spark] or
   kubernets[Kubernetes] . The Master node in charges of splitting
   distributed application to computing tasks.  Then these tasks will be
   deployed on Workers for execution.  TEE could be used to protect the
   application and its secret data, if only the whole process lifecycle
   is covered by TEE cluster.  If a Verifier or Relying Party would like
   to attest distributed application running in TEE cluster, it has to
   verify the Worker nodes since the Worker nodes are the real place in
   where specific tasks and data are processing.  The Master node
   conducts the splitting process and provision specific tasks or
   executable code to Workers after running the main part of
   application.  Master node could relay these tasks or executable code
   information to Verifier or Relying party for remote attestation.  As
   a result, Verifier or Relying Party could assess the trustworthiness
   of the lifecycle of distributed application in TEE cluster.  This
   document specifies the method and protocol of this distributed TEE
   provision relay.





Yang, et al.             Expires 8 January 2024                 [Page 2]

Internet-Draft                   TEE-DPR                       July 2023


2.  Terminology

   The following terms are used:

   *  Master: The node that runs the main application and in charges of
      splitting and distributing tasks to Worker nodes.

   *  Worker: The node that runs the specific tasks that generated by
      Master.

   *  Relay: Master transfer the original provision message to Verifier/
      Relying party for remote attestation.

3.  Use Cases

   In privacy-preserve computing, participants want to create a unified
   machine learning model without leaking private data owned by each
   other.  TEE cluster as a trusted party could make sure data inside
   this environment is integrated and confidential.  If the federated
   machine learning participants trust this TEE cluster and application,
   they could transfer their data in that TEE cluster and generate the
   final machine learning model.  The method and protocol described in
   this document could help privacy-preserve computing participants to
   process remote attestation of TEE cluster during runtime.

4.  Architecture

   The following figure shows the architecture of TEE distributed
   provisioning relay.  In this architecture, Master runs the main part
   of distributed application, which will generate tasks or executable
   code and provision to Workers.  Master accepts remote attestation
   challenge from Verifier and response Evidence of Master.  Then,
   Master relay provisioning information of Workers to Verifier/Relying
   Party.  In the end, Evidence of Workers will be transfered to
   Verifier/Relying Party by Master.  The security or trust logic of
   this architecture is to build a trust chain between Master and
   Workers, in which the Verifier/Relying party could trust the Master
   first and let the Master to relay the provisioning information of
   Workers to Verifier/Relying Party.












Yang, et al.             Expires 8 January 2024                 [Page 3]

Internet-Draft                   TEE-DPR                       July 2023


                         +-------------+
                         |  Verifier/  |
                         |Relying Party|
                         +-------------+
                               ^
      1. Remote attestation    | 2. Return Evidence of Master
         of Master             | 4. Relay Worker runtime provisioning
                               v 6. Return Evidence of Workers
                   +-----------------------+
                   |Master/Main application|
                   +-----------------------+
      3. Generate tasks &      ^ 5. Remote attestation of Workers
      distribute to Workers    |
          ---------------------+----------------------
          |                    |                     |
          v                    v                     v
      +--------+           +--------+            +--------+
      | Worker |           | Worker |            | Worker |
      +--------+           +--------+            +--------+

            Figure 1: Distributed Application Remote Attestation

   The steps of TEE distributed provisioning relay is described below.

   - Verifier/Relying party sends challenge to Master and tries to
   assess the trustworthiness of this distributed application runs in
   TEE cluster.

   - Master generates Evidence of itself and return to Verifier/Relying
   Party.

   - Master generates tasks and provisions to Workers.

   - Meanwhile, Master transfer the tasks provisioning information and
   Worker information back to Verifier/Relying Party to generate
   reference value of Workers.

   - Master challenges Worker for Evidence.

   - Master sends the Evidence of Workers back to Verifier/Relying Party
   for attestation.

5.  Worker Runtime Provisioning Relay

   Worker runtime provisioning relay message is sent from Master to
   Verifier/Relying Party.  It's function is to provide Verifier/Relying
   Party information to generate reference value of Workers.  This
   message can only be sent after remote attestation of Master.



Yang, et al.             Expires 8 January 2024                 [Page 4]

Internet-Draft                   TEE-DPR                       July 2023


5.1.  Rationality

   In big data computing framework, Reference Value of Workers may
   change during runtime based on computing stages and input data
   source.  Thus it is not rational to generate Reference Value of
   Workers statically.  Instead, Master is the manage and monitor center
   of the tasks in Workers.  The following reason shows that Master is
   the reasonable choice to generate and relay Worker runtime
   provisioning message.

   *  Master runs the main part of distributed application which
      reference value is static and could be pre-generated.

   *  Master is task generator, it in charges of generating different
      tasks or executable code for Workers in different processing
      stage.

   *  Master is computing resource manager of TEE cluster, it in charges
      of orchestrating TEE hardware resource.

5.2.  Worker Runtime Provisioning Relay by CDDL

   Worker runtime provisioning relay message includes 3 message type,
   task-serialized, hardware-manifest and software-manifest.  The
   following figure shows the message framework of Worker runtime
   provisioning relay in CDDL.

   tee-dpr-message = $tee-dpr-message-type .within
   tee-dpr-message-framework
   tee-dpr-message-framework = [
       type: $tee-dpr-type,
       optionis: { * tee-dpr-option}
   ]
   tee-dpr-option = (uint =>any)
   $tee-dpr-message-type /= tee-task-serialized
   $tee-dpr-message-type /= tee-worker-hardware-manifest
   $tee-dpr-message-type /= tee-worker-software-manifest

   $tee-dpr-type = uint .size 1
   TEE-task-serialized = 1
   TEE-worker-hardware-manifest = 2
   TEE-worker-software-manifest = 3

       Figure 2: TEE Distributed Provisioning Relay Message Framework







Yang, et al.             Expires 8 January 2024                 [Page 5]

Internet-Draft                   TEE-DPR                       July 2023


5.2.1.  Task serialized

   Task serialized represents the execution content like executable code
   of task.  Master generate and distribute tasks to workers by its
   default mechanism.  Meanwhile Master needs to relay this tee-task-
   serialized message to Verifier/Relying Party for remote attestation
   of Workers.

   tee-task-serialized = [
       type: TEE-task-serialized
       options:{
           Recommended-serialized-type: uint .bits serialized-type
           serialized-payload = bstr
       }
   ]
   serialized-type = &(
       json: 0
       protobuf: 1
       thrift: 2
       pre-defined: 3
   )

5.2.2.  Worker Hardware Manifest

   Worker hardware manifest message needs to be relayed to Verifier
   before remote attestation.  Worker hardware manifest is intent to
   describe the specific hardware environment of Workers, which includes
   CPU, memory, and other necessary information.

   tee-worker-hardware-manifest = [
       type: TEE-worker-hardware-manifest
       options:{
           CPU-core-number: uint .size 1
           CPU-architecture: text .size(1..128)
           CPU-version: text .size(1..128)
           CPU-frequency: unit .size 2
           ;the cpu frequency unit is MHZ
           MEMORY-size: uint .size 4
           ;the memory size unit is MB
       }
   ]










Yang, et al.             Expires 8 January 2024                 [Page 6]

Internet-Draft                   TEE-DPR                       July 2023


5.2.3.  Worker Software Manifest

   Worker software manifest message includes operation system version,
   memory allocation method, memory protection method, etc.  This
   message needs to be relayed to Verifier before remote attestation.
   Worker software manifest message is intent to describe the specific
   software environment of Worker, which includes operation system,
   memory, and other necessary information.  Verifier will use this
   message to generate reference value.

   tee-worker-software-manifest = [
       type: TEE-worker-software-manifest
       options:{
           os-version: text .size(1..128)
           memory-allocation: text .size(1..128)
           sadr: bool
           canary: bool
           worker-executor-version: text .size(1..128)
           time-stamp: text .size(1..128)
       }
   ]

6.  Security Considerations

   This protocol is used to relay Worker TEE provisioning message
   between Master and Verifier, between which secure channel could be
   built by TLS and etc.  The secure channel between Worker and Verifier
   could also use TLS or other secure protocol to protect provisioning
   message.

7.  IANA Considerations

   This document does not require actions by IANA.

8.  References

8.1.  Normative References

   [I-D.ietf-teep-protocol]
              Tschofenig, H., Pei, M., Wheeler, D. M., Thaler, D., and
              A. Tsukamoto, "Trusted Execution Environment Provisioning
              (TEEP) Protocol", Work in Progress, Internet-Draft, draft-
              ietf-teep-protocol-15, 3 July 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-teep-
              protocol-15>.






Yang, et al.             Expires 8 January 2024                 [Page 7]

Internet-Draft                   TEE-DPR                       July 2023


   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/rfc/rfc2119>.

8.2.  Informative References

   [I-D.ietf-teep-architecture]
              Pei, M., Tschofenig, H., Thaler, D., and D. M. Wheeler,
              "Trusted Execution Environment Provisioning (TEEP)
              Architecture", Work in Progress, Internet-Draft, draft-
              ietf-teep-architecture-19, 24 October 2022,
              <https://datatracker.ietf.org/doc/html/draft-ietf-teep-
              architecture-19>.

   [I-D.ietf-teep-usecase-for-cc-in-network]
              Yang, P., chenmeiling, Su, L., and T. Pang, "TEEP Usecase
              for Confidential Computing in Network", Work in Progress,
              Internet-Draft, draft-ietf-teep-usecase-for-cc-in-network-
              04, 5 July 2023, <https://datatracker.ietf.org/doc/html/
              draft-ietf-teep-usecase-for-cc-in-network-04>.

   [Kubernetes]
              Community, K., "Kubernetes Cloud Controller Manager", 17
              December 2022,
              <https://kubernetes.io/docs/concepts/architecture/cloud-
              controller/>.

   [MapReduce]
              Community, A. M., "MapReduce Overview", 27 July 2022,
              <https://hadoop.apache.org/docs/current/hadoop-mapreduce-
              client/hadoop-mapreduce-client-core/
              MapReduceTutorial.html#Overview>.

   [MESOS]    Community, A. M., "MESOS Architecture", 2 March 2023,
              <https://mesos.apache.org/documentation/latest/
              architecture/>.

   [Spark]    Community, S., "Spark Overview", 2 March 2023,
              <https://spark.apache.org/docs/3.3.2/cluster-
              overview.html>.

   [YARN]     Community, A. H., "Apache Hadoop YARN", 29 July 2022,
              <https://hadoop.apache.org/docs/current/hadoop-yarn/
              hadoop-yarn-site/YARN.html>.






Yang, et al.             Expires 8 January 2024                 [Page 8]

Internet-Draft                   TEE-DPR                       July 2023


Appendix A.  Appendix 1 Full CDDL of TEE DP protocol

   The full CDDL of TEE distributed provisioning protocol is shown
   below.

   tee-dpr-message = $tee-dpr-message-type .within
   tee-dpr-message-framework
   tee-dpr-message-framework = [
       type: $tee-dpr-type,
       optionis: { * tee-dpr-option}
   ]
   tee-dpr-option = (uint =>any)
   $tee-dpr-message-type /= tee-task-serialized
   $tee-dpr-message-type /= tee-worker-hardware-manifest
   $tee-dpr-message-type /= tee-worker-software-manifest

   $tee-dpr-type = uint .size 1
   TEE-task-serialized = 1
   TEE-worker-hardware-manifest = 2
   TEE-worker-software-manifest = 3

   tee-task-serialized = [
       type: TEE-task-serialized
       options:{
           Recommended-serialized-type: uint .bits serialized-type
           Serialized-payload = bstr
       }
   ]
   serialized-type = &(
       json: 0
       protobuf: 1
       thrift: 2
       pre-defined: 3
   )

   tee-worker-hardware-manifest = [
       type: TEE-worker-hardware-manifest
       options:{
           CPU-core-number: uint .size 1
           CPU-architecture: text .size(1..128)
           CPU-version: text .size(1..128)
           CPU-frequency: unit .size 2
           ;the cpu frequency unit is MHZ
           MEMORY-size: uint .size 4
           ;the memory size unit is MB
       }
   ]




Yang, et al.             Expires 8 January 2024                 [Page 9]

Internet-Draft                   TEE-DPR                       July 2023


   tee-worker-software-manifest = [
       type: TEE-worker-software-manifest
       options:{
           OS-version: text .size(1..128)
           Memory-allocation: text .size(1..128)
           Sadr: bool
           Canary: bool
           Worker-executor-version: text .size(1..128)
           Time-stamp: text .size(1..128)
       }
   ]
   ; labels of mapkey for tee dp message parameters, uint (0..15)
   Recommended-serialized-type = 0
   Serialized-payload = 1
   CPU-core-number = 2
   CPU-architecture = 3
   CPU-version = 4
   CPU-frequency = 5
   MEMORY-size = 6
   OS-version = 7
   Memory-allocation = 8
   Sadr = 9
   Canary = 10
   Worker-executor-version = 11
   Time-stamp = 12

Authors' Addresses

   Penglin Yang
   China Mobile
   No.32 Xuanwumen West Street
   Beijing
   China
   Email: yangpenglin@chinamobile.com


   Ting Pang
   Huawei Technology Co.,Ltd.
   127 Jinye Road, Yanta District
   Xi'an
   China
   Email: pangting@huawei.com









Yang, et al.             Expires 8 January 2024                [Page 10]

Internet-Draft                   TEE-DPR                       July 2023


   Xiaomeng Zhang
   AntGroup
   World Financial Center, No.1 East 3rd Ring Middle Road
   Beijing
   China
   Email: zhangxiaomeng.zxm@antgroup.com













































Yang, et al.             Expires 8 January 2024                [Page 11]