<?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.10) -->


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

]>


<rfc ipr="trust200902" docName="draft-grayson-radext-rabble-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="RABBLE">RADIUS profile for Bonded Bluetooth Low Energy peripherals</title>

    <author initials="M." surname="Grayson" fullname="Mark Grayson">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>10 New Square Park</street>
          <city>Feltham</city>
          <code>TW14 8HA</code>
          <country>UK</country>
        </postal>
        <email>mgrayson@cisco.com</email>
      </address>
    </author>
    <author initials="E." surname="Lear" fullname="Eliot Lear">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>Glatt-com</street>
          <city>CH-8301 Glattzentrum, Zurich</city>
          <country>CH</country>
        </postal>
        <email>elear@cisco.com</email>
      </address>
    </author>

    <date year="2023" month="February" day="27"/>

    <area>General</area>
    <workgroup>RADEXT Working Group</workgroup>
    <keyword>Internet-Draft</keyword> <keyword>Bluetooth Low Energy</keyword> <keyword>RADIUS</keyword>

    <abstract>


<t>This document specifies an extension to the Remote Authentication
Dial-In User Service (RADIUS) protocol that enables a Bluetooth
Low Energy (BLE) peripheral device that has previously formed a bonded,
secure trusted relationship with a first "home" Bluetooth Low Energy Central
device to operate with a second "visited" Bluetooth Low Energy Central device.</t>



    </abstract>



  </front>

  <middle>


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

<t>This document specifies an extension to the Remote Authentication
Dial-In User Service (RADIUS) protocol <xref target="RFC2865"/> that enables a Bluetooth
Low Energy (BLE) peripheral device that has previously formed a bonded,
secure trusted relationship with a first "home" Bluetooth Low Energy Central
device to operate with a second "visited" Bluetooth Low Energy Central device
that is integrated with a Network Access Server.</t>

<t>After being successfully authenticated, a signalling link is established
that enables Bluetooth messages advertized by the BLE Peripheral to be forwarded
from the Visited Bluetooth Low Energy Central device to a Home MQTT Broker.
For connectable BLE Peripherals, the signalling link enables the Home MQTT
Broker to send BLE Requests or Commands to the Visited Bluetooth Low Energy
Central device that is then responsible for forwarding to the BLE peripheral.</t>

<t>The extensions allow administrative entities to collaborate to enable
RADIUS authentication of BLE devices onto their respective networks, without
requiring the peripheral to perform a re-pairing on the visited network.</t>

<section anchor="Requirements"><name>Requirements Language</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 anchor="Terminology"><name>Terminology</name>

<t>BLE Central Controller:</t>

<t>The BLE entity that implements the Bluetooth Link Layer and interacts
  with the Bluetooth Radio Hardware.</t>

<t>BLE Central Host:</t>

<t>A BLE entity that interacts with the BLE Central Controller to enable applications
  to communicate with peer BLE devices in a standard and interoperable way.</t>

<t>BLE Peripheral Device:</t>

<t>A BLE device that is configured to repeatedly send advertizing messages.</t>

<t>BLE Security Database:</t>

<t>A database that stores the keying material associated with a
  bonded Bluetooth Connection.</t>

<t>Bluetooth Low Energy (BLE):</t>

<t>A wireless technology designed for low power operation and specified by the Bluetooth Special Interest Group.</t>

<t>Bonding:</t>

<t>A Bluetooth <xref target="BLUETOOTH"/> defined process that creates a relation between
  a Bluetooth Central device and a Bluetooth Peripheral device which generates session keying material that is expected
  to be stored by both Bluetooth devices, to be used for future authentication.</t>

<t>hash:</t>

<t>A Bluetooth <xref target="BLUETOOTH"/> specified 24-bit hash value which is calculated using a
  hash function operating on IRK and prand as its input parameters. The hash is encoded
  in the 24 least significant bits of a Resolvable Private Address.</t>

<t>home:</t>

<t>A network that has access to the keying material necessary to support the pairing of a
  BLE peripheral and that is able to expose the keys generated as part of the BLE bonding
  process.</t>

<t>Identity Address (IA):</t>

<t>The 48-bit global (public) MAC address of a Bluetooth device.</t>

<t>Identity Resolving Key (IRK):</t>

<t>A Bluetooth <xref target="BLUETOOTH"/> specified key used in the Bluetooth privacy feature.
  The Resolvable Private Address hash value is calculated using a hash function of prand and the IRK.</t>

<t>Long-Term  key (LTK):</t>

<t>A symmetric key which is generated during the Bluetooth bonding procedure and
  used to generate the session key used to encrypt a communication session between Bluetooth devices.</t>

<t>prand:</t>

<t>A 24-bit random number used by a BLE device to
  generate a Resolvable Private Address. The prand is encoded in the  24 most
  significant bits of a Resolvable Private Address.</t>

<t>Resolvable Private Address (RPA):</t>

<t>A Bluetooth <xref target="BLUETOOTH"/> specified private 48-bit address that can be
  resolved to a permanent Bluetooth Identity Address through the
  use of an Identity Resolving Key.</t>

<t>Visited:</t>

<t>A network that does not have access to the keying material necessary to support the pairing of a
  BLE peripheral, but that is able to support the RADIUS authentication of an already bonded BLE Peripheral.</t>

</section>
</section>
<section anchor="ble-roaming-overview"><name>BLE Roaming Overview</name>

<t>This section provides an overview of the RADIUS BLE mechanism, which
is supported by the extensions described in this document.
The RADIUS profile is intended to be used between a Visited BLE Central Host that
is enhanced with Network Access Server (NAS) functionality which enables
it to exchange messages with a RADIUS server.</t>

<figure title="BLE RADIUS Authentication Overview" anchor="figarch"><artwork><![CDATA[
                 +------------+   +-----------+
+------------+   |     BLE    |   |    BLE    |
|    BLE     |---|  Central#1 |---|   Home    |  
| Peripheral |   | Controller |   | Central#1 |
+------------+   |            |   |   Host    |
                 +------------+   +-----------+   
       |                               |   
       |                               |  
       |            +-------------------------+
       |            |  BLE Security Database  |
       |            |    Peripheral: IA, IRK  |
       |            |            AP: IA, IRK  |
       |            | Peripheral+AP: LTK      |
       |            +-------------------------+
       |                               |  
       | Bonded BLE                    |       
       | Peripheral             +-------------+  
       | moves                  |RADIUS Server|
       |                        +-------------+
      \|/                              |  
       -                               |
                 +------------+   +-----------+
+------------+   |     BLE    |   |  NAS/BLE  |
|    BLE     |---|  Central#2 |---|  Visited  |  
| Peripheral |   | Controller |   | Central#2 |   
+------------+   |            |   |   Host    |
                 +------------+   +-----------+
]]></artwork></figure>

<t>A BLE Peripheral is paired and bonded with the BLE Home Central Host.
The pairing requires the BLE Home Central Host to have
access to the keying material necessary to support the pairing of a
BLE peripheral, e.g., by using techniques
described in <xref target="I-D.shahzad-scim-device-model"/>.</t>

<t>The bonding process generates new session specific keying material that MUST be exposed
by the BLE Home Central Host to a RADIUS server, e.g., stored in a
BLE Security Database which is accessible by the RADIUS server. The keying
material MUST include the peripheral's IA and IRK, indicating that the BLE Peripheral
has enabled the Bluetooth privacy feature and is operating with a Resolvable Private Address (RPA).</t>

<t>The BLE Peripheral then moves into the coverage of a second
BLE Central device which comprises a second BLE Central Controller and a second BLE
(Visited) Central Host which has been enhanced with Network Access Server (NAS)
functionality. The BLE Peripheral MUST be configured to send low duty cycle
advertising events using the BLE Peripheral's RPA that are detected by the NAS/BLE
Visited Central Host. The NAS/BLE Visited Central Host decodes the Advertisement(s) sent by the
BLE Peripheral and MAY use the presence and/or contents of specific Advertising Elements
to decide whether to trigger a RADIUS exchange with a RADIUS Server which has
access to the keying material exposed by the BLE Home Central Host.</t>

<t>The successful authentication of the BLE Peripheral onto the BLE Visited Central
Host MUST include the signalling of the keying material exposed by the
BLE Home Central Host to enable the
re-establishment of the secured communication session with the BLE Peripheral.
Bluetooth advertisements received from an authenticated BLE Peripheral are
forwarded between the BLE Visited Central Host and a Home MQTT message broker.</t>

<t>If the BLE Peripheral is connectable, the Home MQTT Broker MAY send
BLE Requests or Commands to the Visited Bluetooth Low Energy Central device
that is then responsible for forwarding to the authenticated BLE peripheral.
The Home MQTT Broker MAY be configured to forward the messages
to/from a Bluetooth Application associated with the authenticated BLE Peripheral,
either directly, or via the first Home Bluetooth Low Energy Central device.</t>

