RFC 9428

Transmission of IPv6 Packets over Near Field Communication

πŸ“… published July 2023, from ietf

RFC 9428: Transmission of IPv6 Packets over Near Field Communication πŸŽ€

okay bestie, this one is the IETF spec for sending IPv6 packets over NFC πŸ“±βœ¨. Published July 2023 as a Standards Track doc, so it's an actual Internet standard, not just vibes. The editor is Y. Choi (ETRI), with co-authors Y-G. Hong (Daejon Univ) and J-S. Youn (Dongeui Univ). ISSN is 2070-1721. It doesn't list any RFC it obsoletes or updates, so it's standing on its own πŸ’….

Abstract

NFC is a set of standards that lets phones and other portable gadgets talk to each other over radio just by touching or getting really close, usually no more than 10 cm apart 🧲. The standards cover the communication protocols and data formats, and they're built on older RFID standards like ISO/IEC 14443 and FeliCa 🏷️. They also include ISO/IEC 18092 and the ones from the NFC Forum. NFC is everywhere now, in mobile phones, laptops, and lots of other devices πŸ’–. This document explains how IPv6 gets carried over NFC using the 6LoWPAN techniques ✨.

Status of This Memo

This is an Internet Standards Track document 🌸.

It's a product of the Internet Engineering Task Force (IETF), so it represents what the IETF community agreed on. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG) 🫢. If you want more on Internet Standards, check Section 2 of RFC 7841.

Info about the current status of this doc, any errata, and how to send feedback lives at https://www.rfc-editor.org/info/rfc9428 πŸ”—.

Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved πŸ’œ.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info), as in effect on the publication date. Please actually read those, bestie, because they spell out your rights and restrictions for this doc πŸ“œ. Code Components pulled out of this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as the Revised BSD License describes πŸ–€.

Table of Contents

1.  Introduction
2.  Conventions and Terminology
3.  Overview of NFC Technology
  3.1.  Peer-to-Peer Mode of NFC
  3.2.  Protocol Stack of NFC
  3.3.  NFC-Enabled Device Addressing
  3.4.  MTU of NFC Link Layer
4.  Specification of IPv6 over NFC
  4.1.  Protocol Stack
  4.2.  Stateless Address Autoconfiguration
  4.3.  IPv6 Link-Local Address
  4.4.  Neighbor Discovery
  4.5.  Dispatch Header
  4.6.  Header Compression
  4.7.  Fragmentation and Reassembly Considerations
  4.8.  Unicast and Multicast Address Mapping
5.  Internet Connectivity Scenarios
  5.1.  NFC-Enabled Device Network Connected to the Internet
  5.2.  Isolated NFC-Enabled Device Network
6.  IANA Considerations
7.  Security Considerations
8.  References
  8.1.  Normative References
  8.2.  Informative References
Acknowledgements
Authors' Addresses

1. Introduction πŸ¦‹

okay so NFC is a bunch of short-range wireless tech, and it usually needs the two devices to be 10 cm or closer πŸ“. It runs at 13.56 MHz and at speeds from 106 kbps up to 424 kbps, following the ISO/IEC 18000-3 air interface [ECMA-340] πŸ”§. NFC is basically RFID that finally lets both ends talk back and forth πŸ”. There's always an initiator and a target. The initiator makes the RF field, and that field can power up a passive target πŸ”‹. This is why NFC targets can be super simple, like tags, stickers, key fobs, or cards, with no battery needed πŸ’…. Peer-to-peer NFC works too, but only if both devices are powered on ⚑.

NFC's range is really short, 10 cm or less πŸ™ˆ. So any other NFC devices further away than that just can't pick up the signal. That's why people often call NFC a secure way to communicate πŸ”.

Now, to get on the Internet, NFC devices should really support IPv6 🌐. It has a huge address space and tools that work without someone babysitting the network, plus a bunch of other perks πŸ“. This document says how IPv6 works over NFC by using 6LoWPAN techniques [RFC4944] [RFC6282] [RFC6775] 🧚. 6LoWPAN is a good fit because it was built to run IPv6 over IEEE 802.15.4 networks [IEEE802.15.4], and some of 802.15.4's traits are pretty similar to NFC's πŸ‘‘.

