draft-ietf-opsawg-mud-acceptable-urls-00.txt | draft-ietf-opsawg-mud-acceptable-urls-01.txt | |||
---|---|---|---|---|
OPSAWG Working Group M. Richardson | OPSAWG Working Group M. Richardson | |||
Internet-Draft Sandelman Software Works | Internet-Draft Sandelman Software Works | |||
Updates: 8520 (if approved) W. Pan | Updates: 8520 (if approved) W. Pan | |||
Intended status: Best Current Practice Huawei Technologies | Intended status: Best Current Practice Huawei Technologies | |||
Expires: 30 July 2021 E. Lear | Expires: 5 August 2021 E. Lear | |||
Cisco Systems | Cisco Systems | |||
26 January 2021 | 1 February 2021 | |||
Authorized update to MUD URLs | Authorized update to MUD URLs | |||
draft-ietf-opsawg-mud-acceptable-urls-00 | draft-ietf-opsawg-mud-acceptable-urls-01 | |||
Abstract | Abstract | |||
This document provides a way for an RFC8520 Manufacturer Usage | This document provides a way for an RFC8520 Manufacturer Usage | |||
Description (MUD) definitions to declare what are acceptable | Description (MUD) definitions to declare what are acceptable | |||
replacement MUD URLs for a device. | replacement MUD URLs for a device. | |||
RFCEDITOR-please-remove: this document is being worked on at: | RFCEDITOR-please-remove: this document is being worked on at: | |||
https://github.com/mcr/iot-mud-acceptable-urls | https://github.com/mcr/iot-mud-acceptable-urls | |||
skipping to change at page 1, line 38 ¶ | skipping to change at page 1, line 38 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on 30 July 2021. | This Internet-Draft will expire on 5 August 2021. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
extracted from this document must include Simplified BSD License text | extracted from this document must include Simplified BSD License text | |||
as described in Section 4.e of the Trust Legal Provisions and are | as described in Section 4.e of the Trust Legal Provisions and are | |||
provided without warranty as described in the Simplified BSD License. | provided without warranty as described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Updating MUD URLs vs Updating MUD files . . . . . . . . . . . 3 | 2. Updating MUD URLs vs Updating MUD files . . . . . . . . . . . 3 | |||
2.1. Updating the MUD file in place . . . . . . . . . . . . . 3 | 2.1. Updating the MUD file in place . . . . . . . . . . . . . 3 | |||
2.1.1. Adding capabilities . . . . . . . . . . . . . . . . . 3 | 2.1.1. Adding capabilities . . . . . . . . . . . . . . . . . 4 | |||
2.1.2. Removing capabilities . . . . . . . . . . . . . . . . 4 | 2.1.2. Removing capabilities . . . . . . . . . . . . . . . . 4 | |||
2.1.3. Significant changes to protocols . . . . . . . . . . 5 | 2.1.3. Significant changes to protocols . . . . . . . . . . 5 | |||
2.2. Motivation for updating MUD URLs . . . . . . . . . . . . 5 | 2.2. Motivation for updating MUD URLs . . . . . . . . . . . . 5 | |||
3. Threat model for MUD URLs . . . . . . . . . . . . . . . . . . 5 | 3. Threat model for MUD URLs . . . . . . . . . . . . . . . . . . 5 | |||
3.1. Trust on First Use (TOFU): leveraging the manufacturer | 3.1. Trust on First Use (TOFU): leveraging the manufacturer | |||
signature . . . . . . . . . . . . . . . . . . . . . . . . 5 | signature . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.2. Concerns about same-signer mechanism . . . . . . . . . . 6 | 3.2. Concerns about same-signer mechanism . . . . . . . . . . 6 | |||
4. Outline of proposed mechanism . . . . . . . . . . . . . . . . 6 | 4. Outline of proposed mechanism . . . . . . . . . . . . . . . . 7 | |||
5. Changes to RFC8520 . . . . . . . . . . . . . . . . . . . . . 6 | 5. Changes to RFC8520 . . . . . . . . . . . . . . . . . . . . . 7 | |||
6. Privacy Considerations . . . . . . . . . . . . . . . . . . . 8 | 6. Privacy Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
7.1. Updating files vs Updating MUD URLs . . . . . . . . . . . 9 | 7.1. Updating files vs Updating MUD URLs . . . . . . . . . . . 9 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 9 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 9 | 8.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
Appendix A. Appendices . . . . . . . . . . . . . . . . . . . . . 10 | Appendix A. Appendices . . . . . . . . . . . . . . . . . . . . . 11 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
1. Introduction | 1. Introduction | |||
[RFC8520] provides a standardized way to describe how a specific | [RFC8520] provides a standardized way to describe how a specific | |||
purpose device makes use of Internet resources and associated | purpose device makes use of Internet resources and associated | |||
suggested network behavior, which are describled in a MUD file hosted | suggested network behavior, which are describled in a MUD file hosted | |||
in its manufacture's server. By providing a MUD URL, the network | in its manufacture's server. By providing a MUD URL, the network | |||
manager can locate this MUD file. MUD URLs can come from a number of | manager can locate this MUD file. MUD URLs can come from a number of | |||
sources: | sources: | |||
* IDevID Extensions | * IDevID Extensions | |||
* DHCP option | * DHCP option | |||
* LLDP TLV | * LLDP TLV | |||
* [I-D.richardson-opsawg-securehomegateway-mud] proposes to scan | * [I-D.richardson-mud-qrcode] proposes to scan them from QRcodes. | |||
them from QRcodes. | ||||
The IDevID mechanism provides a URL that is asserted | The IDevID mechanism provides a URL that is asserted | |||
cryptographically by a manufacturer. However, it is difficult for | cryptographically by a manufacturer. However, it is difficult for | |||
manufacturers to update the IDevID of a device which is already in a | manufacturers to update the IDevID of a device which is already in a | |||
box. | box. | |||
The DHCP and LLDP mechanisms are not signed, but are asserted by the | The DHCP and LLDP mechanisms are not signed, but are asserted by the | |||
device. A firmware update may update what MUD URL is emitted. | device. A firmware update may update what MUD URL is emitted. | |||
Sufficiently well targetted malware could also change the MUD URL. | Sufficiently well targetted malware could also change the MUD URL. | |||
The QRcode mechanism is usually done via paper/stickers, and is | The QRcode mechanism is usually done via paper/stickers, and is | |||
typically not under the control of the device itself at all. | typically not under the control of the device itself at all. | |||
However, being applied by a human and not easily changed, a MUD URL | ||||
obtained in this fashion is likely trustworthy. (It may not, due to | ||||
mixups in labelling represent the correct device, but this is a human | ||||
coordination issue, and is out of scope for this document) | ||||
While MUD files may include signatures, it is not mandatory to check | While MUD files may include signatures, [RFC8520] does not mandate | |||
them, and there is not a clear way to connect the entity which signed | checking them, and there is not a clear way to connect the entity | |||
the MUD file to the device itself. A malicious device does not need | which signed the MUD file to the device itself. | |||
to make up a MUD file if there is already an available, and already | ||||
trusted MUD file which it can use to impersonate the device. | ||||
One defense against this is to not trust MUD URLs which are different | This document limits itself to situations in which the MUD file is | |||
from the one that was placed in an IDevID. Or if the initial MUD URL | signed, and that the MUD controller has been configured to always | |||
was not taken from an IDevID, it could be trusted on first use. But, | check the signatures, rejecting files whose signatures do not match. | |||
if the MUD controller has locked down the URL, then updates to the | ||||
URL are difficult to do. | [RFC8520] does not specify how MUD controllers establish their trust | |||
in the manufacturers' signing key: there are many possible solutions | ||||
from manual configuration of trust anchors, some kind of automatic | ||||
configuration during onboarding, but also including to Trust on First | ||||
Use (TOFU). How this initial trust is established is not important | ||||
for this document, it is sufficient that some satisfactory initial | ||||
trust is established. | ||||
2. Updating MUD URLs vs Updating MUD files | 2. Updating MUD URLs vs Updating MUD files | |||
There are two ways in which a manufacturer can change what the is | There are two ways in which a manufacturer can change what the is | |||
processed by the MUD controller: they can change what is in the MUD | processed by the MUD controller: they can change what is in the MUD | |||
file (update-in-place), and or they change which file is processed by | file (update-in-place), and or they change which file is processed by | |||
the MUD controller by changing the URL (updated-url). | the MUD controller by changing the URL (updated-url). | |||
2.1. Updating the MUD file in place | 2.1. Updating the MUD file in place | |||
skipping to change at page 4, line 45 ¶ | skipping to change at page 5, line 11 ¶ | |||
are to be turned off or removed in subsequent versions of the | are to be turned off or removed in subsequent versions of the | |||
firmware, the MUD file will be updated to disallow connections that | firmware, the MUD file will be updated to disallow connections that | |||
previously were allowed. | previously were allowed. | |||
In this case, the new MUD file will forbid some connection which the | In this case, the new MUD file will forbid some connection which the | |||
old firmware still expects to do. As explained in the previous | old firmware still expects to do. As explained in the previous | |||
section, upgrades may not always occur immediately upon release of | section, upgrades may not always occur immediately upon release of | |||
the new firmware. | the new firmware. | |||
In this case the old device will be performing unwanted connections, | In this case the old device will be performing unwanted connections, | |||
and the MUD controller when be alerting the device owner that the | and the MUD controller will then send alerts to the network owner | |||
device is mis-behaving. This causes a false positive situation (see | that the device is mis-behaving. This causes a false positive | |||
[boycrieswolf]), leading to real security issues being ignored. This | situation (see [boycrieswolf]), leading to real security issues being | |||
is a serious issue as documented also in [boywolfinfosec], and | ignored. This is a serious issue as documented also in | |||
[falsemalware]. | [boywolfinfosec], and [falsemalware]. | |||
2.1.3. Significant changes to protocols | 2.1.3. Significant changes to protocols | |||
[I-D.reddy-opsawg-mud-tls] suggests MUD definitions to allow | [I-D.reddy-opsawg-mud-tls] suggests MUD definitions to allow | |||
examination of TLS protocol details. Such a profile may be very | examination of TLS protocol details. Such a profile may be very | |||
specific to the TLS library which is shipped in a device. Changes to | specific to the TLS library which is shipped in a device. Changes to | |||
the library (including bug fixes) may cause significant changes to | the library (including bug fixes) may cause significant changes to | |||
the profile, requiring changes to the profile described in the MUD | the profile, requiring changes to the profile described in the MUD | |||
file. Such changes are likely neither forward nor backward | file. Such changes are likely neither forward nor backward | |||
compatible with other versions, and in place updates to MUD files are | compatible with other versions, and in place updates to MUD files are | |||
skipping to change at page 6, line 22 ¶ | skipping to change at page 6, line 35 ¶ | |||
There is still a potential threat: a manufacturer which has many | There is still a potential threat: a manufacturer which has many | |||
products may have a MUD definition for another product that has the | products may have a MUD definition for another product that has the | |||
privileges that the malware desires. | privileges that the malware desires. | |||
The malware could simply change the expressed MUD URL to that of the | The malware could simply change the expressed MUD URL to that of the | |||
other product, and it will be accepted by the MUD controller as | other product, and it will be accepted by the MUD controller as | |||
valid. | valid. | |||
This works as long as manufacturers use a single key to sign all | This works as long as manufacturers use a single key to sign all | |||
products. Some manufacturers could sign each product with a | products. Some manufacturers could sign each product with a | |||
different key. Possibly, all the keys are collected into a single | different key. Going logically down this path, if all these product | |||
PKI, signed by a common certification authority. In this case, the | keys are collected into a single PKI, signed by a common | |||
question as to whether the MUD controller should pin the end-entity | certification authority. | |||
(EE) certificate, or the CA certificate. Pinning the EE certificate | ||||
defends against malware that changes the product type, but keeps the | In this case, the question then becomes whether the MUD controller | |||
manufacturer from being able to cycle the validity of the End-Entity | should pin the end-entity (EE) certificate, or the CA certificate. | |||
Certificate for cryptographic hygiene reasons. Pinning the CA | ||||
certificate allows the EE certificate to change, but may not defend | Pinning the EE certificate defends against malware that changes the | |||
against product type changes. | product type, but keeps the manufacturer from being able to cycle the | |||
validity of the End-Entity Certificate for cryptographic hygiene | ||||
reasons. | ||||
Pinning the CA certificate allows the EE certificate to change, but | ||||
may not defend against product type changes. | ||||
It is possible to invent policy mechanisms that would link the EE | It is possible to invent policy mechanisms that would link the EE | |||
certificate to a value that is in the MUD file. This could be a | certificate to a value that is in the MUD file. This could be a | |||
policy OID, or could involve some content in a subjectAltName. | policy OID, or could involve some content in a subjectAltName. | |||
Future work could go in this direction. This document proposes a | Future work could go in this direction. This document proposes a | |||
simpler solution. | simpler solution. | |||
4. Outline of proposed mechanism | 4. Outline of proposed mechanism | |||
The document proposes to limit what MUD URLs are considered valid | The document proposes to limit what MUD URLs are considered valid | |||
skipping to change at page 7, line 40 ¶ | skipping to change at page 8, line 16 ¶ | |||
URI. The test is simplified to: remove everything to the right of | URI. The test is simplified to: remove everything to the right of | |||
the last (rightmost) "/" in the URL of "root" MUD file URL, and the | the last (rightmost) "/" in the URL of "root" MUD file URL, and the | |||
proposed new URL. The resulting two strings MUST be identical. | proposed new URL. The resulting two strings MUST be identical. | |||
For as a simple example, if the "root" mud-url is | For as a simple example, if the "root" mud-url is | |||
http://example.com/hello/there/file.json then any URL that starts | http://example.com/hello/there/file.json then any URL that starts | |||
with http://example.com/hello/there/ would be acceptable, such as | with http://example.com/hello/there/ would be acceptable, such as | |||
http://example.com/hello/there/revision2.json. | http://example.com/hello/there/revision2.json. | |||
Once the new MUD file is accepted, then it becomes the new "root" MUD | Once the new MUD file is accepted, then it becomes the new "root" MUD | |||
file, and any subsequent updates must be relative to the MUD-URL in | file, and any subsequent updates MUST be relative to the MUD-URL in | |||
the new file. | the new file. | |||
This process allows a manufacturer to rework their file structure, to | This process allows a manufacturer to rework their file structure, to | |||
change web server hostnames (such as when there is an acquisition or | change web server hostnames (such as when there is an acquisition or | |||
merger), etc. so long as they retain the old structure long enough | merger), etc. so long as they retain the old structure long enough | |||
for all devices to upgrade at least once. | for all devices to upgrade at least once. | |||
(XXX: how should the trust anchor for the signature be updated when | (XXX: how should the trust anchor for the signature be updated when | |||
there is Merger&Acquisition) | there is Merger&Acquisition) | |||
skipping to change at page 8, line 25 ¶ | skipping to change at page 8, line 47 ¶ | |||
7. Security Considerations | 7. Security Considerations | |||
Prior to the standardization of the process in this document, if a | Prior to the standardization of the process in this document, if a | |||
device was infiltrated by malware, and said malware wished to make | device was infiltrated by malware, and said malware wished to make | |||
accesses beyond what the current MUD file allowed, the the malware | accesses beyond what the current MUD file allowed, the the malware | |||
would have to: | would have to: | |||
1. arrange for an equivalent MUD file to be visible somewhere on the | 1. arrange for an equivalent MUD file to be visible somewhere on the | |||
Internet | Internet | |||
2. depend upon the MUD-manager either not checking signatures, or | 2. depend upon the MUD controller either not checking signatures, or | |||
3. somehow get the manufacturer to sign the alternate MUD | 3. somehow get the manufacturer to sign the alternate MUD | |||
4. announce this new URL via DHCP or LLDP, updating the MUD-manager | 4. announce this new URL via DHCP or LLDP, updating the MUD | |||
with the new permissions. | controller with the new permissions. | |||
One way to accomplish (3) is to leverage the existence of MUD files | One way to accomplish (3) is to leverage the existence of MUD files | |||
created by the manufacturer for different classes of devices. Such | created by the manufacturer for different classes of devices. Such | |||
files would already be signed by the same manufacturer, eliminating | files would already be signed by the same manufacturer, eliminating | |||
the need to spoof a signature. | the need to spoof a signature. | |||
With the standardization of the process in this document, then the | With the standardization of the process in this document, then the | |||
attacker can no longer point to arbitrary MUD files in step 4, but | attacker can no longer point to arbitrary MUD files in step 4, but | |||
can only make use of MUD files that the manufacturer has already | can only make use of MUD files that the manufacturer has already | |||
provided for this device. | provided for this device. | |||
Manufacturers are advised to maintain an orderly layout of MUD files | Manufacturers are advised to maintain an orderly layout of MUD files | |||
in their web servers, with each unique producting having its own | in their web servers, with each unique producting having its own | |||
directory/pathname. | directory/pathname. | |||
The process described updates only MUD-managers and the processes | The process described updates only MUD controllers and the processes | |||
that manufacturers use to manage the location of their MUD files. | that manufacturers use to manage the location of their MUD files. | |||
A manufacturer which has not managed their MUD files in the the way | A manufacturer which has not managed their MUD files in the the way | |||
described here can deploy new directories of per-product MUD files, | described here can deploy new directories of per-product MUD files, | |||
and then can update the existing MUD files in place to point to the | and then can update the existing MUD files in place to point to the | |||
new URLs using the MUD-URL attribute. | new URLs using the MUD-URL attribute. | |||
There is therefore no significant flag day: MUD managers may | There is therefore no significant flag day: MUD managers may | |||
implement the new policy without significant concern about backwards | implement the new policy without significant concern about backwards | |||
compatibility. | compatibility. | |||
skipping to change at page 10, line 30 ¶ | skipping to change at page 10, line 50 ¶ | |||
9 March 2020, <http://www.ietf.org/internet-drafts/draft- | 9 March 2020, <http://www.ietf.org/internet-drafts/draft- | |||
jimenez-t2trg-mud-coap-00.txt>. | jimenez-t2trg-mud-coap-00.txt>. | |||
[I-D.reddy-opsawg-mud-tls] | [I-D.reddy-opsawg-mud-tls] | |||
Reddy.K, T., Wing, D., and B. Anderson, "MUD (D)TLS | Reddy.K, T., Wing, D., and B. Anderson, "MUD (D)TLS | |||
profiles for IoT devices", Work in Progress, Internet- | profiles for IoT devices", Work in Progress, Internet- | |||
Draft, draft-reddy-opsawg-mud-tls-05, 31 August 2020, | Draft, draft-reddy-opsawg-mud-tls-05, 31 August 2020, | |||
<http://www.ietf.org/internet-drafts/draft-reddy-opsawg- | <http://www.ietf.org/internet-drafts/draft-reddy-opsawg- | |||
mud-tls-05.txt>. | mud-tls-05.txt>. | |||
[I-D.richardson-opsawg-securehomegateway-mud] | [I-D.richardson-mud-qrcode] | |||
Richardson, M., Latour, J., and H. Gharakheili, "On | Richardson, M., Latour, J., and H. Gharakheili, "On | |||
loading MUD URLs from QR codes", Work in Progress, | loading MUD URLs from QR codes", Work in Progress, | |||
Internet-Draft, draft-richardson-opsawg-securehomegateway- | Internet-Draft, draft-richardson-mud-qrcode-00, 17 | |||
mud-05, 8 September 2020, <http://www.ietf.org/internet- | December 2020, <http://www.ietf.org/internet-drafts/draft- | |||
drafts/draft-richardson-opsawg-securehomegateway-mud- | richardson-mud-qrcode-00.txt>. | |||
05.txt>. | ||||
Appendix A. Appendices | Appendix A. Appendices | |||
Contributors | ||||
Tianqing Tang | ||||
Email: tangtianqing@huawei.com | ||||
Authors' Addresses | Authors' Addresses | |||
Michael Richardson | Michael Richardson | |||
Sandelman Software Works | Sandelman Software Works | |||
Email: mcr+ietf@sandelman.ca | Email: mcr+ietf@sandelman.ca | |||
Wei Pan | Wei Pan | |||
Huawei Technologies | Huawei Technologies | |||
End of changes. 21 change blocks. | ||||
49 lines changed or deleted | 67 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |