|
Questions:
- What are the standards that define OIDs and the OID
tree?
- Which kind of objects can be referenced by OIDs?
- Where can I learn more about OIDs and registration?
- How to add information to the OID repository?
- How to modify the description of an OID?
- How to delete an OID (or move it elsewhere in the OID
tree)?
- How does the OID repository provided on this website
compare with Harald Alvestrand's repository?
- How to reference an OID description in this repository?
- How many OIDs are currently described in this repository?
- How to get an OID assigned?
- What decision needs be taken if a country
wants a national Registration Authority for OIDs?
- Are there guidelines or standards regarding subsequent
arcs of a country arc?
- What is the Internet OID?
- Where does the dot notation for OIDs come from?
- Why are top-level arcs restricted to three arcs numbered
0 to 2, and why are arcs beneath top-level arcs
0 and 1 restricted to fourty arcs numbered 0
to 39?
- What do we call a registration tree (or object identifier
tree)?
- What is the ASN.1 notation of an OID?
- How is the entire registration tree managed?
- Which features are offered by this repository?
- What are the syntax rules to enter information
about OIDs through the web interface?
- Which information is necessary to apply for
an OID?
- Is there a particular OID that can be used for
documenting examples of object identifiers?
- What is the difference between
the first and current Registration Authorities that appear in the
description of some OIDs? What is their duty?
- What constraints are imposed to OIDs used in SNMP
MIBs (Management Information Bases)?
- Is there a way to look up an OID in the OID repository
from my web browser or email tool?
- What is a leaf OID?
- What is an orphan OID?
- What is an OID-IRI (Internationalized Resource Identifier)?
- What are the duties of a Registration Authority?
- Are there size limitations for OID encoding?
- Are there binary encoders/decoders for OIDs?
- Does this web site use cookies?
Answers:
- What are the standards that define OIDs and the
OID tree?
They are defined in the Recommendation ITU-T
X.660 | ISO/IEC 9834 series. A new release of this series has
been published in 2008 and a new release of Recommendation ITU-T X.660
[ ISO/IEC 9834-1 is planned for July 2011.
Binary encodings of OIDs are specified in Rec.
ITU-T X.690 | ISO/IEC 8825-1 for the Binary (BER) and Distinguished
(DER) Encoding rules, and in Rec.
ITU-T X.691 | ISO/IEC 8825-2 for the Packed Encoding rules (PER).
- Which kind of objects can be referenced by OIDs?
Objects that can typically be identified by an object identifier are
(non exhaustively):
- Where can I learn more about OIDs and registration?
Apart from the official standards (see
question 1), OIDs are explained in:
- How to add information to the OID repository?
There are at least 4 ways of adding a new OID description to
the repository:
-1- Enter the OID value in the box under "Add a description for the
following OID to the database" on the main page and
click on the "Create" button; a new page will then be displayed with
some boxes to fill. You can also enter the OID in the following box:
-2- Go to the father OID of the OID that you want to add and click
on the "Create a child node" link on the top right-hand side of the
page; a new page will then be displayed with some boxes to fill.
-3- Go to an OID at the same level as the OID that you want to add
and click on the "Create a brother node" link on the top right-hand
side of the page; a new page will then be displayed with some boxes
to fill.
-4- If you have a lot of OID descriptions to add, it is more convenient
to describe them in an XML document that conforms to our XML
Schema for OIDs and submit this document
through the web interface.
Note: The person (if any) you mention as registrant
for the OID, and the person (if known) who is the registrant
for the father OID are automatically informed by email and can make
comments on your submission. The description of an OID won't be visible
until it is validated by the webmaster who is also automatically informed
by email.
- How to modify the description
of an OID?
If you want to update an OID that is described in the OID repository,
please click on the "Modify this OID" hyperlink at the top-right
of the web page that describes the OID or enter the OID in the following
box:
Your proposed modifications will have to be validated by the registrant
of the OID being modified (if known), the registrant
of the parent OID (if known) and the OID repository administrator
(who will all be automatically informed by e-mail) before they get
published.
If an OID is misplaced in the OID tree and should be moved elsewhere
in the tree, please use the "Comments" box at the bottom
of the "Suggest a modification" web page to be displayed
to explain where (and why) the OID should be moved.
You can also mention in the "Comments" box that an OID is
a leaf in the OID tree (that is, child OIDs cannot
be allocated), .
- How to delete an OID (or move it elsewhere in
the OID tree)?
According to Recommendation
ITU-T X.660 | ISO 9834-1, an OID shall not be deleted once it
has been allocated by a Registration Authority. However there be the
case that an OID is decribed in this OID repository but was never
officially allocated by the Registration Authority for the parent
OID (or is misplaced in the OID tree). In this case the OID has to
be deleted from the OID repository (or moved elsewhere). To request
the deletion (or to propose to move it elsewhere) please click on
the "Modify this OID" hyperlink at the top-right of the
web page that describes the OID or enter the OID in the following
box:
Use the "Comments" box at the bottom of the web page to
be displayed to explain why the OID should be deleted (or moved elsewhere).
Your suggestion will have to be validated by the registrant of the
OID (if known), the registrant of the parent OID (if known) and the
OID repository administrator (who will all be automatically informed
by e-mail) before they get published.
- How does the OID repository provided on this
website compare with Harald Alvestrand's repository?
We get Harald's agreement to dump his repository and merge the data
into our repository. This was done in June 2003 and our OID repository
now encompasses Harald's
registry.
- How to reference an OID description
in this repository?
The shortest and easiest means is to append the OID (whether it is
in ASN.1 notation, dot notation or URN
notation) to the http://oid-info.com/get/
URL, e.g.:
- How many OIDs are currently described in this
repository?
There are more than 644,000 OID descriptions stored in our repository
(see exact number).
The repository is well alive and updated as often as necessary; statistics
are available about the number of OIDs added to the repository (or
updated) over the past 12 months. A (non-exhaustive) list of standards
(and other documents that define OIDs) which have been captured in
our repository is available.
- How to get an OID assigned?
The original intention of the Recommendation
ITU-T X.660 | ISO/IEC 9834 series was that anyone should be able
to get an OID if they needed one. There are registrars from which
it is easy and quite cheap (sometimes even free!) to have an OID assigned,
such as:
- What
decision needs be taken if a country wants a national Registration
Authority for OIDs?
Country arcs are the subsequent arcs of {iso(1)
member-body(2)} and {joint-iso-itu-t(2)
country(16)}. The values assigned to country arcs are the
numeric-3
codes of ISO 3166 (without leading zeros). The former was
deprecated in favour of the latter, thus countries which have never
been operating a national Registration Authority (RA) for OIDs are
encouraged to request an arc under {joint-iso-itu-t(2)
country(16)}. Countries are discouraged to request an arc
under both {iso(1) member-body(2)}
and {joint-iso-itu-t(2) country(16)}.
Recommendation ITU-T
X.660 | ISO/IEC 9834-1, clause A.4.5, specifies that the ISO
National Body of the country and the administration
representing the country in the ITU shall agree together (as a
national decision) on the organization that will be the RA for their
country arc. In the case of a country arc under {iso(1)
member-body(2)} the decision is only taken by the ISO
National Body of the country. For more detailed information, see
"Operation of a country Registration
Authority".
One way to know if your country is already operating an RA for OIDs
is too check the known
country RAs.
- Are there guidelines or standards regarding
subsequent arcs of a country arc?
Country arcs are the subsequent arcs of {iso(1)
member-body(2)} and {joint-iso-itu-t(2)
country(16)}.
The basic standard is of course Recommendation
ITU-T X.660 | ISO/IEC 9834-1. It might be worth having a look
at Recommendation
ITU-T X.670 "Procedures for registration agents operating on
behalf of organizations to register organization names subordinate
to country names". There is no guidelines besides the fact that
any registration authority needs to keep records according to the
aforementioned standards.
A good idea is probably to look at how
other countries have organized subsequent arcs beneath their country
arc.
- What is the Internet OID?
The Internet OID is {iso(1) identified-organization(3)
dod(6) internet(1)} or equivalently in dot notation 1.3.6.1.
- Where does the dot notation for OIDs come from?
(from Harald Alvestrand's website)
The dot notation is an IETF invention. The ASN.1 group thought it
better to have a notation using spaces and braces, with optional text
labels, so that 1.3.6.1 would become something like {iso(1)
identified-organization(3) dod(6) internet(1)} or {1 3 6
1} or variants thereof.
The IETF folks thought this was somewhat inconvenient, and decided
to use a space-free notation. This is, among other things, spelled
out in IETF RFC 1778,
section 2.15, but was in use long before that time. IETF RFC
2252, section 4.1, eliminates the "ds.4.10" form.
- Why are top-level arcs restricted to three arcs
numbered 0 to 2, and why are arcs beneath top-level
arcs 0 and 1 restricted to fourty arcs numbered
0 to 39?
This enables optimized binary encodings in which all arcs beneath
top-level arcs 0 and 1, and arcs 0 to 47
beneath top-level arc 2 are encoded on a single octet (see
Rec. ITU-T X.690 |
ISO/IEC 8825-1, clause 8.19). Arcs greater to 47 benath
top-level arc 2 are hence encoded on more than one octet.
- What do we call a registration tree (or object
identifier tree)?
In an open and international world such as the one of telecommunications
and information technologies, you often need to be able to reference
an "object" (see question 1) in a unique and universal
way. The ASN.1 standard defines an object as being "a well-defined
piece of information, definition or specification which requires a
name in order to identify its use in an instance of communication".
In general, an object is a class of information (for example, a file
format), rather than an instance of such a class (for example, an
individual file). It is thus the class of information (defined by
some referenceable specification), rather than the piece of information
itself, that is assigned a place in the tree.
The naming structure that has been chosen is a tree structure that
allows to name objects in a local or international context, without
beeing limited either by the registration authority, nor by the number
of objects they can register.
- What is the ASN.1 notation of an OID?
Each OID arc is associated with a mandatory number (used for data
transfers) and an optional, recommended, identifier (for legibility).
This is called the NameAndNumberForm in Rec. ITU-T X.680 | ISO/IEC
8824-1, clause 32.
An "identifier" begins with a lower-case letter and is followed by
letters, digits and hyphens. In some cases,
the identifier has been standardized and can be used alone (without
the associated number) in the ASN.1 notation; this is called the NameForm
in Rec. ITU-T X.680 | ISO/IEC 8824-1, clause 32.
The number can only be used alone; this is called the NumberForm in
Rec. ITU-T X.680 | ISO/IEC 8824-1, clause 32.
An object identifier is semantically an ordered list of object identifier
components (NameAndNumberForm, NumberForm or NameForm). Starting with
the root of the object identifier tree, each object identifier component
identifies an arc in the object identifier tree. The last object identifier
component identifies an arc leading to a vertex to which an object
has been assigned. It is this object which is identified by the object
identifier.
Example: {joint-iso-itu-t(2)
ds(5) attributeType(4) distinguishedName(49)}
(See also question 14 for the dot notation and question
28 about the OID-IRI notation.)
- How is the entire registration
tree managed?
The management of the entire registration tree is accomplished by
a process of delegation of authority. In this process the registration
authority responsible for a given arc in the registration tree may
partition that naming-domain. In doing so, it may or may not delegate
the registration responsibility for the naming-domain formed by each
partition to a subordinate Registration Authority. The naming of a
partition does not necessarily imply authority to register objects
under that partition. This delegation of registration responsibility
can be applied repeatedly with a subordinate registration authority
partitioning further the naming domain for which it is responsible
and delegating responsibility for those partitions to registration
authorities subordinate to it.
The registration authority responsible for a given naming-domain must
assign a name to the partition of that naming-domain that a given
sub-authority will manage. The name assigned shall be globally unambiguous,
and shall be concatenated as a prefix to all names assigned by that
sub-authority. The repeated application of this process through a
hierarchy of registration agents ensures the generation of unambiguous
names.
An organization, a standard or an automated facility can be the registration
authority for more than one partition of a naming-domain (see also
questions 11 and 12 for how country arcs are managed).
- Which features are offered
by this repository?
The description page for each OID
offers the ability to:
- have a synthetic graphical
view of the tree (click on the
and icons to
fold and unfold arcs);
- display the description of another OID (the "Go" button);
- use the "remote control" to display the description
of:
- the father OID,
- the previous or next brother OID,
- the very first or very last brother OID, or
- the first child OID;
- submit a description of a child OID under the current OID (see
also question 20): After putting down
some information (description of the OID, its registrant...),
the registrant of the OID (if known), the registrant of the parent
OID (if known) and the OID repository administrator will be automatically
asked by email to review and validate your submission. Note that
the description page of the newly created OID will only be available
after validation;
- submit a description of a brother OID at the same level as the
current OID (see also question 20);
- propose modifications of the description of the current OID:
these modifications will have to be validated by the registrant
of the OID (if known), the registrant of the parent OID (if known)
and the OID repository administrator (who will all be automatically
informed by e-mail) before they get published;
- do a quick search of the entire
OID repository by searching for a particular string in all attributes;
- do an advanced search of the entire
OID repository by searching for a particular value for each description
attribute or even by using regular expressions.
Other features are available from the main page of
the OID repository:
- display the number
of OIDs in the repository as well as statistics about how
many OID descriptions were added or modified over the past 12
months;
- add the description of a given OID (see also question
20);
- submit many OIDs to the database by
describing them in an XML file.
- What are the syntax
rules to enter information about OIDs through the web interface?
When adding information about an OID into the OID repository, non-ASCII
characters such as accentuated letters are allowed in most fields
("Description", "Information", registrant "First
name", "Last name" and "Address"). The software
will replace them by their equivalent HTML
code.
The following HTML tags are allowed in the "Description",
"Information" and "Address" fields: <a>,
<b>, <br/>, <center>,
<font>, <hr/>, <i>, <img>,
<li>, <sub>, <sup>, <tt>,
<ol> and <ul>. Use of <br>
or <br/> is not mandatory to break lines because the
software will replace by <br/> any newline character
that appears in these fields.
- Which information is
necessary to apply for an OID?
According to clause 8.2 f of Recommendation
ITU-T X.660 | ISO/IEC 9834-1, the registration record for an OID
shall include at least:
a) the name assigned to the object;
b) the name and contact information of the organization that proposed
the entry;
c) the dates of submission/registration;
d) the definition of the object (where the registration authority
performs a technical role to check that the objet can be registered
under its node).
- Is there
a particular OID that can be used for documenting examples of object
identifiers?
{joint-iso-itu-t(2) example(999)} (or 2.999)
can be used by anyone, without any permission, for the purpose of
documenting examples of object identifiers (in the same way as "example.com"
is defined in IETF
RFC 2606 as an example for web sites).
- What
is the difference between the first and current Registration Authorities
that appear in the description of some OIDs? What is their duty?
A Registration Authority (RA) is responsible for allocating
child arcs to the OID for which it manages. It ensures that an integer
is used once among the subsequent arcs (child OIDs). As much as possible,
it avoids the same identifier (beginning with a lowercase letter)
being used for multiple sub-arcs. It also keeps a record of information
(name of a contact person, postal address, telephone and fax numbers,
email address, etc.) about the RA for each child OID and delegates
its duty to each 'child' RA. Such information can be stored in the
OID repository but it is important to understand that an OID first
need to be officially allocated by an RA before it can be described
on this website which is not an official RA, but a repository
of information about existing OIDs.
The first Registration Authority of an OID is the very first
person or company to whom the OID was allocated by the RA of the superior
OID. According to the Recommendation
ITU-T X.660 | ISO/IEC 9834-1 standard, the first RA can't be changed
(if the responsibility is transfered to someone else, the information
is recorded in the "Current Registration Authority" section,
without changing the "First Registration Authority" section).
By default, if the OID has recently been allocated, the Current RA
is the First RA. So, if you are entering information
in the OID repository, please fill only the "First Registration
Authority" section, and don't copy the same information in the
"Current Registration Authority" section).
When someone or an organization takes over the duty from the First
RA, the relevant information is indicated in the "Current Registration
Authority" section without changing the "First Registration
Authority" section.
- What constraints are imposed
to OIDs used in SNMP MIBs (Management Information Bases)?
The constraints are gathered in sections 4.6.5, 4.6.6, and Appendix
D of IETF RFC 4181
that was published in September 2005. That RFC makes references to
IETF RFC 2578,
sections 3.5, 3.6, 5.6, 7.10, and IETF RFC
3416, section 4.1. One example of a MIB module whose OID assignments
follow the recommended scheme is the POWER-ETHERNET-MIB defined
in IETF RFC 3621.
MIBs use a notation like ".2.999" where the leading dot shows that
this OID is absolute while "2.999" might be considered as a relative
OID by some tools which would then add a root OID in front if it.
- Is there a way to look
up an OID in the OID repository from my web browser or email tool?
- If you're using
Mozilla Firefox, an
"OID
resolver" add-on displays information about an OID when a
URN notation
(e.g., urn:oid:x.y.z) is entered in the address bar at the
top.
- If you're using
Mozilla Firefox or
Mozilla SeaMonkey
(formerly known as Mozilla Application Suite) or
Internet
Explorer 7, an OpenSearch
Plugin (a.k.a. search engine) allows to display information about
an OID when an ASN.1, dot, URN
or OID-IRI notation is entered in the search bar
at the top-right.
- If you're using Mozilla
Thunderbird,
Mozilla Firefox
or
Mozilla SeaMonkey
(formerly known as Mozilla Application Suite), the DictionarySearch
add-on is easy to configure so that you can display information
about an OID by right-clicking on its selection:
- install the DictionarySearch extension corresponding to your
tool from http://dictionarysearch.mozdev.org;
- in the "Tools" menu of your tool, select the "Extensions"
item;
- highlight the line for DictionarySearch, then click on the "Options"
button;
- add a new Dictionary with the following information (this will
display the description of the selected OIDin dot notation; it
doesn't work well for a selected OID in ASN.1 notation because
the closing parentheses are removed for whatever reason):
Text: Search for OID "$"
Access key: O
URL: http://oid-info.com/cgi-bin/display?oid=$&action=display
- This other new "Dictionary" may also be useful (it
will display a tree for the selected OID in dot notation):
Text: Display tree for OID "$"
Access key: T
URL: http://oid-info.com/cgi-bin/display?oid=$&action=tree
- If you're using
Mozilla Firefox, the
"URN
Support" add-on from SHIMODA
Hiroshi redirects a URN
of the form urn:oid:x.y.z to the description of this OID in this OID
repository. Note: This add-on is not compatible with the "OID
resolver" add-on mentioned in the first bullet above.
- See also question 8.
- What is a leaf OID?
This is not a standardized concept but in case an OID is a leaf in
the OID tree, no child OIDs can be allocated under that OID. The 'leaf'
status can be stored in the OID repository so that the system doesn't
accept the creation of child OIDs. The 'leaf' status is also mentioned
on the web page that describes an OID (see example).
To report that an OID is a leaf please suggest a
modification for this OID and use the "Comments" box
at the bottom of the "Suggest a modification" web page.
- What is a orphan OID?
This is not a standardized concept but this term is used to describe
an OID that is described in the OID repository, but some of the ascending
(parent) OIDs are not described in the OID repository. This does not
mean that these unknown ascending OIDs do not exist (actually they
do exist because an OID can only be allocated by the Registration
Authority of its parent OID). However the user who submitted the description
of this OID has no knowledge of how to describe these ascending OIDs.
This is useful in cases such as:
- you have found the description of an OID somewhere on the web or
in a document, but you don't know how to describe all arcs along the
path;
- you have a bunch of OIDs to submit to the OID repository, so you
can submit them in any order because there is no obligation to submit
the father OID first.
Orphan OIDs are not visible when one walks
down the OID tree. However, their description is displayed when
one asks for the description of a particular OID. Moreover, they will
automatically be visible as soon as a description of the missing ascending
OIDs is submitted to the OID repository.
- What is an OID-IRI (Internationalized
Resource Identifier)?
Historically, OIDs could only be denoted in dot notation
(e.g., 2.27) or in ASN.1 notation
(e.g., {joint-iso-itu-t(2) tag-based(27)}) where only
ASCII identifiers are allowed. The need was identified for a human-friendly
notation which would not be limited to latin alphabets and would encompass
the diversity of Unicode alphabets.
An OID-IRI (a.k.a. international OID) is a string of slash-separated
Unicode labels from the root of the OID tree, which unambiguously
identifies a node in the OID tree (e.g., "/Joint-ISO-ITU-T/Example").
A Unicode label is a case-sensitive string of Unicode characters (except
the SPACE character). Just as an OID node can have multiple
identifiers in ASN.1 notation, it can have multiple Unicode labels
(this allows backwards-compatibility when a company changes its name,
for example). Each OID node has a default Unicode label which is its
number (e.g., "/2/999").
A long arc is a particular kind of Unicode label which identifies
an OID that is not immediately beneath the root of the OID tree, e.g.,
OID {joint-iso-itu-t(2) example(999)} has a long arc named
"Example" which allows to build the OID-IRI "/Example"
which is shorter than the OID-IRI "/Joint-ISO-ITU-T/Example".
Long arcs are only allowed under the joint-iso-itu-t(2) top-level
arc (see the register
of long arcs.
The ASN.1 standard
specifies an OID-IRI type for exchanging OID-IRI values between
machines.
- What are the duties of a Registration Authority?
Guidance is given in sections 8.2 (Operation), 9 (registration procedures)
and 11 (recommended fee structure) of Recommendation
ITU-T X.660 | ISO/IEC 9834-1.
- Are there size
limitations for OID encoding?
The OID standards have no limit whatsoever
about the depth of an OID in the OID tree (i.e., number of arcs) and
the size of the integer associated to each OID arc. However, some
tools may have size limitations (or bugs):
- Windows CryptoAPI Shell Extension (tested with Windows XP and Windows
7) cannot handle UUIDs used as OIDs: The maximum
useable OID value in Windows is 264-1 (e.g., 2.999.18446744073709551615).
Windows will show whitespace when any higher value occurs.
- Mozilla software cannot handle UUIDs used as
OIDs: The maximum useable OID value in Mozilla software is 232-1
(e.g., 2.999.4294967295). The program will show "Unknown"
when an arc contains a higher value (e.g., {2 999 Unknown 0}).
- OpenSSL (0.9.8o, 1 Jun 2010) can handle UUIDs
used as OIDs.
- Mac OS X cannot handle OIDs over 2.47 (it wrongly decodes OIDs which
need more than one octet in the first two arcs).
- Bouncy Castle Crypto APIs
can handle UUIDs used as OIDs.
More details can be found in Daniel
Marschall's study about OID encoding and size limitations. Daniel's
DER
encoder can also help you in your testing.
- Are there binary encoders/decoders for OIDs?
See for example (non-exhaustive list):
- OSS Nokalva's online ASN.1
playground encodes/decodes OIDs in any encoding rule (BER, DER,
PER, UPER, XER) with the following schema:
OID-Module DEFINITIONS ::= BEGIN
OID ::= OBJECT IDENTIFIER
END
The OID is provided in ASN.1 notation in the "Data:
Encode" box as follows:
oid OID ::= {2 999}
- Daniel Marschall's online DER
encoder/decoder.
- The Legion of the Bouncy Castle's
API for Java and C#;
- Wireshark's subtool for ASN.1;
- Etc.
- Does this web site use
cookies?
Only those users who have submitted information on OIDs (creation
of a new OID or proposed modifications to an existing OID) have a
unique cookie placed on their machine with their first name, last
name and email address, so that the "submitter" section
is automatically filled for them the next time they submit information.
|