2. Conventions and Terminology πŸ“š

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this doc are interpreted as described in BCP 14 [RFC2119] [RFC8174], but only when they show up in all capitals like they do here ✨. Lowercase versions don't count πŸ™ˆ.

This spec expects you to already know the terms and concepts in "IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): Overview, Assumptions, Problem Statement, and Goals" [RFC4919], "Transmission of IPv6 Packets over IEEE 802.15.4 Networks" [RFC4944], and "Neighbor Discovery Optimization for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) [RFC6775]. Go read those first, bestie πŸ“–.

6LoWPAN Node (6LN): A 6LoWPAN node is any host or router that takes part in a LoWPAN 🧩. This term is used when the situation could have either a host or a router playing the role πŸ’œ.

6LoWPAN Router (6LR): This is an intermediate router in the LoWPAN that can send and receive Router Advertisements (RAs) and Router Solicitations (RSs), and it can also forward and route IPv6 packets 🚦. 6LoWPAN routers only show up in route-over topologies πŸ—ΊοΈ.

6LoWPAN Border Router (6LBR): This is a border router at the junction of separate 6LoWPAN networks, or between a 6LoWPAN network and some other IP network πŸŒ‰. There can be one or more 6LBRs at the edge of a 6LoWPAN network 🫧. A 6LBR is the authority responsible for propagating IPv6 prefixes for the 6LoWPAN network it serves πŸ‘‘. An isolated LoWPAN also has a 6LBR in its network, and that one provides the prefix(es) for the isolated network 🏝️.

3. Overview of NFC Technology 🌈

This section gives you the overview of NFC, focusing on the bits that matter most for getting IPv6 to work 🎯.

NFC makes a simple two-way interaction between two devices possible πŸ’¬. You can do contactless payments, open up digital content, or hook up electronic devices with one tap ☝️. NFC borrows key pieces from existing contactless card standards, like ISO/IEC 14443 A&B and JIS-X 6319-4 πŸ’³. NFC lets devices share information at a distance up to 10 cm, with a max physical layer bit rate of 424 kbps πŸš€.

3.1. Peer-to-Peer Mode of NFC

NFC has three modes: card emulation, peer-to-peer, and reader/writer 🎭. Only peer-to-peer lets two NFC-enabled devices talk to each other and swap info in both directions πŸ”„. The other two modes don't do two-way communication between two devices, so they're out πŸ™…. That's why peer-to-peer MUST be used for IPv6 over NFC πŸ’–.

3.2. Protocol Stack of NFC

NFC has a protocol stack for peer-to-peer mode (Figure 1) πŸ₯ž. Peer-to-peer is offered by the Activities Digital Protocol at the NFC Physical Layer πŸ“‘. The NFC Logical Link Layer is made up of the Logical Link Control Protocol (LLCP). When IPv6 runs over NFC, that layer also includes an IPv6-LLCP Binding ✨. IPv6, plus its underlying adaptation layer (the IPv6-over-NFC Adaptation Layer), sits right on top of the IPv6-LLCP Binding 🧁. An IPv6 datagram gets carried by LLCP with guaranteed delivery and two-way transmission between the peer devices πŸ”’.

    +----------------------------------------+ - - - - - - - - -
    |      Logical Link Control Protocol     |   NFC Logical
    |                 (LLCP)                 |   Link Layer
    +----------------------------------------+ - - - - - - - - -
    |               Activities               |
    |            Digital Protocol            |   NFC Physical
    +----------------------------------------+   Layer
    |               RF Analog                |
    +----------------------------------------+ - - - - - - - - -

                   Figure 1: Protocol Stack of NFC

LLCP is made of Logical Link Control (LLC) and MAC Mapping 🧠. MAC Mapping plugs an existing radio frequency (RF) protocol into the LLCP setup πŸ”Œ. The LLC has three parts: Link Management, Connection-oriented Transmission, and Connectionless Transmission 🧩. Link Management handles serializing every connection-oriented and connectionless LLC PDU (Protocol Data Unit) exchange, and it also aggregates and disaggregates small PDUs πŸ“¦. Connection-oriented Transmission keeps all the connection-oriented data exchanges running, including setting connections up and tearing them down 🀝. But NFC links don't guarantee perfect wireless link quality, so some delay, or variation in delay, is expected no matter what πŸŒ€. Connectionless Transmission deals with unacknowledged data exchanges πŸ“¨.

To send an IPv6 packet over NFC, the packet MUST be handed down to the LLCP layer of NFC and carried in an Information field inside an LLCP Protocol Data Unit (I PDU) 🎁. LLCP doesn't do fragmentation and reassembly 🚫. For IPv6 addressing or address configuration, LLCP MUST give its upper layer the related info, like link-layer addresses 🏷️. The IPv6-LLCP Binding MUST pass the Source Service Access Point (SSAP) and Destination Service Access Point (DSAP) values up to the IPv6-over-NFC Adaptation Layer πŸ’«. The SSAP is the LLC address of the source NFC-enabled device and is 6 bits in size, while the DSAP is the LLC address of the destination NFC-enabled device 🎯. So the SSAP works as a source address and the DSAP works as a destination address πŸ’œ.

Also, NFC links and hosts don't need to look at IP header bits for QoS signaling, or really use them meaningfully 🌸.

3.3. NFC-Enabled Device Addressing ✨

okay so according to [LLCP-1.4], NFC-enabled devices have two types of 6-bit addresses, the SSAP and the DSAP, and they're used to identify service access points πŸŽ€. A device can have several service access points installed on it. BUT the SSAP and DSAP can also act as identifiers for NFC link connections with the IPv6-over-NFC Adaptation Layer πŸ’…. That's the part that matters here: the SSAP can be used to generate an IPv6 Interface Identifier (IID) πŸ¦‹.

Address values between 00h and 0Fh (for both SSAP and DSAP) are reserved for the well-known service access points defined in the NFC Forum Assigned Numbers Register πŸ“–. Address values between 10h and 1Fh are assigned by the local LLC to services registered by a local service environment 🌸. And address values between 0x2 and 0x3f are assigned by the local LLC as a result of an upper-layer service request. So those 0x2-to-0x3f values are the ones that can be used for generating IPv6 IIDs πŸ’–.

As mentioned in Section 3.2, when an IPv6 packet is transmitted, the packet MUST be passed down to LLCP of NFC and transported to an I PDU of LLCP of the NFC-enabled peer device πŸ¦‹.

The Information field of an I PDU holds a single service data unit. The maximum number of octets in that field is set by the Maximum Information Unit (MIU) for the data link connection, and the default MIU for I PDUs is 128 octets πŸ“. The local and remote LLCs each set up and keep their own MIU values for each data link connection endpoint πŸ’…. An LLC can also announce a larger MIU for a data link connection by sending an optional Maximum Information Unit Extension (MIUX) parameter within the Information field πŸš€. If no MIUX parameter is sent, the MIU value is 128 bytes. Otherwise, the MTU size in NFC LLCP MUST be calculated from the MIU value like this:

                      MTU = MIU = 128 + MIUX

According to [LLCP-1.4], Figure 2 shows an example of the MIUX parameter TLV πŸŽ€. The Type and Length fields of the MIUX parameter TLV are each 1 byte, and the TLV Value field is 2 bytes.

              0          0          1     2         3
              0          8          6     1         1
             +----------+----------+-----+-----------+
             |   Type   |  Length  |      Value      |
             +----------+----------+-----+-----------+
             |   0x02   |   0x02   | 0x0 |   0x480   |
             +----------+----------+-----+-----------+

              Figure 2: Example of MIUX Parameter TLV

