rfc-5178

Generic Security Service Application Program Interface (GSS-API) Internationalization and Domain-Based Service Names and Name Type

N. Williams, A. Melnikov
date2008-05 streamIETF areasec wgkitten statusPROPOSED STANDARD pages9 canonicalhttps://www.rfc-editor.org/rfc/rfc5178 doi10.17487/RFC5178
This document describes domain-name-based service principal names and the corresponding name type for the Generic Security Service Application Programming Interface (GSS-API). Internationalization of the GSS-API is also covered. Domain-based service names are similar to host-based service names, but using a domain name (not necessarily an Internet domain name) in addition to a hostname. The primary purpose of domain-based names is to provide a measure of protection to applications that utilize insecure service discovery protocols. This is achieved by providing a way to name clustered services after the "domain" which they service, thereby allowing their clients to authorize the service's servers based on authentication of their service names. [STANDARDS-TRACK]

Extracted elements (16)

design-rationale §1

Because domain and hostname components use DNS names, internationalization support (ACE/IDNA encoding) must be provided in the GSS-API interfaces to handle non-ASCII domain names consistently.

security, dns

design-rationale §1

Domain-based names were introduced to allow GSS-API clients to authorize servers discovered via insecure methods (e.g., DNS SRV records without DNSSEC) without needing to secure the discovery method itself or add an extra authorization protocol. A server either has valid credentials for the domain-based name or it does not.

security, dns

interoperability-note §6.2

LDAP clients may require additional configuration at deployment time to enable or disable domain-based naming, because existing clients using host-based naming for SRV-discovered servers would break interoperability if switched to domain-based naming when servers have not been updated.

security, ldap

normative-requirement §5.2 MUST NOT

GSS_Display_name_utf8() MUST NOT output ACE-encoded internationalized domain names; it must output UTF-8 strings via its name_string output argument.

security, dns

normative-requirement §5.2 MUST

Implementations of GSS_Display_name() MUST only output US-ASCII or ACE-encoded internationalized domain names in the hostname and domain name slots of domain-based names.

security, dns

normative-requirement §5.1 SHOULD

Support for non-ASCII internationalized domain names SHOULD be provided through a new GSS_Import_name_utf8() function that MUST accept internationalized domain names both as UTF-8 strings and as ACE-encoded strings.

security, dns

normative-requirement §7 MUST

When domain-based names cannot be negotiated and fallback to host-based names is required, initiators MUST also verify that the acceptor's host-based name is authorized to provide the given service for the intended domain.

security

normative-requirement §5.1 MUST

When the input_name_type parameter is the GSS_C_NT_DOMAINBASED_SERVICE OID, GSS_Import_name() implementations and GSS-API mechanisms MUST accept ACE-encoded internationalized domain names in the hostname and domain name slots.

security, dns

protocol-element §4

A domain-based name consists of three required elements: a service name, a domain name, and a hostname. The syntax is 'service@domain@hostname' expressed in ABNF, where domain and hostname are DNS-style names.

security, dns

protocol-element §3.2

A new GSS-API name-type is created with the symbolic name GSS_C_NT_DOMAINBASED_SERVICE and OID {iso(1) org(3) dod(6) internet(1) security(5) nametypes(6) gss-domain-based(5)}.

security, registry

protocol-element §5.2

GSS_Display_name_utf8() is a new function that operates like GSS_Display_name() but outputs UTF-8 strings (not ACE-encoded) for internationalized domain names in domain-based names.

security

protocol-element §5.1

GSS_Import_name_utf8() is a new function that operates like GSS_Import_name() but accepts internationalized domain names as UTF-8 strings or ACE-encoded strings, enabling non-ASCII domain support in GSS-API.

security

registry §3.1

IANA recorded a new name-type OID in the 'SMI Security for Name System Designators Codes (nametypes)' registry: value 5, 'gss-domain-based-services', referencing RFC 5178.

registry, security

security-consideration §7

The mere existence of a domain-based service name conveys meaningful information usable in authorization decisions; administrators of distributed authentication services should be aware of the significance of service names for which they create acceptor credentials.

security

security-consideration §7

Use of GSS-API domain-based names may not be negotiable by some GSS-API mechanisms, and some acceptors may not support domain-based names; in such cases, initiators must fall back to host-based names and additionally verify the acceptor's authorization for the domain.

security

wire-format §4

The domain-based name string syntax is defined as: domain-based-name = service "@" domain "@" hostname, where hostname = domain = sub-domain 1*(".", sub-domain), and sub-domain = Let-dig [Ldh-str].

security, dns