<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <issn pub-type="ppub">1613-0073</issn>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Remote Attestation: The Veraison Project</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Lorenzo Ferro</string-name>
          <email>lorenzo.ferro@polito.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Antonio Lioy</string-name>
          <email>antonio.lioy@polito.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="editor">
          <string-name>Remote Attestation, Veraison, Trusted Platform Module, TPM, Attesattion Verification Service, Trusted</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>10129 Torino, ITALY</institution>
          ,
          <addr-line>Dip. Automatica ed Informatica</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Computing Group, IETF</institution>
          ,
          <addr-line>Cloud Security, IoT Security, RATS</addr-line>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Politecnico di Torino, Corso Duca degli Abruzzi</institution>
          ,
          <addr-line>24</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Given the trend towards softwarized and distributed infrastructures, there is an increasing need to demonstrate the integrity of their components as a basis to evaluate their trustworthiness. To this aim, evidence about the current state of a component must be generated and provided to an external party that verifies it. This is a complex task because various architectures and proof types exist, and each scenario requires a custom strategy for verification. The current solutions are developed for specific contexts, resulting in a lack of standardisation and interoperability. Veraison is a standard-based open-source software that aims to address this issue enhancing consistency when developing an attestation framework. Based on the RATS architecture proposed by IETF, it reduces the efort necessary by ofering a set of components easily adaptable to diferent use cases. This paper analyzes Veraison and compares it to existing integrity verification systems, to suggest possible applications and further developments.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>CEUR
ceur-ws.org</p>
    </sec>
    <sec id="sec-2">
      <title>1. Introduction</title>
      <p>With the advent of Cloud Computing, we are now used to perform computations in the cloud,
rather than locally. Similarly, data is often no longer stored locally but in the cloud. While
this simplifies many operations, it comes with risks related to the administrators of the cloud
infrastructure and its multi-tenancy nature. There is therefore a clear need to verify the
trustworthiness of the cloud platform where computation is performed.</p>
      <p>
        On another ground, the increasing adoption of embedded systems, cyber-physical systems,
