<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 2.6.8) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-shahzad-scim-device-model-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="SCIM Device Schema Extensions">Device Schema Extensions to the SCIM model</title>

    <author initials="M." surname="Shahzad" fullname="Muhammad Shahzad">
      <organization>North Carolina State University</organization>
      <address>
        <postal>
          <street>Department of Computer Science</street> <street>890 Oval Drive</street> <street>Campus Box 8206</street>
          <city>Raleigh, NC</city>
          <code>27695-8206</code>
          <country>USA</country>
        </postal>
        <email>mshahza@ncsu.edu</email>
      </address>
    </author>
    <author initials="H." surname="Iqbal" fullname="Hassan Iqbal">
      <organization>North Carolina State University</organization>
      <address>
        <postal>
          <street>Department of Computer Science</street> <street>890 Oval Drive</street> <street>Campus Box 8206</street>
          <city>Raleigh, NC</city>
          <code>27695-8206</code>
          <country>USA</country>
        </postal>
        <email>hiqbal@ncsu.edu</email>
      </address>
    </author>
    <author initials="E." surname="Lear" fullname="Eliot Lear">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>Richtistrasse 7</street>
          <city>Wallisellen</city>
          <code>CH-8304</code>
          <country>Switzerland</country>
        </postal>
        <phone>+41 44 878 9200</phone>
        <email>lear@cisco.com</email>
      </address>
    </author>

    <date year="2022" month="October" day="24"/>

    
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>The initial core schema for SCIM (System for Cross Identity
Management) was designed for provisioning users.  This memo specifies
schema extensions that enables provisioning of devices, using various
underlying bootstrapping systems, such as Wifi EasyConnect, RFC 8366
vouchers, and BLE passcodes.</t>



    </abstract>



  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>The Internet of Things presents a management challenge in many
dimensions.  One of them is the ability to onboard and manage large
number of devices.  There are many models for bootstrapping trust
between devices and network deployments.  Indeed it is expected that
different manufacturers will make use of different methods.</t>

<t>SCIM (System for Cross Identity Management) <xref target="RFC7643"/> <xref target="RFC7644"/>
defines a protocol and a schema for provisioning of users.  However,
it can easily be extended to provision devices.  The protocol and core
schema were designed to permit just such extensions.  Bulk operations
are supported.  This is good because often devices are procured in
bulk.</t>

<section anchor="protocol-participants"><name>Protocol Participants</name>

<t>In the normal SCIM model, it was presumed that large federated
deployments would be SCIM clients who provision and remove employees
and contractors as they are enter and depart those deployments, and
federated services such as sales, payment, or conferencing services
would be the servers.</t>

<t>In the device model, the roles are reversed, and may be somewhat more
varied.  A deployment network management system gateway (NMS gateway)
plays the role of the server, receiving information about devices that
are expected to be connected to its network.  That server will apply
appropriate local policies regarding whether/how the device should be
connected.</t>

<t>The client may be one of a number of entities:</t>

<t><list style="symbols">
  <t>A vendor who is authorized to add devices to a network as part of
a sales transaction.  This is similar to the sales integration
sometimes envisioned by Bootstrapping Remote Key Infrastructure
(BRSKI) <xref target="RFC8995"/>.</t>
  <t>A client application that administrators or employees use to add,
remove, or get information about devices.  An example might be an
tablet or phone app that scans Easyconnect QR codes.</t>
</list></t>

</section>
<section anchor="schema-description"><name>Schema Description</name>

<t>RFC 7643 does not prescribe a language to describe a schema. We
have chosen the JSON schema language <xref target="I-D.bhutton-json-schema"/> for
this purpose.  This implies that use of XML for this device extension
is not supported.</t>

<t>Several additional schemas specify specific onboarding mechanisms,
such as BLE and Wifi Easy Connect.</t>

</section>
<section anchor="terminology"><name>Terminology</name>
<t>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 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

</section>
</section>
<section anchor="the-device-schema"><name>The Device Schema</name>

<t>The device schema is a base schema upon which specific onboarding
technology schemas are built.  It is described below.</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
    "urn:ietf:params:scim:schemas:extension:Endpoints:2.0:Device":{
        "type": "object",
        "$id": "urn:ietf:params:scim:schemas:extension:endpoints:2.0:Device",
        "title": "Endpoints extension schema for partner application",
        "description": "Endpoint schema contains URLs and root certificates for the partner application and URLs for enterprise endpoints.",
        "required": [
          "onboarding",
          "deviceControl",
          "dataReceiver"
        ],
  
        "properties": {
  
          "onboarding": {
            "type": "object",
            "$id": "#/properties/onboarding",
            "title": "Onboarding",
            "description": "Onboarding application attributes.",
  
            "required": [
              "onboardingAppUrl",
              "onboardingAppRootCertificate",
                    "onboardingEnterpriseEndpoint"
            ],
  
            "properties": {
              "onboardingAppUrl": {
                "$id": "#/properties/onboardingAppUrl",
                "type": "string",
                "format": "iri-reference",
                "title": "Onboarding application URL",
                "description": "The URL of the onboarding application which can be used to access the application. This attribute is provided by the onboarding application when it creates the SCIM object for the device.",
                "examples": ["https//example.com/onboardingapp/"]
              },
              "onboardingAppRootCertificate": {
                "$id": "#/properties/onboardingAppRootCertificate",
                "type": "string",
                "title": "The root certificate of onboarding application",
                "description": "This attribute comprises of the root certificate signed by the root CA. Onboarding application provides this attribute when it creates the SCIM object for the device."
              },
              "onboardingEnterpriseEndpoint": {
                "$id": "#/properties/onboardingEnterpriseEndpoint",
                "type": "string",
                "format": "iri-reference",
                "title": "Enterprise endpoint for onboarding app",
                "description": "The URL of the enterprise endpoint which oboarding app uses to reach enterprise network gateway. This attribute is already known to the onboarding app and adds it to the SCIM object, when it creates the SCIM object for the device.",
                "examples": ["https//enterprise.com/onboardingapp_endpoint/"]
              }
            }
          },
  
          "deviceControl": {
            "type": "object",
            "$id": "#/properties/deviceControl",
            "title": "Device Control",
            "description": "Device controll application attributes.",
  
            "required": [
              "deviceControlApps",
                    "deviceControlEnterpriseEndpoint"
            ],
  
            "properties": {
              
              "deviceControlApps": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "title": "Device control apps",
                "description": "The list of device control apps where each list entry contains i) URL and ii) root certificate for each device control app that can control the device.",
                "properties": {
                  "deviceControlAppUrl": {
                    "$id": "#/properties/deviceControlAppUrl",
                    "type": "string",
                    "format": "iri-reference",
                    "title": "Device control app url",
                    "description": "The URL of the device control application which can be used to access the app. This attribute is provided by the onboarding application when it creates the SCIM object for the device.",
                    "examples": ["https//example.com/device_control_app1/"]
                  },
                  "deviceControlAppRootCertificate": {
                    "$id": "#/properties/deviceControlAppRootCertificate",
                    "type": "string",
                    "title": "Device control root certificate",
                    "description": "This attribute comprises of the root certificate signed by the root CA. This attribute is already known to the onboarding app and adds it to the SCIM object, when it creates the SCIM object for the device."
                  }
                }
              },
              
              "deviceControlEnterpriseEndpoint": {
                "$id": "#/properties/deviceControlEnterpriseEndpoint",
                "type": "string",
                "format": "iri-reference",
                "title": "Device control enterprise endpoint",
                "description": "The URL of the enterprise endpoint which device control apps uses to reach enterprise network gateway. When enterprise receives the SCIM object from onboarding app, it adds this attribute to the object and sends back the object as response back to the onboarding app.",
                "examples": ["https//enterprise.com/device_control_endpoint/"]
              }
            }
          },
  
          "dataReceiver": {
            "type": "object",
            "$id": "#/properties/dataReceiver",
            "title": "Data Receiver",
            "description": "Data receiver application attributes.",
  
            "required": [
              "dataReceiverApps",
                    "dataReceiverEnterpriseEndpoint"
            ],
  
            "properties": {
              
              "dataReceiverApps": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "title": "Data receiver apps",
                "description": "The list of data receiver apps where each list entry contains i) URL and ii) root certificate for each of the data receiver app.",
                "properties": {
                  "dataReceiverAppUrl": {
                    "$id": "#/properties/dataReceiverAppUrl",
                    "type": "string",
                    "format": "iri-reference",
                    "title": "Data receiver app URL",
                    "description": "The URL of the data receiver application which can be used to access the application. This attribute is provided by the device control app when it communicates with the controller. Controller will add this in the SCIM object locally stored in the SCIM server.",
                    "examples": ["https//example.com/dataReceoiverapp1/"]
                  },
                  "dataReceiverAppRootCertificate": {
                    "$id": "#/properties/dataReceiverAppRootCertificate",
                    "type": "string",
                    "title": "Data receiver root certificate",
                    "description": "This attribute comprises of the root certificate signed by the root CA. This attribute is provided by the device control app when it communicates with the controller. Controller will add this in the SCIM object locally stored in the SCIM server."
                  }
                }
              },
              
              "dataReceiverEnterpriseEndpoint": {
                "$id": "#/properties/dataReceiverEnterpriseEndpoint",
                "type": "string",
                "format": "iri-reference",
                "title": "Data receiver enterprise endpoint",
                "description": "The URL of the enterprise endpoint which data receiver apps uses to reach enterprise network gateway. When enterprise receives the SCIM object from onboarding app, it adds this attribute to the object and sends back the object as response back to the onboarding app.",
                "examples": ["https//enterprise.com/data_receiver_endpoint/"]
              }
            }
          }
        }
    }
}}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="the-ble-device-extension"><name>The BLE Device Extension</name>

