|
|
Installing and Administering Internet Services: HP 9000 Networking > Chapter 11 Secure Internet ServicesOverview of the Secure Environment and the Kerberos V5 Protocol |
|
This section gives an overview of the secure environment in which the Secure Internet Services operate, including a simplified overview of the Kerberos V5 authentication protocol and related Kerberos concepts. Kerberos, originally developed by MIT, refers to an authentication protocol for open network computing environments. Kerberos V5 is the Kerberos version applicable to the Secure Internet Services. The Kerberos V5 protocol is specified in RFC 1510: ''The Kerberos Network Authentication Service (V5)". In this chapter ''non-HP Kerberos" refers to Kerberos implementations available directly from MIT, or to commercialized versions of Kerberos based on MIT source code. Figure 11-1 “The Secure Environment and the Kerberos V5 Protocol” shows the components of the secure environment in which the Secure Internet Services and the Kerberos V5 protocol operate. Each component and arrows 1-6 are explained after the figure. As part of the Kerberos V5 protocol, security clients authenticate themselves (verify their identity) to a trusted host. This trusted host is called the security server (A in Figure 11-1 “The Secure Environment and the Kerberos V5 Protocol”). We strongly recommend that the system where the security server is running be physically secure (for example, located in a locked room). The security server is also referred to as the Key Distribution Center (KDC). The KDC provides Kerberos authentication services to security clients. Throughout the rest of this chapter the term KDC will be used to refer to a generic security server. Hewlett-Packard currently provides two products that fulfill the role of the KDC: the HP DCE Security Service and the HP Praesidium/Security Service (P/SS). A security client is one of the following:
Security clients communicate with the security server for authentication. Note that none of the components of the Kerberos environment are restricted to run on a specific type of system. This means that security clients can run on the same node as the KDC, if you wish. For example, the security server (KDC), security client runtime (kinit), the application client (ftp), and application server (ftpd) could all be running on the same physical system. The following steps refer to the arrows in Figure 11-1 “The Secure Environment and the Kerberos V5 Protocol”.
To summarize,
Some of the terms and concepts you might find helpful in understanding the secure environment are briefly discussed in the paragraphs below. The following utilities must exist on all security clients (HP provides these utilities on HP clients):
A realm defines an administrative boundary, and has a unique name. It consists of the KDC and all the security clients (application servers and application clients) registered to that KDC. By convention, Kerberos uses uppercase realm names, which appear as suffixes in principal names ( david@MYREALM.COM). When using the HP DCE Security Service as a KDC, the term cell is used. A cell is roughly equivalent to a realm. An HP DCE cell name must be lowercase. It appears as a prefix and has a leading "/.../" in a principal name (/.../my_kdc_cell.com/david). A P/SS domain defines an administrative structure and is equivalent to a Kerberos realm and an HP DCE cell. Like an HP DCE cell, its name must be lowercase. It appears as a prefix and has a leading "/.../" in a principal name (/.../my_domain/david). Cross-realm authentication occurs when a client from one realm wishes to access a server from a different realm. Since each KDC administers tickets for a specific realm, cross-realm operation requires using inter-realm keys with the KDC. Cross-realm authentication is also referred to as inter-realm authentication. Currently it is not possible to set up heterogeneous cross-realm authentication between an HP DCE or P/SS KDC and a Kerberos V5 KDC. Cross-realm authentication is available between realms hosted by KDCs of the same type. In other words, for cross-realm configurations with the Secure Internet Services, all the KDCs must be HP DCE Security Services, all the KDCs must be HP P/SSs, or all the KDCs must be Kerberos V5 KDCs. Principals are uniquely named network entities, including users and services. Principal names contain the cell to which they belong, and each principal has a unique key associated with it. All principals that participate in Kerberos V5 authentication and authorization are required to be included in the KDC's database. The KDC database does not distinguish between types of principal names. However, it is useful to describe two kinds of principal names: user principal names and service principal names. A user principal name is associated with a specific user of the Secure Internet Services. User principal names consist of a user ID and a realm, cell, or domain name. All users must have one or more user principal names in the KDC's database. Some examples of user principal names are the following:
A service principal name is a principal name that authorizes an application server to use a particular service. For ftp, the service principal name is ftp (as a first choice) or host (as an acceptable second choice. Note that the actual name is host; it is not meant to be replaced by a host name.) For rcp, remsh, rlogin, and telnet, the service principal name is host. Some examples of service principal names for telnetd are the following:
Authorization is the process in which users verify that they can access a remote account on a specified server. Authorization depends on successful user principal validation through the Kerberos V5 authentication protocol described earlier in this section. For authorization to succeed, a mapping must exist at the application server authorizing the user principal to operate as the login user. The term "login user" refers to the user whose account is being accessed on the remote host. This is not necessarily the same user who originally issued the kinit, dce_login, or dess_login command. Assume david has already issued the kinit command. In this example, david enters the following:
In this example, susan is the login user. Both of the following requirements must be met for authorization to succeed:
When a user obtains service ticket credentials, they are for a remote system. However, the user might want to use a secure service to access a remote system and then run a secure service from that remote system to a second remote system. This would require possession of a valid TGT for the first remote system. However, running kinit on the first remote system to obtain a TGT would cause the user's password to be transmitted in a readable form over the network. To avoid this problem, Kerberos provides the option to create TGTs with special attributes allowing them to be forwarded to remote systems within the realm. The Secure Internet Services clients which offer TGT forwarding options (-f, -F) are remsh, rlogin, and telnet. However, before these options can be recognized, two prerequisite flags must be enabled. First, the KDC's forwardable ticket option must be enabled. For Kerberos V5 KDCs, use the kadmin command. For the HP DCE Security Service and the HP P/SS, use the dcecp command to set the forwardabletkt account attribute. Second, kinit must be invoked with the forwardable flag set (-f). If the -f option is specified when kinit is run, the TGT for the local system can be forwarded to the remote system. Then clients do not need to re-authenticate themselves from the remote system to the KDC. HP DCE clients can use dce_login -f to enable forwarding. However, HP P/SS clients must use kinit -f to enable forwarding because the dess_login utility does not have an option for ticket attributes. Provided these two flags are enabled, the forwarding options of rlogin, remsh, and telnet can take effect. For the remsh, rlogin, or telnet client that invokes the -f option, the TGT is forwarded to only one remote system (one free hop). For the remsh, rlogin, or telnet client that invokes the -F option, it is possible to keep forwarding the TGT (potentially n free hops). Multiple free hops are possible because using the -F option leaves the forwardable attribute enabled in the forwarded TGT ticket, whereas using the -f option does not. So, the client can forward the TGT to an unlimited number of remote systems if the -F option is used every time. Once the -f option is used, the forwarding chain stops at the next node. If the Kerberos V5 credentials are forwarded to a DCE client, they will be promoted to DCE credentials. This will allow the user to run DCE applications on the remote host. The k5dcelogin utility, which is invoked by rlogind/remshd and telnetd on the remote host, converts the Kerberos V5 credentials to DCE credentials without prompting for a password. See the man page for k5dcelogin(8sec) for syntax information. The Secure Internet Services mechanism for rcp/remshd, remsh/remshd, rlogin/rlogind, and telnet/telnetd uses the Kerberos V5 Release 1.0 API. The Secure Internet Services mechanism for ftp/ftpd uses the GSS-API (Generic Security Service Application Program Interface) Version 1. The GSS-API separates application logic from a given security mechanism. For more information on GSS-API Version 1, refer to RFCs 1508, 1509, and 1964. Configurations consist of KDCs and client nodes. The figures below illustrate possible KDC/client configurations. The paragraphs following the figures describe the nodes in more detail and also discuss interoperability among the nodes. Figure 11-2 “Client Interoperability with HP DCE and P/SS Security Servers” illustrates which security clients can interoperate in configurations using HP DCE Security Services. Though not shown here, there might be multiple HP DCE Security Services in the configuration. Figure 11-3 “Client Interoperability with Non-HP Kerberos V5 KDCs” illustrates which security clients can interoperate in configurations using non-HP Kerberos V5 KDCs. Though not shown here, there might be multiple non-HP Kerberos V5 KDCs in the configuration.
The non-HP Kerberos client is a node running non-HP security client software. This includes non-HP versions of the Kerberos utilities kinit, klist, and kdestroy, and non-HP secure versions of internet services. Generally, configurations that contain non-HP security clients will interoperate securely with configurations that include the HP Secure Internet Services, provided all of the following things are true:
For information on the non-HP Kerberos client, refer to your provider's documentation. The non-HP Kerberos client is shown as node E in Figure 11-2 “Client Interoperability with HP DCE and P/SS Security Servers” and Figure 11-3 “Client Interoperability with Non-HP Kerberos V5 KDCs”. Within a given realm, all KDCs must be of the same type. In other words, for configurations that include the Secure Internet Services, KDCs must be all HP DCE Security Services, all HP P/SSs, or all non-HP Kerberos V5 KDCs (implementing RFC 1510). Multiple KDCs of the same type can exist. In these cases there is effectively one "master" KDC. The additional KDCs contain duplicate, read-only, database information from the master. This is done for availability purposes: if the master goes down, a "slave" (one of the KDCs with the duplicate information) takes over for the master. Currently it is not possible to set up heterogeneous cross-realm authentication between an HP DCE or P/SS KDC and a Kerberos V5 KDC. So, even in cross-realm configurations, all KDCs must be of the same type. In other words, they must be either all HP DCE Security Services, HP P/SSs, or all non-HP Kerberos V5 KDCs (implementing RFC 1510). For more specific interoperability information with non-HP Kerberos clients (node E in Figure 11-2 “Client Interoperability with HP DCE and P/SS Security Servers” and Figure 11-3 “Client Interoperability with Non-HP Kerberos V5 KDCs”), contact your HP support representative. |
|