RFC 8464
A URN Namespace for Device Identity and Mobile Equipment Identity (MEID)
A URN Namespace for Device Identity and Mobile Equipment Identity (MEID) ๐ฆ
Quick header tea โ
- RFC: 8464
- Author: R. Atarius
- Date: September 2018
- Category: Informational
- ISSN: 2070-1721
- Obsoletes / Updates: the header doesn't list either one, so this doc doesn't obsolete or update anything else. ๐ซถ
Abstract โจ
okay so this doc is about giving each phone a proper URN name ๐ฑ The namespace is for the Third Generation Partnership Project 2 (3GPP2), and the thing we're naming is the Mobile Equipment Identity (MEID). An MEID is 15 hexadecimal digits long. 3GPP2 defines it to uniquely identify each individual piece of mobile equipment, like a handset or mobile phone. 3GPP2 wanted to be able to use an MEID as a URN, and this document is the one that makes that happen ๐
Status of This Memo ๐
this one is not an Internet Standards Track spec. It's published for information, so no pressure ๐ธ
It's a product of the Internet Engineering Task Force (IETF) and it represents the consensus of the IETF community. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG). Not every IESG-approved doc is a candidate for any level of Internet Standard, so check Section 2 of RFC 7841 if you want the full picture.
For the current status, errata, and how to send feedback, go to:
https://www.rfc-editor.org/info/rfc8464
Copyright Notice โ๏ธ
Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved.
This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they stood on the publication date. Please read those carefully, because they spell out your rights and restrictions for this document. Code Components pulled out of this doc must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty as described in the Simplified BSD License. Be a responsible bestie ๐ซถ
Table of Contents ๐บ๏ธ
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Namespace Registration Template . . . . . . . . . . . . . . . 4
4. Specification . . . . . . . . . . . . . . . . . . . . . . . . 6
4.1. MEID Parameters . . . . . . . . . . . . . . . . . . . . . 6
4.2. MEID Format . . . . . . . . . . . . . . . . . . . . . . . 6
4.2.1. Overview . . . . . . . . . . . . . . . . . . . . . . 6
4.2.2. Manufacturer Code . . . . . . . . . . . . . . . . . . 6
4.2.3. Serial Number . . . . . . . . . . . . . . . . . . . . 7
4.2.4. Check Digit . . . . . . . . . . . . . . . . . . . . . 7
4.2.5. Hexadecimal Encoding . . . . . . . . . . . . . . . . 7
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
6. Security and Privacy Considerations . . . . . . . . . . . . . 8
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
7.1. Normative References . . . . . . . . . . . . . . . . . . 9
7.2. Informative References . . . . . . . . . . . . . . . . . 10
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 10
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 10
1. Introduction ๐
okay so here's the setup. Mobile equipment comes in two flavors:
- single-mode 3GPP: it only uses 3GPP technology to send and receive voice or data.
- dual-mode 3GPP/3GPP2: it can use either 3GPP or 3GPP2 technology to send and receive voice or data.
Both flavors have an International Mobile station Equipment Identity (IMEI) to identify them. A URN namespace and an NSS for the IMEI are already defined in [RFC7254]. For dual-mode 3GPP/3GPP2 gear that uses the IMEI as its identity for dual-mode access, the IMEI URN from [RFC7254] can identify the equipment. โจ
BUT ๐ซ single-mode 3GPP2 equipment, which only supports 3GPP2 access technology, has a hexadecimal MEID instead. MEID and IMEI are fundamentally different (they differ in encoding, format, and ownership), so [RFC7254] can't be used to represent a hexadecimal MEID. Not me having to explain this twice ๐
This document specifies a URN namespace for 3GPP2 and an NSS for the MEID, following the namespace registration requirement in [RFC8141]. The MEID is 15 hexadecimal digits long. 3GPP2 defines it (see [S.R0048-A]) to uniquely identify each individual piece of mobile equipment, like a handset or mobile phone. 3GPP2 needs to be able to use an MEID as a URN, and this document fulfills that need. ๐
The Namespace Identifier (NID) '3gpp2' is for identities used in 3GPP2 networks. The MEID is managed by 3GPP2, so 3GPP2 manages this NID too. This spec only defines NSSs built from MEIDs under the '3gpp2' NID. Those NSSs start with "meid:" so you can tell they're MEIDs. Down the road, 3GPP2 might specify other kinds of NSSs under the '3gpp2' NID ๐
The MEID breaks down like this:
- it's 15 hexadecimal digits long
- the manufacturer code is 8 hexadecimal digits
- the serial number is 6 hexadecimal digits, plus one more hexadecimal digit as a check digit
The manufacturer code tells you who made the equipment. A manufacturer can get more than one manufacturer code. The serial number uniquely identifies each piece of equipment within a manufacturer code. The check digit is there as an integrity check for error-prone operations, like when certain readers are used for inventory management. The check digit is not transmitted, so only the first 14 of the 15 hexadecimal digits are used to define the MEID as a URN. Cute little detail, right? ๐ง
This info is meant to be a concise guide for anyone who wants to use the hexadecimal MEID as a URN. Nothing in this document should be read as overriding [S.R0048-A], which is the thing that actually defines the MEID. ๐ซถ
2. Terminology ๐
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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. ๐
3. Namespace Registration Template ๐
Here's a completed namespace registration, so you can see exactly what it looks like in practice ๐
- Namespace Identifier:
'3gpp2' - Version:
1 - Date:
2018-06-10 - Registrant:
- Standards Organization: Third Generation Partnership Project 2 (3GPP2)
- Contact:
- John Derr, MEID Global Hexadecimal Administrator,
JDerr@tiaonline.org - Gary Pellegrino, TIA TR-45 EUMAG Chair,
gary@commflowresources.com - c/o Telecommunications Industry Association, with the address below:
- John Derr, MEID Global Hexadecimal Administrator,
1320 N. Courthouse Rd., Suite 200
Arlington, Virginia 22201, United States of America
- Purpose: The
'3gpp2'namespace identifies mobile equipment that uses technologies defined by the Third Generation Partnership Project 2 ((3GPP2)). At first, this equipment is identified by a URN that embeds a Mobile Equipment Identity (MEID). The MEID is 15 hexadecimal digits long and unique to each individual piece of mobile equipment, like a handset or mobile phone. ๐ - Syntax: The identifier is written in American Standard Code for Information Interchange (ASCII) characters and has a hierarchical form, using the Augmented Backus-Naur Form (ABNF) defined in [RFC5234]. Here's the grammar:
pp2-urn = "urn:" pp2-NID ":" pp2-NSS
pp2-NID = "3gpp2"
pp2-NSS = meid-specifier / future-pp2-specifier
meid-specifier = "meid:" meidval
future-pp2-specifier = future-specifier *[ ":" 1*( pchar / "/" )]
future-specifier = 1*pp2-char
pp2-char = ALPHA / DIGIT / "-" / "." / "_" /
pct-encoded
Here, 'pchar' and 'pct-encoded' are defined in [RFC3986]. An NSS for the MEID is defined under the '3gpp2' NID. The MEID is written as a specific number of hexadecimal digits, as described in [S.R0048-A]. A URN with a 'meid' NSS contains one meidval, defined by this ABNF [RFC5234]:
meidval = Manufacturer-Code "-" Serial-Number
Manufacturer-Code = 8HEX
Serial-Number = 6HEX
HEX = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
- Assignment: The manufacturer code and serial number parts of the MEID are permanently stored in the mobile equipment, so they stay persistent for as long as the equipment exists. The process for assigning them is documented in [SC.R4002-0], and once a manufacturer code and serial number value is assigned, it is not reassigned to another piece of mobile equipment. ๐
Identifiers in the '3gpp2' namespace are defined and assigned by 3GPP2, or by an agency 3GPP2 appoints, after making sure the URNs being assigned are unique. Procedures are in place so each MEID gets uniquely assigned by the mobile equipment manufacturer, which guarantees it uniquely identifies that particular piece of mobile equipment. โจ
- Security and Privacy: See Section 6 of RFC 8464.
- Interoperability: The 3GPP2 Mobile Equipment Identity (MEID) and the 3GPP International Mobile station Equipment Identity (IMEI) both identify mobile equipment, but they're separate identifiers and should not be confused ๐ Internet implementations generally won't have MEID identifiers. The identifiers those implementations generate will usually be URNs in namespaces other than
'3gpp2', and depending on context they might even be non-URN URIs. Implementations are advised to be ready to process URIs other than'3gpp2'namespace URNs, which helps interoperability. - Resolution: No resolution is envisioned.
- Documentation: Documentation can be found in the following specifications:
- "A URN Namespace for Device Identity and Mobile Equipment Identity (MEID)" [RFC8464].
- "3G Mobile Equipment Identifier (MEID) - Stage 1" [S.R0048-A].
- "GHA (Global Hexadecimal Administrator) Assignment Guidelines and Procedures for Mobile Equipment Identifier (MEID) and Short Form Expanded UIM Identifier (SF_EUIMID)" [SC.R4002-0].
- Additional Information: The syntax of a 3GPP2 Mobile Equipment Identity (MEID) differs from that of a 3GPP International Mobile station Equipment Identity (IMEI). Because of that, reusing the URN specified in RFC 7254 is not possible. ๐ โโ๏ธ
- Revision Information: N/A
4. Specification ๐
4.1. MEID Parameters ๐
Any future change to the format of the 'meid' NSS requires the procedure for URN NSS changes. Right now that's done by publishing a future Informational RFC approved by IETF consensus.
[RFC8465] specifies how the MEID URN can be used as an Instance ID, as specified in [RFC5626]. Any change to the Instance ID will require an update to [RFC8465]. Here's an example of a 3GPP2 MEID URN:
urn:3gpp2:meid:A04B0D56-02A7E3
4.2.1. Overview โจ
okay so the MEID is 15 hexadecimal digits packed into 8 octets, per [S.R0048-A] ๐ the first 8 hex digits are the manufacturer code, the next 6 are the serial number within that manufacturer code, and the very last hex digit is a check digit ๐ข. if you want the nitty-gritty on how the hex encoding works, jump to Section 4.2.5 ๐ฆ
4.2.2. Manufacturer Code
the manufacturer code is 8 hex digits and it identifies the mobile equipment manufacturer ๐ญ it's picked from a range that's been handed out to that manufacturer, so every piece of mobile equipment can be told apart uniquely ๐ธ
4.2.3. Serial Number
the serial number is 6 hex digits, and it identifies the equipment inside its manufacturer code ๐ข it's giving individual device ๐ซถ
4.2.4. Check Digit
this is one hex digit (bits 1-4 of octet 8) ๐งฎ it's there as an integrity check for error-prone operations, for example when certain readers are doing inventory management ๐ฆ the check digit is not sent by the mobile equipment and it does not show up in the MEID URN, so don't go looking for it there ๐ โโ๏ธ
4.2.5. Hexadecimal Encoding ๐ง
the MEID is still 15 hex digits encoded in 8 octets as defined in [S.R0048-A] ๐ the diagram below is an abstract picture of a hex-encoded MEID sitting in memory. the actual storage format in memory is implementation specific, so your build can do its own thing ๐ ๏ธ in this picture, the most significant digit of the manufacturer code lives in bits 1-4 of octet 1 ๐ฅ bits 5-8 of octet 8 are zero-padded, because bits 1-4 are only needed for the check digit ๐ the most significant digit of the serial number lives in bits 1-4 of octet 5 โจ
when the MEID goes into a cellular signaling message, the check digit gets dropped and only the first 7 octets in the figure get sent, per [X.S0008-A] ๐ก
14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Hexadecimal
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Digits
| | | |
| | | |
| Manufacturer Code | Serial Number |CD|
| | | |
| | | |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
1 2 3 4 5 6 7 8 Octets
5. IANA Considerations ๐
following BCP 66 [RFC8141], IANA has registered the Formal URN namespace '3gpp2' in the "Uniform Resource Name (URN) Namespaces" registry ๐ the registration used the template you saw in Section 3 ๐
6. Security and Privacy Considerations ๐จ
โ ๏ธ this section is serious, bestie. please read every word ๐ซถ
an MEID is usually printed on the outside of the box a mobile device ships in ๐ฆ it can also be printed under the battery of a mobile device, but very few devices have removable batteries these days ๐ anyone can pull up the MEID through settings or by dialing *#06#, and anyone with brief physical access to the device or its box can grab it in seconds ๐ญ so MEIDs MUST NOT be used as security capabilities (identifiers whose mere possession grants access) ๐ it's not okay, but some applications are using the MEID for authorization anyway ๐ and some service provider customer service departments have been known to treat knowing the MEID as "proof" that the caller is the real owner of the device ๐ both of those are inappropriate uses of the MEID, full stop ๐ โโ๏ธ
the MEID is permanently assigned to the mobile equipment. it does not change when the ownership of the equipment changes, not even after a complete software reload ๐ so the MEID URN MUST NOT be used as a user identifier or user address by an application ๐ซ using the MEID to identify a user or as a user address could send communications meant for a previous owner to the new owner of the device ๐ฌ it could also let the new device owner get into information or services that belonged to the previous owner ๐ฑ
also, since the MEID identifies the mobile equipment, it could potentially be used to identify and track users for surveillance and call data mining if it's sent in the clear ๐
the MEID is personally identifiable information ๐ชช so using the MEID URN with IETF protocols requires a specification and IETF expert review [RFC8126], so the privacy concerns get properly addressed ๐ง protocols carrying the MEID URN SHOULD, at a minimum, use strongly hop-by-hop encrypted channels, and it is RECOMMENDED that end-to-end encryption be used ๐โจ
7. References ๐
7.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, DOI 10.17487/RFC3986, January 2005,
<https://www.rfc-editor.org/info/rfc3986>.
[RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally
Unique IDentifier (UUID) URN Namespace", RFC 4122,
DOI 10.17487/RFC4122, July 2005,
<https://www.rfc-editor.org/info/rfc4122>.
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", STD 68, RFC 5234,
DOI 10.17487/RFC5234, January 2008,
<https://www.rfc-editor.org/info/rfc5234>.
[RFC5626] Jennings, C., Ed., Mahy, R., Ed., and F. Audet, Ed.,
"Managing Client-Initiated Connections in the Session
Initiation Protocol (SIP)", RFC 5626,
DOI 10.17487/RFC5626, October 2009,
<https://www.rfc-editor.org/info/rfc5626>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>.
[RFC8141] Saint-Andre, P. and J. Klensin, "Uniform Resource Names
(URNs)", RFC 8141, DOI 10.17487/RFC8141, April 2017,
<https://www.rfc-editor.org/info/rfc8141>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[S.R0048-A]
3GPP2, "3G Mobile Equipment Identifier (MEID) - Stage 1,
Version 4.0", Stage 1, Version 4.0, 3GPP2 S.R0048-A, June
2005, <http://www.3gpp2.org/Public_html/specs/
S.R0048-A_v4.0_050630.pdf>.
[SC.R4002-0]
3GPP2, "GHA (Global Hexadecimal Administrator) Assignment
Guidelines and Procedures for Mobile Equipment Identifier
(MEID) and Short Form Expanded UIM Identifier
(SF_EUIMID)", 3GPP2 TS SC.R4002-0, Version 12.0, December
2016, <http://www.3gpp2.org/Public_html/Specs/SC.R4002-0_v
12.0_GHA_%20Guidelines_for_MEID_December_2016.pdf>.
[X.S0008-A]
3GPP2, "MAP Support for the Mobile Equipment Identity
(MEID)", 3GPP2 TS X.S0008-A, Version 2.0, March 2014,
<http://www.3gpp2.org/Public_html/Specs/
X.S0008-A_v2.0_20140321.PDF>.
7.2. Informative References
[RFC7254] Montemurro, M., Ed., Allen, A., McDonald, D., and P.
Gosden, "A Uniform Resource Name Namespace for the Global
System for Mobile Communications Association (GSMA) and
the International Mobile station Equipment Identity
(IMEI)", RFC 7254, DOI 10.17487/RFC7254, May 2014,
<https://www.rfc-editor.org/info/rfc7254>.
[RFC8465] Atarius, R., Ed., "Using the Mobile Equipment Identity
(MEID) URN as an Instance ID", RFC 8465,
DOI 10.17487/RFC8465, September 2018,
<https://www.rfc-editor.org/info/rfc8465>.
Acknowledgements ๐ซถ
this document leans heavily on the 3GPP2 work on Numbering, Addressing, and Identification in [S.R0048-A], and it also borrows the style and structure of [RFC7254] and [RFC4122] ๐ the author thanks Ramachandran Subramanian, Alex Gogic, Randall Gellens, and Peter Saint-Andre for their detailed comments ๐
Author's Address ๐
Roozbeh Atarius
Email: ratarius@motorola.com
๐ฆ where this page comes from
- ietf: rfc8464 2018-09
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms