RFC 9684: A YANG Data Model for Challenge-Response-Based Remote Attestation (CHARRA) Procedures Using Trusted Platform Modules (TPMs)
- H. Birkholz,
- M. Eckel,
- S. Bhandari,
- E. Voit,
- B. Sulzen,
- L. Xia,
- T. Laffey,
- G. C. Fedorkow
Abstract
This document defines the YANG Remote Procedure Calls (RPCs) and configuration nodes that are required to retrieve attestation evidence about integrity measurements from a device, following the operational context defined in RFC 9683 "TPM-based Network Device Remote Integrity Verification". Complementary measurement logs originating from one or more Roots of Trust for Measurement (RTMs) are also provided by the YANG RPCs. The defined module requires the inclusion of the following in the device components of the composite device on which the YANG server is running: at least one Trusted Platform Module (TPM) of either version 1.2 or 2.0 as well as a corresponding TPM Software Stack (TSS), or an equivalent hardware implementation that includes the protected capabilities as provided by TPMs as well as a corresponding software stack.¶
Status of This Memo
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://
1. Introduction
This document is based on the general terminology defined in Remote ATtestation procedureS (RATS) architecture [RFC9334] and uses the operational context defined in [RFC9683] as well as the interaction model and information elements defined in [RATS
Specific terms imported from [RFC9334] and used in this document include Attester, composite device, and Evidence.¶
Specific terms imported from [TPM2.0-Key] and used in this document include Endorsement Key (EK), Initial Attestation Key (IAK), Attestation Identity Key (AIK), and Local Attestation Key (LAK).¶
1.1. Requirements Notation
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
2. The YANG Module for Basic Remote Attestation Procedures
One or more TPMs MUST be embedded in a composite device that provides attestation Evidence via the YANG module defined in this document. The ietf
2.1. YANG Modules
In this section, the two YANG modules are defined.¶
2.1.1. ietf-tpm-remote-attestation
This YANG module imports modules from [RFC6991] with prefix 'yang', [RFC8348] with prefix 'hw', [RFC9642] with prefix 'ks', and ietf
2.1.1.1. Features
This module supports the following features:¶
- 'mtpm':
- Indicates that multiple TPMs on the device can support remote attestation. For example, this feature could be used in cases where multiple line cards are present, each with its own TPM.¶
- 'bios':
- Indicates that the device supports the retrieval of BIOS and Unified Extensible Firmware Interface (UEFI) event logs [BIOS-Log].¶
- 'ima':
- Indicates that the device supports the retrieval of event logs from the Linux Integrity Measurement Architecture (IMA, see Appendix A).¶
- 'netequip_boot':
- Indicates that the device supports the retrieval of netequip boot event logs. See Appendixes A and B.¶
2.1.1.2. Identities
This module supports the following types of attestation event logs: 'bios', 'ima', and 'netequip
2.1.1.3. Remote Procedure Calls (RPCs)
In the following sections, RPCs for attestation procedures for both TPM 1.2 and TPM 2.0 are defined.¶
2.1.1.3.1. tpm12-challenge-response-attestation
This RPC allows a Verifier to request via the TPM Quote operation, signed TPM Platform Configuration Registers (PCRs) from a cryptoprocessor compliant with TPM 1.2. Where the feature 'mtpm' is active, and one or more 'certificate
2.1.1.3.2. tpm20-challenge-response-attestation
This RPC allows a Verifier to request signed TPM PCRs (TPM Quote operation) from a cryptoprocessor compliant with TPM 2.0. Where the feature 'mtpm' is active, and one or more 'certificate
An example of an RPC challenge requesting PCRs 0-7 from a SHA-256 bank could look like the following:¶
A successful response could be formatted as follows:¶
2.1.1.4. log-retrieval
This RPC allows a Verifier to acquire the Evidence that was extended into specific TPM PCRs. The YANG tree diagram of this RPC is as follows:¶
2.1.1.5. Data Nodes
This section provides a high-level description of the data nodes that contain the configuration and operational objects within the YANG data model. For more details, please see the YANG module itself in Figure 1.¶
- Container 'rats
-support -structures' : -
This houses the set of information relating to remote attestation for a device. This includes specific device TPM(s), the compute nodes (such as line cards) on which the TPM(s) reside, and the algorithms supported across the platform.¶
- Container 'tpms':
-
This provides configuration and operational details for each supported TPM, including the tpm
-firmware -version, PCRs that may be quoted, certificates that are associated with that TPM, and the current operational status. Of note are the certificates that are associated with that TPM. As a certificate is associated with a particular TPM Attestation Key, knowledge of the certificate allows a specific TPM to be identified.¶
- Container 'attester
-supported -algos' : -
This identifies which TCG hash algorithms are available for use on the Attesting platform. An operator will use this information to limit algorithms available for use by RPCs to just a desired set from the universe of all hash algorithms allowed by the TCG.¶
- Container 'compute
-nodes' : -
When there is more than one TPM supported, this container maintains the set of information related to the compute node associated with a specific TPM. This allows each specific TPM to identify to which 'compute-node' it belongs.¶
2.1.2. ietf-tcg-algs
This document has encoded the TCG Algorithm definitions of Table 3 of [TCG-Algos], revision 1.32. By including this full table as a separate YANG file within this document, it is possible for other YANG modules to leverage the contents of this module. Specific references to [TPM1
2.1.2.1. Features
There are two types of features supported: 'tpm12' and 'tpm20'. Support for either of these features indicates that a cryptoprocessor supporting the corresponding type of TCG TPM API is present on an Attester. Most commonly, only one type of cryptoprocessor will be available on an Attester.¶
2.1.2.2. Identities
There are three types of identities in this model:¶
2.1.2.3. YANG Module
Note that not all cryptographic functions are required for use by ietf
3. IANA Considerations
This document registers the following namespace URIs in the [XML-Registry] per [RFC3688]:¶
- URI:
-
urn
:ietf :params :xml :ns :yang :ietf -tpm -remote -attestation¶ - Registrant Contact:
- The IESG.¶
- XML:
- N/A; the requested URI is an XML namespace.¶
- URI:
-
urn
:ietf :params :xml :ns :yang :ietf -tcg -algs¶ - Registrant Contact:
- The IESG.¶
- XML:
- N/A; the requested URI is an XML namespace.¶
This document registers the following YANG modules in the registry [YANG-Parameters] per Section 14 of [RFC6020]:¶
4. Security Considerations
The YANG module ietf
The Network Configuration Access Control Model (NACM) [RFC8341] provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content.¶
Of special consideration are the following nodes:¶
There are a number of data nodes defined in this YANG module that are writable
- Container '
/rats -support -structures /attester -supported -algos' : -
'tpm12
-asymmetric -signing', 'tpm12-hash', 'tpm20 -asymmetric -signing', and 'tpm20-hash'. All could be populated with algorithms that are not supported by the underlying physical TPM installed by the equipment vendor. A vendor should restrict the ability to configure unsupported algorithms.¶ - Container: '
/rats -support -structures /tpms' : -
'name': Although shown as 'rw', it is system generated. Therefore, it should not be possible for an operator to add or remove a TPM from the configuration.¶
-
'tpm20
-pcr -bank' : It is possible to configure PCRs that are not being extended by system software for extraction. This could unnecessarily use TPM resources.¶ -
'certificates': It is possible to provision a certificate that does not correspond to an AIK within the TPM 1.2, or to an Attestation Key (AK) within the TPM 2.0, respectively. In such a case, calls to an RPC requesting this specific certificate could result in either no response or a response from an unexpected TPM.¶
- RPC 'tpm12
-challenge -response -attestation' : -
The receiver of the RPC response must verify that the certificate is for an active AIK, i.e., the certificate has been confirmed by a third party as being able to support Attestation on the targeted TPM 1.2.¶
- RPC 'tpm20
-challenge -response -attestation' : -
The receiver of the RPC response must verify that the certificate is for an active AK, i.e., the private key confirmation of the quote signature within the RPC response has been confirmed by a third party to belong to an entity legitimately able to perform Attestation on the targeted TPM 2.0.¶
- RPC 'log
-retrieval' : -
Requesting a large volume of logs from the Attester could require significant system resources and create a denial of service.¶
Information collected through the RPCs above could reveal specific versions of software and configurations of endpoints that could identify vulnerabilities on those systems. Therefore, RPCs should be protected by NACM [RFC8341] with a default setting of deny-all to limit the extraction of attestation data by only authorized Verifiers.¶
For the YANG module ietf
Some of the readable data nodes in this YANG module may be considered sensitive or vulnerable in some network environments. It is thus important to control read access (e.g., via get, get-config, or notification) to these data nodes. These are the subtrees and data nodes and their sensitivity
Event logs (bios-log, ima-log, netequip
Some of the RPC operations in this YANG module may be considered sensitive or vulnerable in some network environments. It is thus important to control access to these operations. These are the operations and their sensitivity
The 'log-retrieval' RPC operation is considered sensitive since it enables retrieval of logs (bios-log, ima-log, netequip
The other two RPC operations, 'tpm20
5. References
5.1. Normative References
- [BIOS-Log]
-
Trusted Computing Group, "TCG PC Client Platform Firmware Profile Specification", Family "2.0" Level 00 Revision 1.03 Version 51, , <https://
trustedcomputing >.group .org /wp -content /uploads /PC -Client Specific _Platform _Profile _for _TPM _2p0 _Systems _v51 .pdf - [CEL]
-
Trusted Computing Group, "Canonical Event Log Format", Version 1.0 Revision 0.41, , <https://
trustedcomputing >.group .org /wp -content /uploads /TCG _IWG _CEL _v1 _r0p41 _pub .pdf - [IEEE
-Std -1363 -2000] -
IEEE, "IEEE Standard Specifications for Public-Key Cryptography", IEEE Std 1363-2000, DOI 10
.1109 , , <https:///IEEESTD .2000 .92292 ieeexplore >..ieee .org /document /891000 - [IEEE
-Std -1363a -2004] -
IEEE, "IEEE Standard Specifications for Public-Key Cryptography - Amendment 1: Additional Techniques", IEEE Std 1363a-2004, DOI 10
.1109 , , <https:///IEEESTD .2004 .94612 ieeexplore >..ieee .org /document /1335427 - [ISO-IEC-10116]
-
ISO/IEC, "Information technology - Security techniques - Modes of operation for an n-bit block cipher", Edition 4, ISO/IEC 10116:2017, , <https://
www >..iso .org /standard /64575 .html - [ISO
-IEC -10118 -3] -
ISO/IEC, "IT Security techniques - Hash-functions - Part 3: Dedicated hash-functions", Edition 4, ISO/IEC 10118-3:2018, , <https://
www >..iso .org /standard /67116 .html - [ISO
-IEC -14888 -3] -
ISO/IEC, "Security techniques - Digital signatures with appendix - Part 3: Discrete logarithm based mechanisms", Edition 4, ISO/IEC 14888-3:2018, , <https://
www >..iso .org /standard /76382 .html - [ISO
-IEC -15946 -1] -
ISO/IEC, "Information technology - Security techniques - Cryptographic techniques based on elliptic curves - Part 1: General", Edition 3, ISO/IEC 15946-1:2016, , <https://
www >..iso .org /standard /65480 .html - [ISO
-IEC -18033 -3] -
ISO/IEC, "Information technology - Security techniques - Encryption algorithms - Part 3: Block ciphers", Edition 2, ISO/IEC 18033-3:2010, , <https://
www >..iso .org /standard /54531 .html - [ISO-IEC-9797-1]
-
ISO/IEC, "Information technology - Security techniques - Message Authentication Codes (MACs) - Part 1: Mechanisms using a block cipher", Edition 2, ISO/IEC 9797-1:2011, , <https://
www >..iso .org /standard /50375 .html - [ISO-IEC-9797-2]
-
ISO/IEC, "Information security - Message authentication codes (MACs) - Part 2: Mechanisms using a dedicated hash-function", Edition 3, ISO/IEC 9797-2:2021, , <https://
www >..iso .org /standard /75296 .html - [NIST-FIPS-202]
-
NIST, "SHA-3 Standard: Permutation
-Based Hash and Extendable , NIST FIPS 202, DOI 10-Output Functions" .6028 , , <https:///NIST .FIPS .202 csrc >..nist .gov /publications /detail /fips /202 /final - [NIST-SP800-108]
-
Chen, L., "Recommendation for Key Derivation Using Pseudorandom Functions", DOI 10
.6028 , NIST SP 800-108r1-upd1, , <https:///NIST .SP .800 -108r1 -upd1 csrc >..nist .gov /pubs /sp /800 /108 /r1 /upd1 /final - [NIST-SP800-38C]
-
Dworkin, M., "Recommendation for Block Cipher Modes of Operation: the CCM Mode for Authentication and Confidentiality
" , NIST SP 800-38C, DOI 10.6028 , , <https:///NIST .SP .800 -38C csrc >..nist .gov /publications /detail /sp /800 -38c /final - [NIST-SP800-38D]
-
Dworkin, M., "Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC", NIST SP 800-38D, DOI 10
.6028 , , <https:///NIST .SP .800 -38D csrc >..nist .gov /publications /detail /sp /800 -38d /final - [NIST-SP800-38F]
-
Dworkin, M., "Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping", NIST SP 800-38F, DOI 10
.6028 , , <https:///NIST .SP .800 -38F csrc >..nist .gov /publications /detail /sp /800 -38f /final - [NIST-SP800-56A]
-
Barker, E., Chen, L., Roginsky, A., Vassilev, A., and R. Davis, "Recommendation for Pair-Wise Key
-Establishment Schemes Using Discrete Logarithm Cryptography" , NIST SP 800-56A Rev. 3, DOI 10.6028 , , <https:///NIST .SP .800 -56Ar3 csrc >..nist .gov /publications /detail /sp /800 -56a /rev -3 /final - [RFC2104]
-
Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-Hashing for Message Authentication", RFC 2104, DOI 10
.17487 , , <https:///RFC2104 www >..rfc -editor .org /info /rfc2104 - [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC3688]
-
Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10
.17487 , , <https:///RFC3688 www >..rfc -editor .org /info /rfc3688 - [RFC6020]
-
Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10
.17487 , , <https:///RFC6020 www >..rfc -editor .org /info /rfc6020 - [RFC6241]
-
Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10
.17487 , , <https:///RFC6241 www >..rfc -editor .org /info /rfc6241 - [RFC6242]
-
Wasserman, M., "Using the NETCONF Protocol over Secure Shell (SSH)", RFC 6242, DOI 10
.17487 , , <https:///RFC6242 www >..rfc -editor .org /info /rfc6242 - [RFC6933]
-
Bierman, A., Romascanu, D., Quittek, J., and M. Chandramouli, "Entity MIB (Version 4)", RFC 6933, DOI 10
.17487 , , <https:///RFC6933 www >..rfc -editor .org /info /rfc6933 - [RFC6991]
-
Schoenwaelder, J., Ed., "Common YANG Data Types", RFC 6991, DOI 10
.17487 , , <https:///RFC6991 www >..rfc -editor .org /info /rfc6991 - [RFC8017]
-
Moriarty, K., Ed., Kaliski, B., Jonsson, J., and A. Rusch, "PKCS #1: RSA Cryptography Specifications Version 2.2", RFC 8017, DOI 10
.17487 , , <https:///RFC8017 www >..rfc -editor .org /info /rfc8017 - [RFC8032]
-
Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital Signature Algorithm (EdDSA)", RFC 8032, DOI 10
.17487 , , <https:///RFC8032 www >..rfc -editor .org /info /rfc8032 - [RFC8040]
-
Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10
.17487 , , <https:///RFC8040 www >..rfc -editor .org /info /rfc8040 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [RFC8341]
-
Bierman, A. and M. Bjorklund, "Network Configuration Access Control Model", STD 91, RFC 8341, DOI 10
.17487 , , <https:///RFC8341 www >..rfc -editor .org /info /rfc8341 - [RFC8348]
-
Bierman, A., Bjorklund, M., Dong, J., and D. Romascanu, "A YANG Data Model for Hardware Management", RFC 8348, DOI 10
.17487 , , <https:///RFC8348 www >..rfc -editor .org /info /rfc8348 - [RFC8446]
-
Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10
.17487 , , <https:///RFC8446 www >..rfc -editor .org /info /rfc8446 - [RFC9334]
-
Birkholz, H., Thaler, D., Richardson, M., Smith, N., and W. Pan, "Remote ATtestation procedureS (RATS) Architecture", RFC 9334, DOI 10
.17487 , , <https:///RFC9334 www >..rfc -editor .org /info /rfc9334 - [RFC9642]
-
Watsen, K., "A YANG Data Model for a Keystore", RFC 9642, DOI 10
.17487 , , <https:///RFC9642 www >..rfc -editor .org /info /rfc9642 - [RFC9683]
-
Fedorkow, G. C., Ed., Voit, E., and J. Fitzgerald
-Mc , "Remote Integrity Verification of Network Devices Containing Trusted Platform Modules", RFC 9683, DOI 10Kay .17487 , , <https:///RFC9683 www >..rfc -editor .org /info /rfc9683 - [TCG-Algos]
-
Trusted Computing Group, "TCG Algorithm Registry", Family "2.0" Level 00 Revision 01.34, , <https://
trustedcomputing >.group .org /wp -content /uploads /TCG -Algorithm -Registry -Revision -1 .34 _pub -1 .pdf - [TPM1.2]
-
Trusted Computing Group, "TPM 1.2 Main Specification", TPM Main Specification Level 2 Version 1.2, Revision 116, , <https://
trustedcomputing >.group .org /resource /tpm -main -specification / - [TPM1
.2 -Commands] -
Trusted Computing Group, "TPM Main Part 3 Commands", TPM Main Specification Level 2 Version 1.2, Revision 116, , <https://
trustedcomputing >.group .org /wp -content /uploads /TPM -Main -Part -3 -Commands _v1 .2 _rev116 _01032011 .pdf - [TPM1
.2 -Structures] -
Trusted Computing Group, "TPM Main Part 2 TPM Structures", TPM Main Specification Level 2 Version 1.2, Revision 116, , <https://
trustedcomputing >.group .org /wp -content /uploads /TPM -Main -Part -2 -TPM -Structures _v1 .2 _rev116 _01032011 .pdf - [TPM2.0]
-
Trusted Computing Group, "TPM 2.0 Library", Trusted Platform Module Library Specification, Family "2.0", Level 00, Revision 01.83, , <https://
trustedcomputing >.group .org /resource /tpm -library -specification / - [TPM2.0-Arch]
-
Trusted Computing Group, "Trusted Platform Module Library Part 1: Architecture", Family "2.0", Level 00, Revision 01.83, , <https://
trustedcomputing >.group .org /wp -content /uploads /TPM -2 .0 -1 .83 -Part -1 -Architecture .pdf - [TPM2.0-Key]
-
Trusted Computing Group, "TPM 2.0 Keys for Device Identity and Attestation", Version 1.00, Revision 12, , <https://
trustedcomputing >.group .org /wp -content /uploads /TPM -2p0 -Keys -for -Device -Identity -and -Attestation _v1 _r12 _pub10082021 .pdf - [TPM2
.0 -Structures] -
Trusted Computing Group, "Trusted Platform Module Library Part 2: Structures", Family "2.0", Level 00, Revision 01.83, , <https://
trustedcomputing >.group .org /wp -content /uploads /TPM -2 .0 -1 .83 -Part -2 -Structures .pdf - [UEFI
-Secure -Boot] -
Unified Extensible Firmware Interface (UEFI) Forum, Inc., "Unified Extensible Firmware Interface (UEFI) Specification", Section 32.1: Secure Boot, Version 2.10, , <https://
uefi >..org /sites /default /files /resources /UEFI _Spec _2 _10 _Aug29 .pdf
5.2. Informative References
- [IMA
-Template -Management] -
The kernel development community, "IMA Template Management Mechanism", Linux Kernel 6.11, , <https://
www >..kernel .org /doc /html /v6 .11 /security /IMA -templates .html - [NIST-915121]
-
NIST, "True Randomness Can't be Left to Chance: Why entropy is important for information security", <https://
tsapps >..nist .gov /publication /get _pdf .cfm ?pub _id =915121 - [RATS
-Interaction -Models] -
Birkholz, H., Eckel, M., Pan, W., and E. Voit, "Reference Interaction Models for Remote Attestation Procedures", Work in Progress, Internet-Draft, draft
-ietf , , <https://-rats -reference -interaction -models -11 datatracker >..ietf .org /doc /html /draft -ietf -rats -reference -interaction -models -11 - [XML-Registry]
-
IANA, "IETF XML Registry", <https://
www >..iana .org /assignments /xml -registry / - [YANG
-Parameters] -
IANA, "YANG Parameters", <https://
www >..iana .org /assignments /yang -parameters /
Appendix A. Integrity Measurement Architecture (IMA)
IMA extends the principles of Measured Boot [TPM2.0-Arch] and Secure Boot [UEFI-Secure-Boot] to the Linux operating system, applying it to operating system applications and files.
IMA has been part of the Linux integrity subsystem of the Linux kernel since 2009 (kernel version 2.6.30). The IMA mechanism represented by the YANG module in this specification is rooted in the kernel version 5.16 [IMA
In support of the Appraisal of Evidence, IMA maintains an ordered list (with no duplicates) of measurements in kernel space, the Stored Measurement Log (SML), for all files that have been measured before execution since the operating system was started.
Although IMA can be used without a TPM, it is typically used in conjunction with a TPM to anchor the integrity of the SML in a hardware/sys).¶
IMA templates define the format of the SML, i.e., which fields are included in a log record. Examples are file path, file hash, user ID, group ID, file signature, and extended file attributes. IMA comes with a set of predefined template formats and also allows a custom format, i.e., a format consisting of template fields supported by IMA. Template usage is typically determined by boot arguments passed to the kernel. Alternatively, the format can also be hard-coded into custom kernels. IMA templates and fields are extensible in the kernel source code. As a result, more template fields can be added in the future.¶
IMA policies define which files are measured using the IMA policy language. Built-in policies can be passed as boot arguments to the kernel. Custom IMA policies can be defined once during runtime or be hard-coded into a custom kernel. If no policy is defined, no measurements are taken and IMA is effectively disabled.¶
A comprehensive description of the content fields of the Linux IMA TLV format can be found in Table 16 of the Canonical Event Log (CEL) specification [CEL]. The CEL specification also illustrates the use of templates to enable extended or customized IMA TLV formats in Section 5.1.6.¶
Appendix B. IMA for Network Equipment Boot Logs
Network equipment can generally implement similar IMA-protected functions to generate measurements (Claims) about the boot process of a device and enable corresponding remote attestation. Network Equipment Boot Logs combine the measurement and logging of boot components and operating system components (executables and files) into a single log file in a format identical to the IMA format. Note that the format used for logging measurement of boot components in this scheme differs from the boot logging strategy described elsewhere in this document.¶
During the boot process of the network device, i.e., from BIOS to the end of the operating system and user-space, all files executed can be measured and logged in the order of their execution.
When the Verifier initiates a remote attestation process (e.g., challenge
The Verifier can appraise the integrity (compliance with the Reference Values) of each executed file by comparing its measured value with the Reference Value. Based on the execution order, the Verifier can compute a PCR Reference Value (by replaying the log) and compare it to the measurement log Claims obtained in conjunction with the PCR Evidence to assess their trustworthiness with respect to an intended operational state.¶
Network equipment usually executes multiple components in parallel. This holds not only during the operating system loading phase, but also even during the BIOS boot phase. With this measurement log mechanism, network equipment can assume the role of an Attester, proving to the Verifier the trustworthiness of its boot process. Using the measurement log, Verifiers can precisely identify mismatching log entries to infer potentially tampered components.¶
This mechanism also supports scenarios that modify files on the Attester that are subsequently executed during the boot phase (e.g., updating