When the MIUX parameter is used, the TLV Type field is 0x02 and the TLV Length field is 0x02. The MIUX parameter is encoded into the least significant 11 bits of the TLV Value field. The unused bits in the TLV Value field are set to zero by the sender and ignored by the receiver 🫢. The maximum possible value of the TLV Value field is 0x7FF, which means the maximum size of the LLCP MTU is 2175 bytes 😭. As per the present specification [LLCP-1.4], the MIUX value MUST be 0x480 to support the IPv6 MTU requirement (1280 bytes) [RFC8200]. πŸ‘‘


4. Specification of IPv6 over NFC 🧚

NFC technology has requirements owing to low power consumption and allowed protocol overhead πŸ”‹. 6LoWPAN standards [RFC4944] [RFC6775] [RFC6282] give us useful functionality for reducing the overhead of IPv6 over NFC ✨. That functionality covers link-local IPv6 addresses and stateless IPv6 address autoconfiguration (see Sections 4.2 and 4.3), Neighbor Discovery (see Section 4.4), and header compression (see Section 4.6) πŸ’œ.

4.1. Protocol Stack πŸŽ€

Figure 3 shows the IPv6-over-NFC protocol stack. Upper-layer protocols can be transport-layer protocols (e.g., TCP and UDP), application-layer protocols, and other protocols that can run on top of IPv6 πŸ’….

          +----------------------------------------+
          |         Upper-Layer Protocols          |
          +----------------------------------------+
          |                 IPv6                   |
          +----------------------------------------+
          |   Adaptation Layer for IPv6 over NFC   |
          +----------------------------------------+
          |          NFC Logical Link Layer        |
          +----------------------------------------+
          |           NFC Physical Layer           |
          +----------------------------------------+

           Figure 3: Protocol Stack for IPv6 over NFC

The Adaptation Layer for IPv6 over NFC supports Neighbor Discovery, stateless address autoconfiguration, header compression, and fragmentation and reassembly, all based on 6LoWPAN πŸ¦‹. Note that 6LoWPAN header compression [RFC6282] does not define header compression for TCP πŸ‘€. TCP can still be supported by IPv6 over NFC, albeit without the performance optimization of header compression πŸ™ˆ.

4.2. Stateless Address Autoconfiguration πŸ’–

An NFC-enabled device performs stateless address autoconfiguration per [RFC4862] 🌸. A 64-bit IID for an NFC interface is formed by utilizing the 6-bit NFC SSAP (see Section 3.3). From the viewpoint of address configuration, such an IID should guarantee a stable IPv6 address during the course of a single connection, because each data link connection is uniquely identified by the pair of DSAP and SSAP included in the header of each LLC PDU in NFC πŸ”₯.

Following the guidance of [RFC7136], IIDs of all unicast addresses for NFC-enabled devices are 64 bits long and are constructed by using the generation algorithm of random identifiers (RIDs) that are stable [RFC7217] 🧚.

The RID is an output created by the F() algorithm with input parameters. One of the parameters is Net_Iface, and the NFC Link-Layer Address (i.e., the SSAP) MUST be a source of the Net_Iface parameter. The 6-bit address of the SSAP of NFC is short and can easily be targeted by attacks from a third party (e.g., address scanning) 😱. The F() algorithm with SHA-256 can provide secured and stable IIDs for NFC-enabled devices πŸ”. In addition, an optional parameter, Network_ID, is used to increase the randomness of the generated IID together with the NFC Link-Layer Address (i.e., SSAP). The secret key SHOULD be at least 128 bits. It MUST be initialized to a pseudorandom number [RFC4086] 🎲.

The IPv6 Link-Local Address for an NFC-enabled device is formed by appending the IID to the prefix fe80::/64, as depicted in Figure 4 ✨.

     0          0                  0                          1
     0          1                  6                          2
     0          0                  4                          7
    +----------+------------------+----------------------------+
    |1111111010|       zeros      |    Interface Identifier    |
    +----------+------------------+----------------------------+
    .                                                          .
    . <- - - - - - - - - - - 128 bits - - - - - - - - - - - -> .
    .                                                          .

               Figure 4: IPv6 Link-Local Address in NFC

The "Interface Identifier" can be a random and stable IID πŸ’œ.