<figure title="BLE Message Forwarding Overview" anchor="figarch2"><artwork><![CDATA[
                                   +-----------+
                                   |    BLE    |
                          +--------|Application|
                          |        +-----------+
                          |              |       
                          |              |       
                          |        +-----------+
          Optional direct |        | BLE Home  |
       signalling between |        | Central#1 |
           broker and BLE |        |    Host   |
              application |        +-----------+
                          |              |      
                          |              |      
                          |        +-----------+
                          |        |   Home    |
                          +--------|   MQTT    |
                                   |  Broker   |
                                   +-----------+
                                      |      -
                                      |     /|\  
                        MQTT Publish  |      |    
                         application  |      |  MQTT Publish  
                       to peripheral  |      |  peripheral to   
                            messages  |      |  application
                                      |      |  messages
                                     \|/     |    
                                      -      |     
                 +------------+    +-----------+
+------------+   |    BLE     |    |  NAS/BLE  |  
|    BLE     |---| Central#2  |----|  Visited  |   
| Peripheral |   | Controller |    | Central#2 |  
+------------+   |            |    |   Host    |  
                 +------------+    +-----------+  
]]></artwork></figure>

</section>
<section anchor="profile"><name>RADIUS Profile for BLE</name>

<section anchor="user-name"><name>User-Name</name>

<t>Contains a 6 character ASCII upper-case string corresponding to the
hexadecimal encoding of the 22-bit prand value derived from the Bluetooth Resolvable Private Address,
where the first string character represents the most significant
hexadecimal digit, i.e., a prand value of 0x035fb2 is encoded as "035FB2".</t>

</section>
<section anchor="user-password"><name>User-Password</name>

<t>Contains a 6 character ASCII upper-case string corresponding to the
hexadecimal encoding of the 24 bit hash derived from the Bluetooth Resolvable Private Address,
where the first string character represents the most significant
hexadecimal digit. The 6 character string is hidden using techniques specified in RFC 2865 <xref target="RFC2865"/>.</t>

</section>
<section anchor="chap-password-chap-challenge"><name>CHAP-Password, CHAP-Challenge</name>

<t>These attributes are not used by BLE Authenticators.</t>

</section>
<section anchor="nas-ip-address-nas-ipv6-address"><name>NAS-IP-Address, NAS-IPv6-Address</name>

<t>The NAS-IP-Address contains the IPv4 address of the BLE Central
Host acting as an Authenticator,
and the NAS-IPv6-Address contains the IPv6 address.</t>

</section>
<section anchor="nas-port"><name>NAS-Port</name>

<t>For use with BLE the NAS-Port will contain the port number of
the BLE Central Host, if this is available.</t>

</section>
<section anchor="service-type"><name>Service-Type</name>

<t>For use with BLE, the Service-Type of Authenticate Only (8) is used.</t>

</section>
<section anchor="framed-protocol"><name>Framed-Protocol</name>

<t>The Framed-Protocol
attribute is not used by BLE Authenticators.</t>

</section>
<section anchor="framed-ip-address-framed-ip-netmask"><name>Framed-IP-Address, Framed-IP-Netmask</name>

<t>The Framed-IP-Address and Framed-IP-Netmask
attributes are not used by BLE Authenticators.</t>

</section>
<section anchor="framed-routing"><name>Framed-Routing</name>

<t>The Framed-Routing
attribute is not used by BLE Authenticators.</t>

</section>
<section anchor="filter-id"><name>Filter-ID</name>

<t>The Filter-ID
attribute is not used by BLE Authenticators.</t>

</section>
<section anchor="framed-mtu"><name>Framed-MTU</name>

<t>The Framed-MTU
attribute is not used by BLE Authenticators.</t>

</section>
<section anchor="framed-compression"><name>Framed-Compression</name>

<t>The Framed-Compression
attribute is not used by BLE Authenticators.</t>

</section>
<section anchor="displayable-messages"><name>Displayable Messages</name>

<t>The Displayable Messages
attribute is not used by BLE Authenticators.</t>

</section>
<section anchor="callback-number-callback-id"><name>Callback-Number, Callback-ID</name>

<t>These attributes are not not used by BLE Authenticators.</t>

</section>
<section anchor="framed-route-framed-ipv6-route"><name>Framed-Route, Framed-IPv6-Route</name>

<t>These attributes are not not used by BLE Authenticators.</t>

</section>
<section anchor="state-class-proxy-state"><name>State, Class, Proxy-State</name>

<t>These attributes are used for the same purposes as described in
<xref target="RFC2865"/>.</t>

</section>
<section anchor="vendor-specific"><name>Vendor-Specific</name>

<t>Vendor-specific attributes are used for the same purposes as
described in <xref target="RFC2865"/>.</t>

</section>
<section anchor="session-timeout"><name>Session-Timeout</name>

<t>When sent along in an Access-Accept without a Termination-Action
attribute or with a Termination-Action attribute set to Default, the
Session-Timeout attribute specifies the maximum number of seconds of
service provided prior to session termination.</t>

</section>
<section anchor="idle-timeout"><name>Idle-Timeout</name>

<t>The Idle-Timeout
attribute indicates the maximum time that the BLE wireless device may
remain idle.</t>

</section>
<section anchor="termination-action"><name>Termination-Action</name>

<t>This attribute indicates what action should be taken when the service
is completed. The value Default (0) indicates that the session should terminate.</t>

</section>
<section anchor="called-station-id"><name>Called-Station-Id</name>

<t>For NAS/BLE Visited Host Authenticators, this attribute is used to store the
public Identity Address (BD_ADDR) of the Bluetooth Access Point in ASCII
format (upper case only),
with octet values separated by a "-".  Example: "88-15-44-23-19-C0".</t>

</section>
<section anchor="calling-station-id"><name>Calling-Station-Id</name>

<t>This attribute is not not used by BLE Authenticators.</t>

</section>
<section anchor="nas-identifier"><name>NAS-Identifier</name>

<t>This attribute contains a string identifying the BLE Central Host
originating the Access-Request.</t>

</section>
<section anchor="NPT"><name>NAS-Port-Type</name>

<t>TBA1:  "Wireless - Bluetooth Low Energy"</t>

</section>
<section anchor="port-limit"><name>Port-Limit</name>

<t>This attribute is not not used by BLE Authenticators.</t>

</section>
<section anchor="password-retry"><name>Password-Retry</name>

<t>This attribute is not not used by BLE Authenticators.</t>

</section>
<section anchor="message-authenticator"><name>Message-Authenticator</name>

<t>The Message-Authenticator attribute MUST be used to protect
any packets that include the BLE-Keying-Material attribute.</t>

</section>
<section anchor="GSP"><name>GATT-Service-Profile</name>

<t>Description</t>

<t>The GATT-Service-Profile (TBA2) Attribute allows a RADIUS
client to include one or more GATT Service Profiles which are advertised
by the BLE Peripheral.</t>

<t>Zero or more GATT-Service-Profile Attributes MAY be included in
an Access-Request packet.</t>

<t>A summary of the GATT-Service-Profile Attribute format is
shown below. The fields are transmitted from left to right.</t>

<figure title="Encoding GATT-Service-Profile Attribute" anchor="attr-gatt"><artwork><![CDATA[
0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |  Length       |           Value
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           Value (cont)         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    

]]></artwork></figure>

<t>Type</t>

<ul empty="true"><li>
  <ul empty="true"><li>
    <t>TBA2</t>
  </li></ul>
</li></ul>

<t>Length</t>

<ul empty="true"><li>
  <ul empty="true"><li>
    <t>6 octet</t>
  </li></ul>
</li></ul>

<t>Value</t>

<t>The field is 4 octets, containing a 32-bit unsigned integer that
represents a GATT Service Profile.</t>

</section>
<section anchor="BPKM"><name>BLE-Keying-Material</name>

<t>Description</t>

<t>The BLE-Keying-Material (TBA3) Attribute allows the
transfer of Identity Address(es) and cryptographic keying material from a
RADIUS Server to the BLE Visited Central Host.</t>

<t>Any packet that contains a BLE-Keying-Material Attribute MUST also
include the Message-Authenticator attribute.</t>

<t>A single BLE-Keying-Material Attributes MUST be included in
an Access-Accept packet.</t>

<t>A summary of the BLE-Keying-Material Attribute format is
shown below. The fields are transmitted from left to right.</t>

