International Telecommunication Union   ITU
عربي  |  中文  |  Español  |  Français  |  Русский
 
 Advanced Search Advanced Search Site Map Contact us Print Version
 
Home : ITU-T Home : ASN.1 Project
   
Universally Unique Identifiers (UUIDs)

UUID Generation and Registration
What is a UUID?
Why register a UUID?
Use of a UUID in a URN  

This web page is associated with ITU-T Rec. X.667 | ISO/IEC 9834-8 "Information Technology - Open Systems Interconnection - Procedures for the operation of OSI Registration Authorities: Generation and Registration of Universally Unique Identifiers (UUIDs) and their Use as ASN.1 Object Identifier Components" which was approved in 2004. 
UUID Generation & Registration
 
(and optionally register it as an OID)

This feature automatically generates a time-based UUID for your own use. The 48-bit media Access Control address (see ISO/IEC 8802-3) that is used is the MAC Address of the system on which this web server is running.

Acknowledgement: The UUID generator was developed by France Telecom and donated to ITU.
 [TOP]
What is a UUID?

A UUID (Universally Unique Identifier) can be used for multiple purposes, from tagging objects with an extremely short lifetime, to reliably identifying very persistent objects across a network, particularly (but not necessarily) as part of an ASN.1 object identifier (OID) value, or in a Uniform Resource Name (URN). 

UUIDs are an octet string of 16 octets (128 bits). The 16 octets can be interpreted as an unsigned integer encoding, and the resulting integer value can be used as a subsequent arc of {joint-iso-itu-t uuid(25)} in the OID tree. This enables users to generate OIDs without any registration procedure.

UUIDs forming a component of an OID are represented in ASN.1 value notation as the decimal representation of their integer value, but for all other display purposes it is more usual to represent them with hexadecimal digits with a hyphen separating the different fields within the 16-octet UUID. This representation is defined in ITU-T Rec. X.667 | ISO/IEC 9834-8.
Example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 is the hexadecimal notation that denotes the same UUID as 329800735698586629295641978511506172918 in decimal notation.

UUIDs are also known as Globally Unique Identifiers (GUIDs), but this term is not used in ITU-T Rec. X.667 | ISO/IEC 9834-8. UUIDs were originally used in the Network Computing System (NCS) and later in the Open Software Foundation's Distributed Computing Environment (DCE). ISO/IEC 11578 "Remote procedure Call (RPC)" contains a short definition of some (but not all) of the UUID formats specified in ITU-T Rec. X.667 | ISO/IEC 9834-8 which is consistent with all these earlier specifications.

If generated according to one of the mechanisms defined in ITU-T Rec. X.667 | ISO/IEC 9834-8, a UUID is either guaranteed to be different from all other UUIDs generated before 3603 A.D., or is extremely likely to be different (depending on the mechanism chosen). The UUID generation algorithm specified in this standard supports very high allocation rates: 10 million per second per machine if necessary, so UUIDs can also be used as transaction IDs.

No centralized authority is required to administer UUIDs but central registration of self-generated UUIDs and automatic generation of UUIDS (using the algorithm defined in ITU-T Rec. X.667 | ISO/IEC 9834-8) are provided at the top of this web page. Centrally generated UUIDs are guaranteed to be different from all other UUIDs centrally generated. Registered UUIDs are guaranteed to be different from all other registered UUIDs.

 [TOP]
Why register a UUID?

The objective of the registration should be seen mainly as a means of publishing the UUID and its semantics.

The Registration Authority for UUIDs is a dedicated web page of the OID repository. It guarantees the uniqueness of registered UUIDs. An attempt to separately register the same UUID will fail, with a link to the current registration details.

Government health warning: It is important to note that an unregistered UUID can be used under the same arc (namely, {joint-iso-itu-t(2) uuid(25)}) as that of a registered UUID. Thus identical values for a registered UUID and an unregistered UUID (or for two unregistered UUIDs) might be used, although the probability of this occurring is very small. The probability is increased if UUIDs are generated from MD5 hash values or pseudo-random numbers, rather than from SHA-1 hash values and cryptographic-quality random numbers.
This may cause confusion for the users of the OID, and could be the trigger of malicious use such as spoofing. The Registration Authority for UUIDs is responsible for a collision between registered UUIDs, but it is not responsible for a collision between a registered UUID and an unregistered UUID because it does not manage unregistered UUIDs. If such a collision occurs, the semantics associated with the registered UUID should have precedence; the semantics associated with the unregistered UUID value should not be used. Thus, the registration of an OID with a UUID does not ensure that the OID has more uniqueness than its UUID's uniqueness.

Disclaimer: The Registration Authority for UUIDs shall not be liable for any failure to operate under the procedures specified in ITU-T Rec. X.667 | ISO/IEC 9834-8, or for any actions related to its duties in relation to this standard. The Registration Authority for UUIDs shall not be held liable for any use of an unregistered OID value that is the same as a registered OID value, as it has no control over the use of such values

 [TOP]
Use of a UUID as a URN
 
A URN (see IETF RFC 2141) formed using a UUID shall be the string "urn:uuid:" followed by the hexadecimal representation of a UUID.
Example: The following is an example of the string representation of a UUID as a URN:
urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6

 [TOP]

 

Top - Feedback - Contact Us -  Copyright © ITU 2009 All Rights Reserved
Contact for this page : TSB EDH
Updated : 2009-04-24