4.4. Neighbor Discovery πŸ•ΈοΈ

Neighbor Discovery Optimization for 6LoWPANs [RFC6775] describes the Neighbor Discovery approach in several 6LoWPAN topologies, such as mesh topology. NFC supports mesh topologies, but most applications would use a simple multi-hop network topology or a directly connected peer-to-peer network, because the NFC RF range is very short πŸ“‘.

  • When an NFC 6LN is directly connected to a 6LBR, the 6LN MUST register its address with the 6LBR by sending Neighbor Solicitation (NS) with the Extended Address Registration Option (EARO) [RFC8505]. Then Neighbor Advertisement (NA) is started. When the 6LN and 6LBR are linked to each other, an address is assigned to the 6LN. In this process, Duplicate Address Detection (DAD) is not required πŸ™Œ.
  • When two or more NFC 6LNs are connected to the 6LBR, two cases of topologies can be formed. One is a multi-hop topology, and the other is a star topology based on the 6LBR. In the multi-hop topology, 6LNs that have two or more links with neighbor nodes may act as routers. In a star topology, any of the 6LNs can be a router ⭐.
  • For receiving RSs and RAs, the NFC 6LNs MUST follow Sections 5.3 and 5.4 of [RFC6775] πŸ’….
  • When an NFC device is a 6LR or 6LBR, the NFC device MUST follow Sections 6 and 7 of [RFC6775] πŸŽ€.

4.5. Dispatch Header 🧾

All IPv6-over-NFC encapsulated datagrams are prefixed by an encapsulation header stack consisting of a dispatch value [IANA-6LoWPAN]. The only sequence currently defined for IPv6 over NFC MUST be the LOWPAN_IPHC compressed IPv6 header (see Section 4.6) followed by a payload, as depicted in Figure 5 and Table 1 πŸ¦‹.

          +---------------+---------------+--------------+
          | IPHC Dispatch |  IPHC Header  |    Payload   |
          +---------------+---------------+--------------+

    Figure 5: An IPv6-over-NFC Encapsulated LOWPAN_IPHC Compressed
                            IPv6 Datagram

The dispatch value (1 octet in length) is treated as an unstructured namespace. Only a single pattern is used to represent current IPv6-over-NFC functionality 🌷.

          +===========+=============+=====================+
          | Pattern   | Header Type | Reference           |
          +===========+=============+=====================+
          | 01 1xxxxx | LOWPAN_IPHC | [RFC6282] [RFC8025] |
          +-----------+-------------+---------------------+

                       Table 1: Dispatch Values

Other IANA-assigned 6LoWPAN dispatch values do not apply to this specification πŸ™….

4.6. Header Compression πŸ—œοΈ

Header compression as defined in [RFC6282], which specifies the compression format for IPv6 datagrams on top of IEEE 802.15.4, is REQUIRED in this document as the basis for IPv6 header compression on top of NFC. All headers MUST be compressed according to the encoding formats described in [RFC6282] πŸ’–.

Therefore, IPv6 header compression in [RFC6282] MUST be implemented. Further, implementations MUST also support Generic Header Compression (GHC) as described in [RFC7400] 🫢.

If a 16-bit address is required as a short address, it MUST be formed by padding the 6-bit NFC SSAP (NFC Link-Layer Node Address) to the left with zeros, as shown in Figure 6 πŸ“.

                   0                   1
                   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  | Padding(all zeros)| NFC Addr. |
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 6: NFC Short Address Format

4.7. Fragmentation and Reassembly Considerations 🚫

IPv6 over NFC MUST NOT use fragmentation and reassembly (FAR) at the adaptation layer for the payloads, as discussed in Section 3.4. The NFC link connection for IPv6 over NFC MUST be configured with an equivalent MIU size to support the IPv6 MTU requirement (1280 bytes). To this end, the MIUX value is 0x480 πŸŽ€πŸ’…

4.8. Unicast and Multicast Address Mapping ✨

