You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: draft-romann-mud-constrained.md
+39-99Lines changed: 39 additions & 99 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,8 +37,9 @@ entity:
37
37
SELF: "[RFC-XXXX]"
38
38
39
39
--- abstract
40
-
This document specifies additional ways for discovering Manufacturer Usage Descriptions (MUD), especially in constrained environments.
41
-
We propose allowing the use of MUD URLs using the "coaps://", "coaps+tcp://", and "coaps+ws://" schemes and additional mechanisms for emitting the URLs via CoAP and NDP.
40
+
This document specifies additional ways for discovering and emitting
41
+
Manufacturer Usage Descriptions (MUD), especially in constrained environments,
42
+
utilizing the Constrained Application Protocol (CoAP).
42
43
43
44
TODO: Should be updated.
44
45
@@ -51,21 +52,17 @@ As the RFC states, the goal of MUD is to provide a means for end devices to
51
52
signal to the network what sort of access and network functionality they require
52
53
to properly function.
53
54
54
-
Schemes that rely on connectivity to bootstrap the network might be flaky if that connectivity is not present, potentially preventing the device from working correctly in the absence of Internet connectivity. Moreover, even in environments that do provide connectivity it is unclear how continued operation can occur when the manufacturer's server is no longer available.
55
+
While {{!RFC8520}} contemplates the use of CoAP-related {{!RFC7252}} policies,
56
+
the MUD URL discovery methods it specifies (DHCP/DHCPv6, LLDP, and X.509
57
+
certificates) are not well-suited for constrained environments (e.g., 802.15.4
58
+
networks using 6LoWPAN and SLAAC).
55
59
56
-
While {{!RFC8520}} contemplates the use of CoAP-related {{!RFC7252}} policies, it does not provide a viable means for constrained devices to distribute their MUD URLs in a network, since the methods it specifies (DHCP/DHCPv6, LLDP, and X.509 certificates) are not well-suited for the use with IPv6 in general and protocols like 6LoWPAN in particular.
57
-
58
-
Therefore, this document introduces a number of additional ways for distributing MUD URLs -- such as well-known URIs, an NDP option and parameters for the CoRE Link-Format -- which are better suited for constrained devices.
59
-
Furthermore, using COSE objects, Things can distribute a signed MUD URL which allows MUD managers to better validate the authenticity of both the URL itself and the associated MUD file.
60
-
<!--
61
-
Furthermore, it allows the secure CoAP protocol variants ("coaps://" {{!RFC7252}} as well as "coaps+tcp://", and "coaps+ws://" {{!RFC8323}}) for the retrieval of MUD URLs.
62
-
63
-
TODO: Make final decision if still relevant
64
-
-->
65
-
66
-
<!-- In theory, the permission for using secure CoAP also allows for the hosting of MUD files on IoT devices themselves.
67
-
However, since MUD files must be encoded as JSON {{!RFC8259}}, this practice is discouraged for constrained devices as of writing this document and should only be considered once a more efficient encoding format, such as CBOR {{!RFC8949}}, has been specified for the use with MUD files.
68
-
Such a specification is out of this document's scope, though. -->
60
+
Therefore, this document introduces a number of additional ways for distributing
61
+
MUD URLs -- such as well-known URIs and parameters for the CoRE Link-Format --
62
+
which are better suited for constrained devices.
63
+
Furthermore, using CBOR Web Tokens (CWTs), Things can distribute a signed MUD URL which
64
+
allows MUD managers to better validate the authenticity of both the URL itself
65
+
and the associated MUD file.
69
66
70
67
The rest of this document is structured as follows: ... TODO
71
68
@@ -84,10 +81,7 @@ main network components relevant for this document:
84
81
The *Thing* that wants to obtain network access via a Router or Switch, and the
85
82
*MUD Manager* that processes MUD URLs, retrieves MUD files from the
86
83
MUD file server, and configures other network components accordingly.
87
-
88
-
While exposing a MUD URL via the NDP option defined in {{ndp}} works similar to
89
-
using DHCP(v6), with the router forwarding an emitted MUD URL to the MUD
90
-
manager, both the Thing and the MUD manager can play more active roles when
84
+
Both the Thing and the MUD manager can play more active roles when
91
85
using CoAP {{!RFC7252}} for exposing and discovering MUD URLs.
92
86
93
87
A general overview of the MUD architecture adjusted for using CoAP in a
@@ -170,49 +164,21 @@ TODO: Replace diagram
170
164
171
165
TODO: Add more architecture stuff here.
172
166
173
-
# Exposing a MUD URL using NDP {#ndp}
174
-
175
-
IPv6 hosts do not require DHCP to get access to the default gateway.
176
-
Using NDP {{!RFC4861}} and Stateless Address Autoconfiguration (SLAAC) {{!RFC4862}}, nodes can configure global addresses on their own based on prefixes contained in NDP Router Advertisements (RAs).
177
-
Therefore, DHCPv6 is typically not necessary for IPv6 hosts, which is a problem for the distribution of MUD URLs for these kinds of devices.
178
-
179
-
To solve this issue, this document introduces a new option for the NDP which makes it possible to include a MUD URL in Router Solicitations, which can be used for prompting Routers to generate RAs.
180
-
This option has the following format:
181
-
182
-
~~~~
183
-
0 1
184
-
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
185
-
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
186
-
| Type | Length |
187
-
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
188
-
| |
189
-
+ MUDstring |
190
-
| |
191
-
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
192
-
193
-
Fields:
194
-
195
-
Type: TBD38
167
+
# General Considerations
196
168
197
-
Length: 8-bit unsigned integer. Contains the
198
-
length of the MUDstring in octets.
169
+
For this document, we focus on two mechanisms for exposing MUD URLs in a
170
+
constrained network:
171
+
On the one hand, Things can expose MUD-URLs as a dedicated CoAP resource.
172
+
This allows them to further secure the payload and provide additional
173
+
authentication, e.g., by embedding the URL in a CBOR Web Token.
174
+
On the other hand, Things can include a MUD URL in a list of links, using, for
175
+
example, the CoRE Link-Format.
176
+
This Web Linking approach also allows Things to submit MUD URLs to a Directory
TODO: Is there anything to take into account when using NDP on 6LoWPANs?
207
-
208
-
# MUD URL using CoAP - General Considerations
209
-
210
-
Things can expose MUD-URLs as any other resource.
211
-
Furthermore, they can expose hypermedia links pointing to MUD files using the
212
-
CoRE Link-Format {{!RFC6690}}.
213
-
Using additional Link-Format parameters and well-known URIs, this document
214
-
introduces new possibilities for discovering MUD URLs in constrained
215
-
environments.
179
+
In the following, we will first outline these additional means for exposing MUD
180
+
URLs before going into more detail regarding potential exposure and discovery
181
+
flows.
216
182
217
183
## MUD CoAP Payloads
218
184
@@ -231,60 +197,34 @@ environments.
231
197
232
198
## Resource Discovery
233
199
234
-
### Well-known URIs and Multicast Addresses
200
+
In this section, additional methods for resource discovery in constrained environments are defined.
235
201
236
-
This document introduces two new well-known URIs for discovering both MUD files and MUD URLs directly: `/.well-known/mud-file`and `/.well-known/mud-url`.
202
+
### Well-known URI and Multicast Addresses
237
203
238
-
<!-- TODO: This well-known URI could also be removed -->
239
-
`/.well-known/mud-file`MAY be used to expose a MUD file hosted by a device itself.
240
-
This MUD file MUST describe the device that hosts it and SHOULD be signed in accordance with section 13 of {{!RFC8520}}.
241
-
As stated in the introduction, this strategy is currently NOT RECOMMENDED for constrained devices, as only MUD files encoded as JSON are defined at the time of writing.
242
-
This recommendation will most likely be updated once a canonical encoding format for MUD in CBOR becomes available.
204
+
This document introduces a new well-known URI for discovering MUD URLs directly: `/.well-known/mud-url`.
243
205
244
-
On the other hand, `/.well-known/mud-url` MAY be used to expose a URL pointing to a MUD file hosted by an external MUD file server.
245
-
This MUD file also MUST describe the device the URL was retrieved from.
246
-
247
-
<!-- ## Multicast -->
206
+
`/.well-known/mud-url`MAY be used to expose a URL pointing to a MUD file hosted by an external MUD file server.
207
+
This MUD file MUST describe the device the URL was retrieved from or is referring to within a list of CoRE links.
248
208
249
209
{{!RFC7252}} registers one IPv4 and one IPv6 address each for the purpose of CoAP multicast.
250
210
In addition to these already existing "All CoAP Nodes" multicast addresses, this document defines additional "All MUD CoAP Nodes" multicast addresses that can be used to address only the subset of CoAP Nodes that support MUD.
251
211
If a device exposes a MUD URL via CoAP, it SHOULD join the respective multicast groups for the IP versions it supports.
252
212
253
-
TODO: Add example
254
-
255
-
## CoRE Link Format and CoRE Resource Direectories
213
+
### CoRE Link Format and CoRE Resource Directories
256
214
257
-
Resources which either host MUD URLs or MUD files MAY also be indicated using the CoRE Link Format !{{RFC6690}}.
215
+
Resources which either host MUD URLs or MUD files MAY be indicated using the CoRE Link Format {{!RFC6690}}.
258
216
For this purpose, additional link parameters are defined:
217
+
<!-- TBD: Could also use the link-relation described-by with resource types mud-file or mud-file -->
259
218
With the link relation-types `mud-file` and `mud-url`, a link MAY be annotated as pointing to a MUD file or a MUD URL, respectively.
260
219
Note that the use of these relation-types is not limited to constrained environments and can also be used to annotate links in other contexts, such as a Web of Things Thing Description {{?W3C.wot-thing-description11}}.
261
220
262
221
MUD Managers or other devices can send a GET requests to a CoAP server for `/.well-known/core` and get in return a list of hypermedia links to other resources hosted in that server, encoded using the CoRE Link-Format {{!RFC6690}}.
263
-
Among those, it will get the path to the resource exposing the MUD URL, for example `/.well-known/mud-url` and Resource Types like `rel=mud`.
264
-
265
-
<!-- TODO: Mention resource-type and /.well-known/core -->
266
-
267
-
<!-- ## CoRE Resource Directories -->
222
+
Among those, it will get the path to the resource exposing the MUD URL, for example `/.well-known/mud-url` and link relation-types like `rel=mud-url`.
268
223
269
224
By using CoRE Resource Directories {{?RFC9176}}, devices can register a MUD file or MUD URL and use the directory as a MUD repository, making it discoverable with the usual RD Lookup steps.
270
-
A MUD manager itself MAY also act as a Resource Directory, directly applying registered MUD URLs or files to the network.
271
-
272
-
Lookup will use the link-relation type `rel=mud-file`, the example in Link-Format {{?RFC6690}} is:
273
-
274
-
~~~
275
-
REQ: GET coap://rd.company.com/rd-lookup/res?rel=mud-url
0 commit comments