ISO/IEC 9834-8:2005
(Main)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 — Part 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 — Part 8:
ISO/IEC 9834-8:2005 specifies the format and generation rules that enable users to produce 128-bit identifiers that are either guaranteed or have a high probability of being globally unique. The UUIDs generated in conformance with ISO/IEC 9834-8:2005 are suitable either for transient use, with generation of a new UUID every 100 nanoseconds, or as persistent identifiers. ISO/IEC 9834-8:2005 is derived from earlier non-standard specifications of UUIDs and their generation, and is technically identical to those earlier specifications. It specifies the procedures for the operation of a Web-based Registration Authority for UUIDs. ISO/IEC 9834-8:2005 also specifies and allows the use of UUIDs (registered or not registered) as OID components under the arc {joint-iso-itu-t uuid(25)}. This enables users to generate OIDs without any registration procedures. It also specifies and allows the use of UUIDs (registered or not registered) to form a URN.
Technologies de l'information — Interconnexion de systèmes ouverts (OSI) — Procédures opérationnelles pour les organismes d'enregistrement de l'OSI: Génération et enregistrement des identificateurs uniques universels (UUID) et utilisation de ces identificateurs comme composants d'identificateurs d'objets ASN.1 — Partie 8:
L'ISO/CEI 9834-8:2005 spécifie le format et les règles de génération qui permettent aux utilisateurs de générer des identificateurs de 128 bits qui sont soit garantis mondialement uniques ou sont mondialement uniques avec une haute probabilité. Les identificateurs UUID générés conformément à l'ISO/CEI 9834-8:2005 sont appropriés soit pour usage temporaire avec génération d'un nouvel identificateur UUID toutes les 100 ns, soit comme identificateurs permanents. L'ISO/CEI 9834-8:2005 est déduite de spécifications antérieures non normalisées concernant les identificateurs UUID et leur génération, et elle est techniquement identique à ces spécifications antérieures. Elle spécifie les procédures de fonctionnement d'un organisme d'enregistrement pour identificateurs UUID accessible par protocole IP. L'ISO/CEI 9834-8:2005 spécifie et permet également l'utilisation d'identificateurs UUID (enregistrés ou non enregistrés) comme composants d'identificateur OID au-dessous de l'arc {joint-iso-itu-t uuid(25)}. Cet usage permet aux utilisateurs de générer des identificateurs OID sans aucune procédure d'enregistrement. Elle spécifie et permet également l'utilisation des identificateurs UUID (enregistrés ou non enregistrés) afin de former un nom URN.
General Information
Relations
Buy Standard
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 9834-8
First edition
2005-07-15
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
Technologies de l'information — Interconnexion de systèmes ouverts
(OSI) — Procédures opérationnelles pour les organismes
d'enregistrement de l'OSI: Génération et enregistrement des
identificateurs uniques universels (UUID) et emploi de ces
identificateurs comme composants d'identificateurs d'objet ASN.1
Reference number
ISO/IEC 9834-8:2005(E)
©
ISO/IEC 2005
---------------------- Page: 1 ----------------------
ISO/IEC 9834-8:2005(E)
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but
shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In
downloading this file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat
accepts no liability in this area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation
parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In
the unlikely event that a problem relating to it is found, please inform the Central Secretariat at the address given below.
© ISO/IEC 2005
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means,
electronic or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or
ISO's member body in the country of the requester.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland
ii © ISO/IEC 2005 — All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 9834-8:2005(E)
CONTENTS
Page
1 Scope . 1
2 Normative References . 1
2.1 Identical Recommendations | International Standards. 1
2.2 Other normative references . 1
3 Terms and Definitions. 2
3.1 ASN.1 notation. 2
3.2 Registration authorities . 2
3.3 Network terms. 2
3.4 Additional definitions. 2
4 Abbreviations . 3
5 Notation. 3
6 UUID structure and representation. 3
6.1 UUID field structure . 3
6.2 Binary representation . 4
6.3 Representation as a single integer value. 4
6.4 Hexadecimal representation . 4
6.5 Formal syntax of the hexadecimal representation . 4
7 Use of a UUID to form an OID . 5
8 Use of a UUID to form a URN. 5
9 Rules for comparison and ordering of UUIDs. 5
10 Validation. 6
11 The variant bits. 6
12 Use of UUID fields and transmission byte order. 6
12.1 General . 6
12.2 Version . 7
12.3 Time . 7
12.4 Clock Sequence. 8
12.5 Node . 8
13 Setting the fields of a time-based UUID. 8
14 Setting the fields of a name-based UUID. 9
15 Setting the fields of a random-number-based UUID. 9
16 Registration of UUIDs and their use as OID components. 10
16.1 The ASN.1 OID tree . 10
16.2 Appointment of registration authorities . 10
16.3 Fees . 11
16.4 Registration procedures. 11
16.4.1 Application for registration of a UUID . 11
16.4.2 Confirmation process . 11
16.4.3 Content of application. 11
16.5 Maintenance of a Web-based register . 11
Annex A – Algorithms for the efficient generation of time-based UUIDs. 12
A.1 Basic algorithm . 12
A.2 Reading stable storage. 12
A.3 System clock resolution . 12
A.4 Writing stable storage . 13
A.5 Sharing state across processes. 13
Annex B – Properties of name-based UUIDs . 14
Annex C – Generation of random numbers in a system . 15
© ISO/IEC 2005 — All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/ IEC 9834-8:2005(E)
Page
Annex D – Sample implementation. 16
D.1 Files provided. 16
D.2 The copyrt.h file. 16
D.3 The uuid.h file. 16
D.4 The uuid.c file. 17
D.5 The sysdep.h file. 20
D.6 The sysdep.c file. 20
D.7 The utest.c file . 22
D.8 Sample output of utest. 22
D.9 Some name space IDs . 23
BIBLIOGRAPHY . 24
iv © ISO/IEC 2003 — All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 9834-8:2005(E)
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are members of
ISO or IEC participate in the development of International Standards through technical committees
established by the respective organization to deal with particular fields of technical activity. ISO and IEC
technical committees collaborate in fields of mutual interest. Other international organizations, governmental
and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information
technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards. Draft International
Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as
an International Standard requires approval by at least 75 % of the national bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent
rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights.
ISO/IEC 9834-8 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology,
Subcommittee SC 6, Telecommunications and information exchange between systems in collaboration with
ITU-T. The identical text is published as ITU-T Rec. X.667.
ISO/IEC 9834 consists of the following parts, under the general title Information technology — Open Systems
Interconnection — Procedures for the operation of OSI Registration Authorities:
⎯ Part 1: General procedures and top arcs of the ASN.1 Object Identifier tree
⎯ Part 2: Registration procedures for OSI document types
⎯ Part 3: Registration of Object Identifier arcs beneath the top-level arc jointly administered by ISO and ITU-T
⎯ Part 4: Register of VTE Profiles
⎯ Part 5: Register of VT Control Object Definitions
⎯ Part 6: Registration of application processes and application entities
⎯ Part 7: Joint ISO and ITU-T Registration of International Organizations
⎯ Part 8: Generation and registration of Universally Unique Identifiers (UUIDs) and their use as ASN.1
Object Identifier components
© ISO/IEC 2005 — All rights reserved v
---------------------- Page: 5 ----------------------
ISO/IEC 9834-8:2005(E)
Introduction
This Recommendation | International Standard standardizes the generation, and optional registration, of Universally
Unique Identifiers (UUIDs).
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 an arc of the OID tree under the arc {joint-iso-itu-t uuid(25)}. This
enables users to generate OIDs without any registration procedure.
UUIDs are also known as Globally Unique Identifiers (GUIDs), but this term is not used in this Recommendation |
International Standard. UUIDs were originally used in the Network Computing System (NCS) [1] and later in the Open
Software Foundation's Distributed Computing Environment (DCE) [2]. ISO/IEC 11578 [3] contains a short definition
of some (but not all) of the UUID formats specified in this Recommendation | International Standard. The specification
in this Recommendation | International Standard is consistent with all these earlier specifications.
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 this Recommendation |
International Standard.
If generated according to one of the mechanisms defined in this Recommendation | International Standard, 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).
No centralized authority is required to administer UUIDs but central registration of self-generated UUIDs, and
automatic generation (using the algorithm defined in this Recommendation | International Standard) and registration of
UUIDs, is provided. 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.
A UUID 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).
The UUID generation algorithm specified in this Recommendation | International Standard supports very high
allocation rates: 10 million per second per machine if necessary, so UUIDs can also be used as transaction IDs. An
informative annex provides a program in the C language that will generate UUIDs in accordance with this
Recommendation | International Standard.
Three algorithms are specified for the generation of unique UUIDs, using different mechanisms to ensure uniqueness.
These produce different versions of a UUID.
The first (and most common) mechanism produces the so-called time-based version. These UUIDs can be generated at
the rate of 10 million per second. For UUIDs generated within a single computer system, a 60-bit time-stamp (used as a
Clock value) with a granularity of 100 nanoseconds, based on Coordinated Universal Time (UTC) is used to guarantee
uniqueness over a period of approximately 1600 years. For UUIDs generated with the same time-stamp by different
systems, uniqueness is obtained by use of 48-bit Media Access Control (MAC) addresses, specified in ISO/IEC 8802-3
(this is used as a Node value). (These addresses are usually already available on most networked systems, but are
otherwise obtainable from the IEEE Registration Authority for MAC addresses – see [4].) Alternative ways of
generating Clock and Node values are specified for the time-based version if UTC time is not available on a system, or
if there is no MAC address available.
The second mechanism produces a single UUID that is a name-based version, where cryptographic hashing is used to
produce the 128-bit UUID value from a globally unambiguous (text) name.
The third mechanism uses pseudo-random or truly random number generation to produce most of the bits in the 128-bit
value.
Clause 5 specifies the notation used for octet-order and bit-order naming, and for specification of transmission order.
Clause 6 specifies the structure of a UUID and the representation of it in binary, hexadecimal, or as a single integer
value.
Clauses 7 and 8 specify the use of a UUID in an OID or a URN respectively.
Clause 9 specifies rules for comparing UUIDs to test for equality or to provide an ordering relation between two
UUIDs.
Clause 10 discusses the possibility of checking the validity of a UUID. In general, UUIDs have little redundancy, and
there is little scope for checking their validity. However, if a UUID is accepted for registration, then it is guaranteed to
be different from all other registered UUIDs.
vi © ISO/IEC 2003 — All rights reserved
---------------------- Page: 6 ----------------------
ISO/IEC 9834-8:2005(E)
Clause 11 describes the historical use of some bits in the UUID to define different variants of the UUID format, and
specifies the value of these bits for UUIDs defined in accordance with this Recommendation | International Standard.
Clause 12 specifies the use of the fields of a UUID in the different versions that are defined (time-based, name-based,
and random-number based versions). It also defines the transmission byte order.
Clause 13 specifies the setting of the fields of a time-based UUID.
Clause 14 specifies the setting of the fields of a name-based UUID.
Clause 15 specifies the setting of the fields of a random-number-based UUID.
Clause 16 is concerned with the operation of a Registration Authority for UUIDs, enabling their central registration and
providing uniqueness guarantees.
All annexes are informative.
Annex A describes various algorithms for the efficient generation of time-based UUIDs.
Annex B discusses the properties that a name-based UUID should have, affecting the selection of name spaces for use
in generating such UUIDs.
Annex C provides guidance on mechanisms that can be used to generate random numbers in a computer system.
Annex D contains a complete program in the C programming language that can be used to generate UUIDs.
© ISO/IEC 2005 — All rights reserved vii
---------------------- Page: 7 ----------------------
ISO/IEC 9834-8:2005 (E)
INTERNATIONAL STANDARD
ITU-T RECOMMENDATION
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
1 Scope
This Recommendation | International Standard specifies the format and generation rules that enable users to produce
128-bit identifiers that are either guaranteed to be globally unique, or are globally unique with a high probability.
The UUIDs generated in conformance with this Recommendation | International Standard are suitable either for
transient use, with generation of a new UUID every 100 nanoseconds, or as persistent identifiers.
This Recommendation | International Standard is derived from earlier non-standard specifications of UUIDs and their
generation, and is technically identical to those earlier specifications.
This Recommendation | International Standard specifies the procedures for the operation of a Web-based Registration
Authority for UUIDs.
This Recommendation | International Standard also specifies and allows the use of UUIDs (registered or not registered)
as OID components under the arc {joint-iso-itu-t uuid(25)}. This enables users to generate OIDs without any
registration procedures.
This Recommendation | International Standard also specifies and allows the use of UUIDs (registered or not registered)
to form a URN.
2 Normative references
The following Recommendations and International Standards contain provisions which, through reference in this text,
constitute provisions of this Recommendation | International Standard. At the time of publication, the editions indicated
were valid. All Recommendations and Standards are subject to revision, and parties to agreements based on this
Recommendation | International Standard are encouraged to investigate the possibility of applying the most recent
edition of the Recommendations and Standards listed below. Members of IEC and ISO maintain registers of currently
valid International Standards. The Telecommunication Standardization Bureau of the ITU maintains a list of currently
valid ITU-T Recommendations.
2.1 Identical Recommendations | International Standards
– ITU-T Recommendation X.660 (2004) | ISO/IEC 9834-1:2005, Information technology – Open Systems
Interconnection – Procedures for the operation of OSI Registration Authorities: General procedures and
top arcs of the ASN.1 Object Identifier tree.
– ITU-T Recommendation X.680 (2002) | ISO/IEC 8824-1:2002, Information technology – Abstract
Syntax Notation One (ASN.1): Specification of basic notation.
2.2 Other normative references
– ISO/IEC 8802-3:2000, Information technology – Telecommunications and information exchange
between systems – Local and metropolitan area networks – Specific requirements – Part 3: Carrier
sense multiple access with collision detection (CSMA/CD) access method and physical layer
specifications.
– ISO/IEC 10118-3:2004, Information technology – Security techniques – Hash functions – Part 3:
Dedicated hash-functions.
– ISO/IEC 10646:2003, Information technology – Universal Multiple-Octet Coded Character Set (UCS).
ITU-T Rec. X.667 (09/2004) 1
---------------------- Page: 8 ----------------------
ISO/IEC 9834-8:2005 (E)
– FIPS PUB 180-2:2002, Federal Information Processing Standards Publication, Secure Hash Standard
(SHS).
– IETF RFC 1321 (1992), The MD5 Message-Digest Algorithm.
– IETF RFC 2141 (1997), URN Syntax.
3 Terms and definitions
For the purposes of this Recommendation | International Standard, the following definitions apply.
3.1 ASN.1 notation
This Recommendation | International Standard uses the following terms defined in ITU-T Rec. X.680 |
ISO/IEC 8824-1:
a) Coordinated Universal Time (UTC);
b) (ASN.1) object identifier.
3.2 Registration authorities
This Recommendation | International Standard uses the following terms defined in ITU-T Rec. X.660 |
ISO/IEC 9834-1:
a) object identifier tree (or OID tree);
b) registration;
c) registration authority;
d) registration procedures.
3.3 Network terms
This Recommendation | International Standard uses the following term defined in ISO/IEC 8802-3:
– MAC address.
3.4 Additional definitions
3.4.1 cryptographic-quality random-number: A random number or pseudo-random number generated by a
mechanism, which ensures sufficient spread of repeatedly-generated values to be acceptable for use in cryptographic
work (and is used in such work).
3.4.2 name-based version: A UUID that is generated using cryptographic hashing of a name space name and a
name in that name space.
3.4.3 name space: A system for generating names of objects that ensures unambiguous identification within that
name space.
NOTE – Examples of name spaces are the network domain name system, URNs, OIDs, Directory distinguished names (see [5]),
and reserved words in a programming language.
3.4.4 random-number-based version: A UUID that is generated using a random or pseudo-random number.
3.4.5 standard UUID variant: The variant of the possible UUID formats that is specified by this Recommendation
| International Standard.
NOTE – Historically, there have been other specifications of UUID formats that differ from the variant specified in this
Recommendation | International Standard. UUIDs generated according to all these variant formats are all distinct.
3.4.6 time-based version: A UUID in which uniqueness is obtained by the use of a MAC address to identify a
system, and a Clock value based on the current UTC time.
3.4.7 Universally Unique Identifier (UUID): A 128-bit value generated in accordance with this Recommendation
| International Standard, or in accordance with some historical specifications, and providing unique values between
systems and over time (see also 3.4.5).
2 ITU-T Rec. X.667 (09/2004)
---------------------- Page: 9 ----------------------
ISO/IEC 9834-8:2005 (E)
4 Abbreviations
For the purposes of this Recommendation | International Standard, the following abbreviations apply:
ASN.1 Abstract Syntax Notation One
GUID Globally Unique Identifier
IEEE Institute of Electrical and Electronics Engineers, Inc.
MAC Media Access Control
MD5 Message Digest algorithm 5
OID ASN.1 Object Identifier
RA Registration Authority
SHA-1 Secure Hash Algorithm 1
URL Uniform Resource Locator
URN Uniform Resource Name
UTC Coordinated Universal Time
UUID Universally Unique Identifier
5 Notation
5.1 This Recommendation | International Standard specifies a sequence of octets for a UUID using the terms first
and last. The first octet is also called "octet 15" and the last octet "octet 0".
5.2 The bits within a UUID are also numbered as "bit 127" to "bit 0", with bit 127 as the most significant bit of
octet 15 and bit 0 as the least significant bit of octet 0.
5.3 When figures and tables are used in this Recommendation | International Standard, the most significant octet
(and the most significant bit) are displayed on the left of the page. This corresponds with a transmission order of octets
in which the left-most octets are transmitted first.
5.4 A number of values used in this Specification are expressed as the value of an unsigned integer of a given bit-
length (N say). The bits of the N-bit unsigned integer value are numbered "bit N-1" to "bit 0", with bit N-1 as the most
significant bit and bit 0 as the least significant bit.
5.5 These notations are used solely for the purposes of this Specification. Representations in computer memory
are not standardized, and depend on the system architecture.
6 UUID structure and representation
6.1 UUID field structure
6.1.1 A UUID is specified as an ordered sequence of six fields. A UUID is specified in terms of the concatenation
of these UUID fields. The UUID fields are named:
a) the "TimeLow" field;
b) the "TimeMid" field;
c) the "VersionAndTimeHigh" field;
d) the "VariantAndClockSeqHigh" field;
e) the "ClockSeqLow" field;
f) the "Node" field.
6.1.2 The UUID fields are defined to have a significance in the order listed above, with "TimeLow" as the most
significant field (bit 31 of "TimeLow" is bit 127 of the UUID), and "Node" as the least significant field (bit 0 of "Node"
is bit 0 of the UUID).
6.1.3 The contents of these UUID fields are specified in terms of a Version, Variant, Time, Clock Sequence, and
Node unsigned integer value (each with a fixed bit-size). The setting of these values is specified in clause 12 and their
mapping to the above UUID fields is specified in 12.1.
ITU-T Rec. X.667 (09/2004) 3
---------------------- Page: 10 ----------------------
ISO/IEC 9834-8:2005 (E)
NOTE – As part of the names of some of the UUID fields (for example, TimeLow, TimeMid, and TimeHigh) imply, the
sequential order of the bits in a UUID (bit 127 to bit 0) that derive from a particular unsigned integer value (for example, from
bits 59 to 0 of the Time value) is not the same as the sequential order of the bits in that unsigned integer value. This is for
historical reasons.
6.2 Binary representation
6.2.1 A UUID shall be represented in binary as 16 octets formed by the concatenation of the unsigned integer fixed-
length encoding of each of its fields into one or more octets. The number of octets to be used for each f
...
NORME ISO/CEI
INTERNATIONALE 9834-8
Première édition
2005-07-15
Technologies de l'information —
Interconnexion de systèmes ouverts
(OSI) — Procédures opérationnelles pour
les organismes d'enregistrement de l'OSI:
Génération et enregistrement des
identificateurs uniques universels (UUID)
et utilisation de ces identificateurs
comme composants d'identificateurs
d'objets ASN.1
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
Numéro de référence
ISO/CEI 9834-8:2005(F)
©
ISO/CEI 2005
---------------------- Page: 1 ----------------------
ISO/CEI 9834-8:2005(F)
PDF – Exonération de responsabilité
Le présent fichier PDF peut contenir des polices de caractères intégrées. Conformément aux conditions de licence d'Adobe, ce fichier
peut être imprimé ou visualisé, mais ne doit pas être modifié à moins que l'ordinateur employé à cet effet ne bénéficie d'une licence
autorisant l'utilisation de ces polices et que celles-ci y soient installées. Lors du téléchargement de ce fichier, les parties concernées
acceptent de fait la responsabilité de ne pas enfreindre les conditions de licence d'Adobe. Le Secrétariat central de l'ISO décline toute
responsabilité en la matière.
Adobe est une marque déposée d'Adobe Systems Incorporated.
Les détails relatifs aux produits logiciels utilisés pour la création du présent fichier PDF sont disponibles dans la rubrique General Info
du fichier; les paramètres de création PDF ont été optimisés pour l'impression. Toutes les mesures ont été prises pour garantir
l'exploitation de ce fichier par les comités membres de l'ISO. Dans le cas peu probable où surviendrait un problème d'utilisation,
veuillez en informer le Secrétariat central à l'adresse donnée ci-dessous.
© ISO/CEI 2005
Droits de reproduction réservés. Sauf prescription différente, aucune partie de cette publication ne peut être reproduite ni utilisée sous
quelque forme que ce soit et par aucun procédé, électronique ou mécanique, y compris la photocopie et les microfilms, sans l'accord écrit
de l'ISO à l'adresse ci-après ou du comité membre de l'ISO dans le pays du demandeur.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax. + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Publié en Suisse
ii © ISO/CEI 2005 – Tous droits réservés
---------------------- Page: 2 ----------------------
ISO/CEI 9834-8:2005(F)
TABLE DES MATIÈRES
Page
1 Domaine d'application. 1
2 Références normatives. 1
2.1 Recommandations | Normes internationales identiques. 1
2.2 Autres références normatives . 1
3 Termes et définitions. 2
3.1 Notation ASN.1. 2
3.2 organismes d'enregistrement . 2
3.3 Termes relatifs au réseau. 2
3.4 Définitions additionnelles . 2
4 Abréviations . 3
5 Notation. 3
6 Structure et représentation des identificateurs UUID. 3
6.1 Structure de champ d'un identificateur UUID. 3
6.2 Représentation binaire. 4
6.3 Représentation par valeur unique d'entier . 4
6.4 Représentation hexadécimale. 4
6.5 Syntaxe formelle de la représentation hexadécimale . 4
7 Utilisation d'un identificateur UUID afin de former un identificateur OID . 5
8 Utilisation d'un identificateur UUID afin de former un nom URN . 5
9 Règles de comparaison et d'ordonnancement des identificateurs UUID . 5
10 Validation. 6
11 Les bits de variante. 6
12 Utilisation des champs d'UUID et ordre des octets pendant la transmission. 6
12.1 Généralités . 6
12.2 Version . 7
12.3 Temps . 8
12.4 Séquence d'horloge . 8
12.5 Nœud . 8
13 Réglage des champs d'un identificateur UUID fondé sur le temps . 9
14 Réglage des champs d'un identificateur UUID fondé sur le nom. 9
15 Réglage des champs d'un identificateur UUID fondé sur un nombre aléatoire . 10
16 Enregistrement des identificateurs UUID et utilisation de ces identificateurs comme composants
d'identificateur OID . 10
16.1 L'arborescence d'identificateurs OID en notation ASN.1. 10
16.2 Désignation des organismes d'enregistrement. 11
16.3 Honoraires. 11
16.4 Procédures d'enregistrement. 12
16.4.1 Demande d'enregistrement d'un identificateur UUID . 12
16.4.2 Processus de confirmation. 12
16.4.3 Contenu de la demande . 12
16.5 Maintenance d'un registre accessible par protocole IP. 12
Annexe A – Algorithmes pour la génération efficace d'identificateurs UUID fondés sur le temps. 13
A.1 Algorithme de base . 13
A.2 Lecture en mémoire stable . 13
A.3 Résolution de l'horloge-système. 14
A.4 Ecriture en mémoire stable. 14
A.5 Partage d'état entre processus. 14
Annexe B – Propriétés des identificateurs UUID fondés sur le nom. 15
Annexe C – Génération de nombres aléatoires dans un système. 16
© ISO/CEI 2005 – Tous droits réservés iii
---------------------- Page: 3 ----------------------
ISO/CEI 9834-8:2005(F)
Page
Annexe D – Exemple de réalisation . 17
D.1 Fichiers fournis . 17
D.2 Le fichier copyrt.h. 17
D.3 Le fichier uuid.h. 17
D.4 Le fichier uuid.c. 18
D.5 Le fichier sysdep.h. 21
D.6 Le fichier sysdep.c. 22
D.7 Le fichier utest.c. 23
D.8 Exemple de sortie du fichier utest. 24
D.9 Quelques identificateurs d'espace nominatif . 24
BIBLIOGRAPHIE. 25
iv © ISO/CEI 2005 – Tous droits réservés
---------------------- Page: 4 ----------------------
ISO/CEI 9834-8:2005(F)
Avant-propos
L'ISO (Organisation internationale de normalisation) et la CEI (Commission électrotechnique internationale)
forment le système spécialisé de la normalisation mondiale. Les organismes nationaux membres de l'ISO ou
de la CEI participent au développement de Normes internationales par l'intermédiaire des comités techniques
créés par l'organisation concernée afin de s'occuper des domaines particuliers de l'activité technique. Les
comités techniques de l'ISO et de la CEI collaborent dans des domaines d'intérêt commun. D'autres
organisations internationales, gouvernementales et non gouvernementales, en liaison avec l'ISO et la CEI
participent également aux travaux. Dans le domaine des technologies de l'information, l'ISO et la CEI ont créé
un comité technique mixte, l'ISO/CEI JTC 1.
Les Normes internationales sont rédigées conformément aux règles données dans les Directives ISO/CEI,
Partie 2.
La tâche principale du comité technique mixte est d'élaborer les Normes internationales. Les projets de
Normes internationales adoptés par le comité technique mixte sont soumis aux organismes nationaux pour
vote. Leur publication comme Normes internationales requiert l'approbation de 75 % au moins des
organismes nationaux votants.
L'attention est appelée sur le fait que certains des éléments du présent document peuvent faire l'objet de
droits de propriété intellectuelle ou de droits analogues. L'ISO et la CEI ne sauraient être tenues pour
responsables de ne pas avoir identifié de tels droits de propriété et averti de leur existence.
L'ISO/CEI 9834-8 a été élaborée par le comité technique mixte ISO/CEI JTC 1, Technologies de l'information,
sous-comité SC 6, Téléinformatique, en collaboration avec l'UIT-T. Le texte identique est publié en tant que
Rec. UIT-T X.667.
L'ISO/CEI 9834 comprend les parties suivantes, présentées sous le titre général Technologies de l'information —
Interconnexion de systèmes ouverts (OSI) — Procédures opérationnelles pour les organismes
d'enregistrement de l'OSI:
⎯ Partie 1: Procédures générales et arcs sommitaux de l'arborescence des identificateurs d'objet ASN.1
⎯ Partie 2: Procédures d'enregistrement pour les types de documents OSI
⎯ Partie 3: Enregistrement des arcs d'identificateur d'objet au-dessous de l'arc de niveau supérieur
administré conjointement par l'ISO et l'UIT-T
⎯ Partie 4: Enregistrement des profils de terminaux virtuels VTE
⎯ Partie 5: Enregistrement des définitions des objets de contrôle VT
⎯ Partie 6: Enregistrement des processus d'application et des entités d'application
⎯ Partie 7: Enregistrement conjoint par l'ISO et l'UIT-T d'organisations internationales
⎯ Partie 8: Génération et enregistrement des identificateurs uniques universels (UUID) et utilisation de ces
identificateurs comme composants d'identificateurs d'objets ASN.1
© ISO/CEI 2005 – Tous droits réservés v
---------------------- Page: 5 ----------------------
ISO/CEI 9834-8:2005(F)
Introduction
La présente Recommandation | Norme internationale normalise la génération, ainsi que l'enregistrement facultatif,
d'identificateurs uniques universels (UUID).
Les identificateurs UUID forment une chaîne de 16 octets (soit 128 bits) qui peut être interprétée comme un codage
d'entier non signé. La valeur d'entier résultante peut être utilisée comme un arc de l'arbre d'identificateur OID
au-dessous de l'arc {joint-iso-itu-t uuid(25)}, ce qui permet aux utilisateurs de générer des identificateurs OID
sans aucune procédure d'enregistrement.
Les identificateurs UUID sont également appelés identificateurs mondialement uniques (GUID), mais ce terme n'est pas
utilisé dans la présente Recommandation | Norme internationale. Les identificateurs UUID ont été initialement utilisés
dans le Système de calcul de réseau (NCS) [1] et ultérieurement dans l'Environnement de calcul réparti (DCE) [2] de la
Fondation des logiciels ouverts. L'ISO/CEI 11578 [3] contient une brève définition de quelques-uns (mais non de la
totalité) des formats d'identificateur UUID spécifiés dans la présente Recommandation | Norme internationale. La
spécification regénérée dans la présente Recommandation | Norme internationale est compatible avec toutes ces
spécifications antérieures.
Les identificateurs UUID qui sont des éléments constituants d'un identificateur OID sont exprimés par notation ASN.1
de valeurs d'entier en base décimale. Mais pour tous les autres objectifs d'affichage, il est plus courant de les représenter
au moyen de chiffres hexadécimaux avec un trait d'union séparant les différents champs contenus dans un identificateur
UUID de 16 octets. Cette représentation est définie dans la présente Recommandation | Norme internationale.
S'il a été généré conformément à un des mécanismes définis dans la présente Recommandation | Norme internationale,
un identificateur UUID est garanti différent de tous les autres identificateurs UUID générés avant l'an 3603 de notre ère,
ou est extrêmement susceptible d'en être différent (selon le mécanisme choisi).
Aucune autorité centralisée n'est appelée à administrer les identificateurs UUID mais un enregistrement central des
identificateurs UUID générés automatiquement est assuré, avec génération automatique (au moyen de l'algorithme
défini dans la présente Recommandation | Norme internationale) et enregistrement automatique des identificateurs
UUID. Les UUID à génération centralisée sont garantis différents de tous les autres UUID à génération centralisée. Les
UUID enregistrés sont garantis différents de tous les autres UUID enregistrés.
Un identificateur UUID peut être utilisé à de multiples fins, de l'étiquetage d'objets ayant une durée de vie extrêmement
brève jusqu'à l'identification fiable d'objets très persistants dans un réseau, particulièrement (mais non nécessairement)
en faisant partie d'une valeur d'identificateur d'objet ASN.1 (OID) ou d'un nom uniforme de ressource (URN).
L'algorithme de génération d'identificateurs UUID spécifié dans la présente Recommandation | Norme internationale
prend en charge de très hauts débits d'affectation: 10 millions par seconde et par machine si nécessaire, de telle sorte
que les identificateurs UUID peuvent également être utilisés comme identificateurs de transaction. Une annexe
informative fournit un programme écrit en langage C qui générera des identificateurs UUID conformément à la présente
Recommandation | Norme internationale.
Trois algorithmes sont spécifiés pour la génération d'identificateurs UUID uniques au moyen de différents mécanismes,
afin d'en garantir l'unicité. Ces algorithmes générent différentes versions d'un identificateur UUID.
Le premier (et le plus courant) mécanisme construit la version dite "fondée sur le temps". Ces identificateurs UUID
peuvent être générés au débit de 10 millions par seconde. Concernant les identificateurs UUID générés dans un seul
système informatique, un marqueur temporel de 60 bits, utilisé comme valeur d'horloge avec une granularité de 100 ns
et fondé sur le Temps universel coordonné (UTC), sert à garantir l'unicité sur une période d'approximativement 1 600
ans. Concernant les identificateurs UUID générés avec le même marqueur temporel par différents systèmes, l'unicité est
obtenue au moyen d'adresses de commande d'accès au support (MAC) de 48 bits, spécifiées dans l'ISO/CEI 8802-3
(cette adresse est utilisée comme valeur nodale). (Ces adresses sont habituellement déjà disponibles dans la plupart des
systèmes mis en réseau, mais sont sinon attribuables par l'organisme d'enregistrement de l'IEEE pour les adresses MAC
– voir [4].) D'autres moyens de génération de valeurs temporelles et de valeurs nodales sont spécifiés pour la version
"fondée sur le temps" si le temps UTC n'est pas disponible dans un système ou s'il n'y a aucune adresse MAC
disponible.
Le second mécanisme génère un identificateur UUID unique qui est une version fondée sur le nom dans laquelle un
hachage cryptographique sert à générer les 128 bits de la valeur d'identificateur UUID à partir d'un nom (textuel)
mondialement univoque.
Le troisième mécanisme fait appel à la génération d'un nombre pseudo-aléatoire ou vraiment aléatoire afin de générer la
plupart des bits contenus dans la valeur de 128 bits.
Le paragraphe 5 spécifie la notation utilisée pour le nommage de l'ordre des octets et de l'ordre des bits, ainsi que pour
la spécification de l'ordre de transmission.
vi © ISO/CEI 2005 – Tous droits réservés
---------------------- Page: 6 ----------------------
ISO/CEI 9834-8:2005(F)
Le paragraphe 6 spécifie la structure d'un identificateur UUID et sa représentation en notation binaire, en notation
hexadécimale, ou en valeur unique d'entier.
Les § 7 et 8 spécifient respectivement l'utilisation d'un identificateur UUID faisant partie d'un identificateur OID ou
faisant partie d'un nom URN.
Le paragraphe 9 spécifie des règles permettant de comparer les identificateurs UUID afin de vérifier leur égalité ou afin
d'offrir une relation d'ordonnancement entre deux UUID.
Le paragraphe 10 étudie la possibilité de vérifier la validité d'un identificateur UUID. En général, les identificateurs
UUID ont peu de redondance et il y a peu de possibilités de vérifier leur validité. Cependant, si un identificateur UUID
est accepté pour enregistrement, alors il est garanti différent de tous les autres identificateurs UUID enregistrés.
Le paragraphe 11 décrit l'utilisation historique de quelques bits contenus dans l'identificateur UUID afin de définir
différentes variantes du format d'identificateur UUID. Il spécifie également la valeur de ces bits pour les identificateurs
UUID définis conformément à la présente Recommandation | Norme internationale.
Le paragraphe 12 spécifie l'utilisation des champs d'un identificateur UUID dans les différentes versions qui sont
définies (versions "fondée sur le temps", "fondée sur le nom" et "fondée sur un nombre aléatoire"). Il définit également
l'ordre des octets pendant la transmission.
Le paragraphe 13 spécifie le réglage des champs d'un identificateur UUID fondé sur le temps.
Le paragraphe 14 spécifie le réglage des champs d'un identificateur UUID fondé sur le nom.
Le paragraphe 15 spécifie le réglage des champs d'un identificateur UUID fondé sur un nombre aléatoire.
Le paragraphe 16 traite du fonctionnement d'un organisme d'enregistrement d'identificateurs UUID, permettant leur
enregistrement central et fournissant des garanties d'unicité.
Toutes les annexes sont informatives.
L'Annexe A décrit divers algorithmes pour la génération efficace d'identificateurs UUID fondés sur le temps.
L'Annexe B étudie les propriétés qu'un identificateur UUID fondé sur le nom devrait posséder, affectant la sélection des
espaces nominatifs à utiliser lors de la génération de tels identificateurs UUID.
L'Annexe C fournit des orientations sur les mécanismes qui peuvent servir à générer des nombres aléatoires dans un
système informatique.
L'Annexe D contient un programme complet en langage de programmation C qui peut servir à générer des
identificateurs UUID.
© ISO/CEI 2005 – Tous droits réservés vii
---------------------- Page: 7 ----------------------
ISO/CEI 9834-8:2005 (F)
NORME INTERNATIONALE
RECOMMANDATION UIT-T
Technologies de l'information – Interconnexion des systèmes ouverts –
Procédures opérationnelles des organismes d'enregistrement
de l'OSI: génération et enregistrement des identificateurs
uniques universels (UUID) et utilisation de ces identificateurs
comme composants d'identificateurs d'objets ASN.1
1 Domaine d'application
La présente Recommandation | Norme internationale spécifie le format et les règles de génération qui permettent aux
utilisateurs de générer des identificateurs de 128 bits qui sont soit garantis mondialement uniques ou sont mondialement
uniques avec une haute probabilité.
Les identificateurs UUID générés conformément à la présente Recommandation | Norme internationale sont appropriés
soit pour usage temporaire avec génération d'un nouvel identificateur UUID toutes les 100 ns, ou comme identificateurs
permanents.
La présente Recommandation | Norme internationale est déduite de spécifications antérieures non normalisées
concernant les identificateurs UUID et leur génération. Elle est techniquement identique à ces spécifications antérieures.
La présente Recommandation | Norme internationale spécifie les procédures de fonctionnement d'un organisme
d'enregistrement pour identificateurs UUID accessible par protocole IP.
La présente Recommandation | Norme internationale spécifie et permet également l'utilisation d'identificateurs UUID
(enregistrés ou non enregistrés) comme composants d'identificateur OID au-dessous de l'arc {joint-iso-itu-t
uuid(25)}. Cet usage permet aux utilisateurs de générer des identificateurs OID sans aucune procédure
d'enregistrement.
La présente Recommandation | Norme internationale spécifie et permet également l'utilisation des identificateurs UUID
(enregistrés ou non enregistrés) afin de former un nom URN.
2 Références normatives
Les Recommandations et Normes internationales suivantes contiennent des dispositions qui, par suite de la référence
qui y est faite, constituent des dispositions valables pour la présente Recommandation | Norme internationale. Au
moment de la publication, les éditions indiquées étaient en vigueur. Toutes Recommandations et Normes sont sujettes à
révision et les parties prenantes aux accords fondés sur la présente Recommandation | Norme internationale sont
invitées à rechercher la possibilité d'appliquer les éditions les plus récentes des Recommandations et Normes indiquées
ci-après. Les membres de la CEI et de l'ISO possèdent le registre des Normes internationales en vigueur. Le Bureau de
la normalisation des télécommunications de l'UIT tient à jour une liste des Recommandations de l'UIT-T en vigueur.
2.1 Recommandations | Normes internationales identiques
– Recommandation UIT-T X.660 (2004) | ISO/CEI 9834-1:2005, Technologies de l'information –
Interconnexion des systèmes ouverts – Procédures opérationnelles des organismes d'enregistrement de
l'OSI: Procédures générales et arcs sommitaux de l'arborescence des identificateurs d'objet ASN.1.
– Recommandation UIT-T X.680 (2002) | ISO/CEI 8824-1:2002, Technologies de l'information – Notation
de syntaxe abstraite numéro un (ASN.1): Spécification de la notation de base.
2.2 Autres références normatives
– ISO/CEI 8802-3:2000, Technologies de l'information – Télécommunications et échange d'information
entre systèmes – Réseaux locaux et métropolitains – Prescriptions spécifiques – Partie 3: Accès multiple
par surveillance du signal et détection de collision (CSMA/CD) et spécifications pour la couche
physique.
– ISO/CEI 10118-3:2004, Technologies de l'information – Techniques de sécurité – Fonctions de
brouillage – Partie 3: Fonctions de brouillage dédiées.
– ISO/CEI 10646:2003, Technologies de l'information – Jeu universel de caractères codés sur plusieurs
octets (JUC).
Rec. UIT-T X.667 (09/2004) 1
---------------------- Page: 8 ----------------------
ISO/CEI 9834-8:2005 (F)
– FIPS PUB 180-2:2002, Federal Information Processing Standards Publication, Secure Hash Standard
(SHS) (Publication fédérale de normes de traitement de l'information – Norme de hachage sécurisé
(SHS)).
– IETF RFC 1321 (1992), The MD5 Message-Digest Algorithm (L'algorithme MD5 de condensation de
message).
– IETF RFC 2141 (1997), URN Syntax (Syntaxe de nom uniforme de ressource).
3 Termes et définitions
Pour les besoins de la présente Recommandation | Norme internationale, les définitions suivantes s'appliquent.
3.1 Notation ASN.1
La présente Recommandation | Norme internationale utilise les termes suivants, qui sont définis dans la Rec. UIT-T
X.680 | ISO/CEI 8824-1:
a) temps universel coordonné (UTC);
b) identificateur d'objet (ASN.1).
3.2 Organismes d'enregistrement
La présente Recommandation | Norme internationale utilise les termes suivants, qui sont définis dans la Rec. UIT-T
X.660 | ISO/CEI 9834-1:
a) arbre d'identificateurs d'objet (ou arbre d'identificateurs OID);
b) enregistrement;
c) organisme d'enregistrement;
d) procédures d'enregistrement.
3.3 Termes relatifs au réseau
La présente Recommandation | Norme internationale utilise le terme suivant, qui est défini dans l'ISO/CEI 8802-3:
– adresse MAC.
3.4 Définitions additionnelles
3.4.1 nombre aléatoire de qualité cryptographique: nombre aléatoire ou pseudo-aléatoire généré par un
mécanisme qui garantit une dispersion suffisante de valeurs générées de façon répétitive pour que ces valeurs soient
acceptables pour utilisation dans des travaux cryptographiques (et qui est utilisé dans de tels travaux).
3.4.2 version fondée sur le nom: identificateur UUID qui est généré par hachage cryptographique d'un nom
contenu dans un espace nominatif et au moyen d'un nom contenu dans cet espace nominatif.
3.4.3 espace nominatif: système de génération de noms d'objets qui garantit une identification univoque dans cet
espace nominatif.
NOTE – Exemples d'espace nominatifs: le système d'adressage par nom de domaine dans un réseau, les noms URN, les
identificateurs OID, les noms distinctifs d'annuaire (voir [5]) et les mots réservés dans un langage de programmation.
3.4.4 version fondée sur un nombre aléatoire: identificateur UUID qui est généré au moyen d'un nombre
aléatoire ou pseudo-aléatoire.
3.4.5 variante normalisée des identificateurs UUID: variante des formats possibles d'identificateur UUID qui est
spécifiée par la présente Recommandation | Norme internationale.
NOTE – Historiquement, il y a eu d'autres spécifications de format d'identificateur UUID qui différaient de la variante spécifiée
dans la présente Recommandation | Norme internationale. Les identificateurs UUID générés conformément à tous ces formats de
variante sont tous distincts.
3.4.6 version "fondée sur le temps": identificateur UUID dans lequel l'unicité est obtenue au moyen d'une adresse
de commande MAC afin d'identifier un système et une valeur d'horloge fondée sur le temps UTC actuel.
3.4.7 identificateur unique universel (UUID): valeur de 128 bits générée conformément à la présen
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.