Okay so, mapping regular (non-multicast) IPv6 addresses onto NFC Link-Layer Addresses follows the general vibe from Sections 4.6.1 and 7.2 of [RFC4861], unless otherwise specified πŸ’…

The Source/Target Link-Layer Address option looks like this when the addresses are 6-bit NFC SSAP/DSAP (NFC Link-Layer Node Addresses) πŸ¦‹

                      0                   1
                      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
                     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     |      Type     |   Length=1    |
                     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     |                               |
                     +-     Padding (all zeros)     -+
                     |                               |
                     +-                  +-+-+-+-+-+-+
                     |                   | NFC Addr. |
                     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 7: Unicast Address Mapping 🌸

Here's what the option fields are giving:

  • Type:
    • 1: This is for the Source Link-Layer Address.
    • 2: This is for the Target Link-Layer Address.
  • Length: This is the length of this option (including the Type and Length fields) in units of 8 bits. The value of this field is 1 for 6-bit NFC node addresses.
  • NFC address: The 6-bit address in canonical bit order. This is the unicast address the interface currently responds to.

Now the multicast tea β˜•. The NFC Link Layer does not support multicast πŸ™… So packets are always sent unicast between two NFC-enabled devices. Even when a 6LBR is attached to multiple 6LNs, the 6LBR cannot multicast to all the connected 6LNs. If the 6LBR needs to send a multicast packet to all its 6LNs, it has to replicate the packet and unicast it on each link. Bestie, that is NOT energy-efficient 😭 The central node is battery-powered, so it has to take extra care with power consumption.

To save even more power, the 6LBR MUST keep track of multicast listeners at NFC link-level granularity (not at subnet granularity), and it MUST NOT forward multicast packets to 6LNs that have not registered as listeners for the multicast groups those packets belong to. 🧚 In the opposite direction, a 6LN always has to send packets to or through the 6LBR. So when a 6LN needs to transmit an IPv6 multicast packet, it unicasts the corresponding NFC packet to the 6LBR. Main character energy, the 6LBR runs the show πŸ‘‘


5. Internet Connectivity Scenarios

5.1. NFC-Enabled Device Network Connected to the Internet

Figure 8 shows an example of an NFC-enabled device network connected to the Internet 🌈 The distance between a 6LN and the 6LBR is typically 10 cm or less. For example, a laptop that is connected to the Internet (e.g., via Wi-Fi, Ethernet, etc.) may also support NFC and act as a 6LBR πŸ’» Another NFC-enabled device may run as a 6LN and talk to the 6LBR, as long as both are within each other's range.

                NFC link
       6LN ------------------- 6LBR -------( Internet )--------- CN
        .                        .                                .
        . <- - - - Subnet - - -> . < - - - IPv6 connection - - -> .
        .                        .         to the Internet        .

Figure 8: NFC-Enabled Device Network Connected to the Internet

Two or more 6LNs may be connected with a 6LBR, but each connection uses a different IPv6 prefix. The 6LBR acts as a router and forwards packets between the 6LNs and the Internet πŸ¦‹ Also, the 6LBR MUST ensure address collisions do not occur. The 6LNs are connected to the 6LBR in a star topology, so the 6LBR checks whether or not IPv6 addresses are duplicates, since 6LNs need to register their addresses with the 6LBR. Iconic checks 🫢

5.2. Isolated NFC-Enabled Device Network

Sometimes the NFC-enabled device network is permanently a simple isolated network, as shown in Figure 9 🧸

                               6LN                        6LN - - - - -
                                |                          |      .
                    NFC link - >|              NFC link - >|      .
                                |                          |      .
    6LN ---------------------- 6LR ---------------------- 6LR   Subnet
     .         NFC link                    NFC link        |      .
     .                                                     |      .
     .                                         NFC link - >|      .
     .                                                    6LN - - - - -
     .                                                     .
     . < - - - - - - - - - -  Subnet - - - - - - - - - - > .

Figure 9: Isolated NFC-Enabled Device Network

In multihop (i.e., more complex) topologies, the 6LR can also do the same task. DAD requires the extensions for multihop networks, such as the ones in [RFC6775] 🌟


