ACP WGN05-WP24

ACP/WGN/SGN3 WP/3-4a

13/05/2005

AERONAUTICAL COMMUNICATIONS PANEL (ACP)

WorkinG group N (NETWORKING)

Montréal, 16th – 20th May 2005

Agenda Item 6: Ground-ground Applications

AMHS use of the X.500 Directory in Europe (version 0.1)

Prepared by Manuel Garcia with contributions of Jean-Marc Vacher and Robert Wilmott

Presented by Manuel García – Revision a produced by the SGN3/3 meeting

Summary

The paper recommends an approach for the specification of the ATN Directory in support of AMHS. This was primarily developed for use in the ICAO EUR Region, however it may be used on a global basis.

AMHS use of the X.500 Directory in EuropeACP/WGN/SGN· (Montreal, Canada)

Table of Contents

1.- INTRODUCTION.

2.- X.500 DIRECTORY.

2.1.INTRODUCTION.

2.2.DIRECTORY SCHEMA

2.2.1.NAME FORM.

2.2.2.DIT STRUCTURE RULES.

2.2.3.DIT CONTENT RULES.

2.2.4.OBJECT CLASSES.

2.2.5.ATTRIBUTE TYPES.

2.2.6.MATCHING RULES.

2.3.SUPPORT LEVEL

2.4.ENTRIES.

2.5.SERVICES.

2.5.1.PROTOCOLS.

2.5.2.APPLICATION CONTEXTS.

2.5.3.READ.

2.5.4.COMPARE.

2.5.5.LIST.

2.5.6.SEARCH.

2.5.7.ADD ENTRY.

2.5.8.REMOVE ENTRY.

2.5.9.MODIFY ENTRY.

2.5.10.MODIFY DN.

2.5.11.COMMON ARGUMENTS.

2.6.DISTRIBUTED OPERATION.

2.6.1.RELATIONSHIP OF DSAs TO THE DIT.

2.6.1.1.NAMING CONTEXTS.

2.6.1.2.RELATIONSHIP BETWEEN DSAs.

2.6.2.KNOWLEDGE.

2.6.3.KNOWLEDGE AND EFFICIENCY.

2.7.SECURITY.

2.7.1.USER AUTHENTICATION.

2.7.1.1.SIMPLE AUTHENTICATION.

2.7.1.2.STRONG AUTHENTICATION.

2.7.2.ACCESS CONTROL.

2.8.OPERATIONAL BINDINGS.

2.9.REPLICATION.

2.9.1.SHADOWING AND CACHING.

2.9.1.1.SHADOWED INFORMATION.

2.9.2.SHADOW OPERATIONAL SERVICES.

3.MHS USE OF THE DIRECTORY WITHIN THE ATN FRAMEWORK.

3.1.PUBLIC MHS OBJECT CLASSES AND ATTIBUTE TYPES.

3.2.DETAILED DESCRIPTION OF THE PUBLIC MHS OBJECT CLASSES, ATTIBUTE TYPES AND MATCHING RULES.

3.2.1.OBJECT CLASS: ‘mhs-user’:

3.2.2.OBJECT CLASS: ‘mhs-distribution-list’.

3.2.3.OBJECT CLASS: ‘mhs-user-agent’.

3.2.4.OBJECT CLASS: ‘mhs-message-transfer-agent’.

3.2.5.OBJECT CLASS: ‘mhs-message-store’.

3.2.6.ADDITIONAL MATCHING RULES.

3.3.ATSMHS EXTENDED SERVICE AND ISSUES CONCERNING X.500 DIRECTORY SERVICES.

3.3.1.SECURITY ISSUES.

3.3.1.1.PUBLIC KEY INFRASTRUCTURE

3.3.1.2.BACKWARD COMPATIBILITY

3.3.2.BUSINESS CLASS EXTENSIONS ISSUES.

3.3.3.RELATIONSHIP BETWEEN RNs AND DLs.

