Authors Magnus Feuer
License CC-BY-SA-4.0
Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 1 / 81 Remote Vehicle Interaction Architecture High Level Description Magnus Feuer mfeuer@jaguarlandrover.com © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 2 / 81 Revisions Revision Date Author Notes 1 2014-06-11 Magnus Feuer First Draft. 2 2014-06-11 Magnus Feuer Review feedback from Arthur Taylor integrated. 3 2014-06-12 Magnus Feuer Additional feedback from Arthur Taylor and Paul Hanchett integrated. 4 2014-06-14 Magnus Feuer Formatting and minor corrections 5 2014-06-26 Magnus Feuer Renamed document, removing the Tizen reference. Updates from security review: 1. Change document license to Creative Commons. 2. Remove all security between Service Edge and services Securing the service - Service Edge link security is now scoped out to implementation / deployment / ops. 3. Add certificate timestamp field. Allows chronological sorting of certificates 4. Add node detection technique examples 5. Add per-user service access to the Issue list 6. Add suggestion on how to avoid node spoofing to issue list © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 3 / 81 Table of Contents Contents 1. References ............................................................................................................................................ 8 2. Acronyms and definitions ..................................................................................................................... 9 3. Introduction and Purpose ................................................................................................................... 10 3.1. Document Structure and Reader Assumptions .......................................................................... 11 3.2. Issues ........................................................................................................................................... 12 3.2.1. Federation ........................................................................................................................... 12 3.2.2. Data Link node discovery .................................................................................................... 12 3.2.3. Certificate revocation.......................................................................................................... 12 3.2.4. Request transaction id ........................................................................................................ 12 3.2.5. Certificate format ................................................................................................................ 12 3.2.6. User-level Node authorization ............................................................................................ 12 3.2.7. Node spoofing prevention .................................................................................................. 13 4. Requirements and Objectives ............................................................................................................. 14 4.1. Internet Connectivity Optional ................................................................................................... 14 4.2. Zero Service Configuration.......................................................................................................... 14 4.3. Decentralized Service Discovery ................................................................................................. 14 4.4. Self-Carried Authorization .......................................................................................................... 14 4.5. Interoperability ........................................................................................................................... 15 4.6. Connectivity Awareness .............................................................................................................. 15 4.7. Sparse Connectivity Support ....................................................................................................... 15 4.8. Hybrid Deployment Support ....................................................................................................... 15 5. Architecture Overview ........................................................................................................................ 16 5.1. Data Router ................................................................................................................................. 17 5.2. Remote Vehicle Access Manager (RVAM) .................................................................................. 17 5.3. Service Edge ................................................................................................................................ 17 © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 4 / 81 5.4. Store and Forward ...................................................................................................................... 17 5.5. Protocol ....................................................................................................................................... 17 5.6. Data Link ..................................................................................................................................... 17 5.7. Service Discovery ........................................................................................................................ 18 5.8. Authorization Manager ............................................................................................................... 18 5.9. Provisioning Server ..................................................................................................................... 18 5.10. Software Over The Air (SOTA) ..................................................................................................... 18 5.11. Mobile Device Data Router ......................................................................................................... 18 6. RVI-Wide Concepts ............................................................................................................................. 19 6.1. RPC, Message, and Metric Request Type ................................................................................... 19 6.2. Topic Trees and Service Addressing ............................................................................................ 20 6.3. Node addressing ......................................................................................................................... 22 6.4. RVI Security Scope....................................................................................................................... 24 7. Service Management .......................................................................................................................... 26 7.1. Service Registration .................................................................................................................... 27 7.1.1. Step 1 - Register with Service Edge ..................................................................................... 27 7.1.2. Step 2 - Register with Service Discovery ............................................................................. 28 7.1.3. Step 3- Confirm Service Discovery registration Service Discovery confirms that the service has been registered and announced. ................................................................................................. 28 7.1.4. Step 4 - Confirm Service Edge registration Service Edge replies to Media Server service that the registration was successful, and that traffic is to be expected. ............................................ 28 7.2. Certificates .................................................................................................................................. 29 7.3. Service Discovery ........................................................................................................................ 32 7.4. Node Detection ........................................................................................................................... 35 7.4.1. Vehicle connection to well-known server........................................................................... 35 7.4.2. WiFi network connections .................................................................................................. 35 7.4.3. P2P connections (Bluetooth, serial) .................................................................................... 35 7.4.4. SMS ..................................................................................................................................... 36 7.6. Authorization .............................................................................................................................. 37 7.7. Service Announcement ............................................................................................................... 40 © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 5 / 81 8. Request Routing .................................................................................................................................. 43 8.1. Step 1 [Vehicle] - Submit request to Service Edge ...................................................................... 44 8.2. Step 2 [Vehicle] - Validate service request ................................................................................. 46 8.3. Step 3 [Vehicle] - Validate service reply...................................................................................... 47 8.4. Step 4 [Vehicle] - Resolve network address................................................................................ 48 8.5. Step 5 [Vehicle] - Return resolved network address ................................................................. 49 8.6. Step 6 [Vehicle] - Schedule request ............................................................................................ 50 8.7. Step 7 [Vehicle] - Setup Communication Channel ...................................................................... 52 8.8. Step 8 [Vehicle] - Authorize and Announce ................................................................................ 54 8.9. Step 9 [Vehicle] - Report data link availability ............................................................................ 55 8.10. Step 10 [Cloud] - Report data link availability ............................................................................ 56 8.11. Step 11 [Vehicle] - Request encoding and transmission............................................................. 57 8.12. Step 12 [Vehicle] - Transmit data................................................................................................ 58 8.13. Step 13 [Cloud] - Decode payload............................................................................................... 59 8.14. Step 14 [Cloud] - Forward request to Service Edge .................................................................... 60 8.15. Step 15 [Cloud] - Authorize remote request............................................................................... 61 8.16. Step 16 [Cloud] - Return Authorization data .............................................................................. 62 8.17. Step 17 [Cloud] - Request Media Server URL.............................................................................. 63 8.18. Step 18 [Cloud] - Return Media Server local address ................................................................. 64 8.19. Step 19 [Cloud] - Forward request to Media Server ................................................................... 65 8.20. Reply Routing .............................................................................................................................. 66 9. Node and Service Provisioning............................................................................................................ 67 9.1. Add certificate Step 1 -Send out the request ............................................................................. 68 9.2. Add certificate Step 2 – Forward request to target node ........................................................... 69 9.3. Add certificate Step 3 – Deliver request to target Authorization ............................................... 70 9.4. Delete certificates ....................................................................................................................... 71 9.5. Revoke certificates ...................................................................................................................... 72 9.6. P2P Access Granting.................................................................................................................... 73 10. Service Edge feature set ................................................................................................................. 74 © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 6 / 81 10.1. Local Service Registration ........................................................................................................... 74 10.2. Service availability reporting....................................................................................................... 74 10.3. Process requests from local services .......................................................................................... 74 10.4. Process requests from remote services ...................................................................................... 74 11. Service Discovery feature set .......................................................................................................... 75 11.1. Register local services ................................................................................................................. 75 11.2. Register node to network address mappings ............................................................................. 75 11.3. Resolve service to network address ........................................................................................... 75 11.4. Process incoming service announcements ................................................................................. 75 11.5. Send outgoing service announcement ....................................................................................... 75 11.6. Process communication channel availability reports ................................................................. 76 12. Authorization feature set ................................................................................................................ 77 12.1. Authorize local requests ............................................................................................................. 77 12.2. Authorize remote requests ......................................................................................................... 77 12.3. Provision certificates ................................................................................................................... 77 13. Store and Forward feature set ........................................................................................................ 78 13.1. Process local requests ................................................................................................................. 78 13.2. Process remote requests ............................................................................................................ 78 13.3. Process data link availability reports .......................................................................................... 78 13.4. Process service availability reports ............................................................................................. 78 14. Protocol feature set ........................................................................................................................ 79 14.1. Encode and transmit requests .................................................................................................... 79 14.2. Receive and decode requests ..................................................................................................... 79 15. Data Link feature set ....................................................................................................................... 80 15.1. Setup communication channel ................................................................................................... 80 15.2. Disconnect communication channel ........................................................................................... 80 15.3. Transmit data payload ................................................................................................................ 80 15.4. Receive data payload .................................................................................................................. 80 15.5. Send node authorization............................................................................................................. 80 © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 7 / 81 15.6. Receive remote Node authorization ........................................................................................... 80 15.7. Send service announcement ....................................................................................................... 80 15.8. Receive service announcement .................................................................................................. 80 15.9. Report communication channel availability ............................................................................... 80 © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 8 / 81 1. References [1] Google Protocol Buffers https://code.google.com/p/protobuf/ [2] Requirement Specification Xxx [3] MQT Specification 3.1, Appendix A. http://public.dhe.ibm.com/software/dw/webservices/ws- mqtt/MQTT_V3.1_Protocol_Specific.pdf © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 9 / 81 2. Acronyms and definitions RVI Remote Vehicle Interface SOTA Software Over The Air TSP Telematics Service Provider RVAM Remote Vehicle Access Manager Node A vehicle, mobile device, or backend server running RVI-integrated services Component An internal service inside the RVI system Manager A higher level component Service An external application connected to the RVI system Topic Tree A global registry to identify and locate services Node Address Topic Tree section that uniquely identifies a node Network An URL, IP address, MSISDN, or similar that a node can be reached Address at © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 10 / 81 3. Introduction and Purpose This document introduces the Remote Vehicle Interaction (RVI) architecture on a high level, outlining its design, the components, and the core use cases. It is intended for the reader who wants a comprehensive overview of the RVI, its parts, and how they interact. Once this document has been read, the reader can continue with the DDS (see below) for specific components to understand their implementation requirements. The purpose of the RVI architecture is to enable vehicles, mobile devices, and backend servers to exchange today’s and tomorrow’s connected car services in a robust, secure, and versatile manner. The RVI will place a minimum number of requirements and restrictions of the services that use it, aiming at giving applications a maximum degree of freedom in their implementation. Examples of such applications are remote door unlock, software upgrades (through the dealer, OTA and USB sticks), climate control from mobile device, syncing of media files between the cloud and the vehicle, geo fencing, etc. The RVI architecture describes a set of components and services that form a distributed, sparsely connected, secure P2P network where vehicles, mobile devices, and backend servers can access each other. The complete set of RVI architecture documents will be used as the basis for a reference open source implementation of the RVI that will be released to the community. The philosophy behind the RVI effort is that the reference implementation drives the specification, and that any design issues resolved in the implementation flows down to the specification. Thus, if the implementation and the specification are in conflict with each other, the implementation takes priority. The feedback from the implementation will be used to refine the RVI architecture and specification itself. Consequently, all APIs are specified using Google’s Protocol Buffer [1] schema language, using a JSON- RPC interpretation as examples and in the reference implementation. Other implementations, however, are free to use other protocols (SOAP, restful HTTP, BERT-RPC, etc), as long as they provide a clear and deterministic translation table between Protocol Buffers and their chosen protocol. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 11 / 81 3.1. Document Structure and Reader Assumptions The RVI is described in the following hierarchy of documents: 1. PowerPoint presentation Gives a summary of the design, what it does, and how it operates 2. High Level Description (HLD) (this document) Goes through the overall schematics, its included components, and core use cases. 3. Per Component Detailed Design Specification (DDS) Each component described by the HLD is described in detail in their own DDS document. Descriptions, Schematics, API specifications are included for each component DDS. It is recommended that the documents are read in the order given above. The reader of this HLD is assumed to be familiar with the following areas: 1. Mobile terminology Terms such as 3G, handset, pppd, and mobile data links will be used throughout the HLD. 2. Automotive applications Media Players, door lock management, and other applications will be used as examples. 3. Networking Distributed system terminology, IP-terms, and web technologies such as JSON-RPC and HTTP will be used. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 12 / 81 3.2. Issues This specification is not complete. Below is a table with currently identified issues and shortcomings that should be addressed. 3.2.1. Federation The current specification leaves it up to each individual node to trust the certificates sent out by a provisioning server. There is no way for a node to validate the legitimacy of a provisioning server. 3.2.2. Data Link node discovery There is no specification for how two nodes should find each other prior to running the authorize/announce use case. While this is technically in the domain of each Data Link implementation, best practices such as UDP broadcasts, connection attempt to well-known addresses, etc, should be documented. 3.2.3. Certificate revocation The revocation model provided in the current revision of the specification is a primitive blacklist distribution that may not scale depending on the communication channels available. This model can be improved upon by having P2P propagation. There may also be a better general solution for revocation than blacklisting. 3.2.4. Request transaction id The current specification does not indicate the necessity for a request-sending service to provide a monotonically increasing transaction id with each request. This opens up the Service – Service Edge up for replay attacks. A transaction id should be provided by the sending service, which is then translated by Service Edge to an internal transaction id that will follow the transaction through the network. The reason for the transaction id switch is to avoid duplicate IDs being provided by two different services; the Service Edge-generated ID is guaranteed to be RVI-wide unique. 3.2.5. Certificate format There is an IETF draft for JSON-based web encryption. The certificate format in that draft is a candidate to replace the format used by the current version of this HLD. 3.2.6. User-level Node authorization Currently the authentication and authorization system of the platform that a Node runs on is ignored. Future versions of RVI may want to integrate user-level access control to determine which users can access which services on a Node. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 13 / 81 3.2.7. Node spoofing prevention There is currently no way to detect that a node’s private key and certificates have been stolen and are used to impersonate that node. A partial solution is to have a local node instruct its remote counterpart to provide a specific token in the authorization process next time it is connected to the local node. If the remote node is impersonated, and there are currently two nodes with a single identity, one of the two nodes will fail to provide the correct token during its subsequent authorization. There is, however, currently no way to validate that an authorizing node is executing on a specific hardware unit. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 14 / 81 4. Requirements and Objectives There are several objectives for the RVI design and its reference implementation. The core mission is to provide a specification and implementation that is easy to adopt for vendors and customers, who are either are starting from a blank page or want to integrate their existing solution into the RVI framework. Please see [2] for a formal functional and non-functional requirement specification. The following chapters outline the high level requirements and objectives being pursued. 4.1. Internet Connectivity Optional If two nodes see each other over a communication link, their services must still be able to exchange traffic even if neither node has an Internet connection. The typical use case is an owner who wants to unlock and start a car in a garage using his/her mobile phone, and wants to do this even if there is no carrier signal. The access app on the mobile phone must be able to talk to the access service in the vehicle without having to authenticate toward a (non-reachable) central server. 4.2. Zero Service Configuration Given the Internet requirement above, a new service, be it a mobile phone app, an in-vehicle HVAC controller, or a cloud-based traffic information service, must be able to register themselves without updating a central repository. A new service should only have to present correctly signed requests to the RVI system in order to register and access other, remote services. Please note that nodes (hosting services) still need to be provisioned with addresses, protocols, and access rights, all expressed through certificates. 4.3. Decentralized Service Discovery Nodes need to discover services on other nodes without involving a central repository so that two nodes without an Internet connection can explore each other’s available services. This is also true for when two nodes communicate with each other over non-IP based links such as Bluetooth, IR, or even USB sticks (software updates or content transfer). 4.4. Self-Carried Authorization When two nodes have discovered each other’s services, they need to authenticate their right to access them. With the optional internet connectivity requirement, these authorizations have to be made in a pure peer-to-peer fashion without third party involvement. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 15 / 81 4.5. Interoperability An organization shall be able to implement individual components and drop them into an existing set of RVI components without compatibility issues, given that they use the API protocol (JSON-RPC, etc). 4.6. Connectivity Awareness Both Services and individual RVI components need to know if a remote node and its services can currently be reached or not. This spans from a mobile device knowing if a peer-to-peer connection for a specific vehicle is available or not, to a cloud-based media server wanting to know the available bandwidth to a media player, to a vehicle wanting to know its currently available data channels. 4.7. Sparse Connectivity Support Since data links come and go, often with short notice, and services on two nodes may not see each other for weeks at the time, the RVI shall handle resend attempts, delivery validation, timeouts, and store & forward for transactions in order to support sparse connectivity. 4.8. Hybrid Deployment Support RVI nodes will have to integrate with servers and vehicles using other designs and products. An RVI deployment must, with custom protocol implementations, be able to connect and interact with other telematics and M2M systems. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 16 / 81 5. Architecture Overview Below is a layout of a typical RVI deployment, where the blue and green components form the core of the architecture. Figure 1 - Architecture Overview The API of the individual components are designed as standalone as possible, allowing the components to be used outside the original RVI environment. Services can communicate peer-to-peer with each other, allowing, for example, a mobile device to interact directly with a vehicle, even if neither have an Internet connection to a Remote Access Vehicle Manager. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 17 / 81 The components are described in the following chapters. 5.1. Data Router A high-level aggregate of lower-level components that delivers transactions between services robustly and securely over sparsely connected networks. Different compositions of the data router executes inside the vehicle, on the backend server, and in mobile devices. 5.2. Remote Vehicle Access Manager (RVAM) The server-side RVAM aggregates the Data Router, Billing & Charging, Software Over The Air (SOTA), and Provisioning into a single server system that extends the service transaction routing with external device and software management, as well as billing, charging, and reconciliation. 5.3. Service Edge Service Edge, present inside the Data Router acts as a service-facing API coordinating all traffic sent to and from local services. It is responsible for authorizing and routing requests to their targeted end points. 5.4. Store and Forward Store and Forward receive requests from Service Edge, and, in case the addressed service cannot be reached, stores the request until a data link to the service becomes available. It is also responsible for management communication channels to other nodes (and their services) through Data Link. 5.5. Protocol Protocol components (there can be many) receive requests from Service Edge and format them as payloads to be transmitted by Data Link to their counterparts on a remote node. Conversely, incoming data payload from Data Link is decoded by the Protocol before it is handed over in a standardized format to Service Edge for validation and forwarding to its destination service. A protocol can also, optionally, bypass Data Link and communicate directly with its counterpart. (Not shown in Figure 1.) 5.6. Data Link Responsible for bringing up and tearing down data channels to remote nodes. Typical data links are WiFi, SMS, 3G, 4G (over PPP), Ethernet, and USB sticks containing requests. Data Link can be ordered by Store and Forward to setup or disconnect a data link, and will report to subscribing parties when link to © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 18 / 81 a remote node becomes available or unavailable. 5.7. Service Discovery Service Discovery tracks service availability local and remote nodes. The Service Edge queries Service Discovery in order to retrieve a target node address for a specific request. Service Discovery will opportunistically use available data links to push Service Lists to other Service Discoveries on other nodes as they become available for communication. 5.8. Authorization Manager The authorization manager adds necessary signatures and certificates to outgoing transactions to remote nodes, allowing requests to be validated prior to execution by the targeted services. Authorization will also validate incoming requests from remote services before Service Edge sends them on to their local service destinations. 5.9. Provisioning Server The Provisioning server, a part of the RVAM, supports Service Discovery with information about nodes (mobile devices, vehicles, and servers) available in a RVI network, and how they can be reached. Provisioning also supports the Authorization Service with certificates used to sign outgoing requests to prove their authenticity. In many instances, Provisioning is a gateway to one or more external provisioning services hosted by TSPs, Enterprise IT, and other organizations. 5.10. Software Over The Air (SOTA) Software Over The Air is, from a strict RVI perspective, a generic service with no special access to the internal RVAM / Data Router components. Since SOTA (and Firmware Over The Air) is so central to the RVI, it has been included in the architecture as a specification and reference implementation. The SOTA server, however, can be replaced without modifying any other components apart from its SOTA Manager counterpart on the vehicle. 5.11. Mobile Device Data Router Mobile devices, with their often constrained execution environment, can sometimes not be suitable for having a loosely coupled set of components forming the Data Router. Instead, these targets may need a monolithic service or library that presents a similar interface © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 19 / 81 6. RVI-Wide Concepts 6.1. RPC, Message, and Metric Request Type A Service can send three different types of requests to a remote counterpart, depending on the type of payload that is to be delivered. The request types are: 1. RPC Remote Procedure Call. A request sent from one Service to another, where the originating Service expects a reply. If the request cannot be delivered, the originating Service will be notified. A Service can issue a “call” command to invoke an rpc. 2. Message An asynchronous request sent from one Service to another, where no reply is expected by the originating Service. If the message cannot be delivered, the originating Service will not be notified. A Service can issue a “send” command to send a message. 3. Metrics A set of requests to subscribe to topic entries (metrics), published by another Service, that are to be delivered to the originating Service when updated. A Service can issue a “subscribe” or “unsubscribe” command to setup or cancel a subscription. A Service can issue a “publish” command to send out an updated topic entry to all its subscribers. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 20 / 81 6.2. Topic Trees and Service Addressing A number of system-wide topic trees are used as registries to describe all nodes and services, local and remote, in an RVI system. Thus the topic tree is used to describe all available services in the system-wide RVI network. Different types of topic trees are used for different types of request, such as metrics, RPCs, alerts, and publish/subscribe data. The syntax of a topic tree entry is: [type]:[organization]/[path] Figure 2 - Topic tree entry The components of the entry are as follows: 1. [type] Specifies the type of the topic tree, identifying which type of service it describes. Initial types are rpc, metric, and message, although more can be added in future revisions of the RVI. See “RPC, Message, and Metric Request Type” for details. 2. [organization] A domain name describing the organization that hosts a sub-section of the root. All topic tree entries in the subsequent organization are managed by the given organization. 3. [path] A path to a number of services. The path follows the MQTT 3.1 topic structure described in [3]. Please note that several organizations can co-exist in a single topic tree. An organization is simply a top- level divider between different sub-sections of the tree. Below is an example of a topic tree entry, with numbered components. Figure 3 - Typical Service Entry The components are as follows 1. Service Type © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 21 / 81 Specifies that the topic tree entry can be invoked as a remote procedure call. 2. Organization Specifies that this service is hosted by Jaguar Land Rover. 3. VIN sub-tree A sub-section of the topic tree under which all registered VINs are hosted. 4. VIN The VIN of the vehicle running the service 5. Services sub-tree A sub-section of the topic tree hosting all services running on the given vehicle. 6. Service name The name of the service running on the given vehicle 7. Command name The name of the command to execute on the given service and vehicle. Please note that only components 1 and 2 are standardized. All other components in a topic tree can be specified by the organization hosting the tree. Since a topic tree is system-wide, i.e. a topic tree entry resolves to the same service for all nodes, the identity of a node that hosts a specific service is embedded into the topic tree entry. In the examples above, the node is identified by the vehicle VIN running the body service in a car, and by the Remote Vehicle Access Manager (RVAM) hosting services in the cloud. When a request is sent to the service using an entry above, the node of the service will be resolved to a network address, which will then receive the request. See chapter “Node addressing” for a description of how a node address is translated to a network address. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 22 / 81 6.3. Node addressing Nodes, setup in the Provisioning Server, are servers, vehicles, devices running the RVI and a number of services. Each node can communicate with one or more other nodes over various data links. A node is identified as a part of a topic tree path that identifies a specific service. By sending the topic tree entry to Service Discovery, a network address to the node hosting the service. The network address can then be handed over to Data Link in order to establish a connection to the node. Below is an example of a topic tree entry with the address section marked. Figure 4 - The Node Address section of a topic tree entry Since it is up to Service Discovery to convert a topic tree to a network address, the exact format of the address section, and how it is extracted from an entry, is implementation dependent. The figure below shows the high-level call flow for address resolving a service, identified by a topic tree entry, to a network address. Figure 5 - Node to network address resolution © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 23 / 81 The steps above are as follows. 1. Send Request service edge The Media Server sends a request, to be forwarded to the vehicle with vin sajwa71b37sh1839, to Service Edge 2. Lookup node address Service Edge sends a request to Service Discovery, providing the full service name received from Media Server, in order to retrieve the network address of the node (vehicle) that hosts the targeted service. 3. Return network address Service Discovery, having matched the service name against its internal database, returns the network address, which in this case is a URL, to Service Edge. Please note that this is a simplified scenario since no data link types (3G, WiFi, SMS, etc), specifying the recommended delivery methods to the destination node, is returned by Service Discovery. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 24 / 81 6.4. RVI Security Scope Security, in the context of this architecture, is the process of authenticating services to access other services in an RVI system. A service should only be able to discover and access other services it has received authorization to from a central provisioning server. The constraints imposed by the sparse connectivity requirement means that each node, and its services, must be able to authenticate themselves toward other nodes without having to rely on a connection to a central provisioning server. This is solved by having each node carry centrally provisioned certificates with them at all times. These certificates, downloaded from the provisioning server when connectivity to it is available, can be used by a service to prove its access rights toward another service. The security management of the RVI architecture covers the following areas: 1. Certificate Generation The provisioning server has support for generating certificates granting access for a given service to one or more other services. See chapter “Certificates” and “Authorization” for details on service’s public key, can authenticate traffic sent from the service. 2. Certificate Distribution Once a certificate has been generated by Provision Service, it has to be sent out to the node that the certificate was generated for. This transmission can be implemented through an RVI built-in certificate service. 3. Certificate Revocation All certificates are specified with a time interval within which they are active. Sometimes, however, certificates need to be revoked prior to their expiration date. Such revocation can also be implemented through the certificate service. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 25 / 81 The security management of the RVI does not cover the following areas. 1. Communication Channel security The actual transmission protocol between two Protocol (or Data Link) instances should be secured using SSL/TLS or similar mechanisms. The exact security mechanisms employed for this is to be determined by the Protocol implementations, and are outside the scope for the RVI itself. 2. Node – Certificate linking Since the RVI will operate on many devices, platforms, and network protocols, there is no uniform way of linking a certificate to a specific device using a mac address, CPU ID, etc. As a consequence, there is no way for a node receiving a certificate to validate that the sending device is actually the owner of that certificate. If a device manages to steal a certificate and the private key from a node, the device will then be able to impersonate the node and hijack its traffic. 3. Node protection of certificates Another consequence of the unknown devices and platforms that will run RVI, the storage and protection of certificates and key pairs on a node is outside the scope of the RVI design and has to be addressed by the implementation of individual Authorization components. 4. Service – Service Edge Authentication and Authorization Services are implicitly trusted by Service Edge and are expected to execute inside the trusted domain of a node. It is up to the implementation, deployment, and operations of an RVI system to ensure that no illicit services gain access to Service Edge. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 26 / 81 7. Service Management Service Management consists of a set of components, use cases and APIs that enables services to: 1. Register with the RVI A service can connect to the RVI (through Service Edge) and register itself. 2. Announce themselves A registered service can announce their availability not only to the local node they are executing on, but also to other, remote nodes in the RVI network. 3. Discover other services A service can receive availability announcements from other services, with all information necessary to connect and send requests to them. 4. Authorize themselves A service can authorize themselves toward other services, which in their turn can validate the originating service. 5. Invoke other services Once authorized, a service can send requests to other, remote services, having them carry out tasks and send back the result. The following chapters describe the service management on a high level. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 27 / 81 7.1. Service Registration A Service can register itself with the RVI through Service Edge to set itself up for sending and receiving requests, as is shown below. Figure 6 - Service Authorization The steps above are as follows. 7.1.1. Step 1 - Register with Service Edge The Media Server sends a request to register itself with Service Edge. The request contains the following elements: 1. Service Name The symbolic name of the service, which will be added at a configurable point in the topic tree. 2. Supported Requests A list of RPCs, messages, and metrics that are supported by the service. These will be added under the service name in the topic tree. 3. Service Address Specifies where t to forward requests and replies targeting the service. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 28 / 81 7.1.2. Step 2 - Register with Service Discovery The service is forwarded by Service Edge to Service Discovery, who will announce it to all matching subscribers. After this point, the service will be forwarded requests addressed to it. 7.1.3. Step 3- Confirm Service Discovery registration Service Discovery confirms that the service has been registered and announced. 7.1.4. Step 4 - Confirm Service Edge registration Service Edge replies to Media Server service that the registration was successful, and that traffic is to be expected. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 29 / 81 7.2. Certificates Certificates are, in the RVI context, cryptographically signed JSON structures that prove the authenticity and authorization of one node to another. Certificates are exchanged, peer-to-peer, between two nodes, and references to those certificates are included to requests sent from one node to another. An example of a certificate is given below (with non JSON-compliant comments added for clarity): © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 30 / 81 { "node_certificate": { // Topic tree patterns that this node is authorized to // process requests for. "sources": [ "jaguarlandrover.com/cloud/media_server" ], // Services that can be accessed by the source service. “destinations": [ "rpc:jaguarlandrover.com/vin/+/services/media_player" ], // Public key for source. // Used to validate signature of requests, etc. "public_key": { "algorithm": "....", // Of sending node. "key": "..." }, // Period during which certificate is valid. UTC "validity": { "start": 1401918299, "stop": 1402000000 }, // A system wide unique id for the certificate "id": b674546e-76ae-4204-b551-3f850fbffb4b // UTC timestamp of when the certificate was created. “create_timestamp”: 1403825201 }, // Signed by provisioning server. // All nodes have provisioning server's public key. // Signature covers all data in claims element. "signature": { "algorithm": "...", "signature": "..." } } Figure 7 – Certificate Example The following elements are included: 1. Sources A list of topic tree prefixes that the sending node is authorized to process requests for. This list will be installed in Service Edge of certificate-receiving nodes to be matched against requests that are to be sent out. If there is a match, the current network address of the © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 31 / 81 certificate-issuing node is looked up (see chapter “Step 4 [Vehicle] - Resolve network address”), and the request is sent to it. 2. Destinations The destination services which the certificate authorizes the source service to access. Specified as one or more topic entries with MQTT [3] patterns. During request authorization, the request is pattern and prefix matched against the destination fields. 3. Public key The public key of the source service, used to validate the signature of incoming authorizations and requests originating from the certificate-owning node. 4. Validity period The start and stop dates, specified as UTC, within which the certificate is valid. 5. ID System-wide unique ID for the certificate. Higher value is newer. 6. Creation timestamp Specifies the time, in UTC, when the certificate was created. 7. Signature Certificate signature, generated by the provisioning server’s private key. All nodes have the provisioning server’s public key setup as a step in the installation process. See chapter “Node and Service Provisioning” for details on how certificates are exchanged between nodes. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 32 / 81 7.3. Service Discovery Service discovery is the process in where the availability of services is announced between two or more nodes. In order to fulfill the decentralized service discovery, sparse connectivity, and zero service configuration requirements stated in “ © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 33 / 81 Requirements and Objectives”, a somewhat different strategy was chosen for this process. This strategy breaks down into the following two tenets. 1. Peer to Peer Service Announcements Since two nodes exchanging service availability information may not have an internet connection to a backend server, the exchange must be purely P2P without relying on a trusted third party for validation. 2. Pairing-based Service Discovery While traditional service discovery mechanisms are often broadcast information over a local network, the sparse connectivity environment of RVI makes that impossible. Instead two nodes exchange information on an opportunistic basis as soon as they see each other. A node keeps track of all other nodes it has ever seen together with the services that were available on each of these nodes when they were last seen. When two nodes see each other again, they exchange updated service information. A backend server/cloud node will see most of the other nodes as they connect in to the server and will, over time, form a complete picture of all other nodes (vehicles, mobile phones and other devices) and their available services. Services connected directly to the backend node will, through its Service Edge, have access to all other nodes and their services, as is shown below: © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 34 / 81 Figure 8 - Service Discovery mechanics In the case above, Mobile and Vehicle1 exchange services directly with each other on sight, as well as with Cloud, while Vehicle2 only exchanges services with Cloud. The end result is that Mobile, having access to Vehicle1’s services can control its media player, HVAC, and door locks, whole at the same time having access to Cloud’s services. Meanwhile Vehicle2, having never seen Mobile, can only access Cloud’s services. The Service Discovery process between two nodes is described below. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 35 / 81 7.4. Node Detection When two or more nodes establish a communication channel, they need to detect the presence of each other before they can execute the Service Discovery process. The exact means of how this is done is wholly dependent on the mechanics of the underlying network. There are, however, a number of best practices that can be employed for standard network models, described in the following chapters. 7.4.1. Vehicle connection to well-known server When a vehicle’s Data Link is instructed to connect to a backend server, identified by a pre-provisioned URL or IP address, the Data Link can ping the server once the communication channel is up. The ping, which is a TCP/IP connection, does not have to transmit any information and can immediately be disconnected. The receiving server will ask the operating system for the peer address of the TCP connection to determine that there is a node at a given address that wants to execute Service Discovery. If the protocol used to drive the Service Discovery process between two Data Links is connection based, the TCP connection can be used in the subsequent authorization and announce steps. 7.4.2. WiFi network connections When a Data Link connects to a WiFi, LAN or CAN network, there may be a number of other nodes available to execute the Service Discovery process toward. In these cases, each connected Data Link can send out a UDP/IP broadcast or multicast packet to a well- known address and port that all Data Links listen to. The payload of the packet is irrelevant since the receiving Data Link can look at the peer address of the packet to retrieve the IP address of the remote Node, and then initiate the Service Discovery Process against that Node. 7.4.3. P2P connections (Bluetooth, serial) In a strict P2P connection, where two Data Links are in direct connection with other, the Service Discovery process can be initiated directly toward the remote end. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 36 / 81 7.4.4. SMS SMS communication between a vehicle and a central backend server can be handled as a connection to a well-known server described in chapter “Vehicle connection to well-known server”. SMS communication between two nodes requires the Data Link to know the target’s MSISDN (phone number) since all mobile terminals are addressable at all times. There is no way for an SMS-connected Node to determine if another SMS-connected node is currently online or not. Instead the sending Node initiates its Service Disocvery process by submitting an SMS to the network, and then time out of there is no reply from the target node. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 37 / 81 7.6. Authorization When two nodes see each other, either for the first time, or on a recurring connection, they start by sending authorization information to the counterpart. In order to maintain the pairing paradigm, each node will send an Authorization package to each other node it sees. Figure 9 – Mobile to Vehicle authorization In this case, the mobile device authenticates itself with the following information: Network Address Gives the network address where the node can be reached. Please note that this address may be transient and can change the next time two nodes see each other. Protocol Specifies the protocol to use when communicating with the node at the network address. In this case it is JSON-RPC over HTTP. Certificate A certificate, signed by the provisioning server, contains identities, public keys, and access rights of the sending node. The certificate also stores one or more topic tree prefixes that the sending © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 38 / 81 Node is authorized to receive requests for. Signature Contains the node signature of the address and protocol elements in the authorization package. The signature is generated by the Node’s private key and can be verified by the public key contained in the Node Certificate. Transaction ID A monotonically incremented ID. The received will store the last received ID from the node using the given certificate, and reject any new transactions with an ID that is lower than or equal to the stored ID. This stops replay attacks. The steps of authorization process are as follow: 1. Request certificate from local Authorization The certificate for the given peer-to-peer pair is retrieved from Authorization. FIXME: How does Authorization know which P2P connection is up? 2. Transmit authenticate package to remote node This is done by having Service Discovery interact directly with Data Link, without involving Protocol. 3. Forward incoming package to Service Discovery The receiving Vehicle Data Link forwards the package to Service Discovery 4. Validate authenticate package Service Discovery on Vehicle forwards the package to Authorize, which will validate the certificate toward the provision server’s public key and check that the provided topic tree prefix matches those in the certificate. Once completed, the topic tree prefix(es) are added together with the network address in the address table of Service Discovery. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 39 / 81 The Vehicle device sends a similar authorization package to the mobile device, as is shown below. Figure 10 – Vehicle to mobile authorization Once authorization packages have been exchanged between two nodes, they know their counterpart’s address, and which service requests that should be forwarded to it. The prefix element will be matched against the “source” element of the certificate to ensure that a node does not try to serve traffic it is not authorized to handle. The authorization is valid on the receiving node until the same certificate is used in another authorization package, or the accompanying certificate is revoked or expired. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 40 / 81 7.7. Service Announcement When a node has sent its authorization to another node, the received uses the sending node’s certificate to determine which services the receiving node should announce to the sender. By pattern matching all available services against a received certificate’s destination element, it can filter out those services eligible for announcement. The announcement is carried out as follows: Figure 11 – Mobile Device service announcement The “service announce” package contains one or more services that the receiving node can invoke on the sending node. The steps of announcement process are as follow: 1. Sign announcement © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 41 / 81 The service announcement is sent to Authorization, which will sign the package using the private key of the Mobile node. 2. Transmit service announcement package Vehicle The package contains all services that the Mobile can invoke on Vehicle. 3. Forward service announcement to Service Discovery 4. Validate package The received package is forwarded to Authorize to match the signature against the certificate received in the authorization process. Once the process has completed, all services announced by the mobile device are stored in the service table of Service Discovery on the vehicle side. The Vehicle goes through the same process of service announcement: Figure 12 - Vehicle service announcement © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 42 / 81 The service announcement is valid with the receiver until a new authenticate package is received using the same certificate that validates the service announcement’s certificate, or the certificate is revoked or expires. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 43 / 81 8. Request Routing A request sent by one service to another goes through several steps. The following chapters describe a use case where a vehicle-based media player requests a song to be played from a cloud-based media server. The involved components are shown below. Figure 13 - Request Routing setup At the start of the request routing, the following preconditions are met: 1. Services are registered The Media Player and Media Server are both registered with their Service Edge, as described in chapter “Service Registration” 2. No certificates The Vehicle does not have a certificate from the Cloud, and vice versa. 3. No connection The mobile connection between the cloud and the vehicle is yet to be setup. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 44 / 81 8.1. Step 1 [Vehicle] - Submit request to Service Edge The transaction is initiated when the Media Player on the vehicle sends a play request, addressed to the Media Server in the Cloud, to its local Service Edge. Figure 14 - Initial request submit The request contains the following elements 1. method Always “invoke”. The actual request mechanism, rpc, message, subscribe, etc, is specified in “target”.| 2. timeout Specifies the time stamp, as UTC, by which the reply for this request has to be returned to the Media Player in order not to trigger a timeout error. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 45 / 81 3. requesting_service Specifies the service that is sending the request, in this case the media player. The name is used as a key by the local Service Edge when validating credentials. 4. target Specifies where the request is to be sent. This node address will be resolved to a network address by Service Discovery. The service will have built-in knowledge of available remote services it wants to access. Since the topic tree encompasses all services on all nodes, a single topic tree entry is enough to identify a given service, no matter where it is running. 5. arguments Provides additional, arbitrary data to deliver to the target service. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 46 / 81 8.2. Step 2 [Vehicle] - Validate service request Service Edge forwards the request it received from the Media Player to Authorization to be validated. Figure 15 - Validate service request The request is identical to the one received from Media Player, save that the method has been replaced with authorize_local_service. Since this is a validation of a locally connected service, the service name (specified in requested_service) can be used as a key to lookup and validate the transaction. The “target” element is pattern matched against the “destinations”elements of all certificates the Vehicle node have provisioned. If there is a match, the given certificate will be sent with the request to its targeted remote (Cloud) node to prove that Vehicle has the right to invoke targeted service on it. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 47 / 81 8.3. Step 3 [Vehicle] - Validate service reply If Authorization successfully validates the request, it will reply with the certificate to present to the remote node. Figure 16 - Validate service reply The certificate returned by Authorization is either pre-installed, or distributed using a dedicated certificate transmission service from a provisioning service to the node. The authorization reply contains the following elements. 1. status Contains the result of the authorization request. 2. request_signature The signature for the authorized request. This signature, generated by Authorization’s private key, is to accompany the request through all steps to its targeted destination. 3. certificate Contains the certificate, with the public key used to validate request_signature, that can be used by the target node to validate the request. The certificate is generated by the Provisioning Server and is signed by its private key. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 48 / 81 8.4. Step 4 [Vehicle] - Resolve network address Service Edge sends an address resolve request to Service Discovery in order to translate the service entry specified as the request’s target service to a network address that can be handled by Data Link. Figure 17 - Resolve network address The node address is set to the value of the “target” element in the original request sent by Media Player. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 49 / 81 8.5. Step 5 [Vehicle] - Return resolved network address Service Discovery uses either install-time provisioned data or received service discovery announce data to pattern match and resolve the received node address to a network address, which is sent back to Service Edge. Figure 18 - Address resolve reply In this case, the vehicle is pre-provisioned with a match for “+:jlr.com/cloud/+”, which yields “http://176.74/176.178/rvi”. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 50 / 81 8.6. Step 6 [Vehicle] - Schedule request Service Edge assigns a node-unique transaction id that ties the request to the originating Media Player. This id will follow the transaction throughout its travel to its targeted service. Service Edge then forwards the original request to Store and Forward in order to schedule it for transmission to the destination Cloud node. Figure 19 - Store and Forward request The request sent over to Store and Forward has the following elements: 1. transaction_id Unique transaction id that will follow the request to its destination, and accompany the reply on its way back. Vehicle Service Edge can map the transaction ID to the callback URL of the Media Player. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 51 / 81 2. target, network_address, arguments Request routing and payload information carried over from previous steps. 3. request_signature The request signature, generated by Authorization, to prove that this request is created by the Vehicle node. 4. certificate The certificate, signed by the Provisioning Server, used to validate the signature, hence the request itself. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 52 / 81 8.7. Step 7 [Vehicle] - Setup Communication Channel Store and Forward uses its internal database to determine the type of data link needed to transmit the request to its target node, and then requests Data Link to setup a connection to the network address resolved by Service Edge. Figure 20 - Data link setup request The request contains the following information: 1. target The original target specified by the originating Media Player service 2. network_address The network address resolved from the target by Service Discovery 3. callback © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 53 / 81 The callback to invoke once Data Link has setup the communication channel, or failed in its attempt doing so. 4. link_type A symbolic name for the type of communication channel that Data Link is to establish. In this case it is an Long Term Evolution 4G link (over ppp). 5. link_arg Additional data to pass on to Data Link and its handled for the given link type. For an LTE link an access point node, user name and password is needed. The link_arg element can also contain priority information, depending on how urgent Store and Forward deems the request to be. Data Link uses the provided network_address, link_type and link_arg to setup a ppp link over LTE. FIXME: Where do we get link_type and link_arg from? Locally provisioned in Data Link? © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 54 / 81 8.8. Step 8 [Vehicle] - Authorize and Announce Vehicle and Cloud authorizes themselves and announces their services as described in chapter “Service Registration” Figure 21 - Authorize and Announce Once the authorization and announcement process has completed, Vehicle and Cloud are aware of each other’s available services. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 55 / 81 8.9. Step 9 [Vehicle] - Report data link availability Once the Vehicle and the Cloud have authorized each other and announced their services, Data Link on Vehicle announces the communication channel availability to its local Store and Forward. Figure 22 – Vehicle communication channel available. The network address contains the address reported by the Cloud during its authorization phase described in chapter “Authorization” The services elements lists all services announced by the Cloud during discover phase described in chapter “Service Announcement”. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 56 / 81 8.10. Step 10 [Cloud] - Report data link availability In a similar manner to step 9, Data Link on Cloud announces the communication channel availability to its local Store and Forward. Figure 23 – Cloud communication channel available. The network address contains the address reported by the Vehicle during its authorization phase described in chapter “Authorization” The services elements lists all services announced by the Vehicle during discover phase described in chapter “Service Announcement”. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 57 / 81 8.11. Step 11 [Vehicle] - Request encoding and transmission Store and Forward match available services received from Data Link against all pending requests, thus finding the waiting request sent from the Vehicle Media Player targeting the Cloud Media Server. The appropriate Protocol is retrieved and the original Media Player request is forwarded to it for encoding and transmission. Figure 24 - Prepare request for transmission The request forwarded to Protocol is identical to that received by Store and Forward from Service Edge in step 6. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 58 / 81 8.12. Step 12 [Vehicle] - Transmit data Protocol encodes the request to a data payload and sends it to Protocol’s counterpart in the Cloud. Figure 25 – Data transmission In this case the payload is transmitted as JSON-RPC over a HTTP 1.1 connection. As an alternative, Protocol can forward its encoded payload to Data Link for transmission to the other node. This may be a feasible solution when Data Link has communication awareness and capabilities lacking in Protocol. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 59 / 81 8.13. Step 13 [Cloud] - Decode payload Cloud Protocol uses the received data payload to reconstruct the original request sent by Vehicle’s Media Player. The reconstructed request is forwarded to Store and Forward on Cloud. Figure 26 - Decoding incoming payload The payload will be identical to that forwarded in step 6 from Vehicle’s Store and Forward to its Protocol. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 60 / 81 8.14. Step 14 [Cloud] - Forward request to Service Edge Store and Forward sends the decoded request to Service Edge in order to have it forwarded to the targeted Media Server. Figure 27 - Forward request to Service Edge © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 61 / 81 8.15. Step 15 [Cloud] - Authorize remote request Service Edge forwards the received request to Authorization in order to have the request and its certificate validated. Figure 28 - Authorize remote request Authorization will use the request_signature and certificate to validate the request. If the request is successfully validated, a positive reply is sent back to Service Edge. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 62 / 81 8.16. Step 16 [Cloud] - Return Authorization data Authorization, upon successfully validating the request, returns a positive reply. Figure 29 - Return local service signature © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 63 / 81 8.17. Step 17 [Cloud] - Request Media Server URL Service Edge queries its local Service Discovery, requesting the URL of the Media Server based on the service topic entry. Figure 30 - Resolve local service The service element is extracted from the original request and is used by Service Discovery to map to a network address where the targeted Media Server can be reached. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 64 / 81 8.18. Step 18 [Cloud] - Return Media Server local address Service Edge searches its database with local service registrations, described in chapter “Service Registration, for a service that prefix matches the provided service topic entry. Figure 31 - Return Media Server local address. Once found, the network address of the service (specified in the address element of its register _service request) is returned. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 65 / 81 8.19. Step 19 [Cloud] - Forward request to Media Server The request is sent from Service Edge to the local Media Server, using the address returned by Service Discovery. The request is signed by Authorization, using the Service Edge’s private key so that it can validate the incoming request using the Service Edge’s pre-provisioned public key. Figure 32 - Forward request to Media Server. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 66 / 81 8.20. Reply Routing The processing and transportation of a request reply is identical to that of the original request, with the following exceptions. 1. method element value The “method” element of the request will be changed from “invoke” to “reply”. 2. transaction_id element value In step 6 of the reply routing, Service Edge will reuse the transaction id of the original request instead of creating a new identity for the reply. This allows the Vehicle Service Edge receiving the reply to reconnect the reply with the original request from the Media Player service. 3. Step 7-10 are optional Since the reply is sent back from Cloud to Vehicle shortly after the request was sent from Vehicle to Cloud, chances are that the communication channel between the two nodes is still up. In these cases, Step 7-10 are skipped, and Cloud immediately sends the reply to Protocol for encoding and transmission in step 11. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 67 / 81 9. Node and Service Provisioning Before a Node, and its locally connected services, can access remote services on other Nodes, it needs to be provisioned with a certificate specifying its access rights, public keys, and other information. See chapter “Certificates” for details. All certificates in an RVI system are signed by the private key of a provisioning server. The public counterpart of that key is installed in all Nodes’ Authorization as a part of the RVI software install and setup process. Using its private key, the provisioning server can generate new certificates and have them distributed to Authorization on the Node the certificate was created for. A single Node can host multiple certificates, each specifying a different set of access rights for the Node. The total sum of all certificates’ access rights will be the access rights of the Node as a whole. The provisioning server connects and registers to a Node as regular, locally connected service. This Node has a pre-installed certificate, giving it access rights to Authorization on all Nodes for which the provisioning server is to create certificates. Authorization on each node, in addition to its dedicated authorization and validation channel, is also registered with its local Service Edge as a regular service. Through this local connection, Authorization announces its provisioning services to those remote services that can present the pre-installed certificate described above. The following chapters describe the distribution process for new certificates. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 68 / 81 9.1. Add certificate Step 1 -Send out the request The provisioning server, having created a new certificate to give Vehicle a set of access rights, sends a request to the Vehicle’s provisioning service and its “add_certificate” RPC command. Figure 33 - Request containing certificate The “certificate” element contains the new certificate to distribute. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 69 / 81 9.2. Add certificate Step 2 – Forward request to target node The request is validated and forwarded to its target Vehicle node as described in chapter “Request Routing”, up until step 19 (forward the request to its target service). Figure 34 - Provisioning request transmission to target Node © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 70 / 81 9.3. Add certificate Step 3 – Deliver request to target Authorization The target element of the request maps to the services registered by Vehicle’s Authorization. Thus the request is delivered internally to Authorization instead of a locally connected service. Figure 35 - Internal provisioning request delivery Authorization, acting as a service, will store the received certificate in its internal persistent storage and use it in all future authorization processes toward other nodes. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 71 / 81 9.4. Delete certificates Certificate deletion follows the same flow of events as when a certificate is added, but with a different service invoked. Figure 36 - Delete certificate The certificate_id element specifies the unique ID of the certificates to remove from the target node. Authorization will permanently delete the given certificates from its persistent storage. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 72 / 81 9.5. Revoke certificates Certificate revocation is the process of announcing to multiple nodes that a given certificate shall no longer be accepted when received from remote nodes. This effectively expires a certificate before its active period has run out. While certificate deletions affects only what a single node sends out as credentials to other nodes, revocations are sent out to multiple nodes and affects which credentials are accepted from other nodes. In order for certificate revocation to be efficient, a mass distribution mechanism with a high success rate, such as SMS, will be necessary. Figure 37 - Certificate revocation The certificate(s) specified by certificate_id element will be permanently added by the receiving Authorization to a list of blacklisted certificates that should no longer be recognized if received from © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 73 / 81 remote nodes. 9.6. P2P Access Granting If a node wants to grant another specific node access to its services without having to invoke a remote provisioning server, the granting node (which will give out access rights) can issue a P2P certificate with specified access rights to the given services. This certificate follow the same specification and use cases as regular certificates, with the single exception that it is signed by a private key owned by the granting node. Once created, the granting node distributes the certificate to the granted node (which will receive access rights) as described in chapter “Add certificate Step 1 -Send out the request” and subsequent chapters. The granted node can then use the certificate to sign its requests to the granting node, which will use the public key of the certificate to validate the request. The created P2P certificate is only useable between the two given nodes since it explicitly gives access to the granted node (through the certificate’s “sources” element), and has been signed by the granting node. The granted node cannot use the certificate anywhere else since no other node has the certificate’s public key to validate the request. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 74 / 81 10. Service Edge feature set Service Edge supports a number of operations toward connected services, Authorization, and Service Discovery. 10.1. Local Service Registration A local service will be able to connect to Service Edge and register itself as described in chapter “Service Registration”. Once successfully registered the local service shall be able to send and receive requests, as well as subscribe to and receive service availability reports from Service Edge. 10.2. Service availability reporting When a remote or local service becomes available, other services, as well as Service Discovery, shall have the option of being informed of the event. A subscription command sent to Service Edge will contain a topic tree pattern for which any matching services shall be reported. There are two events that can trigger a service availability report to a locally connected service or Service Discovery. First, a service availability report may be sent by Service Discovery as a reaction to a received service announcement from Data Link, which means that there is now a data link available to a remote service that matches the subscribed-to topic tree pattern. In these cases a locally connected service will be informed that a remote service is available. Second, a local service may register directly with Service Edge, thus making the service available for locally and remotely originated requests. In these cases, Service Edge will report the event to Service Discovery, a service availability subscriber who in its turn will forward it to relevant remote nodes. 10.3. Process requests from local services A locally connected service may send requests (RPCs, replies, messages, and metrics) to Service Edge for processing and forwarding to its target service. See chapter “Request Routing” for details. 10.4. Process requests from remote services Service Edge can also receive incoming requests from Protocol, which are to be forwarded to a locally connected service. Service Edge will use Service Discovery to map © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 75 / 81 11. Service Discovery feature set 11.1. Register local services Service Edge shall register locally connected services with Service Discovery, specifying their network address and their topic tree pattern to match incoming requests against. The received information will be used to resolve the targeted service topic tree entry to the network address of the locally connected service that can handle the request. 11.2. Register node to network address mappings Service Discovery will also receive information about remotely available services from Data Link. Such services will be stored, with their corresponding network address, in Service Discovery. When the communication channel supporting the remote service communication disappears, Service Discovery will be informed. Any subscribers to remote service availability will be informed of remote services becoming available and unavailable, as long as the service topic entry matches the pattern provided with the subscription request. 11.3. Resolve service to network address Service Discovery will be able to map a topic entry, describing a service, to a network address that requests can be sent to. Information about the topic entry-to-network address mapping is provided by the two authorize and announce stages described in chapter “Service Registration”. 11.4. Process incoming service announcements Data Link will, during its authorize and announce stage, receive service announcements from other nodes with information about network addresses, and services. The remote service information is forwarded by Data Link to Service Discovery, which will match the reported services against its subscription tables and send out reports. Service Edge is a typical such subscriber and will, in its turn, forward the information to its locally connected services. 11.5. Send outgoing service announcement When Data Link reports that a remote node is available for communication through its authorization step, Service Discovery will be informed. Service Discovery will respond by filtering all available locally connected services through the “destinations” element of the certificate provided by the remote node. See chapter “Certificates” for details. All local services matching the destinations entry will be forwarded to Data Link, which in its turn will © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 76 / 81 construct an announce message with the service list to the remote node. See chapter “Service Announcement” for details. 11.6. Process communication channel availability reports Data Link will report when communication channels to other nodes become available and disappear. Such reports will trigger service availability reports to Service Edge, who will forward them to their subscribing services. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 77 / 81 12. Authorization feature set 12.1. Authorize local requests Once registered, locally connected services will submit “invoke” requests to be sent to a targeted remote service. See chapter “Step 1 [Vehicle] - Submit request to Service Edge” for details. Service Edge will forward the received “invoke” request to Authorization to have it validated. Authorization will check that the signature, generated by the service’s private key, can be verified with its public key. Authorization will also verify that the Node that both Service and Authorization executes on has the right to invoke the targeted service. This is done by pattern matching the “destinations” element of the Node’s certificate against the targeted service’s topic tree entry. See chapter “Certificates” for details. 12.2. Authorize remote requests A remote request received and decoded by Protocol and forwarded to Service Edge, will be sent to Authorization for validation. See chapter “Step 15 [Cloud] - Authorize remote request” for details. The request will contain a certificate, describing the rights of the sending node, and a signature generated by the private counterpart of the certificate’s public key. Authorization will validate the certificate, signature, and the remote node’s access rights to the targeted service. 12.3. Provision certificates Authorization must provision, delete, and blacklist certificates when directed to do so from a provisioning server. Please see chapter “Node and Service Provisioning” for details. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 78 / 81 13. Store and Forward feature set 13.1. Process local requests A request received from local Service Edge will be stored until a data link to its target node is available. If the request times out before such a link becomes available, or it times out before a reply has been received (when applicable), a timeout is sent back to Service Edge to be forwarded to the service originating the request. 13.2. Process remote requests Remote requests received from Protocol needs to be stored in cases where the targeted locally connected service is not available. Timeouts have to be sent back to the originating Node in case the service does not become available to process the request within the timeout interval. 13.3. Process data link availability reports When Data Link reports that a communication channel, and its associated services, is available, Store and Forward will traverse all pending requests received from locally connected services. Those requests targeting now available services are forwarded to Protocol for encoding and transmission to the remote Node. 13.4. Process service availability reports When Service Edge reports to Store and Forward that a locally connected service is available, Store and Forward will traverse all pending requests received from remote nodes. Those requests targeting the now available local service are sent to Service Edge to be forwarded to the service itself. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 79 / 81 14. Protocol feature set 14.1. Encode and transmit requests Protocol shall receive requests from Store and Forward, encode them to an implementation-specific protocol, and send them to their destination network addresses. Protocol will only be called upon by Store and Forward after Data Link has reported that a communication channel to the destination node is up. Thus, a network error should be reported back to Store and Forward so that it can re-queue the request for a later retransmission. 14.2. Receive and decode requests Inbound communication from a remote Protocol should be decoded and forwarded to Store and Forward. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 80 / 81 15. Data Link feature set 15.1. Setup communication channel Data Link shall be able to setup a communication channel to a remote node, identified by a network address. Once the communication channel is up, a report is sent to any subscribing local processes, such as Store and Forward. 15.2. Disconnect communication channel When a communication channel has been idle for a period of time, or is explicitly ordered to be disconnected, Data Link shall shut it down and free the associated resources. 15.3. Transmit data payload In cases where Protocol, instead of transmitting a data packet itself, elects to have Data Link transmit the payload, Data Link shall forward the payload to its remote counterpart. 15.4. Receive data payload When Data Link receives a data payload from a remote counterpart, it shall forward it to a suitable Protocol for further processing. 15.5. Send node authorization When Data Link has established a communication channel with a remote node, it shall send an authorization package as described in chapter “Authorization”. 15.6. Receive remote Node authorization When Data Link has established a communication channel with a remote node, it shall be prepared to receive and process an authorization package as described in chapter “Authorization”. 15.7. Send service announcement Once Data Link has authorized a remote counterpart, it shall send a service announcement package to the remote Node as described in chapter “Service Announcement”. 15.8. Receive service announcement Once Data Link has sent its own authorization to a remote counterpart, it shall be prepared to receive and process a service announcement from the remote node as described in chapter “Service Announcement”. 15.9. Report communication channel availability Data Link shall report when communication channels to remote nodes becomes available, or disappear, to all local components who have subscribed to such information. A typical example of such a subscriber © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International. Title Remote Vehicle Interaction - High Level Description Author mfeuer Date 2014-06-27 ID 15-456-POC-RVI-HLD Rev Draft 5 Page 81 / 81 is Store and Forward. © 2014 Jaguar Land Rover. This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International.