<t>This schema extends the Device schema to specify how the device is to
be authenticated, as well as well as a URL to a control interface for
the device.</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
    "urn:ietf:params:scim:schemas:extension:Ble:2.0:Device":{
      "type": "object",
      "$id": "#/properties/urn:ietf:params:scim:schemas:extension:Ble:2.0:Device",
      "title": "Device extension schema for BLE",
      "description": "Extension schema for devices that support BLE. It contains the attributes that are specific BLE devices only.",

      "required": [
        "versionSupport",
        "deviceMacAddress",
        "addressType",
        "pairingMethods"
      ],
      
      "properties": {
        "versionSupport": {
          "$id": "#/properties/versionSupport",
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "Version support",
          "description": "Provides a list of all the BLE versions supported by the device.",
          "examples": ["4.1", "4.2", "5.0", "5.1", "5.2", "5.3"]
        },
        "deviceMacAddress": {
          "$id": "#/properties/deviceMacAddress",
          "type": "string",
          "title": "Device MAC address",
          "description": "It is the public MAC address assigned by the manufacturer. It is unique 48 bit value.",
          "examples": ["01:23:45:67:89:AB"],
          "pattern": "^[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}$"
        },
        "addressType": {
          "$id": "#/properties/addressType",
          "type": "boolean",
          "title": "Address type",
          "default": false,
          "description": "AddressType flag is taken from the BLE core specifications 5.3. If FALSE, the device is using public MAC address. If TRUE, device is using Random address which is resolved using IRK. "
        },
        "irk": {
          "$id": "#/properties/irk",
          "type": "string",
          "title": "Identity resolving key",
          "description": "Identity resolving key, which is unique for every device. It is used to resolve random address."
        },
        "pairingMethods": {
          "$id": "#/properties/pairingMethods",
          "type": "array",
          "item":{
            "type": "string"
          },
          "title": "Pairing methods",
          "examples": ["urn:ietf:params:scim:schemas:extension:pairingNull:2.0:Device", "urn:ietf:params:scim:schemas:extension:pairingJustWorks:2.0:Device", "urn:ietf:params:scim:schemas:extension:pairingPassKey:2.0:Device", "urn:ietf:params:scim:schemas:extension:pairingOOB:2.0:Device"]
        },
        
        "urn:ietf:params:scim:schemas:extension:pairingNull:2.0:Device": {
          "type": "null",
          "title": "Extension for null pairing method",
          "description": "This pairing method is for the BLE devices that do not use any pairing method and connects with the nearest device when powered up. There is no attribute for this method."
        },
        "urn:ietf:params:scim:schemas:extension:pairingJustWorks:2.0:Device": {
          "type": "object",
          "title": "Extension for just works pairing method.",
          "properties": {
            "key": {
              "type": "null",
              "title": "Key",
              "description": "Just works does not have any key value. For completeness, it is added with a key value 'null'."
            }
          }
        },
        "urn:ietf:params:scim:schemas:extension:pairingPassKey:2.0:Device": {
          "type": "object",
          "title": "Extension for pass key pairing method.",
          "properties": {
            "key": {
              "type": "integer",
              "title": "Key",
              "description": "A six digit passkey for ble device",
              "pattern": "^[0-9]{6}$"
            }
          }
        },
        "urn:ietf:params:scim:schemas:extension:pairingOOB:2.0:Device": {
          "type": "object",
          "title": "Extension for out of band pairing method.",
          "required": [
            "key",
            "randNumber"
          ],
          "properties": {
            "key": {
              "type": "string",
              "title": "Key",
              "description": "A key value retrieved from out of band source such as NFC."
            },
            "randNumber": {
              "type": "integer",
              "title": "Random number",
              "description": "Nonce added to the key."
            },
            "confirmationNumber": {
              "type": "integer",
              "title": "Confirmation number",
              "description": "Some solutions require confirmation number RESTful message exchange."
            }
          }
        }
      }
    }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="wifi-easyconnect-extension"><name>Wifi EasyConnect Extension</name>

