blob: 674e0b50de76bb43cb26fdd759fe84eb20af1915 [file] [log] [blame]
Julian Halle76ade82020-11-25 03:07:21 +01001What are trusted services?
2==========================
3
4The term 'trusted service' is used as a general name for a class of application that runs in an isolated
5processing environment. Other applications rely on trusted services to perform security related operations in
6a way that avoids exposing secret data beyond the isolation boundary of the environment. The word 'trusted'
7does not imply anything inherently trustworthy about a service application but rather that other applications
8put trust in the service. Meeting those trust obligations relies on a range of hardware and firmware
9implemented security measures.
10
11The Arm architecture, in combination with standard firmware, provides a range of isolated processing environments
12that offer hardware-backed protection against various classes of attack. Because of their strong security
13properties, these environments are suitable for running applications that have access to valuable assets
14such as keys or sensitive user data. The goal of the Trusted Services project is to provide a framework in
15which security related services may be developed, tested and easily deployed to run in any of the supported
16environments. A core set of trusted services are implemented to provide basic device security functions such
17as cryptography and secure storage.
18
19Example isolated processing environments are:
20
21 - **Secure partitions** - secure world VMs managed by a secure partition manager
22 - **Trusted applications** - application environments managed by a TEE
23 - **Integrated microcontroller** - a secondary MCU used as a secure enclave
24
25Typical problems solved by trusted services
26-------------------------------------------
27
28The following are examples of how trusted services can solve common device security problems.
29
30
31Protecting IoT device identity
32''''''''''''''''''''''''''''''
33
34During the provisioning process, an IoT device is assigned a secure identity that consists of a public/private
35key pair and a CA signed certificate that includes the public key. The device is also provisioned with the
36public key corresponding to the cloud service that it will operate with. The provisioned material is used
37whenever a device connects to the cloud during the authentication process. To prevent the possibility
38of device cloning or unauthorized transfer to a different cloud service, all provisioned material must be
39held in secure storage and access to the private key must be prevented. To achieve this, the certificate
40verification and nonce signing performed during the TLS handshake is performed by the Crypto trusted service
41that performs the operations without exposing the private key.
42
43
44Protecting Software Updates
45'''''''''''''''''''''''''''
46
47To ensure that software updates applied to a device originate from a legitimate source, update packages are
48signed. A signed package will include a signature block that includes a hash of the package contents within
49the signed data. During the update process, a device will verify the signature using a provisioned public key
50that corresponds to the signing key used by the update originator. By holding the public key in secure storage
51and performing the signature verification using the Crypto service, unauthorized modification of the update
52source is prevented.
53
54
55Secure Logging
56''''''''''''''
57
58A managed IoT device will often be configured by an installation engineer who has physical access to the
59device. To allow a cloud operator to audit configuration changes, it is necessary to keep a log of
60configuration steps performed by the installation engineer. To avoid the possibility of fraudulent
61modification of the audit log, a device signs log data using a device unique key-pair. The public key
62corresponding to the signing private key may be retrieved by the cloud operator to allow the log to
63be verified. To protect the signing key, the Crypto service is used for signing log records.
64
65--------------------
66
67*Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.*
68
69SPDX-License-Identifier: BSD-3-Clause