idnits 2.17.1 draft-birkholz-rats-uccs-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (8 March 2021) is 1116 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'RFCthis' is mentioned on line 267, but not defined ** Obsolete normative reference: RFC 7049 (Obsoleted by RFC 8949) ** Obsolete normative reference: RFC 8152 (Obsoleted by RFC 9052, RFC 9053) -- Possible downref: Non-RFC (?) normative reference: ref. 'TPM2' == Outdated reference: A later version (-22) exists of draft-ietf-rats-architecture-10 == Outdated reference: A later version (-25) exists of draft-ietf-rats-eat-09 == Outdated reference: A later version (-19) exists of draft-ietf-teep-architecture-14 Summary: 2 errors (**), 0 flaws (~~), 5 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 RATS Working Group H. Birkholz 3 Internet-Draft Fraunhofer SIT 4 Intended status: Standards Track J. O'Donoghue 5 Expires: 9 September 2021 Qualcomm Technologies Inc. 6 N. Cam-Winget 7 Cisco Systems 8 C. Bormann 9 Universitaet Bremen TZI 10 8 March 2021 12 A CBOR Tag for Unprotected CWT Claims Sets 13 draft-birkholz-rats-uccs-03 15 Abstract 17 CBOR Web Token (CWT, RFC 8392) Claims Sets sometimes do not need the 18 protection afforded by wrapping them into COSE, as is required for a 19 true CWT. This specification defines a CBOR tag for such unprotected 20 CWT Claims Sets (UCCS) and discusses conditions for its proper use. 22 Status of This Memo 24 This Internet-Draft is submitted in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF). Note that other groups may also distribute 29 working documents as Internet-Drafts. The list of current Internet- 30 Drafts is at https://datatracker.ietf.org/drafts/current/. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 This Internet-Draft will expire on 9 September 2021. 39 Copyright Notice 41 Copyright (c) 2021 IETF Trust and the persons identified as the 42 document authors. All rights reserved. 44 This document is subject to BCP 78 and the IETF Trust's Legal 45 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 46 license-info) in effect on the date of publication of this document. 47 Please review these documents carefully, as they describe your rights 48 and restrictions with respect to this document. Code Components 49 extracted from this document must include Simplified BSD License text 50 as described in Section 4.e of the Trust Legal Provisions and are 51 provided without warranty as described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 56 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 57 2. Motivation and Requirements . . . . . . . . . . . . . . . . . 3 58 3. Characteristics of a Secure Channel . . . . . . . . . . . . . 4 59 3.1. UCCS and Remote ATtestation procedureS (RATS) . . . . . . 4 60 3.2. Privacy Preserving Channels . . . . . . . . . . . . . . . 6 61 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 62 5. Security Considerations . . . . . . . . . . . . . . . . . . . 6 63 5.1. General Considerations . . . . . . . . . . . . . . . . . 7 64 5.2. AES-CBC_MAC . . . . . . . . . . . . . . . . . . . . . . . 7 65 5.3. AES-GCM . . . . . . . . . . . . . . . . . . . . . . . . . 8 66 5.4. AES-CCM . . . . . . . . . . . . . . . . . . . . . . . . . 8 67 5.5. ChaCha20 and Poly1305 . . . . . . . . . . . . . . . . . . 8 68 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 69 6.1. Normative References . . . . . . . . . . . . . . . . . . 8 70 6.2. Informative References . . . . . . . . . . . . . . . . . 9 71 Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 10 72 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 74 1. Introduction 76 A CBOR Web Token (CWT) as specified by [RFC8392] is always wrapped in 77 a CBOR Object Signing and Encryption (COSE, [RFC8152]) envelope. 78 COSE provides -- amongst other things -- the integrity protection 79 mandated by RFC 8392 and optional encryption for CWTs. Under the 80 right circumstances, though, a signature providing proof for 81 authenticity and integrity can be provided through the transfer 82 protocol and thus omitted from the information in a CWT without 83 compromising the intended goal of authenticity and integrity. If a 84 mutually Secured Channel is established between two remote peers, and 85 if that Secure Channel provides the required properties (as discussed 86 below), it is possible to omit the protection provided by COSE, 87 creating a use case for unprotected CWT Claims Sets. Similarly, if 88 there is one-way authentication, the party that did not authenticate 89 may be in a position to send authentication information through this 90 channel that allows the already authenticated party to authenticate 91 the other party. 93 This specification allocates a CBOR tag to mark Unprotected CWT 94 Claims Sets (UCCS) as such and discusses conditions for its proper 95 use in the scope of Remote ATtestation procedureS (RATS) and the 96 conveyance of Evidence from an Attester to a Verifier. 98 This specification does not change [RFC8392]: A true CWT does not 99 make use of the tag allocated here; the UCCS tag is an alternative to 100 using COSE protection and a CWT tag. Consequently, in a well-defined 101 scope, it might be acceptable to use the contents of a CWT without 102 its COSE container and tag it with a UCCS CBOR tag for further 103 processing -- or to use the contents of a UCCS CBOR tag for building 104 a CWT to be signed by some entity that can vouch for those contents. 106 1.1. Terminology 108 The term Claim is used as in [RFC8725]. 110 The terms Claim Key, Claim Value, and CWT Claims Set are used as in 111 [RFC8392]. 113 The terms Attester, Attesting Environment and Verifier are used as in 114 [I-D.ietf-rats-architecture]. 116 UCCS: Unprotected CWT Claims Set(s); CBOR map(s) of Claims as 117 defined by the CWT Claims Registry that are composed of pairs of 118 Claim Keys and Claim Values. 120 Secure Channel: A protected communication channel between two peers 121 that can ensure the same qualities associated for UCCS conveyance 122 as CWT conveyance without any additional protection. 124 All terms referenced or defined in this section are capitalized in 125 the remainder of this document. 127 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 128 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 129 "OPTIONAL" in this document are to be interpreted as described in 130 BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all 131 capitals, as shown here. 133 2. Motivation and Requirements 135 Use cases involving the conveyance of Claims, in particular, remote 136 attestation procedures (RATS, see [I-D.ietf-rats-architecture]) 137 require a standardized data definition and encoding format that can 138 be transferred and transported using different communication 139 channels. As these are Claims, [RFC8392] is a suitable format. 140 However, the way these Claims are secured depends on the deployment, 141 the security capabilities of the device, as well as their software 142 stack. For example, a Claim may be securely stored and conveyed 143 using a device's Trusted Execution Environment (TEE, see 144 [I-D.ietf-teep-architecture]) or especially in some resource 145 constrained environments, the same process that provides the secure 146 communication transport is also the delegate to compose the Claim to 147 be conveyed. Whether it is a transfer or transport, a Secure Channel 148 is presumed to be used for conveying such UCCS. The following 149 sections further describe the RATS usage scenario and corresponding 150 requirements for UCCS deployment. 152 3. Characteristics of a Secure Channel 154 A Secure Channel for the conveyance of UCCS needs to provide the 155 security properties that would otherwise be provided by COSE for a 156 CWT. In this regard, UCCS is similar in security considerations to 157 JWTs [RFC8725] using the algorithm "none". RFC 8725 states: "if a 158 JWT is cryptographically protected end-to-end by a transport layer, 159 such as TLS using cryptographically current algorithms, there may be 160 no need to apply another layer of cryptographic protections to the 161 JWT. In such cases, the use of the "none" algorithm can be perfectly 162 acceptable.". Analogously, the considerations discussed in Sections 163 2.1, 3.1, and 3.2 of RFC 8725 apply to the use of UCCS as elaborated 164 on in this document. 166 Secure Channels are often set up in a handshake protocol that 167 mutually derives a session key, where the handshake protocol 168 establishes the authenticity of one of both ends of the 169 communication. The session key can then be used to provide 170 confidentiality and integrity of the transfer of information inside 171 the Secure Channel. A well-known example of a such a Secure Channel 172 setup protocol is the TLS [RFC8446] handshake; the TLS record 173 protocol can then be used for secure conveyance. 175 As UCCS were initially created for use in Remote ATtestation 176 procedureS (RATS) Secure Channels, the following subsection provides 177 a discussion of their use in these channels. Where other 178 environments are intended to be used to convey UCCS, similar 179 considerations need to be documented before UCCS can be used. 181 3.1. UCCS and Remote ATtestation procedureS (RATS) 183 For the purposes of this section, the Verifier is the receiver of the 184 UCCS and the Attester is the provider of the UCCS. 186 Secure Channels can be transient in nature. For the purposes of this 187 specification, the mechanisms used to establish a Secure Channel are 188 out of scope. 190 As a minimum requirement in the scope of RATS Claims, the Verifier 191 MUST authenticate the Attester as part of the establishment of the 192 Secure Channel. Furthermore, the channel MUST provide integrity of 193 the communication from the Attester to the Verifier. If 194 confidentiality is also required, the receiving side needs to be be 195 authenticated as well, i.e., the Verifier and the Attester SHOULD 196 mutually authenticate when establishing the Secure Channel. 198 The extent to which a Secure Channel can provide assurances that UCCS 199 originate from a trustworthy attesting environment depends on the 200 characteristics of both the cryptographic mechanisms used to 201 establish the channel and the characteristics of the attesting 202 environment itself. 204 A Secure Channel established or maintained using weak cryptography 205 may not provide the assurance required by a relying party of the 206 authenticity and integrity of the UCCS. 208 Ultimately, it is up to the Verifier's policy to determine whether to 209 accept a UCCS from the Attester and to the type of Secure Channel it 210 must negotiate. While the security considerations of the 211 cryptographic algorithms used are similar to COSE, the considerations 212 of the secure channel should also adhere to the policy configured at 213 each of the Attester and the Verifier. However, the policy controls 214 and definitions are out of scope for this document. 216 Where the security assurance required of an attesting environment by 217 a relying party requires it, the attesting environment may be 218 implemented using techniques designed to provide enhanced protection 219 from an attacker wishing to tamper with or forge UCCS. A possible 220 approach might be to implement the attesting environment in a 221 hardened environment such as a TEE [I-D.ietf-teep-architecture] or a 222 TPM [TPM2]. 224 When UCCS emerge from the Secure Channel and into the Verifier, the 225 security properties of the Secure Channel no longer apply and UCCS 226 have the same properties as any other unprotected data in the 227 Verifier environment. If the Verifier subsequently forwards UCCS, 228 they are treated as though they originated within the Verifier. 230 As with EATs nested in other EATs (Section 3.12.1.2 of 231 [I-D.ietf-rats-eat]), the Secure Channel does not endorse fully 232 formed CWTs transferred through it. Effectively, the COSE envelope 233 of a CWT shields the CWT Claims Set from the endorsement of the 234 Secure Channel. (Note that EAT might add a nested UCCS Claim, and 235 this statement does not apply to UCCS nested into UCCS, only to fully 236 formed CWTs) 238 3.2. Privacy Preserving Channels 240 A Secure Channel which preserves the privacy of the Attester may 241 provide security properties equivalent to COSE, but only inside the 242 life-span of the session established. In general, a Verifier cannot 243 correlate UCCS received in different sessions from the same attesting 244 environment based on the cryptographic mechanisms used when a privacy 245 preserving Secure Channel is employed. 247 In the case of a Remote Attestation, the attester must consider 248 whether any UCCS it returns over a privacy preserving Secure Channel 249 compromises the privacy in unacceptable ways. As an example, the use 250 of the EAT UEID [I-D.ietf-rats-eat] Claim in UCCS over a privacy 251 preserving Secure Channel allows a verifier to correlate UCCS from a 252 single attesting environment across many Secure Channel sessions. 253 This may be acceptable in some use-cases (e.g. if the attesting 254 environment is a physical sensor in a factory) and unacceptable in 255 others (e.g. if the attesting environment is a device belonging to a 256 child). 258 4. IANA Considerations 260 In the registry [IANA.cbor-tags], IANA is requested to allocate the 261 tag in Table 1 from the FCFS space, with the present document as the 262 specification reference. 264 +========+===========+======================================+ 265 | Tag | Data Item | Semantics | 266 +========+===========+======================================+ 267 | TBD601 | map | Unprotected CWT Claims Set [RFCthis] | 268 +--------+-----------+--------------------------------------+ 270 Table 1: Values for Tags 272 5. Security Considerations 274 The security considerations of [RFC7049] and [RFC8392] apply. 276 Section 3 discusses security considerations for Secure Channels, in 277 which UCCS might be used. This documents provides the CBOR tag 278 definition for UCCS and a discussion on security consideration for 279 the use of UCCS in Remote ATtestation procedureS (RATS). Uses of 280 UCCS outside the scope of RATS are not covered by this document. The 281 UCCS specification - and the use of the UCCS CBOR tag, 282 correspondingly - is not intended for use in a scope where a scope- 283 specific security consideration discussion has not been conducted, 284 vetted and approved for that use. 286 5.1. General Considerations 288 Implementations of Secure Channels are often separate from the 289 application logic that has security requirements on them. Similar 290 security considerations to those described in 291 [I-D.ietf-cose-rfc8152bis-struct] for obtaining the required levels 292 of assurance include: 294 * Implementations need to provide sufficient protection for private 295 or secret key material used to establish or protect the Secure 296 Channel. 298 * Using a key for more than one algorithm can leak information about 299 the key and is not recommended. 301 * An algorithm used to establish or protect the Secure Channel may 302 have limits on the number of times that a key can be used without 303 leaking information about the key. 305 The Verifier needs to ensure that the management of key material used 306 establish or protect the Secure Channel is acceptable. This may 307 include factors such as: 309 * Ensuring that any permissions associated with key ownership are 310 respected in the establishment of the Secure Channel. 312 * Cryptographic algorithms are used appropriately. 314 * Key material is used in accordance with any usage restrictions 315 such as freshness or algorithm restrictions. 317 * Ensuring that appropriate protections are in place to address 318 potential traffic analysis attacks. 320 5.2. AES-CBC_MAC 322 * A given key should only be used for messages of fixed or known 323 length. 325 * Different keys should be used for authentication and encryption 326 operations. 328 * A mechanism to ensure that IV cannot be modified is required. 330 [I-D.ietf-cose-rfc8152bis-algs], Section 3.2.1 contains a detailed 331 explanation of these considerations. 333 5.3. AES-GCM 335 * The key and nonce pair are unique for every encrypted message. 337 * The maximum number of messages to be encrypted for a given key is 338 not exceeded. 340 [I-D.ietf-cose-rfc8152bis-algs], Section 4.1.1 contains a detailed 341 explanation of these considerations. 343 5.4. AES-CCM 345 * The key and nonce pair are unique for every encrypted message. 347 * The maximum number of messages to be encrypted for a given block 348 cipher is not exceeded. 350 * The number of messages both successfully and unsuccessfully 351 decrypted is used to determine when rekeying is required. 353 [I-D.ietf-cose-rfc8152bis-algs], Section 4.2.1 constains a detailed 354 explanation of these considerations. 356 5.5. ChaCha20 and Poly1305 358 * The nonce is unique for every encrypted message. 360 * The number of messages both successfully and unsuccessfully 361 decrypted is used to determine when rekeying is required. 363 [I-D.ietf-cose-rfc8152bis-algs], Section 4.3.1 contains a detailed 364 explanation of these considerations. 366 6. References 368 6.1. Normative References 370 [IANA.cbor-tags] 371 IANA, "Concise Binary Object Representation (CBOR) Tags", 372 . 374 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 375 Requirement Levels", BCP 14, RFC 2119, 376 DOI 10.17487/RFC2119, March 1997, 377 . 379 [RFC7049] Bormann, C. and P. Hoffman, "Concise Binary Object 380 Representation (CBOR)", RFC 7049, DOI 10.17487/RFC7049, 381 October 2013, . 383 [RFC8152] Schaad, J., "CBOR Object Signing and Encryption (COSE)", 384 RFC 8152, DOI 10.17487/RFC8152, July 2017, 385 . 387 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 388 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 389 May 2017, . 391 [RFC8392] Jones, M., Wahlstroem, E., Erdtman, S., and H. Tschofenig, 392 "CBOR Web Token (CWT)", RFC 8392, DOI 10.17487/RFC8392, 393 May 2018, . 395 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 396 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 397 . 399 [RFC8725] Sheffer, Y., Hardt, D., and M. Jones, "JSON Web Token Best 400 Current Practices", BCP 225, RFC 8725, 401 DOI 10.17487/RFC8725, February 2020, 402 . 404 [TPM2] "Trusted Platform Module Library Specification, Family 405 "2.0", Level 00, Revision 01.59 ed., Trusted Computing 406 Group", 2019. 408 6.2. Informative References 410 [I-D.ietf-cose-rfc8152bis-algs] 411 Schaad, J., "CBOR Object Signing and Encryption (COSE): 412 Initial Algorithms", Work in Progress, Internet-Draft, 413 draft-ietf-cose-rfc8152bis-algs-12, 24 September 2020, 414 . 417 [I-D.ietf-cose-rfc8152bis-struct] 418 Schaad, J., "CBOR Object Signing and Encryption (COSE): 419 Structures and Process", Work in Progress, Internet-Draft, 420 draft-ietf-cose-rfc8152bis-struct-15, 1 February 2021, 421 . 424 [I-D.ietf-rats-architecture] 425 Birkholz, H., Thaler, D., Richardson, M., Smith, N., and 426 W. Pan, "Remote Attestation Procedures Architecture", Work 427 in Progress, Internet-Draft, draft-ietf-rats-architecture- 428 10, 9 February 2021, . 431 [I-D.ietf-rats-eat] 432 Mandyam, G., Lundblade, L., Ballesteros, M., and J. 433 O'Donoghue, "The Entity Attestation Token (EAT)", Work in 434 Progress, Internet-Draft, draft-ietf-rats-eat-09, 7 March 435 2021, . 438 [I-D.ietf-teep-architecture] 439 Pei, M., Tschofenig, H., Thaler, D., and D. Wheeler, 440 "Trusted Execution Environment Provisioning (TEEP) 441 Architecture", Work in Progress, Internet-Draft, draft- 442 ietf-teep-architecture-14, 22 February 2021, 443 . 446 Appendix A. Example 448 The example CWT Claims Set from Appendix A.1 of [RFC8392] can be 449 turned into an UCCS by enclosing it with a tag number TBD601: 451 ( 452 { 453 / iss / 1: "coap://as.example.com", 454 / sub / 2: "erikw", 455 / aud / 3: "coap://light.example.com", 456 / exp / 4: 1444064944, 457 / nbf / 5: 1443944944, 458 / iat / 6: 1443944944, 459 / cti / 7: h'0b71' 460 } 461 ) 463 Authors' Addresses 465 Henk Birkholz 466 Fraunhofer SIT 467 Rheinstrasse 75 468 64295 Darmstadt 469 Germany 471 Email: henk.birkholz@sit.fraunhofer.de 472 Jeremy O'Donoghue 473 Qualcomm Technologies Inc. 474 279 Farnborough Road 475 Farnborough 476 GU14 7LS 477 United Kingdom 479 Email: jodonogh@qti.qualcomm.com 481 Nancy Cam-Winget 482 Cisco Systems 483 3550 Cisco Way 484 San Jose, CA 95134 485 United States of America 487 Email: ncamwing@cisco.com 489 Carsten Bormann 490 Universitaet Bremen TZI 491 Bibliothekstrasse 1 492 28369 Bremen 493 Germany 495 Phone: +49-421-218-63921 496 Email: cabo@tzi.de