6. IANA Considerations

This document has no IANA actions πŸŽ€


7. Security Considerations

Okay bestie, this section is SERIOUS, so read it slowly 🚨 Neighbor Discovery in unencrypted wireless device networks may be susceptible to various threats as described in [RFC3756].

Per the NFC Logical Link Control Protocol [LLCP-1.4]:

  • LLCP of NFC provides protection of user data to ensure confidentiality of communications. The confidentiality mechanism involves the encryption of user service data with a secret key that has been established during link activation. πŸ”
  • LLCP of NFC has two modes (i.e., ad hoc mode and authenticated mode) for secure data transfer. Ad hoc secure data transfer can be established between two communication parties without any prior knowledge of the communication partner. Ad hoc secure data transfer can be vulnerable to on-path attacks. Authenticated secure data transfer provides protection against on-path attacks. In the initial bonding step, the two communicating parties store a shared secret along with a Bonding Identifier. πŸ’
  • For all subsequent interactions, the communicating parties reuse the shared secret and compute only the unique encryption key for that session. Secure data transfer is based on the cryptographic algorithms defined in the NFC Authentication Protocol [NAP-1.0]. πŸ—οΈ

Furthermore, NFC is considered by many to offer intrinsic security properties due to its short link range πŸ“‘ When IIDs are generated, devices and users are required to consider mitigating various threats, such as correlation of activities over time, location tracking, device-specific vulnerability exploitation, and address scanning. However, IPv6 over NFC uses an RID [RFC7217] as an IPv6 IID. NFC applications use short-lived connections, and a different address is used for each connection, where the latter is of extremely short duration. So the privacy vibes are honestly giving ✨


8. References

8.1. Normative References

8.2. Informative References πŸ“š

Okay, these are the extra-credit reads that back up the spec. Here they all are, bestie πŸŽ€

[ECMA-340] ECMA International, "Near Field Communication - Interface and Protocol (NFCIP-1)", 3rd Edition, ECMA 340, June 2013, https://www.ecma-international.org/wp-content/uploads/ECMA-340_3rd_edition_june_2013.pdf.

[IANA-6LoWPAN] IANA, "IPv6 Low Power Personal Area Network Parameters", https://www.iana.org/assignments/_6lowpan-parameters.

[IEEE802.15.4] IEEE, "IEEE Standard for Low-Rate Wireless Networks", IEEE Std 802.15.4-2020, DOI 10.1109/IEEESTD.2020.9144691, July 2020, https://ieeexplore.ieee.org/document/9144691.

[RFC3756] Nikander, P., Ed., Kempf, J., and E. Nordmark, "IPv6 Neighbor Discovery (ND) Trust Models and Threats", RFC 3756, DOI 10.17487/RFC3756, May 2004, https://www.rfc-editor.org/info/rfc3756.


Acknowledgements 🫢

Huge thank-you to the members of the IETF 6lo Working Group, you absolutely carried πŸ’–

Michael Richardson, Suresh Krishnan, Pascal Thubert, Carsten Bormann, Alexandru Petrescu, James Woodyatt, Dave Thaler, Samita Chakrabarti, Gabriel Montenegro, Erik Kline, and Carles Gomez Montenegro gave really valuable feedback on this document, and we're so grateful 🌸✨


Authors' Addresses πŸ¦‹

Here's where to find the people behind it πŸ’œ

Younghwan Choi (editor)
Electronics and Telecommunications Research Institute
218 Gajeongno, Yuseung-gu
Daejeon
34129
South Korea
Phone: +82 42 860 1429
Email: yhc@etri.re.kr


Yong-Geun Hong
Daejon University
62 Daehak-ro, Dong-gu
Daejeon
34520
South Korea
Phone: +82 42 280 4841
Email: yonggeun.hong@gmail.com


Joo-Sang Youn
DONG-EUI University
176 Eomgwangno Busan_jin_gu
Busan
614-714
South Korea
Phone: +82 51 890 1993
Email: joosang.youn@gmail.com
πŸ“¦ where this page comes from