Internet DRAFT - draft-richardson-homerouter-provisioning

draft-richardson-homerouter-provisioning







IOTOPS? Working Group                                      M. Richardson
Internet-Draft                                  Sandelman Software Works
Intended status: Best Current Practice                  14 November 2021
Expires: 18 May 2022


       Provisioning Initial Device Identifiers into Home Routers
              draft-richardson-homerouter-provisioning-02

Abstract

   This document describes a method to provisioning an 802.1AR-style
   certificate into a router intended for use in the home.

   The proceedure results in a certificate which can be validated with a
   public trust anchor ("WebPKI"), using a name rather than an IP
   address.  This method is focused on home routers, but can in some
   cases be used by other classes of IoT devices.

   (RFCEDITOR please remove: this document can be found at
   https://github.com/mcr/homerouter-provisioning)

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 18 May 2022.

Copyright Notice

   Copyright (c) 2021 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights



Richardson                 Expires 18 May 2022                  [Page 1]

Internet-Draft              homertr-provision              November 2021


   and restrictions with respect to this document.  Code Components
   extracted from this document must include Simplified BSD License text
   as described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Primarily Home Routers  . . . . . . . . . . . . . . . . .   3
     1.2.  Provisioning of certificates with public trust anchors  .   4
     1.3.  Manufacturers or ISPs do provisioning . . . . . . . . . .   4
     1.4.  Users who use web browsers  . . . . . . . . . . . . . . .   5
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   5
   3.  Protocol Overview . . . . . . . . . . . . . . . . . . . . . .   5
   4.  Protocol Details  . . . . . . . . . . . . . . . . . . . . . .   7
   5.  Certificate Expiry/Renewal Protocol . . . . . . . . . . . . .   7
   6.  Using wildcard certificates with private network addresses  .   7
   7.  Privacy Considerations  . . . . . . . . . . . . . . . . . . .   7
   8.  Security Considerations . . . . . . . . . . . . . . . . . . .   7
   9.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   7
   10. Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   7
   11. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . .   7
   12. References  . . . . . . . . . . . . . . . . . . . . . . . . .   7
     12.1.  Normative References . . . . . . . . . . . . . . . . . .   7
     12.2.  Informative References . . . . . . . . . . . . . . . . .   8
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   9

1.  Introduction

   The increasing push to move all web interactions to HTTPS is a good
   thing.  [RFC6797] section 2.3.1 explains some of the attacks that
   this defeats.

   Residential use devices, particularly home routers, have some very
   unfortunate challenges.  The router provides access control for the
   entire home network: controlling access to the router is critical.
   Malware has been, so far, content to attack the outside of home
   routers, exploiting poor authorization controls, and the fact that so
   few devices have their password changed (see [sixtypercent]).

   Malware continues to arrive by email and by trojan download, and one
   must assume that at least some devices within the home may be
   infected.

   An obvious next step for malware is to attack home routers and IoT
   devices from within the home.  An unencrypted administrative
   interface to these devices presents two problems:




Richardson                 Expires 18 May 2022                  [Page 2]

Internet-Draft              homertr-provision              November 2021


   1.  for devices that continue to use passwords as authorization, the
       passwords can easily be seen by active eavesdropping of the
       network, including use of IP address spoofing attacks.  In
       residential configurations, the most common Layer Two (ethernet)
       wifi encryption does nothing to prevent address spoofing attacks
       at Layer Three (IP, ARP).

   2.  the lack of a useable TLS/HTTPS mechanism makes it difficult to
       use any kind of other non-password authorization mechanisms, such
       TLS Client Certificates, or OAUTH2 (Bearer) Tokens.

   In addition to the above arguments relating to the control interface
   to these devices, there are some significant advantages in management
   if every device has a cryptographic identity.  They include: ability
   to do remote attestation, ease of use of "Enterprise" versions of
   WPA, such as EAP-TLS for WiFi connectivity, detection of counterfeit
   devices, and better security for interactions with a cloud.

   [I-D.richardson-t2trg-idevid-considerations] describes a number of
   different scenarios and considersation for manufacturer installation
   of keying material into devices.  This document is much more
   specific, as it focuses on:

   1.  primarily Home Routers (as described in [RFC7084])

   2.  provisioning of certificates with public trust anchors (those
       that follow [CABFORUM])

   3.  manufacturers or ISPs that provision many devices, and who can
       control the firmware

   4.  users who use web browsers to do routine and management tasks

   The next four sections expand the explanation of the above
   applicability, explaining why the boundaries have been set up as
   such.

1.1.  Primarily Home Routers

   As will be explained below, in order for the user's browser to be
   directed to the right system by name, it is easiest if the DNS names
   can be mapped to local IP addresses correctly.  The Home Router is
   usually in a position to answer DNS queries from other devices in the
   home, so it can easily map names that should lead to the home router,
   to one of the home router's IP addresses.






Richardson                 Expires 18 May 2022                  [Page 3]

Internet-Draft              homertr-provision              November 2021


   As an extension to the mechanism described here, a new mechanism is
   described in Section 6 that provides for compatible naming of devices
   when control over DNS queries is not possible.

1.2.  Provisioning of certificates with public trust anchors

   The [CABFORUM] provides a set of guidelines agreed to by Browser
   authors and Certification Authorities (CA).  A well funded CA that
   follows the guidelines is likely to be able to negotiate to have
   their trust anchor included by default into the trusted set
   distributed by browsers and operating systems.

   Few of the details of the guidelines concern this document: but the
   key point is that an arbitrary manufacturer is unlikely to be able to
   negotiate directly, and will need to arrange to obtain certificates
   from one of the existing certification authorities, or it's
   suborbinate customers.

   There are two details that do matter:

   1.  CAs will not sign private names or reserved IP addresses.  Names
       used must be public and listed in the https://publicsuffix.org/
       list.

   2.  CAs are not to create certificates longer than a CABForum defined
       limit, which is currently set to approximately 1 year (in debate
       from approximately 2 years).  However, some CAs, such as
       https://letsencrypt.org/, use a lifetime of 90 days, and many CAs
       are moving in this direction as well.

1.3.  Manufacturers or ISPs do provisioning

   The mechanism described in this document assumes that the entity
   doing the provisioning has control over the firmware.  This is most
   easy for an hardware manufacturer who is building the devices and who
   performs the provisioning step in the factory.  This provisioning
   step could also occur some time later in a Quality Assurance step
   where blank devices are first loaded with firmware.  This is common
   for OEMs that have outsourced the actual manufacturing elsewhere, but
   bring the various components together in another place.

   An ISP who purchased a large quanity of home routers, and then
   upgrades the firmware could also easily adapt this mechanism.  The
   upgraded devices are then put back into their boxes, and into a
   warehouse or logistics center before shipping them to customers.  It
   is not uncommon for ISPs, particularly those that use PPPoE, to need
   to provision a PPP username/login to be used for initial provisioning
   into every device.  Upon first being connected, the device uses this



Richardson                 Expires 18 May 2022                  [Page 4]

Internet-Draft              homertr-provision              November 2021


   default username to login to the ISP (to some captive network), at
   which point customer-specific username and login are configured,
   often using TR-069.

1.4.  Users who use web browsers

   The process in this document benefits users with browsers (whether
   desktops or mobile browsers) who need to access a management
   interface of a home router or similiar device (such as a NAS or home
   automation system).

   Devices which are exclusively configured using smartphone apps, and
   which have no other interfaces will find some of the mechanism
   superfluous.  Smartphone apps can be provided with a private-CA trust
   anchor, and could easily be programmed to validate different parts of
   the certificate.

   The lifetime and DNS name issues are of significantly less of an
   issues as a result.

   However, the level of sophistication required to do the above coding
   is difficult to find in cross-platform mobile developers, and
   smartphone OS vendors are increasingly discouraging the use of
   private trust anchors.

2.  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 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

3.  Protocol Overview

   Upon booting the device checks to see if it has been provisioned with
   a certificate already.  (Note that an expired certificate is still
   considered to be been provisioned, see below)

   Assuming that it has not, then it generates private key if necessary.
   Some classes of devices may have a private key provisioned by a
   firmware or physical TPM module during the manufacuring process.

   The home router generates a Unique Local IPv6 Address (ULA, see
   [RFC4193] and [RFC7084] section 4.3), if it hasn't generated one
   already.  It must store this generated prefix in the same place as
   the private key and certificate.  If any of the ULA, or private key
   changes, then the certificate will need to be changed as well.



Richardson                 Expires 18 May 2022                  [Page 5]

Internet-Draft              homertr-provision              November 2021


   The home router uses all or a portion of the ULA to form a DNS name
   that is unique with the manufacturer's realm.  For instance, given
   the ULA fd96:8d23:4fea::/48, one could drop the initial 7 bits which
   are always the same, skip a bit, and truncate to 6 bytes, giving:
   8d234f.  A name is formed, for instance: n8d234f.r.example.net.

   With this name, a Certificate Signing Request is formed, binding the
   name n8d234f.r.example.net to the public key derived above.

   The router then looks and waits for a network attachment on any of
   it's (physical) ethernet interfaces.  This mechanism does not work
   for devices with only WiFi interfaces, but typical home routers have
   at least one physical interface used to connect to the Internet.
   Even integrated VDSL or LTE modems with a primarily WiFi orientation
   usually have at least one physical LAN port.

   Some devices distinguishes a "WAN" interface, and other devices
   either only one network interface, or do not initally distinguish a
   specific one.  A recommendation is to listen on any interface, as
   this makes provisioning the systems require less skilled labour: any
   connector that fits is acceptable.

   Upon finding a network connection, the home router uses the
   [I-D.ietf-anima-grasp] protocol to do an M_DISCOVER for a service
   called "PROVISIONING".  This is done using Link-Layer IPv6 addresses.
   The result will be a Link-Layer IPv6 address and port number on which
   the home router should connect.

   A TLS/HTTPS connection is made to that address, using a virtual Host:
   that has been provisioning into the firmware by the manufacturer.
   (The same FQDN should go into the SNI for the TLS connection).  The
   home router uses a trust anchor provisioned by the manufacturer, and
   [RFC6125] DNS-ID policy, to validate that the home router has been
   connected to an appropriate factory provisioning system.

   The CSR along with some particulars about the device (the chosen ULA,
   some serial number information), is transmitted in an HTTPS POST.
   The provisioning system treats this as a secure connection because it
   originates on an IPv6-Link-Local address.  (It is reasonable that the
   provisioning system is elsewhere, but that there is a local
   provisioning device which will relay traffic to the provisioning
   system)

   The provisioning system obtains a certificate using ACME, and an
   [RFC8555] DNS-01 challenge.  This may require up to a minute in order
   to do the DNS update, wait for propogation, and then receive the
   resulting certificate.




Richardson                 Expires 18 May 2022                  [Page 6]

Internet-Draft              homertr-provision              November 2021


   The device has provided its DNS name to the provisioning system, so
   the provisioning system installs that name into the DNS with a AAAA
   record giving the ULA address that the device has provided.  (As part
   of the DNS-01 challenge, some challenge records are installed as
   proof of control of the name)

   The provisioning system then returns the certificate to the device.
   The provisioning system SHOULD keep a copy of the certificate in a
   database; should the provisioning process fail before the device
   writes all its state to non-volatile memory, then the provisioning
   system need not repeat the certificate process.

   The device now has a certificate for a name that it knows is its own.
   The device now creates a local DNS mapping (aka "/etc/hosts") from
   the name it has chosen to the ULA address it has chosen.  The device,
   even when not connected to the Internet, will answer DNS queries for
   that name from client systems, mapping the name to the address, and
   then responding on port 443 to HTTPS queries for that name.

4.  Protocol Details

   Many small details to fill in.

5.  Certificate Expiry/Renewal Protocol

   Via store-and-forward with some javascript on port 80 and/or an App.

6.  Using wildcard certificates with private network addresses

   To be further described.

7.  Privacy Considerations

   Many to be discussed.

8.  Security Considerations

9.  IANA Considerations

10.  Acknowledgements

   Hello.

11.  Changelog

12.  References

12.1.  Normative References



Richardson                 Expires 18 May 2022                  [Page 7]

Internet-Draft              homertr-provision              November 2021


   [BCP14]    Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [I-D.ietf-anima-grasp]
              Bormann, C., Carpenter, B., and B. Liu, "GeneRic Autonomic
              Signaling Protocol (GRASP)", Work in Progress, Internet-
              Draft, draft-ietf-anima-grasp-15, 13 July 2017,
              <https://www.ietf.org/archive/id/draft-ietf-anima-grasp-
              15.txt>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC4193]  Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast
              Addresses", RFC 4193, DOI 10.17487/RFC4193, October 2005,
              <https://www.rfc-editor.org/info/rfc4193>.

   [RFC6797]  Hodges, J., Jackson, C., and A. Barth, "HTTP Strict
              Transport Security (HSTS)", RFC 6797,
              DOI 10.17487/RFC6797, November 2012,
              <https://www.rfc-editor.org/info/rfc6797>.

   [RFC7084]  Singh, H., Beebee, W., Donley, C., and B. Stark, "Basic
              Requirements for IPv6 Customer Edge Routers", RFC 7084,
              DOI 10.17487/RFC7084, November 2013,
              <https://www.rfc-editor.org/info/rfc7084>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8555]  Barnes, R., Hoffman-Andrews, J., McCarney, D., and J.
              Kasten, "Automatic Certificate Management Environment
              (ACME)", RFC 8555, DOI 10.17487/RFC8555, March 2019,
              <https://www.rfc-editor.org/info/rfc8555>.

   [RFC8995]  Pritikin, M., Richardson, M., Eckert, T., Behringer, M.,
              and K. Watsen, "Bootstrapping Remote Secure Key
              Infrastructure (BRSKI)", RFC 8995, DOI 10.17487/RFC8995,
              May 2021, <https://www.rfc-editor.org/info/rfc8995>.