<figure title="Encoding BLE-Keying-Material Attribute" anchor="attr-pkm"><artwork><![CDATA[
0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |  Length       |          Peripheral IA     
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              Peripheral Identity Address (cont'd)              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Central Identity Address                
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      Central IA (cont'd)       |           KM Type             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             KEK ID
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                           KEK ID (cont'd)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                           KEK ID (cont'd)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                           KEK ID (cont'd)                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               IV
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                            IV (cont'd)                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Keying Material Data
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


]]></artwork></figure>

<t>Type</t>

<ul empty="true"><li>
  <ul empty="true"><li>
    <t>TBA3</t>
  </li></ul>
</li></ul>

<t>Length</t>

<ul empty="true"><li>
  <ul empty="true"><li>
    <t>&gt;=56 octet</t>
  </li></ul>
</li></ul>

<t>Peripheral Identity Address</t>

<ul empty="true"><li>
  <t>The Peripheral Identity Address field is 6 octets in length and
contains the Peripheral's 6-octet Identity Address.</t>
</li></ul>

<t>Central Identity Address</t>

<ul empty="true"><li>
  <t>The Central Identity Address field is 6 octets in length and
contains the Central's 6-octet Identity Address. If the
Central Identity Address is not used, it is set to 0.</t>
</li></ul>

<t>KM Type</t>

<ul empty="true"><li>
  <t>The KM Type field is 2 octets in length and identifies the type of keying material
included in the Keying Material Data field. This allows
for multiple keys for different purposes to be present in the same
attribute. This document defines three values for the KM Type:</t>
</li></ul>

<ul empty="true"><li>
  <ul empty="true"><li>
    <ul empty="true"><li>
      <t>0     The Keying Material Data field contains the
      16-octet Peripheral Identity Resolving Key encrypted using the AES key wrapping process
      with 128-bit KEK defined in <xref target="RFC3394"/></t>
    </li></ul>
  </li></ul>
</li></ul>

<ul empty="true"><li>
  <ul empty="true"><li>
    <ul empty="true"><li>
      <t>1      The Keying Material Data field contains the encrypted
        16-octet Peripheral Identity Resolving Key
        and the 16-octet Long Term Key generated during an LE Secure Connection bonding procedure.
        The Peripheral IRK is passed as input P1 and P2 and the Long Term Key is passed as input P3 and P4
        in the AES key wrapping process with 128-bit KEK defined in <xref target="RFC3394"/>.</t>
    </li></ul>
  </li></ul>
</li></ul>

<ul empty="true"><li>
  <ul empty="true"><li>
    <ul empty="true"><li>
      <t>2      The Keying Material Data field contains the 16-octet Peripheral Identity Resolving Key,
        the 16-octet Long Term Key generated during an LE Secure Connection bonding procedure and the
        16-octet Central Identity Resolving Key. The Peripheral IRK is passed as input P1 and P2,
        the Long Term Key is passed as input P3 and P4 and the Central IRK is passed as input P5 and P6
        in the AES key wrapping process with 128-bit KEK defined in <xref target="RFC3394"/>.</t>
    </li></ul>
  </li></ul>
</li></ul>

<t>KEK ID</t>

<ul empty="true"><li>
  <t>The KEK ID field is 16 octets in length.  The combination of the
KEK ID and the RADIUS client and server IP addresses together uniquely
identify a key shared between the RADIUS client and server.  As a
result, the KEK ID need not be globally unique.  The KEK ID MUST
refer to an encryption key for use with the AES Key Wrap with
128-bit KEK algorithm <xref target="RFC3394"/> .  This key is used to protect
the contents of the Keying Material Data field (below).<br />
The KEK ID is a constant that is configured
through an out-of-band mechanism.  The same value is configured on
both the RADIUS client and server.  If no KEK ID is configured,
then the field is set to 0.  If only a single KEK is configured
for use between a given RADIUS client and server, then 0 can be
used as the default value.</t>
</li></ul>

<t>IV</t>

<ul empty="true"><li>
  <t>The IV field is 8-octets in length and its value
MUST be as specified in <xref target="RFC3394"/> .</t>
</li></ul>

<t>Keying Material Data</t>

<ul empty="true"><li>
  <t>The Keying Material Data field is of variable length and contains
the actual encrypted keying material as identified using the KM Type field.</t>
</li></ul>

</section>
<section anchor="forwarding-bluetooth-messages"><name>Forwarding Bluetooth Messages</name>
<t>RADIUS attributes described in this section are used to exchange information to allow non-IP Bluetooth messages to be
transferred between the BLE Visited Central Host and a Home MQTT Broker.</t>

<section anchor="MBU"><name>MQTT-Broker-URI</name>

<t>Description</t>

<t>The MQTT-Broker-URI (TBA4) Attribute allows a RADIUS
server to specify the URI of the MQTT Broker.
A single MQTT-Broker-URI Attributes MAY be included in
an Access-Accept packet.</t>

<t>If the RADIUS server operates with NAS/BLE Visited Hosts
that are deployed behind firewalls or NAT gateways,
MQTT Messages SHOULD be transported using WebSocket
<xref target="RFC6455"/> as a network transport as defined in MQTT <xref target="MQTT"/> and the
the attribute SHOULd specify the URI of a WebSocket server
that supports the 'mqtt' Sec-WebSocket-Protocol.</t>

<t>A summary of the MQTT-Broker-URI Attribute format is
shown below. The fields are transmitted from left to right.</t>

<figure title="Encoding MQTT-Broker-URI Attribute" anchor="attr-broker"><artwork><![CDATA[
0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |  Length       |            String...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>Type</t>

<ul empty="true"><li>
  <ul empty="true"><li>
    <t>TBA4</t>
  </li></ul>
</li></ul>

<t>Length</t>

<ul empty="true"><li>
  <ul empty="true"><li>
    <t>&gt;=3 octet</t>
  </li></ul>
</li></ul>

<t>String</t>

<t>The String field is encoded in UTF-8 and contains a URI where the
MQTT service can be accessed, e.g., "wss://broker.example.com:443".</t>

</section>
<section anchor="MT"><name>MQTT-Token</name>

<t>Description</t>

<t>The MQTT-Token (TBA5) Attribute allows a RADIUS server
signal a token for use by an MQTT client in an MQTT CONNECT packet <xref target="MQTT"/>.
The token can be used by an MQTT Broker to associate an MQTT Connection from an
MQTT Client with a Network Access Server.</t>

<t>A MQTT-Token Attributes MAY be included in
an Access-Accept packet.</t>

<t>A summary of the MQTT-Token Attribute format is
shown below. The fields are transmitted from left to right.</t>

<figure title="Encoding MQTT-Token Attribute" anchor="attr-token"><artwork><![CDATA[
0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |  Length       |            String...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>Type</t>

<ul empty="true"><li>
  <ul empty="true"><li>
    <t>TBA5</t>
  </li></ul>
</li></ul>

<t>Length</t>

<ul empty="true"><li>
  <ul empty="true"><li>
    <t>&gt;=3 octet</t>
  </li></ul>
</li></ul>

<t>String</t>

<t>The String field is encoded in UTF-8 and contains a token for use
with an MQTT CONNECT packet.</t>

</section>
</section>
<section anchor="radius-accounting-attributes"><name>RADIUS Accounting Attributes</name>

<t>With a few exceptions, the RADIUS accounting attributes defined in
<xref target="RFC2866"/> have the same meaning within BLE sessions as they do in dialup sessions and therefore no
additional commentary is needed.</t>

<section anchor="acct-input-octets-and-acct-output-octets"><name>Acct-Input-Octets and Acct-Output-Octets</name>

<t>These attributes are not not used by BLE Authenticators.</t>

</section>
<section anchor="acct-input-packets"><name>Acct-Input-Packets</name>

<t>This attribute is used to indicate how many MQTT messages that include the Peripheral Identity Address signalled in<br />
the BLE-Keying-Material attribute have been sent by the BLE Central Host.</t>

</section>
<section anchor="acct-output-packets"><name>Acct-Output-Packets</name>

<t>This attribute is used to indicate how many MQTT messages that include the Peripheral Identity Address signalled in<br />
the BLE-Keying-Material attribute have been received by the BLE Central Host.</t>

</section>
<section anchor="acct-terminate-cause"><name>Acct-Terminate-Cause</name>

<t>This attribute indicates how the session was terminated, as described
in <xref target="RFC2866"/>. When the idle-timeout attribute is used by the NAS/BLE Visited Host to
terminate a RADIUS Accounting session, it MUST set the Acct-Terminate-Cause set to Lost Carrier (2).</t>

</section>
<section anchor="acct-multi-session-id"><name>Acct-Multi-Session-Id</name>

<t>This attribute is not not used by BLE Authenticators.</t>

</section>
</section>
</section>
<section anchor="ops"><name>BLE RADIUS Exchange</name>

<t>The BLE Peripheral uses
techniques defined in Bluetooth Core Specifications <xref target="BLUETOOTH"/> to
establish a bonded, secure, trusted relationship with a BLE
Home Central device in the network. The bonding procedure generates session specific keying material.
The BLE Peripheral sends low duty cycle
advertising events.</t>

<t>The BLE Peripheral moves into coverage of a second BLE Central device that is integrated with a NAS.</t>

<t>The BLE Peripheral sends Advertisements using its Resolvable Public Address.
The contents of the Advertizements are signalled to a BLE Visited Central Host associated with the
second BLE Central device. The decoded Advertisements sent by the
BLE Peripheral, are used by the
BLE Visited Central Host to decide whether to trigger a RADIUS exchange,  e.g., using the presence
and/or contents of specific Advertising Elements.</t>

<t>The NAS associated with the BLE Visited Central Host is provisioned with the identity of the RADIUS server.
The NAS/BLE Visited Host MAY be statically configured with the identity of a RADIUS Server. Alternatively,
the NAS/BLE Visited Host MAY use the contents of an Advertizement Element received from the BLE Peripheral
to derive an FQDN of the RADIUS sever and use RFC 7585 <xref target="RFC7585"/> to dynamically resolve the address of the RADIUS
server. For example, the Bluetooth URI data type Advertizement Element (0x24) can be used to encode a hostname that
identifies the network which operates the BLE Home Central Host.</t>

<t>The NAS/BLE Host generates a RADIUS Access-Request message using the prand
from the RPA as the User-Name attribute and the hash from the RPA as the User-Password attribute.
The NAS-Port-Type is set to "Wireless - Bluetooth Low Energy".</t>

<t>On receiving the RADIUS Access-Request message, the RADIUS Server uses the keying material exposed by the
BLE Home Central Host and attempts to resolve the
User-Name and User-Password to a known BLE Identity Address (IA).  If the RADIUS Server cannot resolve the User-Name
and User-Password to a known BLE Identity Address, the RADIUS server MUST reject the Access-Request.</t>

<t>If the RADIUS Server resolves the User-Name and User-Password to a known BLE Identity Address, and the BLE Identity Address is authorized to access via the BLE Visited Host, the RADIUS server recovers the session specific keying material exposed by the
BLE Home Central Host.</t>

<t>If the BLE Peripheral is not connectable or connections are not authorized, the RADIUS server encodes the Peripheral Identity Address and the Peripheral Identity Resolving Key in the BLE-Keying-Material attribute and sets the KM Type to 0.
If the BLE Peripheral is connectable and connections are authorized via the BLE Visited Host, the RADIUS server
additionally includes the Central Identity Address and the Long Term Key in the BLE-Keying-Material attribute and sets the KM Type to 1. Finally, if the BLE Peripheral is connectable and connections are authorized via the BLE Visited Host and the security database indicates that the BLE Home Central Host operates using Bluetooth privacy,
then the RADIUS server additionally includes the Central Identity Resolving Key in the BLE-Keying-Material attribute and sets the KM Type to 2.</t>

<t>The RADIUS Server SHOULD include the MQTT-Broker-URI attribute and MAY include the MQTT-Token attribute
by which an MQTT client associated with the BLE Visited Host can establish an MQTT connection with a Home MQTT Broker
for forwarding messages received to/from the BLE peripheral.</t>

<t>On receiving the Access-Accept, the NAS/BLE Visited Host recovers the keying material, including
the BLE Peripheral's Identity Address and then establishes an MQTT Connection with the Home MQTT Broker.
The NAS/BLE Visited Host SHOULD include its NAS-Id in the User Name field of the MQTT CONNECT message
and MAY include an Operator Name, if for example the NAS has been configured with the operator-name attribute (#126) as
specified in RFC5580 <xref target="RFC5580"/>.</t>

<t>If the advertizement that triggered the RADIUS exchange corresponds to an ADV_IND then the
NAS/BLE Visited Host can subsequently establish a secure connection with the BLE Peripheral.</t>

<figure title="BLE RADIUS Exchange" anchor="figops"><artwork><![CDATA[
                    NAS/BLE                                                                                                                
                    Visited                    Home            Home       
   BLE             Central#2                  RADIUS           MQTT   
Peripheral           Host                     Server          Broker
    |                  |                         |              |  
    |                  |                         |              |
    |--BLE ----------->|                         |              |  
    |  Advertizement   |                         |              |
    |                  |                         |              |
    |<---------------->|                         |              |
    |  Active Scan     |-  Access-Request------->|              |      
    |                  |  user-name=prand        |              |  
    |                  |  user-password=hash     |              |   
    |                  |  NAS-Port-Type=BLE      |              |  
    |                  |  GATT-Service-Profile   |              |
    |                  |                         |              |   
    |                  |<  Access-Accept---------|              |    
    |                  |  Idle-Timeout           |              |  
    |                  |  BLE-Keying-Material    |              |  
    |                  |  MQTT-Broker-URI        |              |  
    |                  |  MQTT-Token             |              |
    |                  |                         |              |   
    |                  |---Accounting-Request--->|              |   
    |                  |  Acct-Status-Type=Start |              |   
    |                  |  Session-Id             |              |   
    |                  |                         |              |  
    |                  |---MQTT CONNECT------------------------>|   
    |                  |  User Name=[operator_name:]nas-id      |  
    |                  |  Password=MQTT Token    |              |    
    |                  |                         |              |   
    |                  |---MQTT PUBLISH------------------------>|  
    |                  |  Advertizement(s)       |              |  
    |                  |                         |              |  
   +-------------------------------------------------------------+
   |          Further MQTT and associated BLE Exchanges          |    
   +-------------------------------------------------------------+  
    |                  |                         |              |  
    |--BLE ----------->|--+ Resolve to           |              |  
    |  Advertizement   |  | same Identity        |              |
    |                  |<-+ Address              |              |  
    |               +--|                         |              |  
    |               |  |                         |              |   
    |               +->|Idle Timer Expiry        |              |  
    |                  |                         |              |     
    |                  |---Accounting-Request--->|              |
    |                  |  Acct-Status-Type=Stop  |              |    
    |                  |  Session-Id             |              |  

]]></artwork></figure>

</section>
<section anchor="Attributes"><name>Table of Attributes</name>

<t>The following table provides a guide to which of the attribute defined
may be found in which kinds of packets, and in what quantity.</t>

<texttable title="Table of Attributes">
      <ttcol align='left'>Request</ttcol>
      <ttcol align='left'>Accept</ttcol>
      <ttcol align='left'>Reject</ttcol>
      <ttcol align='left'>Challenge</ttcol>
      <ttcol align='left'>Acct-Request</ttcol>
      <ttcol align='left'>#</ttcol>
      <ttcol align='left'>Attribute</ttcol>
      <c>0+</c>
      <c>0</c>
      <c>0</c>
      <c>0</c>
      <c>0</c>
      <c>TBA1</c>
      <c>GATT-Service-Profile</c>
      <c>0</c>
      <c>1</c>
      <c>0</c>
      <c>0</c>
      <c>0</c>
      <c>TBA2</c>
      <c>BLE-Keying-Material</c>
      <c>0</c>
      <c>0-1</c>
      <c>0</c>
      <c>0</c>
      <c>0</c>
      <c>TBA3</c>
      <c>MQTT-Broker-URI</c>
      <c>0</c>
      <c>0-1</c>
      <c>0</c>
      <c>0</c>
      <c>0</c>
      <c>TBA4</c>
      <c>MQTT-Token</c>
</texttable>

<t>The following table defines the meaning of the above table entries.</t>

<texttable title="Table of Attributes Entry Definition">
      <ttcol align='left'>Entry</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <c>0</c>
      <c>This attribute MUST NOT be present in packet.</c>
      <c>0+</c>
      <c>Zero or more instances of this attribute MAY be present in packet.</c>
      <c>0-1</c>
      <c>Zero or one instance of this attribute MAY be present in packet.</c>
      <c>1</c>
      <c>One instance of this attribute MUST be present in packet.</c>
</texttable>

</section>
<section anchor="Security"><name>Security Considerations</name>

<t>Use of this RADIUS profile for BLE can be between a NAS/BLE Visited Host and a RADIUS Server inside a secure network, or between a NAS/BLE Visited Host and RADIUS server operated in different administrative domains which are connected over the Internet.  All implementations MUST follow <xref target="I-D.draft-dekok-radext-deprecating-radius"/>.</t>

<t>The RADIUS profile for BLE devices is designed to operate when BLE devices operate their
physical links with BLE Secure Connections <xref target="BLUETOOTH"/>. This approach uses a secure exchange of data over the Bluetooth connection,
together with Elliptic Curve Diffie-Hellman (ECDH) public key cryptography, to
create the session specific symmetric Long Term Key (LTK) which is then exchanged using the BLE-Keying-Material attribute in the RADIUS Access-Accept message.</t>

<t>Bluetooth <xref target="BLUETOOTH"/> specifies how an IRK can be generated from an Identity Root (IR) key. Removing the Bluetooth bond in a device will typically trigger the generation of a new IRK key for the device.</t>

<t>The RADIUS profile for BLE devices is designed to operate when BLE devices are configured to operate with Bluetooth Privacy Mode enabled <xref target="BLUETOOTH"/>. The BLE device defines the policy of how often it should generate a new Resolvable Private Address. This can be configured to be between every second and every hour, with a default value of every 15 minutes <xref target="BLUETOOTH"/>.
This mode mitigates risks
associated with a malicious third-party scanning for and collecting Bluetooth addresses over time and using such to build a picture of the movements of BLE devices and, by inference, the human users of those devices.</t>

<t>The Home MQTT broker can observe the Bluetooth messages exchanged with the BLE Peripheral.
The Bluetooth GATT attributes SHOULD be cryptographically protected at the application-layer.
The Home MQTT Broker MUST be configured with access control lists so that a NAS cannot subscribe to
a topic that is intended for another NAS.</t>

<t>The WebSocket connection MUST operate using a WebSocket Secure connection. If the entropy of the MQTT-Token is known to be low, the WebSocket Secure TLS connection SHOULD be secured with certificate-based mutual TLS.</t>

</section>
<section anchor="IANA"><name>IANA Considerations</name>

<t>This document defines a new value of TBA1 for RADIUS Attribute Type #61 (NAS-Port-Type) defined in https://www.iana.org/assignments/radius-types/radius-types.xhtml#radius-types-13</t>

<texttable title="New NAS-Port-Type value defined in this document">
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>TBA1</c>
      <c>"Wireless - Bluetooth Low Energy"</c>
      <c><xref target="NPT"/></c>
</texttable>

<t>This document defines new RADIUS attributes, (see section <xref target="profile"/>), and assigns values of TBA2, TBA3, TBA4, and TBA5 from the RADIUS Attribute Type space https://www.iana.org/assignments/radius-types.</t>

<texttable title="New RADIUS attributes defined in this document">
      <ttcol align='left'>Tag</ttcol>
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>TBA2</c>
      <c>GATT-Service-Profile</c>
      <c><xref target="GSP"/></c>
      <c>TBA3</c>
      <c>BLE-Keying-Material</c>
      <c><xref target="BPKM"/></c>
      <c>TBA4</c>
      <c>MQTT-Broker-URI</c>
      <c><xref target="MBU"/></c>
      <c>TBA5</c>
      <c>MQTT-Token</c>
      <c><xref target="MT"/></c>
</texttable>

</section>


  </middle>

  <back>


    <references title='Normative References'>





<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='RFC2865' target='https://www.rfc-editor.org/info/rfc2865'>
<front>
<title>Remote Authentication Dial In User Service (RADIUS)</title>
<author fullname='C. Rigney' initials='C.' surname='Rigney'><organization/></author>
<author fullname='S. Willens' initials='S.' surname='Willens'><organization/></author>
<author fullname='A. Rubens' initials='A.' surname='Rubens'><organization/></author>
<author fullname='W. Simpson' initials='W.' surname='Simpson'><organization/></author>
<date month='June' year='2000'/>
<abstract><t>This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server which desires to authenticate its links and a shared Authentication Server.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='2865'/>
<seriesInfo name='DOI' value='10.17487/RFC2865'/>
</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>



<reference anchor='RFC6455' target='https://www.rfc-editor.org/info/rfc6455'>
<front>
<title>The WebSocket Protocol</title>
<author fullname='I. Fette' initials='I.' surname='Fette'><organization/></author>
<author fullname='A. Melnikov' initials='A.' surname='Melnikov'><organization/></author>
<date month='December' year='2011'/>
<abstract><t>The WebSocket Protocol enables two-way communication between a client running untrusted code in a controlled environment to a remote host that has opted-in to communications from that code.  The security model used for this is the origin-based security model commonly used by web browsers.  The protocol consists of an opening handshake followed by basic message framing, layered over TCP.  The goal of this technology is to provide a mechanism for browser-based applications that need two-way communication with servers that does not rely on opening multiple HTTP connections (e.g., using XMLHttpRequest or &lt;iframe&gt;s and long polling).  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6455'/>
<seriesInfo name='DOI' value='10.17487/RFC6455'/>
</reference>



<reference anchor='RFC5580' target='https://www.rfc-editor.org/info/rfc5580'>
<front>
<title>Carrying Location Objects in RADIUS and Diameter</title>
<author fullname='H. Tschofenig' initials='H.' role='editor' surname='Tschofenig'><organization/></author>
<author fullname='F. Adrangi' initials='F.' surname='Adrangi'><organization/></author>
<author fullname='M. Jones' initials='M.' surname='Jones'><organization/></author>
<author fullname='A. Lior' initials='A.' surname='Lior'><organization/></author>
<author fullname='B. Aboba' initials='B.' surname='Aboba'><organization/></author>
<date month='August' year='2009'/>
<abstract><t>This document describes procedures for conveying access-network ownership and location information based on civic and geospatial location formats in Remote Authentication Dial-In User Service (RADIUS) and Diameter.</t><t>The distribution of location information is a privacy-sensitive task. Dealing with mechanisms to preserve the user's privacy is important and is addressed in this document.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5580'/>
<seriesInfo name='DOI' value='10.17487/RFC5580'/>
</reference>


<reference anchor='I-D.draft-dekok-radext-deprecating-radius' target='https://datatracker.ietf.org/doc/html/draft-dekok-radext-deprecating-radius-00'>
   <front>
      <title>Deprecating RADIUS/UDP and RADIUS/TCP</title>
      <author fullname='Alan DeKok' initials='A.' surname='DeKok'>
         <organization>FreeRADIUS</organization>
      </author>
      <date day='4' month='October' year='2022'/>
      <abstract>
	 <t>   RADIUS crypto-agility was first mandated as future work by RFC 6421.
   The outcome of that work was the publication of RADIUS over TLS (RFC
   6614) and RADIUS over DTLS (RFC 7360) as experimental documents.
   Those transport protocols have been in wide-spread use for many years
   in a wide range of networks.  They have proven their utility as
   replacements for the previous UDP (RFC 2865) and TCP (RFC 6613)
   transports.  With that knowledge, the continued use of insecure
   transports for RADIUS has serious and negative implications for
   privacy and security.

   This document formally deprecates the use of the User Datagram
   Protocol (UDP) and of the Transport Congestion Protocol (TCP) as
   transport protocols for RADIUS.  These transports are permitted
   inside of secure networks, but their use even in that environment is
   strongly discouraged.  For all other environments, the use of TLS-
   based transports is mandated.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-dekok-radext-deprecating-radius-00'/>
   
</reference>




    </references>

    <references title='Informative References'>





<reference anchor='RFC2866' target='https://www.rfc-editor.org/info/rfc2866'>
<front>
<title>RADIUS Accounting</title>
<author fullname='C. Rigney' initials='C.' surname='Rigney'><organization/></author>
<date month='June' year='2000'/>
<abstract><t>This document describes a protocol for carrying accounting information between a Network Access Server and a shared Accounting Server.  This memo provides information for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='2866'/>
<seriesInfo name='DOI' value='10.17487/RFC2866'/>
</reference>



<reference anchor='RFC3394' target='https://www.rfc-editor.org/info/rfc3394'>
<front>
<title>Advanced Encryption Standard (AES) Key Wrap Algorithm</title>
<author fullname='J. Schaad' initials='J.' surname='Schaad'><organization/></author>
<author fullname='R. Housley' initials='R.' surname='Housley'><organization/></author>
<date month='September' year='2002'/>
</front>
<seriesInfo name='RFC' value='3394'/>
<seriesInfo name='DOI' value='10.17487/RFC3394'/>
</reference>



<reference anchor='RFC6218' target='https://www.rfc-editor.org/info/rfc6218'>
<front>
<title>Cisco Vendor-Specific RADIUS Attributes for the Delivery of Keying Material</title>
<author fullname='G. Zorn' initials='G.' surname='Zorn'><organization/></author>
<author fullname='T. Zhang' initials='T.' surname='Zhang'><organization/></author>
<author fullname='J. Walker' initials='J.' surname='Walker'><organization/></author>
<author fullname='J. Salowey' initials='J.' surname='Salowey'><organization/></author>
<date month='April' year='2011'/>
<abstract><t>This document defines a set of vendor-specific RADIUS Attributes designed to allow both the secure transmission of cryptographic keying material and strong authentication of any RADIUS message. These attributes have been allocated from the Cisco vendor-specific space and have been implemented by multiple vendors.  This document  is not an Internet Standards Track specification; it is published for informational purposes.</t></abstract>
</front>
<seriesInfo name='RFC' value='6218'/>
<seriesInfo name='DOI' value='10.17487/RFC6218'/>
</reference>



<reference anchor='RFC7585' target='https://www.rfc-editor.org/info/rfc7585'>
<front>
<title>Dynamic Peer Discovery for RADIUS/TLS and RADIUS/DTLS Based on the Network Access Identifier (NAI)</title>
<author fullname='S. Winter' initials='S.' surname='Winter'><organization/></author>
<author fullname='M. McCauley' initials='M.' surname='McCauley'><organization/></author>
<date month='October' year='2015'/>
<abstract><t>This document specifies a means to find authoritative RADIUS servers for a given realm.  It is used in conjunction with either RADIUS over Transport Layer Security (RADIUS/TLS) or RADIUS over Datagram Transport Layer Security (RADIUS/DTLS).</t></abstract>
</front>
<seriesInfo name='RFC' value='7585'/>
<seriesInfo name='DOI' value='10.17487/RFC7585'/>
</reference>


<reference anchor='I-D.shahzad-scim-device-model' target='https://datatracker.ietf.org/doc/html/draft-shahzad-scim-device-model-02'>
   <front>
      <title>Device Schema Extensions to the SCIM model</title>
      <author fullname='Muhammad Shahzad' initials='M.' surname='Shahzad'>
         <organization>North Carolina State University</organization>
      </author>
      <author fullname='HASSAN IQBAL' initials='H.' surname='Hassan'>
         <organization>North Carolina State University</organization>
      </author>
      <author fullname='Eliot Lear' initials='E.' surname='Lear'>
         <organization>Cisco Systems</organization>
      </author>
      <date day='10' month='January' year='2023'/>
      <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>
   <seriesInfo name='Internet-Draft' value='draft-shahzad-scim-device-model-02'/>
   
</reference>


<reference anchor="BLUETOOTH" target="https://www.bluetooth.com/specifications/bluetooth-core-specification/">
  <front>
    <title>BLUETOOTH CORE SPECIFICATION v5.3</title>
    <author initials="" surname="Bluetooth Core Specification Working Group">
      <organization></organization>
    </author>
    <date year="2021" month="July" day="13"/>
  </front>
</reference>
<reference anchor="MQTT" target="https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html">
  <front>
    <title>MQTT Version 5.0</title>
    <author initials="" surname="OASIS">
      <organization></organization>
    </author>
    <date year="2019" month="March" day="07"/>
  </front>
</reference>


    </references>


<section anchor="mqtt-interworking"><name>MQTT Interworking</name>

<t>This section describes how a NAS/BLE Visited Host supporting the BLE RADIUS profile can interwork with a Home MQTT Message Broker in order to use MQTT topics to deliver Bluetooth messages to/from a BLE Peripheral. It is intended to move this material to another document - but is included here to describe, at a high level, the MQTT interworking established by the RADIUS exchange.</t>

<section anchor="establishing-a-session-to-a-mqtt-broker-uri"><name>Establishing a Session to a MQTT-Broker-URI</name>

<t>If the NAS/BLE Visited Host is signalled a MQTT-Broker-URI in an Access-Accept with which it does not have an established MQTT connection, then it MUST establish an MQTT connection. It the NAS/BLE Visited Host is behind a firewall or NAT gateway it MUST use WebSocket transport for the MQTT connection. The user name in the MQTT CONNECT message SHOULD include the NAS-ID and MAY include the name of the operator of the NAS/BLE Visited Host.</t>

<figure title="Establishing an MQTT connection to a Home Broker using WebSocket transport" anchor="figest"><artwork><![CDATA[
                    NAS/BLE                                   
                    Visited                    Home            Home       
   BLE             Central#2                  RADIUS           MQTT  
Peripheral            Host                    Server          Broker
    |                  |                         |              |   
    |                  |                         |              |  
    |                  |---Accounting-Request--->|              |  
    |                  |  Acct-Status-Type=Start |              |    
    |                  |  Session-Id             |              |   
    |                  |  Chargeable-User-Id     |              |   
    |                  |                         |              |   
    |                  |---HTTP GET---------------------------->|  
    |                  |  Upgrade:websocket      |              |
    |                  |  Connection:upgrade     |              |  
    |                  |  Sec-WebSocket-Protocol=mqtt           |  
    |                  |                         |              |
    |                  |<--HTTP 101--------------|--------------|  
    |                  |  Upgrade:websocket      |              |  
    |                  |  Connection:upgrade     |              |  
    |                  |  Sec-WebSocket-Protocol=mqtt           |  
    |                  |                         |              |  
    |                  |---MQTT CONNECT------------------------>|   
    |                  |  User Name=[operator_name:]nas-id      |  
    |                  |  Password=MQTT Token    |              |   
    |                  |                         |              |   
    |                  |<--MQTT CONNACK-------------------------|  
    |                  |                         |              |
    |                  |                         |              |        
]]></artwork></figure>

</section>
<section anchor="mqtt-topics"><name>MQTT topics</name>

<t>The following topic is used by the MQTT client of the BLE Visited Host to signal active and passive scan advertisements received from BLE Peripherals to the home MQTT Broker.</t>

<t><list style="numbers">
  <t>{peripheral_identity_address}/gatt-ind/advertisement</t>
</list></t>

<t>If the BLE Peripheral is connectable, the MQTT client of the BLE Visited Host SHOULD subscribe
to the following message topics to be able to receive GATT requests from the Home MQTT Broker:</t>

<t><list style="numbers">
  <t>{peripheral_identity_address}/gatt-req/connect : when publishing a message on the {peripheral_identity_address}/gatt-req/connect topic, an MQTT client SHOULD include the following as a response topic
  {peripheral_identity_address}/gatt-res/connect</t>
  <t>{peripheral_identity_address}/gatt-req/disconnect : when publishing a message on the {peripheral_identity_address}/gatt-req/disconnect topic, an MQTT client SHOULD include the following as a response topic
  {peripheral_identity_address}/gatt-res/disconnect</t>
  <t>{peripheral_identity_address}/gatt-req/read : when publishing a message on the {peripheral_identity_address}/gatt-req/read topic, an MQTT client  SHOULD include the following as a response topic
  {peripheral_identity_address}/gatt-res/read</t>
  <t>{peripheral_identity_address}/gatt-req/write : when publishing a message on the {peripheral_identity_address}/gatt-req/write topic, an MQTT client SHOULD include the following as a response topic
  {peripheral_identity_address}/gatt-res/write</t>
  <t>{peripheral_identity_address}/gatt-req/service-discovery : when publishing a message on the {peripheral_identity_address}/gatt-req/service-discovery topic, an MQTT client SHOULD include the following as a response topic
  {peripheral_identity_address}/gatt-res/service-discovery</t>
  <t>{peripheral_identity_address}/gatt-req/notification : when publishing a message on the {peripheral_identity_address}/gatt-req/notification topic, an MQTT client SHOULD include the following as a response topic
  {peripheral_identity_address}/gatt-res/notification. When sending notifications, the MQTT client of the NAS/BLE Visited Host SHOULD publish the
  message using the topic:{peripheral_identity_address}/gatt-ind/notification. When sending indications, the MQTT client of the NAS/BLE Visited Host
  SHOULD publish the message using the topic:{peripheral_identity_address}/gatt-ind-req/indication and SHOULD include the following as a response topic {peripheral_identity_address}/gatt-ind-res/indication</t>
</list></t>

</section>
<section anchor="mqtt-exchange-for-non-connectable-ble-peripherals"><name>MQTT Exchange for Non-Connectable BLE Peripherals</name>

<t>If the BLE Peripheral indicates in its scan that it is not connectable, the
NAS/BLE Visited Host is responsible for publishing the received advertisements
received from the authenticated BLE Peripheral.</t>

<t>On idle-timeout the NAS/BLE Visited Host MUST send
an Accounting-Request message with Acct-Status-Type set to STOP and
Acct-Terminate-Cause set to Lost Carrier (2).</t>

<figure title="MQTT Exchange for Non-Connectable BLE Peripherals" anchor="figscan"><artwork><![CDATA[
                    NAS/BLE                                                                                                                
                    Visited                                    Home                                                                                 
   BLE             Central#2                  RADIUS           MQTT                                                                             
Peripheral            Host                    Server          Broker                                                                            
    |                  |                         |              |         
    |--BLE ----------->|                         |              |       
    |  Advertizement   |                         |              |        
  +----------------------+                       |              |   
  | |   Active Scan    | |                       |              |                     
  | |<-BLE SCAN_REQ----| |                       |              |     
  | |                  | |                       |              |       
  | |--BLE SCAN_RSP--->| |                       |              |
  +----------------------+                       |              |                                                                               
    |                  |---MQTT PUBLISH------------------------>|                                                                               
    |                  |  topic:{peripheral_identity_address}/  |                                                                               
    |                  |  gatt-ind/advertisement |              |                                                                               
    |                  |  msg:Advertising Report |              |                                                                               
    |                  |                         |              |                                                                               
    |--BLE ----------->|                         |              |                                                                               
    |  Advertizement   |---MQTT PUBLISH------------------------>|                                                                               
    |               +--|  topic:{peripheral_identity_address}/  |                                                                               
    |               |  |  gatt-ind/advertisement |              |                                                                               
    |               |  |  msg:Advertising Report |              |                                                                               
    |               |  |                         |              |                                                                               
    |               |  |                         |              |                                                                               
    |               |  |                         |              |                                                                               
    |               +->|Idle Timer Expiry        |              |                                                                               
    |                  |                         |              |                                                                               
    |                  |---Accounting-Request--->|              |                                                                               
    |                  |  Acct-Status-Type=Stop  |              |                                                                               
    |                  |  Session-Id             |              |                                                                               
    |                  |                         |              |                                                                               
    |              +------------------------------------------------+                                                                           
    |              |       Last Session to MQTT Broker Stopped      |                                                                           
    |              +------------------------------------------------+                                                                           
    |                  |                                        |                                                                               
    |                  |---MQTT DISCONNECT--------------------->|                                                                               
    |                  |                                        |                                                                               
    |                  |---Close WebSocket--------------------->|                                                                               
    |                  |                                        |     
]]></artwork></figure>

</section>
<section anchor="initial-mqtt-exchange-for-connectable-ble-peripherals"><name>Initial MQTT Exchange for Connectable BLE Peripherals</name>

<t>If the BLE Peripheral indicates in its scan that it is connectable, the
NAS/BLE Visited Host is responsible for publishing the received advertisements
received from the authenticated BLE Peripheral and to subscribing to the GATT requests
published for the BLE Peripheral's Identity Address.</t>

<figure title="MQTT Exchange for GATT Service Discovery" anchor="figcon"><artwork><![CDATA[
                    NAS/BLE                                                                                                               
                    Visited                                    Home                                                                                
   BLE             Central#2                                   MQTT                                                                            
Peripheral            Host                                    Broker                                                                           
    |                  |                                        |                                                                              
    |--BLE ----------->|                                        |                                                                              
    |  Advertizement   |---MQTT PUBLISH------------------------>|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                               
    |                  |  gatt-ind/advertisement                |                                                                               
    |                  |  msg:Advertising Report                |   
    |                  |                                        |   
  +---------------------------------------------------------------+                                                                            
  |                       GATT Subscription                       |                                                                            
  +---------------------------------------------------------------+                                                                            
    |                  |                                        |                                                                              
    |                  |---MQTT SUBSCRIBE---------------------->|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                             
    |                  |  gatt-req/#                            |          
    |                  |  topic:{peripheral_identity_address}/  |                                                                              
    |                  |  gatt-ind-res/#                        |
    |                  |                                        |                                                                              
  +---------------------------------------------------------------+                                                                            
  |            GATT Connection and Service Discovery              |                                                                            
  +---------------------------------------------------------------+                                                                            
    |                  |                                        |                                                                              
    |                  |<--MQTT PUBLISH-------------------------|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                              
    |<-BLE PDU-------->|  gatt-req/connect                      |                                                                              
    |  Exchange        |  response topic:                       |                                                                              
    |                  |  {peripheral_identity_address}/        |                                                                              
    |                  |  gatt-res/connect                      |                                                                              
    |                  |  correlation data:{binary_data}        |                                                                              
    |                  |  msg:                                  |
    |                  |                                        |                                                                              
    |                  |---MQTT PUBLISH------------------------>|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                              
    |                  |  gatt-res/connect                      |                                                                              
    |                  |  correlation data:{binary data}        |                                                                              
    |                  |  msg: connect-id or error              |                                                                              
    |                  |                                        |
    |                  |<--MQTT PUBLISH-------------------------|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                              
    |<-BLE PDU-------->|  gatt-req/service-discovery            |                                                                              
    |  Exchange        |  response topic:                       |                                                                              
    |                  |  {peripheral_identity_address}/        |                                                                              
    |                  |  gatt-res/service-discovery            |                                                                              
    |                  |  correlation data:{binary_data}        |                                                                              
    |                  |  msg: connect-id, optional UUID        |
    |                  |                                        |                                                                              
    |                  |---MQTT PUBLISH------------------------>|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                              
    |                  |  gatt-res/service-discovery            |                                                                              
    |                  |  correlation data:{binary data}        |                                                                              
    |                  |  msg: service UUID or error            |                                                                              
    |                  |                                        |    
]]></artwork></figure>

</section>
<section anchor="mqtt-exchange-for-reading-a-gatt-attribute"><name>MQTT Exchange for Reading a GATT Attribute</name>

<t>If the BLE Peripheral is connectable, a Bluetooth Application can read GATT attributes.</t>

<figure title="MQTT Exchange for GATT Read Attribute" anchor="figread"><artwork><![CDATA[
                    NAS/BLE                                                                                                               
                    Visited                                    Home                                                                                
   BLE             Central#2                                   MQTT                                                                            
Peripheral            Host                                    Broker                                                                           
    |                  |                                        |                                                                              
  +---------------------------------------------------------------+                                                                            
  |                       GATT Read Request                       |                                                                            
  +---------------------------------------------------------------+                                                                            
    |                  |                                        |                                                                              
    |                  |<--MQTT PUBLISH-------------------------|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                              
    |<-BLE PDU-------->|  gatt-req/read                         |                                                                              
    |  Exchange        |  response topic:                       |                                                                              
    |                  |  {peripheral_identity_address}/        |                                                                              
    |                  |  gatt-res/read                         |                                                                              
    |                  |  correlation data:{binary_data}        |                                                                              
    |                  |  msg: Characteristic optional offset,  |
    |                  |       optional maxlen                  |                                                                       
    |                  |                                        |                                                                              
    |                  |---MQTT PUBLISH------------------------>|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                              
    |                  |  gatt-res/read                         |                                                                              
    |                  |  correlation data:{binary data}        |                                                                              
    |                  |  msg: Handle, opcode, offset, value or |                                                                              
    |                  |       error                            |    
]]></artwork></figure>

</section>
<section anchor="mqtt-exchange-for-writing-a-gatt-attribute"><name>MQTT Exchange for Writing a GATT Attribute</name>

<t>If the BLE Peripheral is connectable, a Bluetooth Application can write GATT attributes.</t>

<figure title="MQTT Exchange for GATT Write Attribute" anchor="figwrite"><artwork><![CDATA[
                    NAS/BLE                                                                                                               
                    Visited                                    Home                                                                                
   BLE             Central#2                                   MQTT                                                                            
Peripheral            Host                                    Broker                                                                           
    |                  |                                        |                                                                              
  +---------------------------------------------------------------+                                                                            
  |                      GATT Write Request                       |                                                                            
  +---------------------------------------------------------------+                                                                            
    |                  |                                        |                                                                              
    |                  |<--MQTT PUBLISH-------------------------|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                             
    |<-BLE PDU-------->|  gatt-req/write                        |                                                                              
    |  Exchange        |  response topic:                       |                                                                              
    |                  |  {peripheral_identity_address}/        |                                                                              
    |                  |  gatt-res/write                        |                                                                              
    |                  |  correlation data:{binary_data}        |                                                                              
    |                  |  msg: characteristic, length, value    |                                                                              
    |                  |                                        |                                                                              
    |                  |---MQTT PUBLISH------------------------>|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                              
    |                  |  gatt-res/write                        |                                                                              
    |                  |  correlation data:{binary data}        |                                                                              
    |                  |  msg: success or error                 |                                                                              
    |                  |                                        |    
]]></artwork></figure>

</section>
<section anchor="mqtt-exchange-for-ble-peripheral-initiated-notifications"><name>MQTT Exchange for BLE Peripheral initiated Notifications</name>

<t>A Bluetooth Application can subscribe to receive Bluetooth notifications sent by the BLE Peripheral.</t>

<figure title="MQTT Exchange for BLE Peripheral Notifications" anchor="fignotification"><artwork><![CDATA[
                    NAS/BLE                                                                                                               
                    Visited                                    Home                                                                                
   BLE             Central#2                                   MQTT                                                                            
Peripheral            Host                                    Broker                                                                           
    |                  |                                        |                                                                              
  +---------------------------------------------------------------+                                                                            
  |                 GATT Set Notification Request                 |                                                                            
  +---------------------------------------------------------------+                                                                            
    |                  |                                        |                                                                              
    |                  |<--MQTT PUBLISH-------------------------|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                             
    |<-BLE PDU-------->|  gatt-req/notification                 |                                                                              
    |  Exchange        |  response topic:                       |                                                                              
    |                  |  {peripheral_identity_address}/        |                                                                              
    |                  |  gatt-res/notification                 |                                                                              
    |                  |  correlation data:{binary_data}        |                                                                              
    |                  |  msg: characteristic, enable/disable   |                                                                              
    |                  |                                        |                                                                              
    |                  |---MQTT PUBLISH------------------------>|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                              
    |                  |  gatt-res/notification                 |                                                                              
    |                  |  correlation data:{binary data}        |                                                                              
    |                  |  msg: success or error                 |                                                                              
    |                  |                                        |   
  +---------------------------------------------------------------+                                                                            
  |                       GATT Notification                       |                                                                            
  +---------------------------------------------------------------+   
    |                  |                                        |                                                                              
    |--BLE ----------->|                                        |                                                                              
    |  Notification    |---MQTT PUBLISH------------------------>|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                              
    |                  |  gatt-ind/notification                 |                                                                              
    |                  |  msg:handle & value                    |   
    |                  |                                        |   
]]></artwork></figure>

</section>
<section anchor="mqtt-exchange-for-ble-peripheral-initiated-indications"><name>MQTT Exchange for BLE Peripheral initiated Indications</name>

<t>A Bluetooth Application can subscribe to receive Bluetooth indications sent by the BLE Peripheral.</t>

<figure title="MQTT Exchange for BLE Peripheral Indications" anchor="figindication"><artwork><![CDATA[
                    NAS/BLE                                                                                                               
                    Visited                                    Home                                                                                
   BLE             Central#2                                   MQTT                                                                            
Peripheral            Host                                    Broker                                                                           
    |                  |                                        |                                                                              
  +---------------------------------------------------------------+                                                                            
  |                  GATT Set Indication Request                  |                                                                            
  +---------------------------------------------------------------+                                                                            
    |                  |                                        |                                                                              
    |                  |<--MQTT PUBLISH-------------------------|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                             
    |<-BLE PDU-------->|  gatt-req/notification                 |                                                                              
    |  Exchange        |  response topic:                       |                                                                              
    |                  |  {peripheral_identity_address}/        |                                                                              
    |                  |  gatt-res/notification                 |                                                                              
    |                  |  correlation data:{binary_data}        |                                                                              
    |                  |  msg: identifier & handle              |                                                                              
    |                  |                                        |                                                                              
    |                  |---MQTT PUBLISH------------------------>|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                              
    |                  |  gatt-res/notification                 |                                                                              
    |                  |  correlation data:{binary data}        |                                                                              
    |                  |  msg: procedure complete               |                                                                              
    |                  |                                        |   
  +---------------------------------------------------------------+                                                                            
  |                        GATT Indication                        |                                                                            
  +---------------------------------------------------------------+   
    |                  |                                        |                                                                              
    |--BLE ----------->|                                        |                                                                              
    |  Indication      |---MQTT PUBLISH------------------------>|                                                                              
    |                  |  topic:{peripheral_identity_address}/  |                                                                              
    |                  |  gatt-ind-req/notification             |                                                                              
    |                  |  response topic:                       |
    |                  |  {peripheral_identity_address}/        |   
    |                  |  gatt-ind-res/notification             |                                                                              
    |                  |  correlation data:{binary_data}        |                                                                              
    |                  |  msg: Indication                       |
    |                  |                                        |
    |                  |<--MQTT PUBLISH-------------------------|                                                                              
    |<-BLE ------------|  topic:{peripheral_identity_address}/  |                                                                              
    |  Status          |  gatt-ind-res/notification             |                                                                              
    |                  |  correlation data:{binary data}        |                                                                              
    |                  |  msg: Indication confirmation          |   
    |                  |                                        |
]]></artwork></figure>

</section>
<section anchor="mqtt-exchange-for-dealing-with-nas-mobility"><name>MQTT Exchange for dealing with NAS Mobility</name>

<figure title="MQTT Exchange for Inter-NAS Mobility without MQTT Unsubscription" anchor="figmobility"><artwork><![CDATA[
               NAS/BLE      NAS/BLE                                                                                                        
               Visited      Visited                            Home                                                                        
   BLE        Central#2    Central#3                           MQTT                                                                        
Peripheral       Host         Host                            Broker                                                                       
    |             |            |                                |                                                                          
  +---------------------------------------------------------------+                                                                        
  |           Initial Authentication With Central#2               |                                                                        
  +---------------------------------------------------------------+                                                                        
    |             |            |                                |                                                                          
    |             |--MQTT SUBSCRIBE --------------------------->|                                                                          
    |             |  topic:{periperal_identity_address}/        |                                                                          
    |             |  gatt-req/#                                 |                                                                          
    |             |            |                                |                                                                          
  +---------------------------------------------------------------+                                                                        
  |    NAS Mobility to Central#3 without MQTT unsubscription      |                                                                        
  +---------------------------------------------------------------+                                                                        
    |             |            |                                |                                                                          
    |             |            |--MQTT SUBSCRIBE--------------> |                                                                          
    |             |            | topic:                         |                                                                          
    |             |            | {peripheral_identity_address}/ |                                                                          
    |             |            | gatt-req/#                     |                                                                          
    |             |            |                                |                                                                          
  +---------------------------------------------------------------+                                                                        
  |      Example GATT Connection Request with NAS Mobility        |                                                                        
  +---------------------------------------------------------------+                                                                        
    |             |            |                                |                                                                          
    |             |<-MQTT PUBLISH-------------------------------|                                                                          
    |          +--| topic:{peripheral_identity_address}/        |                                                                          
    |          |  | gatt-req/connect                            |                                                                          
    |          |  | response topic:                             |                                                                          
    |          |  | {peripheral_identity_address}/              |                                                                          
    |          |  | gatt-res/connect                            |                                                                          
    |          |  | correlation data:{binary_data}              |                                                                          
    |          |  | msg:                                        |                                                                          
    |          |  |            |                                |                                                                          
    |          |  |            |<--MQTT PUBLISH-----------------|                                                                          
    |          |  |            | topic:                         |                                                                          
    |          |  |            | {peripheral_identity_address}/ |                                                                          
    |          |  |            | gatt-req/connect               |                                                                          
    |<-BLE-----|-------------->| response topic:                |                                                                          
    |  PDU     |  |            | {peripheral_identity_address}/ |                                                                          
    |  Exchange|  |            | gatt-res/connect               |                                                                          
    |          |  |            | correlation data:{binary_data} |                                                                          
    |          |  |            | msg:                           |                                                                          
    |          |  |            |                                |                                                                          
    |          |  |            |---MQTT PUBLISH---------------->|                                                                          
    |          |  |            | topic:                         |                                                                          
    |          |  |            | {peripheral_identity_address}/ |                                                                          
    | Central#2|  |            | gatt-res/connect               |                                                                          
    |       BLE|  |            | correlation data:{binary data} |                                                                          
    |   Timeout|  |            | msg: connect-id                |                                                                          
    |          +->|            |                                |                                                                          
    |             |---MQTT PUBLISH----------------------------->|                                                                          
    |             | topic:{peripheral_identity_address}/        |                                                                          
    |             | gatt-res/connect                            |                                                                          
    |             | correlation data:{binary data}              |                                                                          
    |             | msg: procedure timeout                      |                                                                          
    |             |            |                                |                                                                          
  +---------------------------------------------------------------+                                                                        
  |        MQTT Broker drops timeout message for PUBLISH          |                                                                        
  |               with duplicated correlation data                |                                                                        
  +---------------------------------------------------------------+                                                                        
]]></artwork></figure>

</section>
<section anchor="mqtt-exchange-for-ending-a-session-for-a-connected-ble-peripheral"><name>MQTT Exchange for ending a session for a connected BLE Peripheral</name>

<t>On idle-timeout the NAS/BLE Visited Host MUST un-subscribe from any subscribed to topics and send
an Accounting-Request message with Acct-Status-Type set to STOP and Acct-Terminate-Cause set to Lost Carrier (2).</t>

<figure title="MQTT Exchange when disconnecting from a connected BLE Peripheral" anchor="figdisc"><artwork><![CDATA[
                    NAS/BLE                                                                                                             
                    Visited                    Home            Home                                                                              
   BLE             Central#2                  RADIUS           MQTT                                                                          
Peripheral            Host                    Server          Broker                                                                         
    |                  |                         |              |                                                                            
    |--BLE ----------->|                         |              |                                                                            
    |  Advertizement   |---MQTT PUBLISH------------------------>|                                                                            
    |               +--|  topic:{peripheral_identity_address}/  |                                                                            
    |               |  |  gatt-ind/advertisement |              |                                                                            
    |               |  |  msg:Advertising Report |              |                                                                            
    |               |  |                         |              |                                                                            
    |               |  |                         |              |                                                                            
    |               +->|Idle Timer Expiry        |              |                                                                            
    |                  |                         |              |                                                                            
    |                  |---Accounting-Request--->|              |                                                                            
    |                  |  Acct-Status-Type=Stop  |              |                                                                            
    |                  |                         |              |                                                                            
    |                  |---MQTT UNSUBSCRIBE-------------------->|                                                                            
    |                  |  topic:{peripheral_identity_address}/  |                                                                           
    |                  |  gatt-req/#             |              |                                                                            
    |                  |  topic:{peripheral_identity_address}/  |                                                                            
    |                  |  gatt-ind-res/#         |              |  
    |                  |                         |              |                                                                            
    |              +------------------------------------------------+                                                                        
    |              |       Last Session to MQTT Broker Stopped      |                                                                        
    |              +------------------------------------------------+                                                                        
    |                  |                         |              |                                                                            
    |                  |---MQTT DISCONNECT--------------------->|                                                                            
    |                  |                         |              |                                                                            
    |                  |---Close WebSocket--------------------->|                                                                            
    |                  |                         |              |               
]]></artwork></figure>

</section>
</section>
<section numbered="false" anchor="Acknowledgements"><name>Acknowledgements</name>

<t>Thanks to Oleg Pekar and Eric Vyncke for their review comments. The definition of the
BLE-Keying-Material attribute has been inspired by <xref target="RFC6218"/>.</t>

</section>


  </back>

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

-->

</rfc>