and Internet of Things (IoT) devices poses other risks. They are related to manufacturers that
rarely prioritize security over other aspects, such as cost, size, and power [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Additionally,
while linking these devices to the Internet ofers numerous advantages, it concurrently exposes
them to several attacks [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ]. Given the dificulty to protect IoT devices, an alternative approach
is to focus on detecting whether the device has been compromised or not. A similar approach
can be used also for the cloud, to verify the correct configuration and operation of the remote
environment.
      </p>
      <p>
        A common solution to address both problems is the generation of an integrity proof for the
target system, which is a verifiable and unforgeable statement about its correct configuration.
This allows a remote node to verify the state of the system. Remote Attestation (RA) is a method
for assessing the integrity of a computational node by an external entity [4, Sec. 7] [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Several
organizations actively work to standardize the RA procedure. Initially, this was performed
mostly by the Trusted Computing Group (TCG) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] but recently also the IETF and ETSI are
paying a lot of attention to this subject.
      </p>
      <p>The complex process of verifying and comparing integrity proofs against reference values is
typically carried out by a Verification Service. The Verification Service will need up-to-date
data for the process of appraising the evidence presented to it. This requires the establishment
of trust relationships between the Verification Service and authoritative sources, from which
the information is obtained. The necessity of attestation includes diferent classes of devices,
starting from the IoT ones up to large computing servers. The substantial diference between
these devices suggests that each deployment requires a custom service, thus introducing a
substantial software barrier and raising the cost and complexity of a RA system.</p>
      <p>
        Veraison [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] is an open-source project to develop software components that can be employed
to construct Attestation Verification Services. Veraison (pronounced “ver-ayy-sjon”) refers
to the stage in winemaking when grapes begin the ripening process and there is need to
regularly verify when they are ready for picking. This term was selected for the project given
its alignment with the project’s purpose (verification of integrity attestation, not of grapes).
Veraison’s adaptable structure enables easy adjustment to contextual requirements, ofering
customizable Verification Services.
      </p>
      <p>The scope of this paper is to describe the current status of Veraison, highlighting its strong
points and open issues. We will first explain Veraison’s architecture, and then discuss its
potential applications, outline prospects, and explore directions for development and extension.
The adaptability of Veraison opens up numerous applications. Additionally, we performed a
comparative analysis between Veraison and other systems performing similar functions.</p>
      <p>Paper structure. The rest of this paper is structured as follows. Section 2 is an introduction to
the fundamental concepts of the framework. Section 3 introduces the Veraison architecture,
explaining its base functionalities. Section 4 makes a comparison with other solutions for
attestation. Section 5 gives ideas for applications and possible future works. Section 6 contains
the conclusions.</p>
    </sec>
    <sec id="sec-3">
      <title>2. Background</title>
      <sec id="sec-3-1">
        <title>2.1. Remote Attestation</title>
        <p>
          The Remote ATTestation ProcedureS (RATS) [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] is a security protocol designed by the IETF
to authenticate and verify the integrity of a remote platform. RA concepts were introduced
two decades ago and have sparkled several applications [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. The importance of RA has surged
in recent times due to its many applications, such as IoT and 5G/6G networks. In turn this
has pushed for development of suitable secure hardware, open-source implementations, and
standardization initiatives.
        </p>
        <sec id="sec-3-1-1">
          <title>Endorser</title>
          <p>Endorsements
Attestation</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>Reference</title>
        </sec>
        <sec id="sec-3-1-3">
          <title>Values Provider</title>
          <p>Reference
Values
Scheme/Policy</p>
        </sec>
        <sec id="sec-3-1-4">
          <title>Verifier Owner</title>
          <p>Appraisal Policy
for Evidence
Verifier</p>
        </sec>
        <sec id="sec-3-1-5">
          <title>Relying Party</title>
        </sec>
        <sec id="sec-3-1-6">
          <title>Owner</title>
          <p>Appraisal
Policy for
Attestation
Results</p>
          <p>Evidence
Attester</p>
          <p>Attestation
Results</p>
          <p>Relying Party</p>
          <p>The Root of Trust is a trusted element, typically hardware-based, that initiates and verifies the
integrity of a system’s boot process and of other critical operations. RATS uses secure hardware
that is inherently trusted, composing the Root of Trust. This hardware allows a remote system,
called the Verifier, to check the integrity of another system, called the Prover or Attester with
more assurances. This evaluation requires creating a cryptographic signature or measurement
of the prover’s software, hardware, and configuration. The Verifier compares this measurement
with a pre-established reference, often referring to a known-good configuration, to check if
the Prover has been compromised or altered (Fig. 1). The main objective of RATS is to instil
confidence in remote devices or systems, guaranteeing their integrity and safeguarding them
against tampering. Their security objectives encompass identifying unauthorized modifications,
guarding against malware, and ofering proof of the trustworthiness of the remote system.
This enhances security in various scenarios, including remote device management, secure
bootstrapping, and establishing secure communication.</p>
          <p>
            It is necessary to introduce some roles in the RA context [
            <xref ref-type="bibr" rid="ref9">9</xref>
            ]. The Attester is the entity to
be verified. The Relying Party requires information about an Attester’s status to trust it. The
Verifier appraises the integrity of an Attester. The Reference Values are provided by a Reference
Value Provider. Also some artefacts, in the attestation context, require an explanation. A Claim
is a piece of asserted information. A set of Claims is called Evidence. Reference Values are
a set of values on which a set of Claims may be compared as part of applying an Appraisal
Policy for Evidence. Evidence is used to reveal operational status, health, configuration, or
construction that has security relevance. The Verifier evaluates Evidence to determine its
relevance, compliance, and timeliness. Claims need to be collected reliably to prevent the
Target Environment from providing deceptive information to the Attesting Environment. An
Endorsement is a secure statement that an Endorser vouches for the integrity of the device’s
various capabilities. For example, if the device utilizes hardware-based signing capabilities,
an Endorsement could be represented by a manufacturer certificate. This certificate signs a
public key, and the corresponding private key is exclusively known within the hardware of the
device. The Verifier generates the Attestation Result as the attestation output. The Verifier is
also capable of validating Evidence or Attestation results using Appraisal policies.
          </p>
          <p>For example, it may be essential to obtain reliable reports containing identity and version
details of connected hardware and software in a network. In this scenario, a specified integrity
level may be required, necessitating claims for verification. The verification of those claims
with RA prevents potentially harmful access by vulnerable or compromised devices. A single
component, inherently trusted, (root of trust) securely records integrity proof of the system.
This is a trustworthy device and enables trustworthiness assessments for other components
through a series of operations. Signed measurements by these components serve as evidence
either supporting or refuting trustworthiness claims upon evaluation.</p>
          <p>RA comes in two main types: Static and Dynamic. Static RA involves assessing the integrity
of software and firmware on a device at a specific moment, typically during boot-up or system
initialization. It is a one-time process, ofering a snapshot of the device’s state, but it cannot
identify changes occurring after the measurements are taken. On the other hand, Dynamic
RA entails the ongoing monitoring of the device’s state over time, utilizing a combination
of software and hardware-based measurements. This approach provides a more real-time
perspective of the device’s condition, capable of detecting changes that may occur during its
operation.</p>
          <p>
            Within our systems, various methods are employed for evidence gathering. Measured Boot
is one method for gathering hashes related to system boot operations. Evidence collection may
continue after boot time. For this purpose, Linux ofers the Integrity Measurement Architecture
(IMA) [
            <xref ref-type="bibr" rid="ref10">10</xref>
            ]. IMA embeds hooks within the kernel to permit the generation and aggregation of
hash values for each file accessed, before its use for operations. If a hardware root-of-trust is
present, the collected values are extended on it to enhance the security of the list.
          </p>
          <p>
            Also, a Trusted Execution Environment (TEE) [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ] could be employed to enhance the system’s
security. A TEE is a secure area in the primary processor. It ensures that data or code loaded
inside it is not accessed or modified by unauthorized entities.
          </p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>2.2. Trusted Platform Module</title>
        <p>
          The Trusted Platform Module (TPM) [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], as defined by the Trusted Computing Group [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ],
serves as a secure root of trust, so a secure starting point on which the system security is based.
This component integrates various physical security measures to ensure a specified degree of
resistance against tampering. A TPM is capable of attesting the platform identity, securely
storing the platform history and providing a report of its values. The system state can be
recorded by the TPM through the use of a specific set of registers called Platform Configuration
Register (PCR) [13, Sez. 6]. The PCRs serve as internal storage within the TPM, representing the
host system’s software and hardware configuration history. Each PCR has a diferent scope, the
ifrst ones are used for the services launched at boot. These registers have only two operations:
“reset” and “extend”. Extend operates by hashing the previous value stored in it, combined with
the digest of new data. The resulting hash becomes the updated value of the PCR. In formula:
PCRnew = ℎ(newData, PCRold). These registers undergo an exclusive reset only during a
platform reset, which is initiated after a reboot or hardware signal. It is possible to retrieve
the PCR values and use them for verification. During the RA procedure, the PRCs values are
retrieved and sent along with the platform data. This is done to give a guarantee of the collected
data integrity.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>3. Architecture</title>
      <p>
        Veraison [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] is a collection of libraries and tools, that aims to enhance consistency when
developing a verification service. The Veraison’s architecture (Fig. 2) is structured as follows. It
comprises diverse features, including the capability to provide endorsements and trust anchors
while also conducting verifications. Veraison Trusted Services (VTS) backend provides core
services to the Verification and Provisioning frontends. The key-values (KV) store is the Veraison
storage layer. It is used for both endorsements and trust anchors, it is possible to use diferent
methods by configuration.
      </p>
      <p>REST endpoint</p>
      <p>REST endpoint
Endorsement</p>
      <p>Handler</p>
      <p>Evidence</p>
      <p>Handler</p>
      <p>Attestation Scheme</p>
      <sec id="sec-4-1">
        <title>3.1. Configuration</title>
        <p>Provisioning
plugin manager
Verification</p>
        <sec id="sec-4-1-1">
          <title>GRPC</title>
          <p>Veraison Trusted</p>
          <p>Services
plugin manager</p>
          <p>
            K - V
Store
The configuration for every Veraison component is encapsulated within a ParamStore, housing
parameter definitions. Each parameter definition outlines the parameter type, employed in
validation, along with its configuration path. The overall configuration for a Veraison
deployment is managed by a Config, which aggregates ParamStores for the components utilized in
that specific deployment. ParamStores are generated and initialized with parameter definitions
specific to their corresponding components. Subsequently, these ParamStores are handed over
to the Config, which takes ownership and populates them with values retrieved from external
sources. The provided values undergo validation against the defined parameters. Following
this, the ParamStores are transmitted to the Init() methods of the components (Fig. 3). Veraison
services leverage Viper [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ] for configuration purposes. Viper is an open-source library for
configuration solutions in Go applications. The implemented config loader in this context
introduces a validation layer atop Viper, enabling pre-processing of the configuration obtained
by Viper before its utilization. It ensures comprehensive validation before proceeding with
further processing.
          </p>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>3.2. Provisioning</title>
        <p>
          Providing endorsements and trust anchors to the Veraison service is essential. All information
is transmitted in the Coincise Reference Integrity Manifest (CoRIM) format [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. CoRIM is a
signed CBOR-formatted document (COSE) [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. Concise Binary Object Representation (CBOR)
[
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] is a data format that ofers adaptive encode type and message size, without the need for
Verifier ParamStore
pluginLocations
plugin.locations
        </p>
        <p>…
vstHost
vst.host</p>
        <p>…
Verifier</p>
        <p>Init()</p>
        <p>PolicyManager</p>
        <p>ParamStore
pluginPaths
plugin.paths</p>
        <p>…
storeName
policy.store_name
…</p>
        <p>
          Init()
Policy Manager
plugin:
locations: [“/opt/plug”]
vts:
host: “127.0.1.10”
policy:
store_name: “mongodb”
negotiation. The underlying data model is an extended version of JSON [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. The representation
of composite devices or systems involves a combination of concise module identifiers (CoMID)
and concise software identifiers (CoSWID). These are seamlessly bundled within a CoRIM
document. All the received CoRIM data is treated, decoded, and stored (Fig. 4). The Provisioning
service is in charge of decoding and the Veraison Trusted Service synthesizes the keys and
stores the provisioned data.
        </p>
      </sec>
      <sec id="sec-4-3">
        <title>3.3. Verification</title>
        <p>The Verifier receives an attestation token and produces an attestation result, indicating whether
the token is well-structured and has been verified against provisioned endorsements (Fig. 5).
The majority of the intricate processes are carried out by the Veraison Trusted Services (VTS)
component (Fig. 6). This component can function within the same process as the Verifier for
integrated deployment or operate in a separate process, possibly on a distinct node, to isolate
high-trust services. VTS undertakes the verification of the token against the trust anchor,
extracts evidence, retrieves associated endorsements, and initializes an attestation result. It
populates the Trust Vector by assessing the evidence against the endorsements in a manner
specific to the attestation scheme. The resulting attestation is then sent back to the Verifier. In
case a policy has been registered as part of the attestation scheme, the Verifier applies it to the
attestation, enabling the Trust Vector to be updated in a customized manner.</p>
        <p>The VTS has several responsibilities. Firstly, it manages schemes that contain the knowledge
of parsing a specific token to extract evidence. It also oversees the validation of tokens against
a trust anchor and the evaluation of evidence against endorsements to populate the Trust
Vector. The Trust Vector is a method to indicate the trust degree of a component. In addition
to this, there is a trust anchor store, responsible for maintaining provisioned trust anchors,
such as keys and certificates, which are used to validate received tokens. Furthermore, there
is an endorsement store, which is tasked with maintaining endorsements provisioned from
the supply chain. Endorsements may serve as “golden values” against which claims from the
evidence can be verified. They can also include additional claims associated with, but not part
of, the token.</p>
        <p>
          An Entity Attestation Token (EAT) [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] provides a set of attested claims. These claims
describe the state and characteristics of an entity. This entity could be a device, such as a
smartphone, IoT device, or network equipment. The claims set included in an EAT is used
by a relying party, server, or service to determine the type and degree of trust placed in the
entity. EATs come in two forms. They can be either a CBOR [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] Web Token (CWT) or a JSON
[
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] Web Token (JWT). Both of these token types feature attestation-oriented claims. EAT
Atteestaion Result (EAR) [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] is used by a Verifier to encode the result of the appraisal over an
Attester’s evidence. The verifier gives back a signed attestation result as an EAT document.
token
        </p>
        <p>VTS
token
data
tenantID</p>
        <p>format</p>
        <p>Retrieve
request Session taottk.en</p>
        <p>Request
HTTP Handler GRPC</p>
        <p>Resolve
Media
Types</p>
        <p>Get
Trust</p>
        <p>Anchors
Plugin
Mgr.</p>
        <p>Extract
Claims</p>
        <p>Veraison Trusted Service</p>
        <p>Get
Endorsments</p>
        <p>Validate
VTS Handler</p>
        <p>K - V Store
Evidence Handler</p>
        <p>OPA</p>
        <p>Signer
Appraise</p>
        <sec id="sec-4-3-1">
          <title>Sign att.</title>
          <p>result
GRPC</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>4. Comparison with related works</title>
      <p>Various works have been proposed to implement RA process but all of them are currently
restricted to a specific environment (e.g. cloud or IoT) or procedure (e.g. static or dynamic RA)</p>
      <p>
        Keylime [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] is a RA framework developed by the MIT’s “Lincoln Laboratory” security
research team. It was introduced to the academic community in December 2016. Currently, it
exists as a project under the auspices of the “Cloud Native Computing Foundation” (CNCF)
[
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Keylime ofers an open-source solution for establishing hardware-rooted cryptographic
identities for cloud nodes. Additionally, it facilitates regular attestation to oversee the system
integrity of these nodes.
      </p>
      <p>
        Currently, Keylime [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] stands out as the primary framework for RA. It employs a
straightforward architecture to facilitate essential RA functionalities. Keylime consists of an Agent
responsible for generating a quote, which is then verified for validity by a Verifier. Additionally,
a register is included in the system to handle the mapping between registers and verifiers and
manage endorsement provisioning. Keylime provides a command line management tool called
the Tenant, designed for overseeing agents. Its functionalities encompass tasks such as adding
or removing agents from attestation, validating the Endorsement Key (EK) certificate against a
certificate store, and retrieving the status of a given agent.
      </p>
      <p>
        Also, several main service providers have developed their own attestation schema for
containers to guarantee their correct deployment. Google Cloud [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] requires an attestation for each
container to trust its deployment and furnish data. The attestation required is based on binary
attestation on the container’s image to scan for vulnerabilities. Instead of dynamic attestation
of the container at runtime, the attestation process is limited to vulnerability assessment on
the container image. This process is based on multiple open-source components, the first step
is creating the container image and its push on a repository. Kritis [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] blocks the container
deployment by enforcing security policies using Grafeas [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] as a metadata server for container
images. Scorecard [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] and Voucher [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] perform checks on the container’s image looking for
vulnerabilities releasing an attestation and storing it into Grafeas. Kritis checks the attestation
result stored on Grafeas to allow or deny the container’s deployment.
      </p>
      <p>
        Amazon proposes a similar schema for container attestation. Before the deployment, a
vulnerability scan on container images, using Enhanced Scanning [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], is performed and an
attestation result is released. Amazon has a service for further protecting and securely processing
highly sensitive data with the usage of a TEE [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. It is possible to attest enclaves to prove
their identity and build trust with an external service. The external service can authenticate the
measurements contained within the attestation document in comparison with the values in the
access policy [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ]. This assessment helps determine whether to authorize the enclave’s access
to the requested operation.
      </p>
      <p>
        On the other part, Azure Confidential Containers (ACC) are more related to the RA concept:
they are not limited to a vulnerability assessment but introduce more guarantees. It is based
on a Trusted Execution Environment (TEE) [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], allowing the relying party to verify that the
service is running in a TEE before processing sensitive data. If other technologies have been
employed to enhance container security, they could be included in the report. For example,
AMD Secure Encrypted Virtualization (SEV) is a security feature that allows the encryption
of a virtual environment at the hardware level. Inside the attestation report, the AMD SEV
hardware report could also be inserted and used as part of the attestation flow.
      </p>
      <p>The solutions used by the main service providers do not implement standard RA procedures,
they just provide assurances regarding the deployed container. Performing analysis before the
deployment gives no information regarding the container state at runtime. The Azure solution
controls better the container lifetime, as execution into a trusted environment reduces the risk
of compromise and allows fast detection of attacks. The only solution that is comparable with
Veraison is Keylime because implements similar concepts but specialized in the cloud scenario.
Keylime is favoured for its stability, making it a more widely utilized option. Keylime is a
solution for cloud environment making it hard to adapt to diferent contexts. Although Veraison
is a relatively newer project, it has garnered increased attention for its versatility. Numerous
features have been integrated into Veraison, and several more are currently in development.
The framework’s flexibility makes it easier to add features and contribute independently.</p>
    </sec>
    <sec id="sec-6">
      <title>5. Possible applications</title>
      <p>The Veraison project includes many related works and libraries to handle diferent standards
and that can be used standalone. Among various options, standard libraries are employed to
manage message formats. The software’s flexibility allows for the incorporation and utilization
of alternative libraries in place of the standard ones. This flexibility allows for future adjustments
to new standards and provides the option to accommodate multiple standards.</p>
      <p>
        Presently, only a limited number of attestation schemas are implemented. The attestation for
the ARM Confidential Compute Architecture (CCA) on the cca-ssd platform and the attestation
for the ARM Platform Security Architecture (PSA) on the psa-iot platform are both supported.
Parsec [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ] is an open-source project that ofers a universal API for hardware security and
cryptographic services. It creates a layer of abstraction to separate workloads from specific platform
details, facilitating cloud-native delivery in data centers and at the edge. Implementations for
both CCA and TPM hardware-backed attestation are available for Parsec. Enact [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ] is an
opensource solution that aims to monitor the health of a system. The main target for Enact is IoT
devices for industrial or automotive fields. Veraison also encompasses TPM-based attestation
implementations for EnactTrust security. The implementation of a new attestation scheme
involves establishing protocols for provisioning endorsements and determining procedures for
processing evidence tokens.
      </p>
      <p>As Veraison is a relatively new project, there is room for incorporating additional
functionalities and improving existing ones. Currently, the integration with the TEE is at a basic level,
not many of them are supported. Given the diference between diferent TEE architectures, it
is important to give a starting point to support attestation in the main ones. The flexibility of
Veraison gives a natural disposition to support various and diferent TEEs.</p>
      <p>
        DICE [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ] is a schema for the attestation of a layered architecture, each level depends on
the attestation result of the previous one. This provides a comprehensive result that describes
the system’s state and connects all layers to the root of trust. Presently, Veraison incorporates
Open DICE [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ] which is a standard designed by Google. OpenDICE aims to simplify the
efective implementation of DICE with a focus on quality and confidence. Its objectives include
enhancing consistency for both DICE implementers and attestation verifiers. However, it should
be noted that the current implementation lacks support for specific DICE architectures.
      </p>
      <p>
        In recent years, the ascent of cloud computing [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ] has underscored the need to uphold the
integrity of virtual nodes. Consequently, certifications regarding the integrity of virtual
machines or containers have become imperative [
        <xref ref-type="bibr" rid="ref37 ref38">37, 38</xref>
        ]. Preventing the disclosure of information
about other virtual environments within the system is now a mandatory requirement. The
verification process must be independent, and the verification system should accommodate
such attestation. To facilitate the verification of virtual environments, potential modifications
to Veraison are being considered. Various solutions have been proposed to tackle this challenge,
with virtual machines typically employing a virtual TPM for simplicity. Meanwhile, containers,
that share the kernel with the host, necessitate alternative solutions.
      </p>
      <p>
        Another popular field regards IoT devices, and their diversity in architecture and
functionalities makes challenging the creation of a unified verification framework. Starting with Veraison’s
components is possible to furnish a verification framework that has great adaptation to the
device’s peculiarities. To achieve this goal some work needs to be done, to support a larger
number of architectures’ basic functionalities. Into some fields are required devices swarms
that are interconnected devices that operate in large numbers. Performing attestation on them
may be time-consuming due to the high number of requests that a Verifier has to perform. The
concept of swarm attestation [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ] addresses this issue by implementing a distributed attestation.
The Verifier has to perform one request and the devices propagate it to another part of the
swarm collecting all the required evidence. This schema is not yet supported in Veraison but
some present libraries favour its deployment. Finding the right compromise between security
and performance is necessary since those devices usually have low capabilities.
      </p>
      <p>
        The computer field that has in the last years experienced the most significant growth is
machine learning [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ]. The machine learning process is heavily based on finding the correct
dataset to train the artificial intelligence models. Collecting data is essential, with a constant
focus on safeguarding user privacy. New modalities to collect data and model training techniques
have been developed. An efective way to train a model concerning user privacy is the Federated
Learning [
        <xref ref-type="bibr" rid="ref41">41</xref>
        ]. This technique consists of collecting user data is used to train a local model.
Periodically the local model is used with the global model, anonymously and so preserve user
privacy. This technology has been also adopted by Google for the development of the GBoard
[
        <xref ref-type="bibr" rid="ref42 ref43">42, 43</xref>
        ]. Google collect anonymous data regarding the typing on the GBoard keyboard and
use it to train the language model. A problem in this scenario is to check the integrity of the
platform that furnishes the data. Multiple compromised devices may lead to incorrect training
of the model. The verification for those devices should give minimum information about the
integrity without disclosing information regarding the user.
      </p>
      <p>Some scenarios may require multiple Verifiers, each one attesting some proprieties of the
system. In this case is necessary to disclose to each Verifier only the data required to attest its
part. At the end of the attestation process may be required to coordinate all the Attestation
Results and produce a unique one. With Veraison, it is possible to implement diferent entities
that in a coordinated way attest to the same platform.</p>
      <p>Other scenarios may include a unique Verifier, that after a comprehensive attestation of the
system, produces multiple results. This is useful if there are multiple Relaying Parties and
each one depends only on some characteristic of the system. Here may be unnecessary a full
disclosure of all the Attestation Results. With Veraison is possible to furnish a subset of Claims
to each Relaying Part. This allows to guarantee the necessary level of trustworthiness without
excessive information disclosure.</p>
      <p>Zero-knowledge proofs [44, Sec. 2] involve verifying assertions without disclosing the actual
information. During this procedure, a Prover presents evidence of their assertion to a Verifier,
who assesses the validity of the proof without gaining any extra knowledge. Various
zeroknowledge proof systems cater to distinct applications. Since the zero-proof concept is still in
its early days, robust standardization initiatives are crucial. Adjustments to Veraison could be
made to support the zero-knowledge paradigm.</p>
    </sec>
    <sec id="sec-7">
      <title>6. Conclusions</title>
      <p>This paper presented the Veraison software, beginning with an overview of its architecture and
the standards it employs. A comparison with a more established project, Keylime, provided
insights into the features and development state of Veraison. Various possible applications were
explored to demonstrate its versatility in various scenarios. Since RA concepts are applied to
diferent contexts, having a versatile RA framework is important. Veraison is a very promising
foundation for developing custom solutions spanning various fields, with diferent requirements
and capabilities. Since RA is a growing research and application field, we expect the importance
of Veraison to increase in the near future.</p>
    </sec>
    <sec id="sec-8">
      <title>Acknowledgments</title>
      <p>This work was partially supported by the projects SERICS (PE00000014) under the NRRP MUR
program funded by the European Union - NextGenerationEU, and by the Smart Networks and
Services Joint Undertaking (SNS JU) under the European Union’s Horizon Europe research and
innovation programme with Grant Agreement No.101139198 (iTrust6G project). Views and
opinions expressed are however those of the author(s) only and do not necessarily reflect those
of the EU or SNS-JU. Neither the EU nor the granting authorities can be held responsible for
them.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Francillon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Nguyen</surname>
          </string-name>
          ,
          <string-name>
            <surname>K. B. Rasmussen</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Tsudik</surname>
          </string-name>
          ,
          <article-title>A minimalist approach to Remote Attestation</article-title>
          , in: 2014 Design, Automation &amp; Test in Europe Conference &amp; Exhibition (DATE),
          <source>Dresden (Germany)</source>
          ,
          <source>March 24-28</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          . doi:
          <volume>10</volume>
          .7873/DATE.
          <year>2014</year>
          .
          <volume>257</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Cui</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. J.</given-names>
            <surname>Stolfo</surname>
          </string-name>
          ,
          <string-name>
            <surname>A Quantitative</surname>
          </string-name>
          <article-title>Analysis of the Insecurity of Embedded Network Devices: Results of a Wide-Area Scan</article-title>
          , in: 26th Annual Computer Security Applications Conference, Austin (TX, USA),
          <source>December 6-8</source>
          ,
          <year>2010</year>
          , p.
          <fpage>97</fpage>
          -
          <lpage>106</lpage>
          . doi:
          <volume>10</volume>
          .1145/1920261.1920276.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>D.</given-names>
            <surname>Canavese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Mannella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Regano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Basile</surname>
          </string-name>
          ,
          <article-title>Security at the Edge for Resource-Limited IoT Devices</article-title>
          , sensors
          <volume>24</volume>
          (
          <year>2024</year>
          ). doi:
          <volume>10</volume>
          .3390/s24020590.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>D.</given-names>
            <surname>Feng</surname>
          </string-name>
          , Trusted Computing Principles and Applications, De Gruyter,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Sprogø Banks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kisiel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Korsholm</surname>
          </string-name>
          , Remote Attestation:
          <article-title>A Literature Review</article-title>
          ,
          <source>CoRR abs/2105</source>
          .02466 (
          <year>2021</year>
          ). doi:
          <volume>10</volume>
          .48550/arXiv.2105.02466.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Trusted</given-names>
            <surname>Computing Group</surname>
          </string-name>
          ,
          <year>2024</year>
          . https://trustedcomputinggroup.org/.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Veraison</given-names>
            <surname>Project</surname>
          </string-name>
          ,
          <year>2024</year>
          . https://github.com/veraison.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>H.</given-names>
            <surname>Birkholz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Thaler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Richardson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Pan</surname>
          </string-name>
          ,
          <article-title>Remote ATtestation procedureS (RATS) Architecture</article-title>
          , RFC
          <volume>9334</volume>
          ,
          <year>2023</year>
          . doi:
          <volume>10</volume>
          .17487/rfc9334.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>R. W.</given-names>
            <surname>Shirey</surname>
          </string-name>
          , Internet Security Glossary, Version 2, RFC 4949,
          <year>2007</year>
          . doi:
          <volume>10</volume>
          .17487/rfc4949.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>R.</given-names>
            <surname>Sailer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , T. Jaeger,
          <string-name>
            <surname>L. Van Doorn</surname>
          </string-name>
          ,
          <article-title>Design and implementation of a TCG-based integrity measurement architecture, in: USENIX Security symposium</article-title>
          , San Diego (CA, USA),
          <year>August</year>
          9-
          <issue>13</issue>
          ,
          <year>2004</year>
          , pp.
          <fpage>223</fpage>
          -
          <lpage>238</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Sabt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Achemlal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bouabdallah</surname>
          </string-name>
          ,
          <article-title>Trusted execution environment: what it is, and what it is not</article-title>
          , in: IEEE Trustcom/BigDataSE/Ispa, IEEE, Helsinki (Finland),
          <year>2015</year>
          , pp.
          <fpage>57</fpage>
          -
          <lpage>64</lpage>
          . doi:
          <volume>10</volume>
          .1109/Trustcom.
          <year>2015</year>
          .
          <volume>357</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12] Trusted Computing Group,
          <source>TPM 2.0 Library specification: Architecture</source>
          ,
          <year>2019</year>
          . https://trustedcomputinggroup.org/wp-content/uploads/TCG_
          <article-title>TPM2_r1p59_Part1_ Architecture_pub</article-title>
          .pdf.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>S.</given-names>
            <surname>Kinney</surname>
          </string-name>
          , Trusted Platform Module Basics, Elsevier,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Viper</surname>
          </string-name>
          ,
          <year>2024</year>
          . https://github.com/spf13/viper.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>H.</given-names>
            <surname>Birkholz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Fossati</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Deshpande</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Pan</surname>
          </string-name>
          , Concise Reference Integrity Manifest,
          <year>2022</year>
          . https://datatracker.ietf.org/doc/draft-birkholz
          <string-name>
            <surname>-</surname>
          </string-name>
          rats-corim/.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>J.</given-names>
            <surname>Schaad</surname>
          </string-name>
          ,
          <article-title>CBOR Object Signing and Encryption (COSE)</article-title>
          ,
          <source>RFC 8152</source>
          ,
          <year>2017</year>
          . doi:
          <volume>10</volume>
          .17487/ rfc8152.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bormann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. E.</given-names>
            <surname>Hofman</surname>
          </string-name>
          ,
          <article-title>Concise Binary Object Representation (CBOR)</article-title>
          ,
          <source>RFC 8949</source>
          ,
          <year>2020</year>
          . doi:
          <volume>10</volume>
          .17487/rfc8949.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>T.</given-names>
            <surname>Bray</surname>
          </string-name>
          ,
          <article-title>The JavaScript Object Notation (JSON) Data Interchange Format</article-title>
          , RFC
          <volume>8259</volume>
          ,
          <year>2017</year>
          . doi:
          <volume>10</volume>
          .17487/rfc8259.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>L.</given-names>
            <surname>Lundblade</surname>
          </string-name>
          , G. Mandyam,
          <string-name>
            <surname>J. O'Donoghue</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Wallace</surname>
          </string-name>
          ,
          <source>The Entity Attestation Token (EAT)</source>
          ,
          <year>2024</year>
          . https://datatracker.ietf.org/doc/draft-ietf
          <string-name>
            <surname>-</surname>
          </string-name>
          rats-eat/.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>T.</given-names>
            <surname>Fossati</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Voit</surname>
          </string-name>
          , S. Trofimov, EAT Attestation Results,
          <year>2023</year>
          . https://datatracker.ietf.org/ doc/draft-fv
          <string-name>
            <surname>-</surname>
          </string-name>
          rats-ear/.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>N.</given-names>
            <surname>Schear</surname>
          </string-name>
          , P. T. Cable,
          <string-name>
            <given-names>T. M.</given-names>
            <surname>Moyer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Richard</surname>
          </string-name>
          , R. Rudd,
          <article-title>Bootstrapping and Maintaining Trust in the Cloud</article-title>
          ,
          <source>in: 32nd Annual Conference on Computer Security Applications</source>
          , Los Angeles (CA, USA),
          <source>December 5-8</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>65</fpage>
          -
          <lpage>77</lpage>
          . doi:
          <volume>10</volume>
          .1145/2991079.2991104.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>Cloud</given-names>
            <surname>Native Computing Foundation</surname>
          </string-name>
          , Website,
          <year>2024</year>
          . https://www.cncf.io/.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>Google</given-names>
            <surname>Cloud</surname>
          </string-name>
          ,
          <year>2024</year>
          . https://cloud.google.com/?hl=en.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>Kritis</surname>
          </string-name>
          ,
          <year>2024</year>
          . https://github.com/grafeas/kritis.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Grafeas</surname>
          </string-name>
          ,
          <year>2024</year>
          . https://grafeas.io/.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>OpenSSF</given-names>
            <surname>Scorecard</surname>
          </string-name>
          ,
          <year>2024</year>
          . https://securityscorecards.dev/.
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>Voucher</surname>
          </string-name>
          ,
          <year>2024</year>
          . https://github.com/Shopify/voucher.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>AWS</surname>
          </string-name>
          ,
          <string-name>
            <surname>Enhanced</surname>
            <given-names>Scanning</given-names>
          </string-name>
          ,
          <year>2024</year>
          . https://docs.aws.amazon.com/pdfs/AmazonECR/latest/ userguide/ecr-ug.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <surname>AWS</surname>
          </string-name>
          ,
          <string-name>
            <surname>Nitro</surname>
            <given-names>enclave</given-names>
          </string-name>
          ,
          <year>2024</year>
          . https://docs.aws.amazon.com/pdfs/enclaves/latest/user/ enclaves-user.
          <source>pdf.</source>
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <surname>AWS</surname>
          </string-name>
          , Nitro enclave attestation,
          <year>2024</year>
          . https://docs.aws.amazon.com/enclaves/latest/user/ set-up-attestation.html.
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <surname>Microsoft</surname>
          </string-name>
          ,
          <source>Azure Container Instances (ACI)</source>
          ,
          <year>2024</year>
          . https://azure.microsoft.com/en-gb/ explore/security.
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32] PARSEC project,
          <year>2024</year>
          . https://parsec.community/.
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>Enact</given-names>
            <surname>Project</surname>
          </string-name>
          ,
          <year>2024</year>
          . https://www.enacttrust.com/.
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34] Trusted Computing Group,
          <string-name>
            <surname>DICE</surname>
          </string-name>
          ,
          <year>2024</year>
          . https://trustedcomputinggroup.org/wp-content/ uploads/DICE-Attestation-
          <article-title>Architecture-r23-final</article-title>
          .pdf.
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <surname>Google</surname>
          </string-name>
          ,
          <string-name>
            <surname>Open</surname>
            <given-names>DICE</given-names>
          </string-name>
          ,
          <year>2024</year>
          . https://github.com/google/open-dice.
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>P.</given-names>
            <surname>Mell</surname>
          </string-name>
          , T. Grance,
          <source>The NIST Definition of Cloud Computing, NIST SP800-145</source>
          ,
          <year>2011</year>
          . doi:
          <volume>10</volume>
          .6028/NIST.SP.
          <volume>800</volume>
          -
          <fpage>145</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>M.</given-names>
            <surname>Souppaya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Morello</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Scarfone</surname>
          </string-name>
          ,
          <article-title>Application container security guide</article-title>
          ,
          <source>NIST SP800-190</source>
          ,
          <year>2017</year>
          . doi:
          <volume>10</volume>
          .6028/NIST.SP.
          <volume>800</volume>
          -
          <fpage>190</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>M.</given-names>
            <surname>Eder</surname>
          </string-name>
          , Hypervisor- vs.
          <article-title>Container-based Virtualization, in: Future Internet (FI) and Innovative Internet Technologies and Mobile Communications (IITM)</article-title>
          ,
          <source>Munich (Germany)</source>
          ,
          <source>July 25-26</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
          . doi:
          <volume>10</volume>
          .2313/NET- 2016
          <string-name>
            <surname>-</surname>
          </string-name>
          07- 1_
          <fpage>01</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>S.</given-names>
            <surname>Wedaj</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Paul</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. J.</given-names>
            <surname>Ribeiro</surname>
          </string-name>
          , DADS:
          <article-title>Decentralized Attestation for Device Swarms</article-title>
          ,
          <source>ACM Transaction on Privacy and Security</source>
          <volume>22</volume>
          (
          <year>2019</year>
          )
          <fpage>1</fpage>
          -
          <lpage>29</lpage>
          . doi:
          <volume>10</volume>
          .1145/3325822.
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40]
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Harman</surname>
          </string-name>
          , L. Ma, Y. Liu,
          <article-title>Recent advances on federated learning: A systematic survey</article-title>
          ,
          <source>arXiv</source>
          (
          <year>2019</year>
          ). doi:
          <volume>10</volume>
          .48550/arXiv.
          <year>1906</year>
          .
          <volume>10742</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>B.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Lv</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Guo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <article-title>Recent advances on federated learning: A systematic survey</article-title>
          ,
          <source>arXiv</source>
          (
          <year>2023</year>
          ). doi:
          <volume>10</volume>
          .48550/arXiv.2301.01299.
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [42]
          <string-name>
            <surname>Google</surname>
            ,
            <given-names>GBoard</given-names>
          </string-name>
          ,
          <year>2024</year>
          . https://play.google.com/store/apps/details?id=com.
          <source>google.android. inputmethod.latin&amp;sjid=14747850254852277844-EU&amp;pli=1.</source>
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [43]
          <string-name>
            <surname>Google</surname>
          </string-name>
          ,
          <source>Federated Learning: Collaborative Machine Learning without Centralized Training Data</source>
          ,
          <year>2024</year>
          . https://blog.research.google/
          <year>2017</year>
          /04/federated-learning-collaborative.
          <source>html.</source>
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          [44]
          <string-name>
            <given-names>V.</given-names>
            <surname>Mulder</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mermoud</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Lenders</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Tellenbach</surname>
          </string-name>
          ,
          <source>Trends in Data Protection and Encryption Technologies</source>
          , Springer Cham,
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>