12.2.  Informative References






Richardson                 Expires 18 May 2022                  [Page 8]

Internet-Draft              homertr-provision              November 2021


   [CABFORUM] CA/Browser Forum, "CA/Browser Forum Baseline Requirements
              for the Issuance and Management of Publicly-Trusted
              Certificates, v.1.7.3", October 2020,
              <https://cabforum.org/wp-content/uploads/CA-Browser-Forum-
              BR-1.7.3.pdf>.

   [I-D.richardson-t2trg-idevid-considerations]
              Richardson, M., "A Taxonomy of operational security
              considerations for manufacturer installed keys and Trust
              Anchors", Work in Progress, Internet-Draft, draft-
              richardson-t2trg-idevid-considerations-05, 21 June 2021,
              <https://www.ietf.org/archive/id/draft-richardson-t2trg-
              idevid-considerations-05.txt>.

   [RFC6125]  Saint-Andre, P. and J. Hodges, "Representation and
              Verification of Domain-Based Application Service Identity
              within Internet Public Key Infrastructure Using X.509
              (PKIX) Certificates in the Context of Transport Layer
              Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March
              2011, <https://www.rfc-editor.org/info/rfc6125>.

   [sixtypercent]
              "The economics of the security of consumer-grade IoT
              products and services", 24 April 2019,
              <https://www.internetsociety.org/resources/doc/2019/the-
              economics-of-the-security-of-consumer-grade-iot-products-
              and-services/>.

Author's Address

   Michael Richardson
   Sandelman Software Works

   Email: mcr+ietf@sandelman.ca

















Richardson                 Expires 18 May 2022                  [Page 9]