<t>This schema extends the device schema to enable Wifi EasyConnect
(otherwise known as Device Provisioning Protocol).</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
    "urn:ietf:params:scim:schemas:extension:Wifi:2.0:Device":{
      "type": "object",
      "$id": "urn:ietf:params:scim:schemas:extension:Wifi:2.0:Device",
      "title": "Device extension schema for WiFi",
      "description": "Extension schema for devices that support WiFi. It contains the attributes that are specific WiFi devices only.",

      "required": [
        "versionSupport",
        "bootstrapKey"
      ],
      
      "properties": {
        "versionSupport": {
          "$id": "#/properties/versionSupport",
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "Version support",
          "description": "Provides a list of all the WiFi versions supported by the device.",
          "examples": ["802.11ax"]
        },
        "bootstrappingMethod": {
          "$id": "#/properties/bootstrappingMethod",
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "Bootstrapping method",
          "description": "The list of all the bootstrapping methods available on the enrollee device.",
          "examples": ["QR", "NFC"]
        },
        "bootstrapKey": {
          "$id": "#/properties/bootstrapKey",
          "type": "string",
          "title": "Bootstrap key",
          "description": "This key is Elliptic-Curve Diffie–Hellman (ECDH) public key. The base64 encoded length for P-256, P-384, and P-521 is 80, 96, and 120 characters.",
          "examples": ["MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgADURzxmttZoIRIPWGoQMV00XHWCAQIhXruVWOz0NjlkIA="]
        },
        "deviceMacAddress": {
          "$id": "#/properties/deviceMacAddress",
          "type": "string",
          "title": "Device MAC address",
          "description": "The MAC address assigned by the manufacturer. It is unique 48 bit value.",
          "examples": ["01:23:45:67:89:AB"],
          "pattern": "^[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}$"
        },
        "classChannel": {
          "$id": "#/properties/classChannel",
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "Class channel",
          "description": "A list of global operating class and channel shared as bootstrapping information. It is formatted as class/channel.",
          "examples": ["81/1", "115/36"]
        },
         "serialNumber": {
          "$id": "#/properties/serialNumber",
          "type": "string",
          "title": "Serial number",
          "description": "An alphanumeric serial number that may also be passed as bootstrapping information.",
          "examples": ["4774LH2b4044"]
        }
      }
    }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="zigbee-extension"><name>Zigbee Extension</name>

<t>This schema extends the device schema to enable provisioning of
Zigbee devices.</t>

<figure><artwork><![CDATA[
{  
    "urn:ietf:params:scim:schemas:extension:zigbee:2.0:Device":{
        "type": "object",
        "$id": "urn:ietf:params:scim:schemas:extension:zigbee:2.0:Device",
        "title": "Device extension schema for zigbee.",
        "description": "Extension schema for devices that support zigbee. It contains the attributes that are specific zigbee devices only.",

        "required": [
            "versionSupport",
            "deviceEui64Address"
        ],
        
        "properties": {
            "versionSupport": {
            "$id": "#/properties/versionSupport",
            "type": "array",
            "items": {
                "type": "string"
            },
            "title": "Version support",
            "description": "Provides a list of all the zigbee versions supported by the device.",
            "examples": ["3.0"]
            },
            "deviceEui64Address": {
            "$id": "#/properties/deviceEui64Address",
            "type": "string",
            "title": "EUI-64 address",
            "description": "The EUI-64 (Extended Unique Identifier) device address.",
            "examples": ["50325FFFFEE76728"],
            "pattern": "^[0-9A-Fa-f]{16}$"
            }
        }
    }
}
  
]]></artwork></figure>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>Because provisioning operations are senstive, each client must be
appropriately authenticated.  Certain objects may be read-only or
not visible based on who is connected.</t>

<t>[ More to be added here. ]</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>TBD</t>

</section>
<section anchor="changes-from-earlier-versions"><name>Changes from Earlier Versions</name>

<t>Draft -00:</t>

<t><list style="symbols">
  <t>Initial revision</t>
</list></t>

</section>


  </middle>

  <back>


    <references title='Normative References'>





