| rfc9140v2.txt | rfc9140.txt | |||
|---|---|---|---|---|
| skipping to change at line 106 ¶ | skipping to change at line 106 ¶ | |||
| 6.5. Downgrading Threats | 6.5. Downgrading Threats | |||
| 6.6. Protected Success and Failure Indications | 6.6. Protected Success and Failure Indications | |||
| 6.7. Channel Binding | 6.7. Channel Binding | |||
| 6.8. Denial of Service | 6.8. Denial of Service | |||
| 6.9. Recovery from Loss of Last Message | 6.9. Recovery from Loss of Last Message | |||
| 6.10. Privacy Considerations | 6.10. Privacy Considerations | |||
| 6.11. EAP Security Claims | 6.11. EAP Security Claims | |||
| 7. References | 7. References | |||
| 7.1. Normative References | 7.1. Normative References | |||
| 7.2. Informative References | 7.2. Informative References | |||
| Appendix A. Exchanges and Events Per State | Appendix A. Exchanges and Events per State | |||
| Appendix B. Application-Specific Parameters | Appendix B. Application-Specific Parameters | |||
| Appendix C. EAP-NOOB Roaming | Appendix C. EAP-NOOB Roaming | |||
| Appendix D. OOB Message as a URL | Appendix D. OOB Message as a URL | |||
| Acknowledgments | Acknowledgments | |||
| Authors' Addresses | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| This document describes a method for registration, authentication, | This document describes a method for registration, authentication, | |||
| and key derivation for network-connected smart devices, such as | and key derivation for network-connected smart devices, such as | |||
| skipping to change at line 795 ¶ | skipping to change at line 795 ¶ | |||
| 3.3.2. Message Data Fields | 3.3.2. Message Data Fields | |||
| Table 1 defines the data fields in the protocol messages. The in- | Table 1 defines the data fields in the protocol messages. The in- | |||
| band messages are formatted as JSON objects [RFC8259] in UTF-8 | band messages are formatted as JSON objects [RFC8259] in UTF-8 | |||
| encoding. The JSON member names are in the left-hand column of the | encoding. The JSON member names are in the left-hand column of the | |||
| table. | table. | |||
| +===============+=================================================+ | +===============+=================================================+ | |||
| | Data Field | Description | | | Data Field | Description | | |||
| +===============+=================================================+ | +===============+=================================================+ | |||
| | Vers, Verp | EAP-NOOB method versions supported by the EAP | | | Vers, Verp | EAP-NOOB protocol versions supported by the EAP | | |||
| | | server and the protocol version chosen by the | | | | server and the protocol version chosen by the | | |||
| | | peer. Vers is a JSON array of unsigned | | | | peer. Vers is a JSON array of unsigned | | |||
| | | integers, and Verp is an unsigned integer. | | | | integers, and Verp is an unsigned integer. | | |||
| | | Example values are "[1]" and "1", respectively. | | | | Example values are "[1]" and "1", respectively. | | |||
| +---------------+-------------------------------------------------+ | +---------------+-------------------------------------------------+ | |||
| | PeerId | Peer identifier, as defined in Section 3.3.1. | | | PeerId | Peer identifier, as defined in Section 3.3.1. | | |||
| +---------------+-------------------------------------------------+ | +---------------+-------------------------------------------------+ | |||
| | NAI, NewNAI | Peer NAI and server-assigned new peer NAI, as | | | NAI, NewNAI | Peer NAI and server-assigned new peer NAI, as | | |||
| | | defined in Section 3.3.1. | | | | defined in Section 3.3.1. | | |||
| +---------------+-------------------------------------------------+ | +---------------+-------------------------------------------------+ | |||
| skipping to change at line 942 ¶ | skipping to change at line 942 ¶ | |||
| Table 1: Message Data Fields | Table 1: Message Data Fields | |||
| It is RECOMMENDED for servers to support both OOB channel directions | It is RECOMMENDED for servers to support both OOB channel directions | |||
| (Dirs=3) unless the type of the OOB channel limits them to one | (Dirs=3) unless the type of the OOB channel limits them to one | |||
| direction (Dirs=1 or Dirs=2). On the other hand, it is RECOMMENDED | direction (Dirs=1 or Dirs=2). On the other hand, it is RECOMMENDED | |||
| that the peer selects only one direction (Dirp=1 or Dirp=2) even when | that the peer selects only one direction (Dirp=1 or Dirp=2) even when | |||
| both directions (Dirp=3) would be technically possible. The reason | both directions (Dirp=3) would be technically possible. The reason | |||
| is that, if value 3 is negotiated, the user may be presented with two | is that, if value 3 is negotiated, the user may be presented with two | |||
| OOB messages, one for each direction, even though only one of them | OOB messages, one for each direction, even though only one of them | |||
| needs to be delivered. This can be confusing to the user. | needs to be delivered. This can be confusing to the user. | |||
| Nevertheless, the EAP-NOOB method is designed to also cope with the | Nevertheless, the EAP-NOOB protocol is designed to also cope with the | |||
| value 3; in which case, it uses the first delivered OOB message. In | value 3; in which case, it uses the first delivered OOB message. In | |||
| the unlikely case of simultaneously delivered OOB messages, the | the unlikely case of simultaneously delivered OOB messages, the | |||
| protocol prioritizes the server-to-peer direction. | protocol prioritizes the server-to-peer direction. | |||
| The nonces in the in-band messages (Ns, Np, Ns2, Np2) are 32-byte | The nonces in the in-band messages (Ns, Np, Ns2, Np2) are 32-byte | |||
| fresh random byte strings, and the secret nonce Noob is a 16-byte | fresh random byte strings, and the secret nonce Noob is a 16-byte | |||
| fresh random byte string. All the nonces are generated by the | fresh random byte string. All the nonces are generated by the | |||
| endpoint that sends the message. | endpoint that sends the message. | |||
| The fingerprint Hoob and the identifier NoobId are computed with the | The fingerprint Hoob and the identifier NoobId are computed with the | |||
| skipping to change at line 1915 ¶ | skipping to change at line 1915 ¶ | |||
| Table 12: PeerInfo Data Fields | Table 12: PeerInfo Data Fields | |||
| Assignment of new values for new PeerInfo data fields MUST be done | Assignment of new values for new PeerInfo data fields MUST be done | |||
| through IANA with "Specification Required", as defined in [RFC8126]. | through IANA with "Specification Required", as defined in [RFC8126]. | |||
| 5.6. Domain Name Reservation | 5.6. Domain Name Reservation | |||
| The special-use domain "eap-noob.arpa" has been registered in the | The special-use domain "eap-noob.arpa" has been registered in the | |||
| .arpa registry (https://www.iana.org/domains/arpa) and the "Special- | .arpa registry (https://www.iana.org/domains/arpa) and the "Special- | |||
| Use Domain Names" registry (https://www.iana.org/assignments/special- | Use Domain Names" registry (https://www.iana.org/assignments/special- | |||
| use-domain-names). No A, AAAA, or PTR records are requested. | use-domain-names). | |||
| 5.7. Guidance for Designated Experts | 5.7. Guidance for Designated Experts | |||
| Experts SHOULD be conservative in the allocation of new Cryptosuites. | Experts SHOULD be conservative in the allocation of new Cryptosuites. | |||
| Experts MUST ascertain that the requested values match the current | Experts MUST ascertain that the requested values match the current | |||
| Crypto Forum Research Group (CFRG) guidance on cryptographic | Crypto Forum Research Group (CFRG) guidance on cryptographic | |||
| algorithm security. Experts MUST ensure that any new Cryptosuites | algorithm security. Experts MUST ensure that any new Cryptosuites | |||
| fully specify the encoding of the ECDHE public key and should include | fully specify the encoding of the ECDHE public key and should include | |||
| details, such as the value of the "kty" (key type) parameter when JWK | details, such as the value of the "kty" (key type) parameter when JWK | |||
| [RFC7517] encoding is used. | [RFC7517] encoding is used. | |||
| skipping to change at line 2410 ¶ | skipping to change at line 2410 ¶ | |||
| identifiers and other information about the peer device (see | identifiers and other information about the peer device (see | |||
| Table 6). While the information refers to the peer device and not | Table 6). While the information refers to the peer device and not | |||
| directly to the user, it can leak information about the user to the | directly to the user, it can leak information about the user to the | |||
| access network and to outside observers. The ServerInfo, on the | access network and to outside observers. The ServerInfo, on the | |||
| other hand, can leak information about the peer's affiliation with | other hand, can leak information about the peer's affiliation with | |||
| the home network. For this reason, the optional PeerInfo and | the home network. For this reason, the optional PeerInfo and | |||
| ServerInfo in the Reconnect Exchange SHOULD be omitted unless some | ServerInfo in the Reconnect Exchange SHOULD be omitted unless some | |||
| critical data has changed and it cannot be updated on the application | critical data has changed and it cannot be updated on the application | |||
| layer. | layer. | |||
| Peer devices that randomize their layer-2 address to prevent tracking | Peer devices that randomize their Layer 2 address to prevent tracking | |||
| can do this whenever the user resets the EAP-NOOB association. | can do this whenever the user resets the EAP-NOOB association. | |||
| During the lifetime of the association, the PeerId is a unique | During the lifetime of the association, the PeerId is a unique | |||
| identifier that can be used to track the peer in the access network. | identifier that can be used to track the peer in the access network. | |||
| Later versions of this specification may consider updating the PeerId | Later versions of this specification may consider updating the PeerId | |||
| at each Reconnect Exchange. In that case, it is necessary to | at each Reconnect Exchange. In that case, it is necessary to | |||
| consider how the authenticator and access-network administrators can | consider how the authenticator and access-network administrators can | |||
| recognize and add misbehaving peer devices to a deny list, as well as | recognize and add misbehaving peer devices to a deny list, as well as | |||
| how to avoid loss of synchronization between the server and the peer | how to avoid loss of synchronization between the server and the peer | |||
| if messages are lost during the identifier update. | if messages are lost during the identifier update. | |||
| skipping to change at line 2638 ¶ | skipping to change at line 2638 ¶ | |||
| DOI 10.1145/3321705.3329813, February 2019, | DOI 10.1145/3321705.3329813, February 2019, | |||
| <https://arxiv.org/abs/1902.07550>. | <https://arxiv.org/abs/1902.07550>. | |||
| [TLS-CWT] Tschofenig, H. and M. Brossard, "Using CBOR Web Tokens | [TLS-CWT] Tschofenig, H. and M. Brossard, "Using CBOR Web Tokens | |||
| (CWTs) in Transport Layer Security (TLS) and Datagram | (CWTs) in Transport Layer Security (TLS) and Datagram | |||
| Transport Layer Security (DTLS)", Work in Progress, | Transport Layer Security (DTLS)", Work in Progress, | |||
| Internet-Draft, draft-tschofenig-tls-cwt-02, 13 July 2020, | Internet-Draft, draft-tschofenig-tls-cwt-02, 13 July 2020, | |||
| <https://datatracker.ietf.org/doc/html/draft-tschofenig- | <https://datatracker.ietf.org/doc/html/draft-tschofenig- | |||
| tls-cwt-02>. | tls-cwt-02>. | |||
| Appendix A. Exchanges and Events Per State | Appendix A. Exchanges and Events per State | |||
| Table 14 shows how the EAP server chooses the exchange type depending | Table 14 shows how the EAP server chooses the exchange type depending | |||
| on the server and peer states. In the state combinations marked with | on the server and peer states. In the state combinations marked with | |||
| hyphen "-", there is no possible exchange and user action is required | hyphen "-", there is no possible exchange and user action is required | |||
| to make progress. Note that peer state 4 is omitted from the table | to make progress. Note that peer state 4 is omitted from the table | |||
| because the peer never connects to the server when the peer is in | because the peer never connects to the server when the peer is in | |||
| that state. The table also shows the handling of errors in each | that state. The table also shows the handling of errors in each | |||
| exchange. A notable detail is that the recipient of error code 2003 | exchange. A notable detail is that the recipient of error code 2003 | |||
| moves to state 1. | moves to state 1. | |||
| +=============+===============================+==================+ | +=============+===============================+==================+ | |||
| | Peer States | Exchange Chosen By the Server | Next Peer and | | | Peer States | Exchange Chosen by the Server | Next Peer and | | |||
| | | | Server States | | | | | Server States | | |||
| +=============+===============================+==================+ | +=============+===============================+==================+ | |||
| | Server State: Unregistered (0) | | | Server State: Unregistered (0) | | |||
| +-------------+-------------------------------+------------------+ | +-------------+-------------------------------+------------------+ | |||
| | 0..2 | Initial Exchange | both 1 (0 on | | | 0..2 | Initial Exchange | both 1 (0 on | | |||
| | | | error) | | | | | error) | | |||
| +-------------+-------------------------------+------------------+ | +-------------+-------------------------------+------------------+ | |||
| | 3 | - | no change, | | | 3 | - | no change, | | |||
| | | | notify user | | | | | notify user | | |||
| +-------------+-------------------------------+------------------+ | +-------------+-------------------------------+------------------+ | |||
| skipping to change at line 2674 ¶ | skipping to change at line 2674 ¶ | |||
| | | | error) | | | | | error) | | |||
| +-------------+-------------------------------+------------------+ | +-------------+-------------------------------+------------------+ | |||
| | 1 | Waiting Exchange | both 1 (no | | | 1 | Waiting Exchange | both 1 (no | | |||
| | | | change on error) | | | | | change on error) | | |||
| +-------------+-------------------------------+------------------+ | +-------------+-------------------------------+------------------+ | |||
| | 2 | Completion Exchange | both 4 (A) | | | 2 | Completion Exchange | both 4 (A) | | |||
| +-------------+-------------------------------+------------------+ | +-------------+-------------------------------+------------------+ | |||
| | 3 | - | no change, | | | 3 | - | no change, | | |||
| | | | notify user | | | | | notify user | | |||
| +-------------+-------------------------------+------------------+ | +-------------+-------------------------------+------------------+ | |||
| | /server State: OOB Received (2) | | | Server State: OOB Received (2) | | |||
| +-------------+-------------------------------+------------------+ | +-------------+-------------------------------+------------------+ | |||
| | 0 | Initial Exchange | both 1 (0 on | | | 0 | Initial Exchange | both 1 (0 on | | |||
| | | | error) | | | | | error) | | |||
| +-------------+-------------------------------+------------------+ | +-------------+-------------------------------+------------------+ | |||
| | 1 | Completion Exchange | both 4 (B) | | | 1 | Completion Exchange | both 4 (B) | | |||
| +-------------+-------------------------------+------------------+ | +-------------+-------------------------------+------------------+ | |||
| | 2 | Completion Exchange | both 4 (A) | | | 2 | Completion Exchange | both 4 (A) | | |||
| +-------------+-------------------------------+------------------+ | +-------------+-------------------------------+------------------+ | |||
| | 3 | - | no change, | | | 3 | - | no change, | | |||
| | | | notify user | | | | | notify user | | |||
| End of changes. 8 change blocks. | ||||
| 8 lines changed or deleted | 8 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||