IETF-SSH archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: [David Leonard] draft-ietf-secsh-gsskeyex-09.txt comments
The handling of hostname canonicalization in GSSAPI is a thorny issue.
The short answer is that you need to get a canonical hostname from the
user or from secure DNS. Since you don't have secure DNS, you need it
from the user.
RFC 2743 and 2744 have somewhat outdated thinking on this point.
While it is not a GSS spec, the discussion of this issue in RFC 4120
represents more current thinking.
When appropriate data has been exchanged in advance, the application
may perform this determination syntactically based on the application
protocol specification, information provided by the user, and
configuration files. For example, the server principal name
(including realm) for a telnet server might be derived from the
user-specified host name (from the telnet command line), the "host/"
prefix specified in the application protocol specification, and a
mapping to a Kerberos realm derived syntactically from the domain
part of the specified hostname and information from the local
Kerberos realms database.
One can also rely on trusted third parties to make this
determination, but only when the data obtained from the third party
is suitably integrity-protected while resident on the third-party
Neuman, et al. Standards Track [Page 9]
RFC 4120 Kerberos V5 July 2005
server and when transmitted. Thus, for example, one should not rely
on an unprotected DNS record to map a host alias to the primary name
of a server, accepting the primary name as the party that one intends
to contact, since an attacker can modify the mapping and impersonate
the party.
Implementations of Kerberos and protocols based on Kerberos MUST NOT
use insecure DNS queries to canonicalize the hostname components of
the service principal names (i.e., they MUST NOT use insecure DNS
queries to map one name to another to determine the host part of the
principal name with which one is to communicate). In an environment
without secure name service, application authors MAY append a
statically configured domain name to unqualified hostnames before
passing the name to the security mechanisms, but they should do no
more than that. Secure name service facilities, if available, might
be trusted for hostname canonicalization, but such canonicalization
by the client SHOULD NOT be required by KDC implementations.
Implementation note: Many current implementations do some degree of
canonicalization of the provided service name, often using DNS even
though it creates security problems. However, there is no
consistency among implementations as to whether the service name is
case folded to lowercase or whether reverse resolution is used. To
maximize interoperability and security, applications SHOULD provide
security mechanisms with names that result from folding the user-
entered name to lowercase without performing any other modifications
or canonicalization.
Home |
Main Index |
Thread Index |
Old Index