On loading MUD URLs from QR codes
Sandelman Software Works
mcr+ietf@sandelman.ca
CIRA Labs
Jacques.Latour@cira.ca
UNSW Sydney
h.habibi@unsw.edu.au
Internet
OPS Area Working Group
Internet-Draft
This informational document details the mechanism used by the CIRA Secure
Home Gateway (SHG) to load MUD definitions for devices which have no
integrated MUD (RFC8520) support.
RFCEDITOR please remove: Pull requests and edit welcome at: https://github.com/CIRALabs/securehomegateway-mud/tree/ietf
Introduction
The Manufacturer Usage Description (MUD) defines a YANG data model to express what sort of access a device requires to operate correctly.
The document additionally defines three ways for the device to communicate the URL of the resulting JSON format file to a network enforcement point: DHCP, within an X.509 certificate extension, and via LLDP.
Each of the above mechanism conveys the MUD URL in-band, and requires modifications to the device firmware.
Most small IoT devices do not have LLDP, and often have very restricted DHCP clients.
Adding the LLDP or DHCP options requires at least some minimal configuration change, and possibly entire new subsystems.
Meanwhile, use of the PKIX certification extension only makes sense as part of a larger IDevID based deployment such as .
In the above cases these mechanisms can only be implemented by persons with access to modify and update the firmware of the device.
The MUD system was designed to be implemented by Manufacturers after all!
In the meantime there is a chicken or egg problem (): no manufacturers include MUD URLs in their products as there are no gateways that use them.
No gateways include code that processes MUD URLs as no products produce them.
The mechanism described here allows any person with physical access to the device to affix a reference to a MUD URL that can later be scanned by an end user.
Such an action can be done by
- the marketing department of the Manufacturer,
- an outsourced assembler plant,
- value added resellers (perhaps in response to a local RFP),
- a company importing the product (possibly to comply with a local regulation),
- a network administrator (perhaps before sending devices home with employees, or to remote sites),
- a retailer as a value added service.
The mechanism described herein uses a QRcode, which is informally described in , but specifically leverages
the data format from Reverse Logistics Association's system.
This is an application of the 12N Data Identifier system specified by the ANSI MH10.8.2 Committee in a format appropriate for QRcodes as well as other things like NFCs transmissions.
QR code generators are available as web services (), or as programs such
as . They are formally defined in .
Section {#genericfirmware} summarizes the recommendations section 2 ("Updating MUD URLs vs Updating MUD files").
The question as to whether the MUD file should be specific to a specific version of the device firmware is considered in the context of affixed external labels.
A third issue is that an intermediary (ISP, or third-party security
service) may want to extend or amend a MUD file received from a manufacturer.
In order to maintain an audit trail of changes, a way to encode the previous
MUD URL and signature file (and status) is provided. (FOR DISCUSSION)
Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 when, and only when, they
appear in all capitals, as shown here.
Protocol
This QRcode protocol builds upon the work by .
That protocol is very briefly described in the next section.
Then the list of needed Data Records to be filled in is explained.
The SQRL protocol
documents an octet protocol that can be efficiently encoded into QRcodes using a sequence of ASCII bytes, plus five control codes (see section 3.1 of ):
- <RS> Record Separator (ASCII 30)
- <EoT> End of Transmission (ASCII 4)
- <FS> Field Separator (ASCII 28)
- <GS> Group Separator (ASCII 29)
- <US> Unit Separator (ASCII 31),
- Concatenation Operator (ASCII 43: "+").
Section 7.2 of gives the details, which can be summarized as:
- The QR code header starts with:
" "06" "12N"
]]>
- Include one or more Data Records. This consists of a four letter Field Identifiers followed by ASCII characters terminated with a <Unit Separator>.
- End with:
]]>
There are, additionally optional flags that may be present in every Data Record as described in section 7.4.
As there is little use for this in the context of MUD URLs, they can likely be ignored by parsers that are not parsing any of the rest of the information.
A parser that sees a Field Separator in the stream SHOULD ignore the characters collected so far and then continue parsing to get the user data.
Environment records, as described in section 7.4, look and act exactly as fields, with a special Field Identifier. They serve no purpose when looking for MUD information, and MAY be ignored.
Manufacturer Usage Descriptions in SQRL
B000 Company Name
The B000 Data Record is mandatory in .
It should be an ASCII representation of the company or brand name.
It should match the ietf-mud/mud/mfg-name in the MUD file.
B001 Product Name
The B001 Data Record is optional. It is the Product Name in ASCII.
It's presence is strongly RECOMMENDED.
B002 Model Number
The B002 Data Record is optional in , but is MANDATORY in this profile.
It is the Model Name in ASCII.
It should match the ietf-mud/mud/model-name in the MUD file, if it is present.
MUD URL Data Record
A new Field Identifier has been assigned by the RLA, which is "M180"
This record should be filled with the MUD URL.
Shorter is better.
Section 8.1 of has some good advice on longevity concerns with URLs.
The URL provided MUST NOT have a query (?) portion present.
MUD device MAC address
In order for the MUD controller to associate the above policy with a specific device, then some unique identifier must be provided to the MUD controller.
The most actionable identifier is the Ethernet MAC address.
section 9.10 defines the Data Record: "M06C" as the MAC address.
No format for the MAC address is provided in the document.
The recommended format in order to conserve space is 12 or 16 hex octets.
(16 octets for the newer IEEE OUI-64 format used in 802.15.4, and some next generation Ethernet proposals)
The parser SHOULD be tolerant of extra characters: colons (":"), dashes ("-"), and white space.
Generic URL or Version Specific URL
MUD URLs which are communicated in-band by the device, and which are programmed into the device's firmware may provide a firmware specific version of the MUD URL.
This has the advantage that the resulting ACLs implemented are specific to the needs of that version of the firmware.
A MUD URL which is affixed to the device with a sticker, or etched into the case can not be changed.
Given the considerations of section 2.1 ("Updating the MUD file in place"), it is prudent to use a MUD URL which points to a MUD file which will only have new features added over time, and never removed.
When the firmware eventually receives built-in MUD URL support, then a more specific URL may be used.
Note that in many cases it will be third parties who are generating these QRcodes, so the MUD file may be hosted by the third party.
Crowd Supply of MUD Files
The IETF MUD is a new standard. Hence, IoT device manufacturers have not yet provided MUD profiles for their devices. A research group at the University of New South Wales (UNSW Sydney) has developed an open-source tool, called MUDgee (), which automatically generates a MUD file (profile) for an IoT device from its traffic trace in order to make this process faster, easier, and more accurate. Note that the generated profile completeness solely depends on the completeness of the input traffic traces. MUDgee assumes that all the activity seen is intended and benign.
UNSW researchers have applied MUDgee about 30 consumer IoT devices from their lab testbed, and publicly released their MUD files (). MUDgee can assist IoT manufacturers in developing and verifying MUD profiles, while also helping adopters of these devices to ensure they are compatible with their organisational policies.
Privacy Considerations
The presence of the MUD URL in the QR code reveals the manufacturer of the device, the type or model of the device, and possibly the firmware version of the device.
The MAC address of the device will also need to be present, and this is potentially Personally Identifiable Information (PII).
Such QRcodes should not be placed on the outside of the packaging, and only on the device itself, ideally on a non-prominent part of the device. (e.g., the bottom).
The QR code sticker should not placed on any part of the device that might become visible to machine vision systems in the same area.
This includes security systems, robotic vacuum cleaners, anyone taking a picture with a camera.
Such systems may store the picture(s) in such a way that a future viewer of the image will be able to decode the QR code, possibly through assembly of multiple pictures.
Of course, the QR code is not, however, a certain indicator that the device is present, only that the QR code sticker that came with the device is present.
Security Considerations
To Be Determined.
IANA Considerations
This document makes no IANA actions.
Acknowledgements
This work was supported by the Canadian Internet Registration Authority (cira.ca).
History
Previous versions of this work leveraged the QRcode format from the WiFi Alliance DPP specification.
This document no longer uses that.
References
Normative References
Key words for use in RFCs to Indicate Requirement Levels
In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.
Manufacturer Usage Description Specification
This memo specifies a component-based architecture for Manufacturer Usage Descriptions (MUDs). The goal of MUD is to provide a means for end devices to signal to the network what sort of access and network functionality they require to properly function. The initial focus is on access control. Later work can delve into other aspects.
This memo specifies two YANG modules, IPv4 and IPv6 DHCP options, a Link Layer Discovery Protocol (LLDP) TLV, a URL, an X.509 certificate extension, and a means to sign and verify the descriptions.
SQRL Codes: Standardized Quick Response for Logistics, Using the 12N Data Identifier
Reverse Logistics Association
QR Code
Wikipedia
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words
RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.
Informative References
The JavaScript Object Notation (JSON) Data Interchange Format
JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.
This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.
Bootstrapping Remote Secure Key Infrastructures (BRSKI)
This document specifies automated bootstrapping of an Autonomic Control Plane. To do this a Secure Key Infrastructure is bootstrapped. This is done using manufacturer-installed X.509 certificates, in combination with a manufacturer's authorizing service, both online and offline. We call this process the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol. Bootstrapping a new device can occur using a routable address and a cloud service, or using only link-local connectivity, or on limited/ disconnected networks. Support for deployment models with less stringent security requirements is included. Bootstrapping is complete when the cryptographic identity of the new key infrastructure is successfully deployed to the device. The established secure connection can be used to deploy a locally issued certificate to the device as well.
Authorized update to MUD URLs
This document provides a way for an RFC8520 Manufacturer Usage Description (MUD) definitions to declare what are acceptable replacement MUD URLs for a device. RFCEDITOR-please-remove: this document is being worked on at: https://github.com/mcr/iot-mud-acceptable-urls
IEEE 802.1AR Secure Device Identifier
IEEE Standard
Chicken or the egg
Wikipedia
QR Code Generators
Internet
QR encode
MUDgee
MUD Profiles
Information technology - Automatic identification and data capture techniques - QR Code bar code symbology specification (ISO/IEC 18004)
ISO/IEC