| draft-ietf-core-dev-urn-00.txt | draft-ietf-core-dev-urn.txt | |||
|---|---|---|---|---|
| Network Working Group J. Arkko | Network Working Group J. Arkko | |||
| Internet-Draft Ericsson | Internet-Draft Ericsson | |||
| Intended status: Informational C. Jennings | Intended status: Informational C. Jennings | |||
| Expires: September 6, 2018 Cisco | Expires: September 2, 2018 Cisco | |||
| Z. Shelby | Z. Shelby | |||
| Sensinode | ARM | |||
| March 5, 2018 | March 2018 | |||
| Uniform Resource Names for Device Identifiers | Uniform Resource Names for Device Identifiers | |||
| draft-ietf-core-dev-urn-00 | draft-ietf-core-dev-urn-01 | |||
| Abstract | Abstract | |||
| This memo describes a new Uniform Resource Name (URN) namespace for | This memo describes a new Uniform Resource Name (URN) namespace for | |||
| hardware device identifiers. A general representation of device | hardware device identifiers. A general representation of device | |||
| identity can be useful in many applications, such as in sensor data | identity can be useful in many applications, such as in sensor data | |||
| streams and storage, or equipment inventories. A URN-based | streams and storage, or equipment inventories. A URN-based | |||
| representation can be easily passed along in any application that | representation can be easily passed along in any application that | |||
| needs the information. | needs the information. | |||
| skipping to change at page 1, line 38 ¶ | skipping to change at page 1, line 38 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on September 6, 2018. | This Internet-Draft will expire on September 2, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 14 ¶ | skipping to change at page 2, line 14 ¶ | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Requirements language . . . . . . . . . . . . . . . . . . . . 3 | 2. Requirements language . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. DEV URN Definition . . . . . . . . . . . . . . . . . . . . . 3 | 3. DEV URN Definition . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4. DEV URN Subtypes . . . . . . . . . . . . . . . . . . . . . . 5 | 3.1. Purpose . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4.1. MAC Addresses . . . . . . . . . . . . . . . . . . . . . . 5 | 3.2. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4.2. 1-Wire Device Identifiers . . . . . . . . . . . . . . . . 6 | 3.3. Assignment . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.3. Organization-Defined Identifiers . . . . . . . . . . . . 6 | 3.4. Security and Privacy . . . . . . . . . . . . . . . . . . 6 | |||
| 5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.5. Interoperability . . . . . . . . . . . . . . . . . . . . 6 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 3.6. Resolution . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 3.7. Documentation . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 3.8. Additional Information . . . . . . . . . . . . . . . . . 6 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 3.9. Revision Information . . . . . . . . . . . . . . . . . . 6 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 9 | 4. DEV URN Subtypes . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| Appendix A. Changes from Previous Version . . . . . . . . . . . 10 | 4.1. MAC Addresses . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| Appendix B. Acknowledgments . . . . . . . . . . . . . . . . . . 11 | 4.2. 1-Wire Device Identifiers . . . . . . . . . . . . . . . . 7 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | 4.3. Organization-Defined Identifiers . . . . . . . . . . . . 7 | |||
| 5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | ||||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | ||||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | ||||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | ||||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 9 | ||||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 10 | ||||
| Appendix A. Changes from Previous Version . . . . . . . . . . . 12 | ||||
| Appendix B. Acknowledgments . . . . . . . . . . . . . . . . . . 13 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
| 1. Introduction | 1. Introduction | |||
| This memo describes a new Uniform Resource Name (URN) [RFC8141] | This memo describes a new Uniform Resource Name (URN) [RFC8141] | |||
| [RFC3406] namespace for hardware device identifiers. A general | [RFC3406] namespace for hardware device identifiers. A general | |||
| representation of device identity can be useful in many applications, | representation of device identity can be useful in many applications, | |||
| such as in sensor data streams and storage, or equipment inventories | such as in sensor data streams and storage, or equipment inventories | |||
| [RFC7252], [I-D.ietf-core-senml]. A URN-based representation can be | [RFC7252], [I-D.ietf-core-senml]. A URN-based representation can be | |||
| easily passed along in any application that needs the information, as | easily passed along in any application that needs the information, as | |||
| it fits in protocols mechanisms that are designed to carry URNs | it fits in protocols mechanisms that are designed to carry URNs | |||
| skipping to change at page 3, line 49 ¶ | skipping to change at page 3, line 49 ¶ | |||
| within this type. | within this type. | |||
| 2. Requirements language | 2. Requirements language | |||
| In this document, the key words "MAY", "MUST, "MUST NOT", "OPTIONAL", | In this document, the key words "MAY", "MUST, "MUST NOT", "OPTIONAL", | |||
| "RECOMMENDED", "SHOULD", and "SHOULD NOT", are to be interpreted as | "RECOMMENDED", "SHOULD", and "SHOULD NOT", are to be interpreted as | |||
| described in [RFC2119]. | described in [RFC2119]. | |||
| 3. DEV URN Definition | 3. DEV URN Definition | |||
| Namespace ID: "dev" requested | Namespace Identifier: "dev" requested | |||
| Version: 1 | ||||
| Date: 2018-03-19 | ||||
| Registration Information: This is the first registration of this | Registration Information: This is the first registration of this | |||
| namespace, 2011-08-27. | namespace, 2018-03-19. | |||
| Registration version number: 1 | Registrant: IETF and the CORE working group. Should the working | |||
| group cease to exist, discussion should be directed to the general | ||||
| IETF discussion forums or the IESG. | ||||
| Registration date: 2011-08-27 | 3.1. Purpose | |||
| Declared registrant of the namespace: IETF and the CORE working | Purpose: The DEV URNs identify devices with device-specific | |||
| group. Should the working group cease to exist, discussion should be | identifiers such as network card hardware addresses. These URNs may | |||
| directed to the general IETF discussion forums or the IESG. | be used in any relevant networks that benefit from the ability to | |||
| refer to these identifiers in the form of URNs; DEV URN is global in | ||||
| scope. | ||||
| Declaration of syntactic structure: The identifier is expressed in | Some typical applications include equipment inventories and smart | |||
| ASCII characters and has a hierarchical structure as follows: | object systems. | |||
| DEV URNs can be used in various ways in applications, software | ||||
| systems, and network components, in tasks ranging from discovery (for | ||||
| instance when discovering 1-wire network devices or detecting MAC- | ||||
| addressable devices on a LAN) to intrusion detection systems and | ||||
| simple catalogues of system information. | ||||
| While it is possible to implement resolution systems for specific | ||||
| applications or network locations, DEV URNs are typically not used in | ||||
| a way that requires resolution beyond direct observation of the | ||||
| relevant identity fields in local link communication. However, it is | ||||
| often useful to be able to pass device identity information in | ||||
| generic URN fields in databases or protocol fields, which makes the | ||||
| use of URNs for this purpose convenient. | ||||
| The DEV URN name space complements existing name spaces such as those | ||||
| involving IMEI or UUID identifiers. DEV URNs are expeced to be a | ||||
| part of the IETF-provided basic URN types, covering identifiers that | ||||
| have previously not been possible to use in URNs. | ||||
| 3.2. Syntax | ||||
| Syntax: The identifier is expressed in ASCII characters and has a | ||||
| hierarchical structure as follows: | ||||
| devurn = "urn:dev:" body componentpart | devurn = "urn:dev:" body componentpart | |||
| body = macbody / owbody / orgbody / otherbody | body = macbody / owbody / orgbody / otherbody | |||
| macbody = "mac:" hexstring | macbody = "mac:" hexstring | |||
| owbody = "ow:" hexstring | owbody = "ow:" hexstring | |||
| orgbody = "org:" number ":" identifier | orgbody = "org:" number ":" identifier | |||
| otherbody = subtype ":" identifier | otherbody = subtype ":" identifier | |||
| subtype = ALPHA *(DIGIT / ALPHA) | subtype = ALPHA *(DIGIT / ALPHA) | |||
| identifier = 1*unreservednout | identifier = 1*unreservednout | |||
| unreservednout = ALPHA / DIGIT / "-" / "." | unreservednout = ALPHA / DIGIT / "-" / "." | |||
| skipping to change at page 4, line 38 ¶ | skipping to change at page 5, line 22 ¶ | |||
| hexbyte hexstring | hexbyte hexstring | |||
| hexbyte = hexdigit hexdigit | hexbyte = hexdigit hexdigit | |||
| hexdigit = DIGIT / hexletter | hexdigit = DIGIT / hexletter | |||
| hexletter = "a" / "b" / "c" / "d" / "e" / "f" | hexletter = "a" / "b" / "c" / "d" / "e" / "f" | |||
| number = *1DIGIT | number = *1DIGIT | |||
| The above Augmented Backus-Naur Form (ABNF) uses the DIGIT and ALPHA | The above Augmented Backus-Naur Form (ABNF) uses the DIGIT and ALPHA | |||
| rules defined in [RFC5234], which are not repeated here. The rule | rules defined in [RFC5234], which are not repeated here. The rule | |||
| for unreserved is defined in Section 2.3 of [RFC3986]. | for unreserved is defined in Section 2.3 of [RFC3986]. | |||
| The device identity namespace includes three subtypes, and more may | The device identity namespace includes three subtypes (see Section 4, | |||
| be defined in the future as specified in Section 7. | and more may be defined in the future as specified in Section 7. | |||
| The optional components following the hexstring are strings depicting | The optional components following the hexstring are strings depicting | |||
| individual aspects of a device. The specific strings and their | individual aspects of a device. The specific strings and their | |||
| semantics are up to the designers of the device, but could be used to | semantics are up to the designers of the device, but could be used to | |||
| refer to specific interfaces or functions within the device. | refer to specific interfaces or functions within the device. | |||
| Relevant ancillary documentation: See Section 4. | There are no special character encoding rules or considerations for | |||
| comforming with the URN syntax, beyond those applicable for URNs in | ||||
| general [RFC8141], or the context where these URNs are carried (e.g., | ||||
| inside JSON [RFC8259] or SenML [I-D.ietf-core-senml]). | ||||
| Identifier uniqueness considerations: Device identifiers are | The lexical equivalence of the DEV URNs is defined as an exact and | |||
| generally expected to be unique, barring the accidental issue of | case sensitive string match. Note that the two subtypes defined in | |||
| multiple devices with the same identifiers. | this document use only lower case letters, however. Future types | |||
| might use identifiers that require other encodings that require a | ||||
| more full-blown character set (such as BASE64), however. | ||||
| Identifier persistence considerations: This URN type SHOULD only be | DEV URNs do not use r-, q-, or f-components. | |||
| used for persistent identifiers, such as hardware-based identifiers | ||||
| or cryptographic identifiers based on keys intended for long-term | ||||
| usage. | ||||
| Process of identifier assignment: The process for identifier | Specific subtypes of DEV URNs may be validated through mechanisms | |||
| assignment is dependent on the used subtype, and documented in the | discussed in Section 4. | |||
| specific subsection under Section 4. | ||||
| Process for identifier resolution: The device identities are not | Finally, the string representation of the device identity URN and of | |||
| expected to be globally resolvable. No identity resolution system is | the MEID sub namespace is fully compatible with the URN syntax. | |||
| expected. Systems may perform local matching of identities to | ||||
| previously seen identities or configured information, however. | ||||
| Rules for Lexical Equivalence: The lexical equivalence of the DEV URN | 3.3. Assignment | |||
| is defined as an exact and case sensitive string match. Note that | Assignment: The process for identifier assignment is dependent on the | |||
| the two subtypes defined in this document use only lower case | used subtype, and documented in the specific subsection under | |||
| letters, however. Future types might use identifiers that require | Section 4. | |||
| other encodings that require a more full-blown character set (such as | ||||
| BASE64), however. | ||||
| Conformance with URN Syntax: The string representation of the device | Device identifiers are generally expected to be unique, barring the | |||
| identity URN and of the MEID sub namespace is fully compatible with | accidental issue of multiple devices with the same identifiers. | |||
| the URN syntax. | ||||
| Validation Mechanism: Specific subtypes may be validated through | This URN type SHOULD only be used for persistent identifiers, such as | |||
| mechanisms discussed in Section 4. | hardware-based identifiers or cryptographic identifiers based on keys | |||
| intended for long-term usage. | ||||
| Scope: DEV URN is global in scope. | 3.4. Security and Privacy | |||
| Security and Privacy: As discussed in Section 6, care must be taken | ||||
| to use device identifier-based identifiers due to their nature as a | ||||
| long-term identifier that is often not changeable. Leakage of these | ||||
| identifiers outside systems where their use is justfied should be | ||||
| controlled. | ||||
| 3.5. Interoperability | ||||
| Interoperability: There are no specific interoperability concerns. | ||||
| 3.6. Resolution | ||||
| Resolution: The device identities are not expected to be globally | ||||
| resolvable. No identity resolution system is expected. Systems may | ||||
| perform local matching of identities to previously seen identities or | ||||
| configured information, however. | ||||
| 3.7. Documentation | ||||
| See RFC NNNN (RFC Editor: Please replace NNNN by a reference to the | ||||
| RFC number of this document). | ||||
| 3.8. Additional Information | ||||
| See Section 1 for a discussion of related name spaces. | ||||
| 3.9. Revision Information | ||||
| Revision Information: This is the first version of this registration. | ||||
| 4. DEV URN Subtypes | 4. DEV URN Subtypes | |||
| 4.1. MAC Addresses | 4.1. MAC Addresses | |||
| DEV URNs of the "mac" subtype are based on the EUI-64 identifier | DEV URNs of the "mac" subtype are based on the EUI-64 identifier | |||
| [IEEE.EUI64] derived from a device with a built-in 64-bit EUI-64. | [IEEE.EUI64] derived from a device with a built-in 64-bit EUI-64. | |||
| The EUI-64 is formed from 24 or 36 bits of organization identifier | The EUI-64 is formed from 24 or 36 bits of organization identifier | |||
| followed by 40 or 28 bits of device-specific extension identifier | followed by 40 or 28 bits of device-specific extension identifier | |||
| assigned by that organization. | assigned by that organization. | |||
| skipping to change at page 10, line 7 ¶ | skipping to change at page 11, line 24 ¶ | |||
| [RFC5612] Eronen, P. and D. Harrington, "Enterprise Number for | [RFC5612] Eronen, P. and D. Harrington, "Enterprise Number for | |||
| Documentation Use", RFC 5612, DOI 10.17487/RFC5612, August | Documentation Use", RFC 5612, DOI 10.17487/RFC5612, August | |||
| 2009, <https://www.rfc-editor.org/info/rfc5612>. | 2009, <https://www.rfc-editor.org/info/rfc5612>. | |||
| [RFC7721] Cooper, A., Gont, F., and D. Thaler, "Security and Privacy | [RFC7721] Cooper, A., Gont, F., and D. Thaler, "Security and Privacy | |||
| Considerations for IPv6 Address Generation Mechanisms", | Considerations for IPv6 Address Generation Mechanisms", | |||
| RFC 7721, DOI 10.17487/RFC7721, March 2016, <https://www | RFC 7721, DOI 10.17487/RFC7721, March 2016, <https://www | |||
| .rfc-editor.org/info/rfc7721>. | .rfc-editor.org/info/rfc7721>. | |||
| [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data | ||||
| Interchange Format", STD 90, RFC 8259, DOI 10.17487/ | ||||
| RFC8259, December 2017, <https://www.rfc-editor.org/info/ | ||||
| rfc8259>. | ||||
| [W3C.REC-xml-19980210] | [W3C.REC-xml-19980210] | |||
| Sperberg-McQueen, C., Bray, T., and J. Paoli, "XML 1.0 | Sperberg-McQueen, C., Bray, T., and J. Paoli, "XML 1.0 | |||
| Recommendation", World Wide Web Consortium FirstEdition | Recommendation", World Wide Web Consortium FirstEdition | |||
| REC-xml-19980210, February 1998, | REC-xml-19980210, February 1998, | |||
| <http://www.w3.org/TR/1998/REC-xml-19980210>. | <http://www.w3.org/TR/1998/REC-xml-19980210>. | |||
| [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained | [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained | |||
| Application Protocol (CoAP)", RFC 7252, DOI 10.17487/ | Application Protocol (CoAP)", RFC 7252, DOI 10.17487/ | |||
| RFC7252, June 2014, <https://www.rfc-editor.org/info/ | RFC7252, June 2014, <https://www.rfc-editor.org/info/ | |||
| rfc7252>. | rfc7252>. | |||
| skipping to change at page 10, line 44 ¶ | skipping to change at page 12, line 17 ¶ | |||
| //www.rfc-editor.org/info/rfc7254>. | //www.rfc-editor.org/info/rfc7254>. | |||
| [I-D.atarius-dispatch-meid-urn] | [I-D.atarius-dispatch-meid-urn] | |||
| Atarius, R., "A Uniform Resource Name Namespace for the | Atarius, R., "A Uniform Resource Name Namespace for the | |||
| Device Identity and the Mobile Equipment Identity (MEID)", | Device Identity and the Mobile Equipment Identity (MEID)", | |||
| draft-atarius-dispatch-meid-urn-15 (work in progress), | draft-atarius-dispatch-meid-urn-15 (work in progress), | |||
| January 2018. | January 2018. | |||
| Appendix A. Changes from Previous Version | Appendix A. Changes from Previous Version | |||
| Version -01 of the WG draft converted the draft to use the new URN | ||||
| registration template from [RFC8141]. | ||||
| Version -00 of the WG draft renamed the file name and fixed the ABNF | Version -00 of the WG draft renamed the file name and fixed the ABNF | |||
| to correctly use "org:" rather than "dn:". | to correctly use "org:" rather than "dn:". | |||
| Version -05 made a change to the delimiter for parameters within a | Version -05 made a change to the delimiter for parameters within a | |||
| DEV URN. Given discussions on allowed character sets in SenML | DEV URN. Given discussions on allowed character sets in SenML | |||
| [I-D.ietf-core-senml], we would like to suggest that the "_" | [I-D.ietf-core-senml], we would like to suggest that the "_" | |||
| character be used instead of ";", to avoid the need to translate DEV | character be used instead of ";", to avoid the need to translate DEV | |||
| URNs in SenML-formatted communications or files. However, this | URNs in SenML-formatted communications or files. However, this | |||
| reverses the earlier decision to not use unreserved characters. This | reverses the earlier decision to not use unreserved characters. This | |||
| also means that device IDs cannot use "_" characters, and have to | also means that device IDs cannot use "_" characters, and have to | |||
| skipping to change at page 12, line 24 ¶ | skipping to change at page 13, line 43 ¶ | |||
| Cullen Jennings | Cullen Jennings | |||
| Cisco | Cisco | |||
| 170 West Tasman Drive | 170 West Tasman Drive | |||
| San Jose, CA 95134 | San Jose, CA 95134 | |||
| USA | USA | |||
| Phone: +1 408 421-9990 | Phone: +1 408 421-9990 | |||
| Email: fluffy@cisco.com | Email: fluffy@cisco.com | |||
| Zach Shelby | Zach Shelby | |||
| Sensinode | ARM | |||
| Kidekuja 2 | Kidekuja 2 | |||
| Vuokatti 88600 | Vuokatti 88600 | |||
| FINLAND | FINLAND | |||
| Phone: +358407796297 | Phone: +358407796297 | |||
| Email: zach@sensinode.com | Email: Zach.Shelby@arm.com | |||
| End of changes. 25 change blocks. | ||||
| 57 lines changed or deleted | 132 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||