Skip to content

Commit 2650694

Browse files
committed
Start bringing back the PoP Methods section
1 parent 0f32b1d commit 2650694

File tree

1 file changed

+24
-13
lines changed

1 file changed

+24
-13
lines changed

draft-romann-iotops-mud-constrained.md

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -428,27 +428,31 @@ Regarding the actual MUD URL payload transmitted using CoAP, the following consi
428428

429429
## Proof-of-Possession Methods {#behavior_pop}
430430

431-
TODO
432-
433-
<!-- TODO mention here that the CWT must be signed by the manufacturer, while the PoP key must be owned and specific to the device -->
434-
435-
### Requirements for Proof-of-Possession
436-
<!-- TODO this may also be an appendix (cf. RFC 9200, Appendix C) -->
437-
438-
TODO
431+
If the CWT does not only contain the MUD URL but also an `cnf` claim,
432+
it is RECOMMENDED that a MUD Receiver performs a proof-of-permission mechanism
433+
to verify the binding of the token to the respective device via its private
434+
proof-of-possession (PoP) key.
435+
While the CWT MUST be signed by the manufacturer the PoP key must be owned by
436+
and specific to the device.
437+
438+
This section details two proof-of-posession mechanisms using DTLS and OSCORE,
439+
both of which are (with minor differences) applicable to both the
440+
Thing-initiated and the Receiver-iniated flow.
441+
General considerations regarding the use of PoP methods are discussed in
442+
{{pop-requirements}}.
439443

440444
### Proof-of-Possession using DTLS
441445

442-
TODO
443-
444-
<!-- TODO: This is the old, original text, maybe we can reuse parts of this
446+
TODO: Update
445447

446448
Proof-of-Possession claims that are transmitted over CoAP without (D)TLS MUST represent public keys, Receivers MUST treat any symmetric keys sent over insecure channels as invalid/compromised.
447449
To do so, the following procedures SHOULD be used.
448450
Both of the following procedures use the establishment of a DTLS session using the PoP key in order to prove the possession of the key, similarly to the procedures defined in {{!RFC9202}}.
449451

450452
### For the Thing-initiated Flow
451453

454+
TODO: Update
455+
452456
1. After submitting the MUD URL, the MUD Receiver parses the token.
453457
If it detects proof-of-possession claims, the receiver MUST reply with a 4.01 (Unauthorized) CoAP response code and reject the token for now.
454458
If the original submission request was not performed using CoAPS, the Receiver MUST also return a set of key information that can be used to establish a CoAP+DTLS session with it, as well as a CoAPS URI indicating the location of the secured submission resource.
@@ -459,15 +463,16 @@ Both of the following procedures use the establishment of a DTLS session using t
459463
TODO do we still want to re-send the CWT?
460464

461465
### For the Receiver-initiated Flow
466+
467+
TODO: Update
468+
462469
1. After receiving the MUD URL from a request (e.g., a multicast request), the MUD Receiver parses the token.
463470
If it detects proof-of-possession claims, the receiver MUST continue with the following procedure before treating the CWT as valid.
464471
2. The receiver repeats the MUD URL request, this time using DTLS.
465472
During the DTLS handshake, the Receiver must require the Thing to use the proof-of-possession key included in the originally received token in order to successfully establish the DTLS session.
466473
3. After the DTLS handshake, the Thing has proven possession of the key included in the CWT to the MUD Receiver, which can then treat the CWT as valid.
467474
TODO Unsure if DTLS even works without mutual auth, but i dont see why it shouldn't
468475

469-
-->
470-
471476
### Proof-of-Possession using OSCORE
472477

473478
TODO
@@ -526,6 +531,12 @@ Network operators SHOULD specify a policy that describes:
526531

527532
--- back
528533

534+
# Requirements for Proof-of-Possession {#pop-requirements}
535+
536+
TODO
537+
538+
<!-- (cf. RFC 9200, Appendix C) -->
539+
529540
<!--
530541
# Acknowledgments
531542
{: numbered="no"}

0 commit comments

Comments
 (0)