Markdown Version | Session Recording
Session Date/Time: 08 Nov 2021 16:00
core
Summary
The core working group meeting at IETF 112 covered updates on several in-progress drafts, including CRI (Concise Representation of URIs), CoRAL (CBOR-based Resource Abstraction Language), CoAP Group Communication, Group OSCORE, and Key Update for OSCORE (Kudos). A new draft on a CoAP option for performance measurement was also introduced. Key discussions centered on URI data model representation, application group naming, enhanced security advice for group communication, mandatory-to-implement algorithms for Group OSCORE, and a new rekeying mechanism for OSCORE. The working group also formally adopted the "Key Update for OSCORE" (Kudos) draft.
Key Discussion Points
- Working Group Status:
- RFC 9100 (CoAP Sentinel Versions) was published.
- Two documents were approved for publication as Proposed Standard and are in the RFC Editor Queue.
- Two CoAP-CoNf documents are in ISG processing, with positive reviews.
- Group OSCORE had its first working group last call (WGLC) comments addressed, approaching a second WGLC.
- Chairs plan to update working group milestones. An informal meeting/interim for CoAP applications was discussed.
- Rumors about the working group concluding were dispelled by the chairs.
- CRI (Concise Representation of URIs):
- Aims to standardize a CBOR-based, concise URI format addressing common URI implementation errors.
- Current version (08) defines CRI and CRI references, is CBOR-based, and is considered feature-complete for RFC 3986 subset supported by CoAP. Includes parsing for URNs and hostnames.
- Open Issues:
- Prefix Compression: Difficulty supporting prefix compression (e.g., JSON-LD
@context) for partial paths due to CBOR-packed limitations. This represents a functional deficiency. - Percent Encoding: CoAP's restrictive stance on percent encoding prevents full support for structures like W3C DIDs. A proposed solution involves alternating unencoded and percent-encoded parts within an array, though this introduces complexity.
- Prefix Compression: Difficulty supporting prefix compression (e.g., JSON-LD
- A preference was expressed for a solution within CRI over falling back to URIs, to calm the "wilderness" of URI usage.
- CoRAL (CBOR-based Resource Abstraction Language):
- A data model and language for describing resource metadata and interactions, optimized for constrained devices.
- Provides semantic information via predicates, similar to RDF but more compact and constraint-device friendly (e.g., option numbers for URI predicates).
- Users include Problem Details, PubSub, ACE group management, and potentially SDF.
- Key Updates: Information model (RDF-ish basic model + tree structure for processing), dictionary definition (leveraging packed CBOR tags, pre-populated dictionaries via media types, or named dictionaries). Text serialization has been removed in favor of EDN and Turtle examples.
- Queries and reification are deferred to later phases.
- Next steps include coordinating with target applications to gather a corpus for binary serialization evaluation and defining a core feature subset.
- Group Communication for CoAP (groupcom):
- This draft serves as a normative successor to RFC 7390, covering general group communication, including CoAP Observe, Block-wise, and Group OSCORE security.
- Key Updates (v05):
- Removed the "Multi ETag" option for simplicity.
- Clarified details on updates/obsoletions of RFCs.
- Expanded section on "Application Group Naming," allowing identifiers in URI path, query, host, port, or as a CoAP option, or implicitly.
- Expanded section on "Group Discovery," including examples of discovery via CoAP and Link Format.
- Stronger Security Advice: Explicitly states that unsecured group communication is "not recommended," with exceptions like discovery requiring careful consideration and mitigation of risks (e.g., amplification attacks).
- The document is deemed ready for WGLC, with additional reviews planned.
- Group OSCORE:
- Version 13 incorporated minor updates following the first WGLC.
- Key Updates:
- Terminology aligned with AD-HOC draft for public keys (referring to CCS).
- Fixed an oversight in Group Encryption Key derivation size.
- Mandatory-to-Implement (MTI) clarified: Aligned with AD-HOC; non-constrained devices expected to support both EDDSA and ECDSA, constrained devices at least one. Similar rationale for pairwise key agreement curves.
- The document is considered ready for a second WGLC.
- Test vectors are being produced, expected to be extensive, and may warrant a separate informational draft.
- It was noted that Group OSCORE and Group Communication for CoAP should ideally proceed to WGLC in parallel.
- Key Update for OSCORE (Kudos):
- Addresses key usage limits (encryption, failed decryptions) for AEAD algorithms, as per the C4G document.
- Part 1 (Key Limits): Defines fixed values (Q, V, L) for various algorithms, with 'L' (message size limit) now explicitly calculated in bytes. Probabilities for confidentiality and integrity advantage (CA/IA) are within safe margins, prompting an open question about increasing Q and L further.
- Part 2 (Kudos Procedure): A new one-round-trip rekeying method where client and server exchange nonces (R1, R2) to derive new contexts via
UpdateCtx. It preserves the ID context and is compatible with AD-HOC. Extends the OSCORE option with a new flag bit andid_detailfield. - Observation Handling: Proposes terminating observations after rekeying due to cryptographic binding issues, as re-establishing is simpler than complex workarounds. This raised concerns about visibility at the application layer.
- Deprecates and replaces Appendix B.2 of RFC 8613.
- The document foundation and protocol are considered stable, with implementation plans.
- Cacheable OSCORE:
- Focused on ensuring robust request-response binding, particularly in scenarios lacking source authentication for requests (e.g., non-traditional responses, group communication with untrusted members, non-authenticated GETs).
- The proposed solution involves embedding a hash or key information of the request into a Class I OSCORE option, making it part of the Additional Authenticated Data (AAD).
- This approach augments the standard OSCORE binding mechanism, allowing receivers to verify responses are tied to specific requests even without source authentication.
- This enhances cacheable OSCORE's readability and verifiability and enables new use cases where full signatures on requests are not desired.
- OSCORE Capable Proxies:
- Aims to update the OSCORE RFC to define intermediaries as OSCORE endpoints, allowing for "nested OSCORE" (multiple layers of protection for the same message).
- Use Cases: Group CoAP proxy, multicast notifications, LwM2M server as a CoAP proxy, transport indication proxies, firewalls, and potentially long proxy chains for client location privacy.
- Key Updates (v01):
- Lifted the previous limit of two protection layers.
- Introduced a generalized, simplified algorithm for message processing applicable to any endpoint (client, intermediary, server).
- Explicitly states no explicit signaling is needed; presence of CoAP options is sufficient.
- Endpoints should not panic if an OSCORE option remains after decryption.
- Certain options (e.g., CoAP corruption, proxy-intended options) must be protected.
- Next steps include adding caching examples (leveraging cacheable OSCORE), elaborating on use cases for more than two layers, and exploring compression with RFC 8824.
- CoAP Option for Performance Measurement:
- Motivation: Address the lack of simple, low-overhead performance measurement for constrained CoAP nodes, especially in unreliable modes. Existing CoAP reliability mechanisms are resource-intensive for measurement.
- Proposal: A new CoAP option carrying "performance measurement bits" inspired by IETF IPPM's Explicit Flow Measurement, Quick's Spin Bit, and Alternate Marking Methodology's Square Bit.
- Mechanism:
- Spin Bit: Creates a square wave signal whose length directly indicates RTT, reducing the need for extensive timestamping.
- Square Bit: Uses a fixed number of packets in a square wave for loss measurement.
- Event Bits: Reserved for advanced usage.
- Benefits: Easier RTT, delay, and loss measurement for constrained nodes, potential for advanced usage (e.g., adaptive protocol parameters based on network conditions).
- Further clarification on user scenarios, especially involving proxies, is needed.
Decisions and Action Items
- Decision: The "Key Update for OSCORE" (Kudos) draft (draft-ietf-core-oscore-key-update) was adopted as a working group document, pending confirmation on the mailing list.
- Action Item (Chairs): Initiate a working group last call for both "CoAP Group Communication" (draft-ietf-core-groupcom) and "Group OSCORE" (draft-ietf-core-group-oscore) in parallel.
- Action Item (Chairs): Send a formal adoption call for "Key Update for OSCORE" (Kudos) to the mailing list.
- Action Item (Chairs): Update the working group milestones on the data tracker to reflect ongoing work and upcoming documents for ISG submission.
- Action Item (Chairs): Discuss and potentially schedule an informal meeting or interim focusing on CoAP applications, possibly in December.
- Action Item (Authors - groupcom): Review updated parts, address open issues, and consider adding more concrete request/response examples for group discovery.
- Action Item (Authors - oscore-key-update): Prepare test vectors (potentially in a separate document), further refine key limits, and address open issues on the GitLab repo.
- Action Item (Authors - oscore-capable-proxies): Add caching examples, elaborate on use cases for more than two layers, and investigate RFC 8824 for compression.
- Action Item (Authors - coap-performance-measurement): Clarify user scenarios and deployment models, especially concerning proxies.
Next Steps
- CRI (href): More implementation and implementer reviews are needed before a working group last call. Address the functional deficiency regarding prefix compression and the percent encoding challenge.
- CoRAL: Coordinate with potential users (e.g., problem-details, pubsub, SDF) to gather examples and define a core feature subset for the initial iteration.
- Group Communication for CoAP (groupcom): Conduct further reviews of the updated sections, close outstanding issues, and potentially add more detailed examples.
- Group OSCORE: A second working group last call will be initiated. Production of extensive test vectors will continue, with a decision needed on their publication location (e.g., separate informational draft).
- Key Update for OSCORE (Kudos): Following working group adoption, continue refining the draft based on feedback, particularly concerning key limits and observation handling. Implementation efforts are planned.
- Cacheable OSCORE: Continue to refine the request-response binding mechanism, particularly in scenarios without source authentication for requests.
- OSCORE Capable Proxies: Add examples, elaborate on use cases for multi-layered protection, and explore integration with CoAP compression mechanisms.
- CoAP Option for Performance Measurement: Further develop the draft, clarifying user scenarios and welcoming community feedback and collaboration.