<reference anchor='RFC7643' target='https://www.rfc-editor.org/info/rfc7643'>
<front>
<title>System for Cross-domain Identity Management: Core Schema</title>
<author fullname='P. Hunt' initials='P.' role='editor' surname='Hunt'><organization/></author>
<author fullname='K. Grizzle' initials='K.' surname='Grizzle'><organization/></author>
<author fullname='E. Wahlstroem' initials='E.' surname='Wahlstroem'><organization/></author>
<author fullname='C. Mortimore' initials='C.' surname='Mortimore'><organization/></author>
<date month='September' year='2015'/>
<abstract><t>The System for Cross-domain Identity Management (SCIM) specifications are designed to make identity management in cloud-based applications and services easier.  The specification suite builds upon experience with existing schemas and deployments, placing specific emphasis on simplicity of development and integration, while applying existing authentication, authorization, and privacy models.  Its intent is to reduce the cost and complexity of user management operations by providing a common user schema and extension model as well as binding documents to provide patterns for exchanging this schema using HTTP.</t><t>This document provides a platform-neutral schema and extension model for representing users and groups and other resource types in JSON format.  This schema is intended for exchange and use with cloud service providers.</t></abstract>
</front>
<seriesInfo name='RFC' value='7643'/>
<seriesInfo name='DOI' value='10.17487/RFC7643'/>
</reference>



<reference anchor='RFC7644' target='https://www.rfc-editor.org/info/rfc7644'>
<front>
<title>System for Cross-domain Identity Management: Protocol</title>
<author fullname='P. Hunt' initials='P.' role='editor' surname='Hunt'><organization/></author>
<author fullname='K. Grizzle' initials='K.' surname='Grizzle'><organization/></author>
<author fullname='M. Ansari' initials='M.' surname='Ansari'><organization/></author>
<author fullname='E. Wahlstroem' initials='E.' surname='Wahlstroem'><organization/></author>
<author fullname='C. Mortimore' initials='C.' surname='Mortimore'><organization/></author>
<date month='September' year='2015'/>
<abstract><t>The System for Cross-domain Identity Management (SCIM) specification is an HTTP-based protocol that makes managing identities in multi-domain scenarios easier to support via a standardized service. Examples include, but are not limited to, enterprise-to-cloud service providers and inter-cloud scenarios.  The specification suite seeks to build upon experience with existing schemas and deployments, placing specific emphasis on simplicity of development and integration, while applying existing authentication, authorization, and privacy models.  SCIM's intent is to reduce the cost and complexity of user management operations by providing a common user schema, an extension model, and a service protocol defined by this document.</t></abstract>
</front>
<seriesInfo name='RFC' value='7644'/>
<seriesInfo name='DOI' value='10.17487/RFC7644'/>
</reference>


<reference anchor='I-D.bhutton-json-schema'>
   <front>
      <title>JSON Schema: A Media Type for Describing JSON Documents</title>
      <author fullname='Austin Wright' initials='A.' surname='Wright'>
         </author>
      <author fullname='Henry Andrews' initials='H.' surname='Andrews'>
         </author>
      <author fullname='Ben Hutton' initials='B.' surname='Hutton'>
         <organization>Postman</organization>
      </author>
      <author fullname='Greg Dennis' initials='G.' surname='Dennis'>
         </author>
      <date day='10' month='June' year='2022'/>
      <abstract>
	 <t>   JSON Schema defines the media type &quot;application/schema+json&quot;, a JSON-
   based format for describing the structure of JSON data.  JSON Schema
   asserts what a JSON document must look like, ways to extract
   information from it, and how to interact with it.  The &quot;application/
   schema-instance+json&quot; media type provides additional feature-rich
   integration with &quot;application/schema+json&quot; beyond what can be offered
   for &quot;application/json&quot; documents.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-bhutton-json-schema-01'/>
   <format target='https://www.ietf.org/archive/id/draft-bhutton-json-schema-01.txt' type='TXT'/>
</reference>



<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></author>
<date month='March' year='1997'/>
<abstract><t>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.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<date month='May' year='2017'/>
<abstract><t>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.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>




    </references>

    <references title='Informative References'>





<reference anchor='RFC8995' target='https://www.rfc-editor.org/info/rfc8995'>
<front>
<title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
<author fullname='M. Pritikin' initials='M.' surname='Pritikin'><organization/></author>
<author fullname='M. Richardson' initials='M.' surname='Richardson'><organization/></author>
<author fullname='T. Eckert' initials='T.' surname='Eckert'><organization/></author>
<author fullname='M. Behringer' initials='M.' surname='Behringer'><organization/></author>
<author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></author>
<date month='May' year='2021'/>
<abstract><t>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 when using a routable address and a cloud service, only link-local connectivity, or 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.</t></abstract>
</front>
<seriesInfo name='RFC' value='8995'/>
<seriesInfo name='DOI' value='10.17487/RFC8995'/>
</reference>




    </references>



  </back>

<!-- ##markdown-source:
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

-->

</rfc>