3.3.4.STORAGE OF THE AF-ADDRESS OF THE USER.

3.3.4.1.AF -> XF/CAAS address conversion.

3.3.4.2.XF/CAAS -> AF address conversion.

3.3.5.STORAGE OF CIDIN/ATN GATEWAY INFORMATION.

3.3.5.1.Ax -> XF/CAAS address conversion.

3.3.5.2.XF/CAAS -> Ax address conversion.

3.3.6.DETERMINATION OF THE DIRECT OR INDIRECT USER ACCESS TO THE AMHS.

3.3.7.CONVERSION OF XF/CAAS ADDRESSES AT AN AFTN/AMHS GATEWAY.

3.4.PRIVATE AMHS OBJECT CLASSES AND ATTRIBUTE TYPES.

3.4.1.OBJECT CLASS: ‘atn-AmhsUser’:

3.4.2.OBJECT CLASS: ‘atn-AmhsDistributionList’:

3.4.3.OBJECT CLASS: ‘Atn-AmhsUserAgent’:

3.4.4.OBJECT CLASS: ‘atn-AmhsGateway’:

3.4.5.OBJECT CLASS: ‘atnAmhsMD’:

3.4.6.OBJECT CLASS: ‘atn-Organization’:

3.5.FUNCTIONS PROVIDED BY ATN DIRECTORY SERVICES IN SUPPORT OF AMHS.

3.5.1.List of functions

3.5.2.Applicability of functions to AMHS systems

3.5.3.Functional Groups definition

3.5.4.Support requirements for schema elements in relation with FUNCTIONS.

3.5.4.1.Object class requirements

3.5.4.2.Attribute type requirements

3.6.ATN NAME FORM.

3.6.1.Sub-volume VII ATN Directory Information Tree.

3.6.2.Proposed ATN Directory Information Tree for AMHS purposes.

This proposed DIT may generate a need to modify SV VII accordingly.4.- PROTOCOL IMPLEMENTATION CONFORMANCE STATEMENT (PICS).

Supported Object Classes

Standard Object Classes (see X.582, Annex A).

Other Supported Object Classes

Supported Attribute Types

Standard Attribute Types (see X.582, Annex A).

Other Supported Attribute Types

Supported Matching Rules.

Standard Matching Rules (see X.582, Annex A).

Other Supported Matching Rules.

5.- FUTURE WORK.

6.- RECOMMENDATION.

Annex A (X.402 Recommendation)

A.1Object Classes.

A.2Attributes

A.3Attributes Syntax.

Annex B (ASN.1 Notation of ATN Object Class Definitions

Annex C (ASN.1 Notation of ATN Specific Attirbute Types)

References:

[1]

1.- INTRODUCTION.

This document has been produced to facilitate the interconnection of information processing systems to provide directory services. The information held by the Directory, collectively known as the Directory Information Base (DIB), is typically used to facilitate communication between, with or about objects such as application entities, people, terminals, distribution lists and, in our case, to facilitate the addressing within the AMHS network.

This paper is a contribution to the identification of the AMHS use of the X.500 Directory in Europe.

2.- X.500 DIRECTORY.

2.1.INTRODUCTION.

The information repository of the X.500 (ATN) Directory is a distributed database, capable of storing information about people and objects in various nodes or servers distributed across a network. It is these servers, acting in concert, which provide the potentially global access to information made possible by X.500 technology.

Distributing information in this manner has various advantages over the conventional method of centralising information storage, for example:

  • The information is kept “close” to those people or processes which are most likely to make heaviest use of it or to be responsible for keeping it up to date - this is likely to reduce access time and network costs, and increase the likelihood of the accuracy of the stored information;
  • Since the information is distributed across several (possibly hundreds, thousands, or even more) servers, the impact of a given server becoming inactive, for whatever reason, is only to make unavailable the information for which that server is responsible, rather than bringing down the entire database, as would be the case if a centralised server were to go down;
  • The Directory has the capacity to grow indefinitely in size and storage capacity through the simple addition of new nodes. Such growth might be achievable but would be less practical with a centralised system;
  • The Directory offers the opportunity to unify information resources across the globe, as opposed to the insularization, which tends to occur when organisations rely on proprietary, centralised databases.

The Directory user (person or process) accesses the Directory via a client process, known as a Directory User Agent, or DUA. The DUA interfaces with the Directory using a Standard protocol between itself and one of the Directory servers, termed Directory System Agents, or DSAs. Usually the DSA contacted would be the one closest, in terms of connection cost or organisational affiliation, to the DUA.

The DSAs making up the Directory also communicate via a Standard protocol, which embodies a set of operations that may be performed by the Directory (e.g. to retrieve information, to add information, etc). Each DSA knows how to contact a number of other DSAs (at least one). This is the mechanism through which a Directory request can be propagated through the system: if a particular DSA is unable to satisfy a request, the request is forwarded to another DSA which is more likely to have the necessary information, and so on.

2.2.DIRECTORY SCHEMA

The Directory Schema constitutes the framework within which Directory information is stored. It consists of a set of rules and definitions, which define the naming of entries, the content of attributes and entries, the structure of the Directory as whole and hierarchical relationships between entries.

The Schema comprises the following components (after [ISO 9594/2] Section 12.2):

Name Form definitions, which describe how Directory entries should be named;

DIT Structure Rules, which define hierarchical relationships between entries of different object classes;

DIT Content Rules definitions, which allow the inclusion in entries of attributes not indicated in the entries’ structural object classes;

Object Class definitions, which are used principally to distinguish between entries representing different types of object.

Attribute Type definitions, which holds information regarding a particular quality or characteristic of an object represented by a Directory entry.

Matching Rule definitions. Each attribute has associated with it a set of matching rules, which determine how values of the attribute may be matched against other values.

2.2.1.NAME FORM.

Directory names:

Each entry in the Directory is identified by at least one unique name, called the entry's Distinguished Name or DN. The DN is formed in the following fashion:

-The DIB is organised into a tree-shaped hierarchy, the Directory Information Tree (DIT), in which each entry has exactly one superior entry but may have many subordinate entries. This organisation is illustrated in figure 2.2.1.1:

Clearly, each superior entry may have many subordinates, so the entry may be one of many siblings at the same level in the tree.

-Each entry contains at least one attribute value, which is designated as the entry's name at that level, i.e. relative to all its siblings. This name, known as the entry's Relative Distinguished Name or RDN, must be unique among all the entry's siblings.

-The unique name of the entry, it's Distinguished Name or DN, is formed by the concatenation of the RDN of the entry with those of each of its superiors, from the top of the DIT on down to the entry.

2.2.2.DIT STRUCTURE RULES.

The placement of entries within a portion of the DIT is governed by rules set out by the responsible authority, known as DIT Structure Rules. Each entry in the Directory contains an attribute of type governingStructureRule, which holds the structure rule that governs the possible placement of the entry. The entry may only be placed in a portion of the DIT if the Directory schema holds a DIT structure rule that matches that held in the entry.

The DIT structure rule consists of 3 parts:

  1. A unique identifier;
  1. A name form identifier, which specifies the name form that entries governed by this structure rule will take;
  1. A list of superior structure rule identifiers, which denote where in the DIT the entry may be placed, i.e. which classes of entry it may be placed subordinate to.

2.2.3.DIT CONTENT RULES.

The content of an entry, in terms of the attributes it contains, is regulated primarily by the entry's structural and auxiliary object classes. However, additional contents may be specified by the definition of a DIT Content Rule associated with the entry's structural object class.

A DIT content rule specifies the following (after [ISO 9594/2], section 12.7.1):

The identifier of the structural object class to which it applies;

The identifiers of the auxiliary object classes permitted in entries governed by the rule (optional);

The identifiers of the mandatory attributes required for entries governed by the content rule, in addition to those mandated in the structural and auxiliary object classes (optional);

The identifiers of the optional attributes required for entries governed by the content rule, in addition to those named in the structural and auxiliary object classes (optional);

A list of identifiers of optional attributes from the entry's structural and auxiliary object classes that the content rule precludes from appearing in entries governed by the rule (optional).

Note that, unlike the characteristics of an object class, those of a DIT content rule are not inherited by any subclasses of the object class to which it applies.

DIT content rules are thus useful in the following ways:

They permit the modification of an object class at a particular level in the object class hierarchy, while avoiding the inclusion of the modifications into the object class chain;

They permit the exclusion of certain optional attributes from entries of a given object class without modifying the object class itself;

They allow the inclusion of individual attributes into entries, without reference to other object classes.

2.2.4.OBJECT CLASSES.

Directory object classes are used principally to distinguish between entries representing different types of object. Each Directory entry must belong to at least one object class, and contains an attribute, the value(s) of which indicate(s) the object class(es) to which the entry belongs. Following from this descriptive function, the entry's object class serves several specific functions within the Directory:

It governs the attributes the entry contains;

It governs the position the entry may take in the Directory structure;

It governs the administrative policy associated with the entry.

Object classes may be defined in international standards, by other standards or implementor bodies, by vendors, or by users (private object classes). The mechanism for object class definition is described in Section 12.3.3 of [ISO 9594/2].

Standard Object Classes are defined in X.521 and ISO/IEC 9594-7 (1995):

Item / Object class / Status
1 / top / m
2 / alias / m
3 / country / o
4 / locality / o
5 / organization / o
6 / organizationUnit / o
7 / person / o
8 / organizationalPerson / o
9 / organizationalRole / o
10 / groupOfname / o
11 / groupOfUniqueNames / o
12 / residentialPerson / o
13 / applicationProcess / o
14 / aplicationEntity / o
15 / dSA / m
16 / device / o
17 / strongAuthenticationUser / o
18 / certificationAuthoriry / o

Other Object Classes are defined in X.402 (Annex A) and they will be deeplier explained in another section of this document.

Entry Attributes:

The object class of an entry dictates which attributes the entry may contain. In fact, it specifies a set of attributes the entry must contain, along with a further set that the entry may contain. No additional attributes are permitted.

Entry Position:

The object class identifier attribute of the entry is used by the Directory to ensure that the entry is not placed inappropriately within the Directory database. The structure of the Directory database and the placement of entries therein is defined by the DIT Structure Rules.

Administrative policy:

Various aspects of administrative policy may be associated only with entries of particular object classes. The Directory Administrative Model is described in Section 4 of [ISO 9594/2].

Object Class Inheritance:

Object classes may be created by declaring them to be subclasses of existing object classes. In this case, the new object class inherits all the attributes of an existing object class, its superclass, and has the opportunity to add further attributes.

Each entry in the Directory must contain an attribute indicating the object classes to which it belongs. This is because, by definition, each object class is a subclass of a special object class known simply as top, which indicates that all Object classes MUST CONTAIN such an attribute. This attribute holds the unique object class identifier for the object class to which the entry belongs, in addition to the corresponding identifiers for all the entry's superclasses. Thus, an entry belonging to a given class also belongs to all the superclasses of that class. This set of superclasses, from the entry up to top, is known as the object class' superclass chain.

One important effect of this object class inheritance is that if an information retrieval request is made based on the object class of the entry, all entries of that class and all its subclasses will be returned.

Types of Object Class:

Object classes may be subdivided into three types: abstract, structural, and auxiliary. So far, this description has been centred around structural object classes. The two other classes can be summarised as follows:

Abstract Object Class: An abstract object class is an object class which is defined purely for the purpose of serving as a superclass or template for other (structural) object classes. It is a way of conveniently collecting together a set of attributes which it is known will be common to a set of structural object classes, in order that these classes may be derived as subclasses of the abstract class rather than being defined from scratch. Note that an entry may not belong to an abstract object class.

Auxiliary Object Class: Each entry, while belonging to only a single structural object class, may belong to zero or more auxiliary object classes. Auxiliary object classes serve as a means to provide multiple inheritance to Directory entries, that is to say, to combine the attributes from two or more superclass chains into a single entry. This is useful in the case where a common group of attributes is desired in entries from various object class hierarchies.

2.2.5.ATTRIBUTE TYPES.

X.500 attributes are defined either in the standard (see [ISO 9594/6] for the standard attribute definitions), by various implementers bodies, by vendors or by the user (private attributes). The mechanism for attribute definition is given in Section 12.4.6 of [ISO 9594/2].

Standard Attribute Types are defined in X.520 and ISO/IEC 9594-7 (1995):

Item / Attribute Type / Status / Upper bound / Notes
1 / objectClass / m / p90
2 / aliasedEntryName / o
3 / knowledgeInformation / o
4 / name / o
5 / commonName / o / 64
6 / surname / o / 64
7 / givenName / o
8 / initials / o
9 / generationQualifier / o
10 / uniqueIdentifier / o
11 / dnQualifier / o
12 / serialNumber / o / 64
13 / countryName / o / size=2
14 / localityName / o / 128
15 / stateOrprovinceName / o / 128
16 / streetAddress / o / 128
17 / houseIdentifier / o
18 / organizationName / o / 64
19 / organizationUnitName / o / 64
20 / title / o / 64
21 / description / o / 1024
22 / searchGuide / o
23 / enhancedSearchguide / o
24 / businessCategory / o / 128
25 / postalAddress / o / 6(lines)x30(chs)
26 / postalCode / o / 40
27 / postOfficeBox / o / 40
28 / physicalDeliveryOfficeNa / o / 128
29 / telephoneNumber / o / 32
30 / telexNumber / o / 14, 4, 8
31 / teletexTerminalIdentifier / o / 24
32 / facsimileTelephoneNumber / o / 32
33 / X.121Address / o / 15
34 / internationalISDNNumber / o / 16
35 / registeredAddress / o / 6(lines)x30(chs)
36 / destinationIndicator / o / 128
37 / preferredDeliveryMethod / o
38 / presentationAddress / o
39 / supportedApplicationContext / o
40 / protocolInformation / o
41 / distinguishedName / o
42 / member / o
43 / uniqueMember / o
44 / owner / o
45 / roleOccupant / o
46 / seealso / o
47 / userPassword / o / 128
48 / userCertificate / o
49 / cACertificate / o
50 / authorityRevocationList / o
51 / certificateRevocationList / o
52 / crossCertificatePair / o

Other Attribute Types are defined in X.402 (Annex A) and they will be deeplier explained in another section of this document.

The Directory attribute holds information regarding a particular quality or characteristic of an object represented by a Directory entry, and has two principal components:

Attribute Type: Unique identifier, which has both a semantic and a syntactic function. The semantic function is to indicate what purpose the information contained in the attribute serves. The syntactic function is to indicate how the attribute value should be parsed in order to accurately retrieve the information it contains.

Attribute Value: where the attribute's information is held. As mentioned above, the attribute type determines the parsing and interpretation of the attribute value.

Figure 2.3.1 in the next section shows how attribute types and values are combined into a Directory entry.

Also associated with each attribute are a set of matching rules (see next section), an indication as to whether the attribute is to have a single or multiple values, and some administrative data.

Attribute Type Hierarchies:

When defining attributes in the Directory, it is possible, though not necessary, to create an attribute hierarchy, by defining groups of attributes of a general nature and then defining subtypes of these attributes to hold more refined or detailed information of a similar nature. These latter attribute types can, in turn, serve as supertypes for another level of attribute subtyping.