Internet DRAFT - draft-ounsworth-rats-x509-evidence
draft-ounsworth-rats-x509-evidence
RATS M. Ounsworth
Internet-Draft Entrust
Intended status: Standards Track H. Tschofenig
Expires: 25 April 2024 Siemens
23 October 2023
X.509-based Attestation Evidence
draft-ounsworth-rats-x509-evidence-00
Abstract
This document specifies Claims for use within X.509 certificates.
These X.509 certificates are produced by an Attester as part of the
remote attestation procedures and consitute Evidence.
This document follows the Remote ATtestation procedureS (RATS)
architecture where Evidence is sent by an Attester and processed by a
Verifier.
About This Document
This note is to be removed before publishing as an RFC.
The latest revision of this draft can be found at
https://entrustcorporation.github.io/draft-x509-evidence/draft-
ounsworth-rats-x509-evidence.html. Status information for this
document may be found at https://datatracker.ietf.org/doc/draft-
ounsworth-rats-x509-evidence/.
Source for this draft and an issue tracker can be found at
https://github.com/EntrustCorporation/draft-x509-evidence.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
Ounsworth & Tschofenig Expires 25 April 2024 [Page 1]
Internet-Draft X.509-based Attestation Evidence October 2023
This Internet-Draft will expire on 25 April 2024.
Copyright Notice
Copyright (c) 2023 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Conventions and Definitions . . . . . . . . . . . . . . . . . 4
3. Claims . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Nonce . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. ueid (Universal Entity ID) Claim . . . . . . . . . . . . 4
3.3. sueids (Semi-permanent UEIDs) Claim (SUEIDs) . . . . . . 5
3.4. oemid (Hardware OEM Identification) Claim . . . . . . . . 5
3.5. hwmodel (Hardware Model) Claim . . . . . . . . . . . . . 6
3.6. hwversion (Hardware Version) Claim . . . . . . . . . . . 6
3.7. swversion (Software Version) Claim . . . . . . . . . . . 7
3.8. dbgstat (Debug Status) Claim . . . . . . . . . . . . . . 7
3.9. software-component Claim . . . . . . . . . . . . . . . . 8
3.10. fips_conf (Federal Information Processing Standards
Conformance) Claim . . . . . . . . . . . . . . . . . . . 9
3.11. cc_conf (Common Criteria Conformance) Claim . . . . . . . 9
4. Security Considerations . . . . . . . . . . . . . . . . . . . 9
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1. Normative References . . . . . . . . . . . . . . . . . . 10
6.2. Informative References . . . . . . . . . . . . . . . . . 11
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 12
Appendix B. Full ASN.1 . . . . . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12
Ounsworth & Tschofenig Expires 25 April 2024 [Page 2]
Internet-Draft X.509-based Attestation Evidence October 2023
1. Introduction
Trusted execution environments, like secure elements and hardware
security modules, are now widely used, which provide a safe
environment to place security sensitive code, such as cryptography,
secure boot, secure storage, and other essential security functions.
These security functions are typically exposed through a narrow and
well-defined interface, and can be used by operating system libraries
and applications.
When a Certificate Signing Request (CSR) library is requesting a
certificate from a Certification Authority (CA), a PKI end entity may
wish to provide Evidence of the security properties of the trusted
execution environment in which the private key is stored. This
Evidence is to be verified by a Relying Party, such as the
Registration Authority or the Certification Authority as part of
validating an incoming CSR against a given certificate policy.
[I-D.ietf-lamps-csr-attestation] defines how to carry Evidence in
either PKCS#10 [RFC2986] or Certificate Request Message Format (CRMF)
[RFC4211].
[I-D.ietf-lamps-csr-attestation] is agnostic to the content and the
encoding of Evidence. To offer interoperability it is necessary to
define a format that is utilized in a specific deployment environment
environment. Hardware security modules and other trusted execution
environments, which have been using ASN.1-based encodings for a long
time prefer the use of the same format throughout their software
ecosystem. For those use cases this specification has been
developed.
This specification re-uses the claims defined in [I-D.ietf-rats-eat],
and encodes them as an extension in an X.509 certificate [RFC5280].
While the encoding of the claims is different to what is defined in
[I-D.ietf-rats-eat], the semantics of the claims is retained. This
specification is not an EAP profile, as defined in Section 6 of
[I-D.ietf-rats-eat]
This specification was designed to meet the requirements published by
the CA Browser Forum to convey properties about hardware security
models, such as non-exportability, which must be enabled for storing
publicly-trusted code-signing keys. Hence, this specification is
supposed to be used with the attestation extension for Certificate
Signing Requests (CSRs), see [I-D.ietf-lamps-csr-attestation], but
Evidence encoded as X.509 certificates may also be used in other
context.
Ounsworth & Tschofenig Expires 25 April 2024 [Page 3]
Internet-Draft X.509-based Attestation Evidence October 2023
2. Conventions and Definitions
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.
This document re-uses the terms defined in [RFC9334] related to
remote attestation. Readers of this document are assumed to be
familiar with the following terms: Evidence, Claim, Attestation
Result, Attester, Verifier, and Relying Party.
3. Claims
3.1. Nonce
The "nonce" claim is used to provide freshness.
The Nonce claim is used to carry the challenge provided by the caller
to demonstrate freshness of the generated token. The following
constraints apply to the nonce-type:
* The length MUST be either 32, 48, or 64 bytes.
* Only a single nonce value is conveyed.
The nonce claim is defined as follows:
id-ce-evidence-nonce OBJECT IDENTIFIER ::=
{ id-ce TBD_evidence TBD_nonce }
claim_nonce ::= OCTET STRING
See Section 4.1 of [I-D.ietf-rats-eat] for a description of this
claim.
3.2. ueid (Universal Entity ID) Claim
The "ueid" claim conveys a UEID, which identifies an individual
manufactured entity. This identifier is a globally unique and
permanent identifier. See Section 4.2.1 of [I-D.ietf-rats-eat] for a
description of this claim. Three types of UEIDs are defined, which
are distinguished via a type field.
The ueid claim is defined as follows:
Ounsworth & Tschofenig Expires 25 April 2024 [Page 4]
Internet-Draft X.509-based Attestation Evidence October 2023
id-ce-evidence-ueid OBJECT IDENTIFIER ::=
{ id-ce TBD_evidence TBD_ueid }
claim_ueid ::= SEQUENCE {
type INTEGER ( RAND(1), EUI(2), IMEI(3),...),
value OCTET STRING
}
3.3. sueids (Semi-permanent UEIDs) Claim (SUEIDs)
The "sueids" claim conveys one or more semi-permanent UEIDs (SUEIDs).
An SUEID has the same format, characteristics and requirements as a
UEID, but MAY change to a different value on entity life-cycle events
while the ueid claim is permanent. An entity MAY have both a UEID
and SUEIDs, neither, one or the other.
There MAY be multiple SUEIDs and each has a text string label the
purpose of which is to distinguish it from others.
See Section 4.2.2 of [I-D.ietf-rats-eat] for a description of this
claim.
The sueids claim is defined as follows:
id-ce-evidence-sueids OBJECT IDENTIFIER ::=
{ id-ce TBD_evidence TBD_sueids }
claim_sueids ::= SEQUENCE {
label OCTET STRING,
type INTEGER ( RAND(1), EUI(2), IMEI(3),...),
value OCTET STRING
}
3.4. oemid (Hardware OEM Identification) Claim
The "oemid" claim identifies the Original Equipment Manufacturer
(OEM) of the hardware.
See Section 4.2.3 of [I-D.ietf-rats-eat] for a description of this
claim.
The value of this claim depends on the type of OEMID and three types
of IDs are defined:
* OEMIDs using a 128-bit random number. Section 4.2.3.1 of
[I-D.ietf-rats-eat] defines this type.
Ounsworth & Tschofenig Expires 25 April 2024 [Page 5]
Internet-Draft X.509-based Attestation Evidence October 2023
* an IEEE based OEMID using a global registry for MAC addresses and
company IDs. Section 4.2.3.1 of [I-D.ietf-rats-eat] defines this
type.
* OEMIDs using Private Enterprise Numbers maintained by IANA.
Section 4.2.3.3 of [I-D.ietf-rats-eat] defines this type.
The oemid claim is defined as follows:
id-ce-evidence-oemid OBJECT IDENTIFIER ::=
{ id-ce TBD_evidence TBD_oemid }
claim_oemid ::= SEQUENCE {
type INTEGER ( PEN(1), IEEE(2), RANDOM(3),...),
value OCTET STRING
}
[Editor's Note: The value for the PEN is numeric. For the other two
types it is a binary string.]
3.5. hwmodel (Hardware Model) Claim
The "hwmodel" claim differentiates hardware models, products and
variants manufactured by a particular OEM, the one identified by OEM
ID. It MUST be unique within a given OEM ID. The concatenation of
the OEM ID and "hwmodel" give a global identifier of a particular
product. The "hwmodel" claim MUST only be present if an "oemid"
claim is present.
See Section 4.2.4 of [I-D.ietf-rats-eat] for a description of this
claim.
The hwmodel claim is defined as follows:
id-ce-evidence-hwmodel OBJECT IDENTIFIER ::=
{ id-ce TBD_evidence TBD_hwmodel }
claim_hwmodel ::= OCTET STRING
3.6. hwversion (Hardware Version) Claim
The "hwversion" claim is a text string the format of which is set by
each manufacturer. A "hwversion" claim MUST only be present if a
"hwmodel" claim is present.
See Section 4.2.5 of [I-D.ietf-rats-eat] for a description of this
claim.
Ounsworth & Tschofenig Expires 25 April 2024 [Page 6]
Internet-Draft X.509-based Attestation Evidence October 2023
The hwversion claim is defined as follows:
id-ce-evidence-hwversion OBJECT IDENTIFIER ::=
{ id-ce TBD_evidence TBD_hwwversion }
hwversion ::= OCTET STRING
3.7. swversion (Software Version) Claim
The "swversion" claim makes use of the CoSWID version-scheme defined
in Section 4.1 of [RFC9393] to give a simple version for the
software. A "swversion" claim MUST only be present if a "swname"
claim is present.
See Section 4.2.5 of [I-D.ietf-rats-eat] for a description of this
claim.
The swversion claim is defined as follows:
id-ce-evidence-swversion OBJECT IDENTIFIER ::=
{ id-ce TBD_evidence TBD_swversion }
swversion ::= PrintableString
3.8. dbgstat (Debug Status) Claim
The "dbgstat" claim applies to entity-wide or submodule-wide debug
facilities and diagnostic hardware built into chips. It applies to
any software debug facilities related to privileged software that
allows system-wide memory inspection, tracing or modification of non-
system software like user mode applications.
See Section 4.2.9 of [I-D.ietf-rats-eat] for a description of this
claim and the semantic of the values in the enumerated list.
The dbgstat claim is defined as follows:
id-ce-evidence-dbgstat OBJECT IDENTIFIER ::=
{ id-ce TBD_evidence TBD_dbgstat }
dbgstat ::= ENUMERATED {
dsEnabled (0),
disabled (1),
disabledSinceBoot (2),
disabledPermanently (3),
disabledFullyAndPermanently (4)
}
Ounsworth & Tschofenig Expires 25 April 2024 [Page 7]
Internet-Draft X.509-based Attestation Evidence October 2023
3.9. software-component Claim
The Software Components claim is a list of software components that
includes all the software (both code and configuration) loaded by the
root of trust.
Each entry in the Software Components list describes one software
component using the attributes described below:
* The Measurement Type attribute is short string representing the
role of this software component. Examples include the bootloader
code, the bootloader configuration, and firmware running in the
Trusted Execution Environment.
* The Measurement Value attribute represents a hash of the invariant
software component in memory at startup time. The value MUST be a
cryptographic hash of 256 bits or stronger. For interoperability,
SHA-256 is assumed to be the default.
* The Signer ID attribute is the hash of a signing authority public
key for the software component. This can be used by a Verifier to
ensure the components were signed by an expected trusted source.
* The Measurement Description contains the OID identifying the hash
algorithm used to compute the corresponding Measurement Value.
For interoperability, SHA-256 is the default. If the default
algorithm is used, then this field can be omitted. The values for
identifying the hash algorithms MUST be taken from [IANA-Hash].
The description of the software-component claims is taken from
Section 4.4.1 of [I-D.tschofenig-rats-psa-token]
The software-component claim is defined as follows:
id-ce-evidence-softwarecomponent OBJECT IDENTIFIER ::=
{ id-ce TBD_evidence TBD_softwarecomponent }
softwarecomponent ::= SEQUENCE {
measurement-type PrintableString,
measurement-value OCTET STRING,
signer-id OCTET STRING,
measurement-desc OBJECT IDENTIFIER
}
softwarecomponents ::= SEQUENCE SIZE (1..MAX)
OF softwarecomponent
Ounsworth & Tschofenig Expires 25 April 2024 [Page 8]
Internet-Draft X.509-based Attestation Evidence October 2023
3.10. fips_conf (Federal Information Processing Standards Conformance)
Claim
The "fips_conf" claim applies to entity-wide or submodule-wide
cryptographic modules and attests whether the cryptographic module is
running in FIPS mode. A cryptographic module cannot, in general,
know whether it has a valid FIPS certification, but it does know
whether it is running in FIPS mode.
The FIPS conformance claim is defined as follows:
id-ce-evidence-fips_conf OBJECT IDENTIFIER ::=
{ id-ce TBD_evidence TBD_fips_conf }
fipsconf ::= SEQUENCE {
fipsconf BOOLEAN
}
TBD: Perhaps there is more data that needs to be here? Such as, the
device may need to attest the Security Policy under which it is
currently operating since for example a FIPS 140-2 Level 2 security
policy might be different from a 140-3 Level 4. This sounds like we
would need either a vendor-defined string known to the verifier, or
an ENUMERATED list of "FIPS 140-{2,3} Level {1,2,3,4}" which will be
an evolving list. Neither sounds clean. Needs more discussion.
TBD: Tomas to review and add to this text.
3.11. cc_conf (Common Criteria Conformance) Claim
TBD: Is there a CC equivalent of the fips_conf claim? There might
not be any value to having this claim. Need review by people more
expert in CC than me.
4. Security Considerations
This specification re-uses the claims from the EAT specification but
relies on the security protection offered by X.509 certificate and
particularly the digital signature covering the certificate. This
digital signature is computed with the Attestation Key available on
the device, see Section 12.1 of [RFC9334] for considerations
regarding the generation, the use and the protection of these
Attestation Keys. Although the encoding of an X.509 certificate has
been selected for conveying Claims from an Attester to a Relying
Party, this document uses a model that is very different from Web PKI
deployment where CAs verify whether an applicant for a certificate
legitimately represents the domain name(s) in the certificate. Since
the Attester located at the end entity creates the X.509 certificate
Ounsworth & Tschofenig Expires 25 April 2024 [Page 9]
Internet-Draft X.509-based Attestation Evidence October 2023
with claims defined in this document, it conceptually acts like a CA.
This document inherits the remote attestation architecture described
in [RFC9334]. With the re-use of the claims from [I-D.ietf-rats-eat]
the security and privacy considerations apply also to this document
even though the encoding in this specification is different from the
encoding of claims discussed by [I-D.ietf-rats-eat].
Evidence contains information that may be unique to a device and may
therefore allow to single out an individual device for tracking
purposes. Deployments that have privacy requirements must take
appropriate measures to ensure that claim values can only identify a
group of devices and that the Attestation Keys are used across a
number of devices as well.
To verify the Evidence, the primary need is to check the signature
and the correct encoding of the claims. To produce the Attestation
Result, the Verifier will use Endorsements, Reference Values, and
Appraisal Policies. The policies may require that certain claims
must be present and that their values match registered reference
values. All claims may be worthy of additional appraisal.
5. IANA Considerations
TBD: OIDs for all the claims listed in this document.
6. References
6.1. Normative References
[I-D.ietf-rats-eat]
Lundblade, L., Mandyam, G., O'Donoghue, J., and C.
Wallace, "The Entity Attestation Token (EAT)", Work in
Progress, Internet-Draft, draft-ietf-rats-eat-22, 14
October 2023, <https://datatracker.ietf.org/doc/html/
draft-ietf-rats-eat-22>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/rfc/rfc2119>.
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
Housley, R., and W. Polk, "Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation List
(CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
<https://www.rfc-editor.org/rfc/rfc5280>.
Ounsworth & Tschofenig Expires 25 April 2024 [Page 10]
Internet-Draft X.509-based Attestation Evidence October 2023
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/rfc/rfc8174>.
[RFC9334] Birkholz, H., Thaler, D., Richardson, M., Smith, N., and
W. Pan, "Remote ATtestation procedureS (RATS)
Architecture", RFC 9334, DOI 10.17487/RFC9334, January
2023, <https://www.rfc-editor.org/rfc/rfc9334>.
[RFC9393] Birkholz, H., Fitzgerald-McKay, J., Schmidt, C., and D.
Waltermire, "Concise Software Identification Tags",
RFC 9393, DOI 10.17487/RFC9393, June 2023,
<https://www.rfc-editor.org/rfc/rfc9393>.
6.2. Informative References
[I-D.ietf-lamps-csr-attestation]
Ounsworth, M., Tschofenig, H., and H. Birkholz, "Use of
Remote Attestation with Certificate Signing Requests",
Work in Progress, Internet-Draft, draft-ietf-lamps-csr-
attestation-02, 9 October 2023,
<https://datatracker.ietf.org/doc/html/draft-ietf-lamps-
csr-attestation-02>.
[I-D.tschofenig-rats-psa-token]
Tschofenig, H., Frost, S., Brossard, M., Shaw, A. L., and
T. Fossati, "Arm's Platform Security Architecture (PSA)
Attestation Token", Work in Progress, Internet-Draft,
draft-tschofenig-rats-psa-token-14, 23 October 2023,
<https://datatracker.ietf.org/doc/html/draft-tschofenig-
rats-psa-token-14>.
[IANA-Hash]
IANA, "Hash Function Textual Names", 2023,
<https://www.iana.org/assignments/hash-function-text-
names>.
[RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification
Request Syntax Specification Version 1.7", RFC 2986,
DOI 10.17487/RFC2986, November 2000,
<https://www.rfc-editor.org/rfc/rfc2986>.
[RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure
Certificate Request Message Format (CRMF)", RFC 4211,
DOI 10.17487/RFC4211, September 2005,
<https://www.rfc-editor.org/rfc/rfc4211>.
Ounsworth & Tschofenig Expires 25 April 2024 [Page 11]
Internet-Draft X.509-based Attestation Evidence October 2023
Appendix A. Acknowledgements
This specification is the work of a design team created by the chairs
of the LAMPS working group. This specification has been developed
based on discussions in that design team.
The following persons, in no specific order, contributed to the work:
Richard Kettlewell, Chris Trufan, Bruno Couillard, Jean-Pierre Fiset,
Sander Temme, Jethro Beekman, Zsolt Rózsahegyi, Ferenc Pető, Mike
Agrenius Kushner, Tomas Gustavsson, Dieter Bong, Christopher Meyer,
Michael StJohns, Carl Wallace, Michael Ricardson, Tomofumi Okubo,
Olivier Couillard, John Gray, Eric Amador, Johnson Darren, Herman
Slatman, Tiru Reddy, Thomas Fossati, Corey Bonnel, Argenius Kushner,
James Hagborg.
Appendix B. Full ASN.1
TBD: Full ASN.1 goes in here.
Authors' Addresses
Mike Ounsworth
Entrust Limited
2500 Solandt Road – Suite 100
Ottawa, Ontario K2K 3G5
Canada
Email: mike.ounsworth@entrust.com
Hannes Tschofenig
Siemens
Email: hannes.tschofenig@gmx.net
Ounsworth & Tschofenig Expires 25 April 2024 [Page 12]