To give Netscape comments on this guide or on any aspect of single sign-on, please send email to sso-feedback. This address is strictly for collecting feedback; you will not receive a personal response.
For information about getting technical help with any Netscape product, see Netscape Tech Support.
Introduction to Single Sign-On
When a user requests a resource from a server, the server collects the access-control lists (ACLs) associated with that resource and evaluates them. If the server's evaluation of the ACLs requires identification of the user, the server requests client authentication, in the form of either a name and password or a digital certificate presented according to the Secure Sockets Layer (SSL) protocol.
After the server has established the user's identity, optionally including user/group information stored in a Lightweight Directory Access Protocol (LDAP) directory, it continues its evaluation of the ACLs and authorizes or denies access to the requested information according to the user's access privileges.
Figure 1 illustrates the basic elements of the ACL evaluation process. Netscape's approach to single sign-on replaces client authentication based on passwords sent over the network with client authentication based on the Secure Sockets Layer (SSL) and certificates.
Figure 1 Single sign-on uses certificate-based authentication
The following sections introduce the use of single sign-on with Netscape products:
Figure 2 Using a password to authenticate a client to a server
As in Figure 2, in Figure 3 it is assumed that the user has already decided to trust the server and has requested a resource, and that the server has requested client authentication in the process of evaluating its access control lists (ACLs) for the requested resource.
Figure 3 Using a certificate to authenticate a client to a server
These are the steps shown in Figure 3:
Netscape Products That Support Single Sign-On
The single sign-on solution described in this guide works with the following Netscape products:
Planning a Single Sign-On Solution
The sections that follow summarize some of the tasks involved in planning a single sign-on solution:
A certificate binds a distinguished name (DN) to a public key. A DN is the string representation of an entity's name. For example, this might be a typical DN for an employee of Netscape Communications Corporation:
uid=doe,e=doe@netscape.com,cn=John Doe,o=Netscape Communications Corp.,c=US
The abbreviations before each equal sign have these meanings:
certmap.conf
to determine which parts of the DN to use to look up the user's entry in the LDAP directory. Deploying a single sign-on solution involves configuring certmap.conf
so that the server compares the user's certificate presented for authentication with the certificate listed in the user's entry.
It's very important to make sure that the DN used to identify the user in the user's certificate can be mapped to the user's unique entry in the LDAP directory. The directory doesn't need all the information in the DN to identify a user, but it needs enough to be able to identify the user uniquely. For example, the information the server extracts from the DN must include information, such as an email address or an employee ID number, that distinguishes two people with the same name.
Another consideration as you plan user attributes is the trade-off between information stored in the user's certificate and information stored in the LDAP directory. In general, keeping only the minimal static information required to identify a user in the certificate is a good way to ensure that the certificate can be as permanent as possible. Information that changes, such as employee status, department, or physical location, can be stored in the LDAP entry. This approach makes it possible to issue someone a single certificate that remains valid until its expiration date and doesn't need to be revoked or reissued, with attendant overhead, every time the person's status changes.
In some businesses, however, approaches that require short-term certificates for specific purposes may be preferable despite the additional certificate management overhead.
Integration Issues
It likely that much of the information you need to populate your LDAP directory already exists elsewhere in your organization, for example in databases maintained by HR or the payroll department. Before you settle on a tree structure, entry attribute, and other details of your LDAP directory, you should determine what potential sources of information already exist and which ones can be regarded as authoritative, for example for the purpose of creating user IDs. You may also be able to take advantage of this information when you create certificates using VGI scripts (see Using the Verification Gateway Interface). For example, a VGI script can use a user ID to populate a certificate with the user's legal name and other information from another source, such as an HR database.
You should make long-term plans for integrating sources of information into the LDAP directory, not only for the initial setup but also for keeping the information current. For information about integrating HR applications and other sources of information, go to the Directory Server area of Server Central.
You may also want to consider eventually linking in your company's telephone system, badging system, Unix and NT logins, and so on. To fully integrate single sign-on authentication with forms of access not directly controlled by Netscape servers, you can use solutions provided by third parties specifically for such purposes. For information about Netscape partners that provide single sign-on solutions, see Netscape Security Partners.
Establishing the CA Hierarchy
As an administrator, you control which users' certificates are trusted by what servers for single sign-on within your organization. You achieve this control by setting up lists of trusted CA certificates maintained by clients and servers. If you intend to issue your own certificates using the Certificate Server, you can also control the process of requesting and issuing certificates.
This section describes three aspects of setting up your CA lists and gives some examples:
Figure 4 Example of a hierarchy of certificate authorities
Figure 5 A CA hierarchy based on relationship to the company
Figure 7 Example of a certificate chain
In Figure 7, the Engineering CA certificate contains the DN of the CA (that is, USA
CA), that issued that certificate. USA CA's DN is also the subject name of the next
certificate in the chain.
In Figure 7, the public key in the certificate for the USA CA can be used to verify the
USA CA's digital signature on the certificate for the Engineering CA.
Figure 9 Verifying a certificate chain to an intermediate CA
Figure 10 A certificate chain that can't be verified
Determining Which CA Certificates to Install
You should install the CA certificates that make up the client or server's own certificate chain. These certificates are used when making SSL connections to form the certificate chain that is sent along with the certificate. In general, you do not need to mark these intermediate CA certificates as trusted.
You should install the certificates of CAs that you trust to sign client or server certificates and subordinate CA certificates. For most CA policies, a client or server should install the root CA certificate and mark it as trusted; the client will then accept certificates signed by the root CA and all of its subordinate CAs. Additional subordinate CA certificates do not need to be installed at all if the corresponding root CA is installed and has been marked as trusted.
For information about installing CA certificates in Navigator 3.x and Communicator using the Administration Toolkit and Mission Control, see Setting Up Netscape Clients for Single Sign-On. For information about installing CA certificates in servers, see Setting Up Netscape Servers for Single Sign-On.
Examples
This section continues the CA hierarchy example in Figure 7, assuming that the CA certificates for the intermediate CAs contain the Netscape Certificate Type extension with the subordinate CA indications. References to client or server here apply to any of the products listed in Netscape Products That Support Single Sign-On.
certmap.conf
file to look up the user's entry in the directory and check the certificate presented for authentication against the certificate listed in the user's entry. You edit one or more CA mappings in this file to determine how certificates issued by each CA should look up user entries. Specifically, certmap.conf
provides three kinds of information for each CA:
If it finds more than one matching entry, the server can verify the client's certificate by comparing it with certificates for the matching entries in the LDAP directory. If the client certificate doesn't match any certificates in the matching entries or if the matching entries don't contain certificates, the certificate mapping (and thus client authentication) fails.
After the server finds a matching entry and certificate in the LDAP directory, it can use that information to determine the appropriate kind of authorization for the client. For example, some servers use information from a user's entry to determine group membership, which in turn can be used during evaluation of ACLs to determine what resources the user is authorized to access.
For information about setting up Netscape servers to look up client certificates in an LDAP directory, see Set Up the certmap.conf File later in this document.
Planning Access Control
As part of your single sign-on solution, you can control access to each SuiteSpot server or to specific resources (that is, directories, files, and file types) on the server. When a server receives a request for a resource, it evaluates a hierarchy of rules called access-control entries (ACEs) to determine whether to allow or deny access to the requested resource. The collection of ACEs is called an access-control list (ACL).
By default, the server has one ACL file that contains multiple ACLs, which can be associated with specific resources. You can modify the ACL file for each server to exercise fine-grained control over the kind of resources each user or group of users is allowed. If you highly specialized access control needs, such as using a separate database or defining a custom method of client authentication, you can use the Enterprise Server ACL API to manipulate ACLs, read and write ACL files, and evaluate and test access control to resources on the Enterprise server. For more information about the ACL API, see the separate document Access Control Programmer's Guide.
If a server has not yet authenticated the user's identity and the evaluation of an ACL requires it, the server must authenticate the user's identity before proceeding with the evaluation. Access control can be managed based on the user's identity (and membership in one or more groups) or according to the host IP address of the requesting client. For the purposes of single sign-on, you should base access control on the user's identity. In addition to its ACLs, each server that you set up for single sign-on uses a list of users, typically sorted into groups, to determine access rights. The list of users and groups is stored either in a database on the server or in an LDAP directory such as the Directory Server. For any given resource, you can allow or deny access to everyone in the database or directory, or you can allow or deny access to specific people. As part of the planning process, you should identify and name any groups that you want to define and document your decisions. At a minimum, you should determine the formal name of each group, the general permissions you want each group to have, and the people you know you will want to include in each group. During deployment, you must make sure the database or directory has users and groups in it before you attempt to set access control. As you plan your groups, keep the following guidelines in mind:
Establishing Security Policies
Security policies related to single sign-on fall into two broad categories:
Access control is another important part of the security policy architecture for any single sign-on solution. For a brief discussion of access control issues, see Planning Access Control.
Administrators also decide whether to issue certificates manually or to issue them automatically with the aid of a Verification Gateway Interface (VGI) script. If certificates are issued manually, an administrator or some other designated individual must check each request and verify the identity of the requester. The way this verification occurs is a policy question. For example, the administrator could require the requester to verify a request number, to meet the issuer in person, or to hand-deliver certain notarized documents. Issuing certificates manually may be necessary for certain individuals who are granted special access, but it can be cumbersome in large organizations that need to issue thousands of certificates. VGI provides a general-purpose mechanism that allows a Certificate Server to process certificate requests programmatically. For information about VGI scripts, see Using the Verification Gateway Interface.
Important Policies related to physical security are always important for network security. For single sign-on, the physical security of server backups is essential, especially backups of the Certificate Server. If the security of Certificate Server backups is compromised, your entire network is vulnerable. Make sure you keep your server backups locked up and tightly controlled.
Dealing with Export Restrictions
Netscape software products with encryption features are considered by the United States government to be tools capable of being used for purposes that are unlawful or against U.S. national interests. Their distribution may be regulated by 15 CFR Parts 730 through 774, published by the US Department of Commerce (Bureau of Export Administration) as the Export Administration Regulations (EAR). If your company has offices in several different countries, the kind of software you can deploy in some or all of those offices will be affected by these export control regulations.
The laws of other countries may also affect the kind of software you can deploy. For example, software that supports encryption of any kind is not permitted in France without prior authorization from the French government. Similar restrictions for import and domestic use also may come into existence in other countries. Further, the US Government prohibits outright the export of any Netscape product with encryption to the following pariah countries: Cuba, Iran, Iraq, Libya, North Korea, Sudan, and Syria.
Encryption strength is described in terms of the size (in bits) of the keys used to perform the encryption.128-bit encryption provides significantly better cryptographic protection than 40-bit encryption. Roughly speaking, 128-bit encryption is 3 x 1026 times stronger than 40-bit encryption, which is not considered "strong" in the cryptographic community. It should be noted, however, that Netscape products use a different key for each encrypted SSL session, regardless of key size. Thus, even if intruders devoted significant resources and time toward breaking a key for one encrypted session, the discovered key would be useless for other sessions.
Netscape provides three versions of each release of its client software:
Important After you click "Install a New Netscape Directory Server" from the Server Selector, you are presented with a form that allows you to select the initial settings for the Directory Server, including whether you want encryption enabled. Do not click the button that enables encryption when you first install the Directory Server. Before enabling encryption, you must configure the Directory Server as described in the sections that follow and install and configure the Certificate Server as described in Setting Up the Certificate Server.
certificationAuthority
object class, and it must have the caCertificate;binary
attribute.
For more details on setting up the Certificate Server to update the CA entry with the correct information, see step 7 in Configure the Certificate Server to Work with the Directory Server.
Make sure to follow step 7 in the procedure. If you do not and if the CA entry does not belong to the certificationAuthority
object class, the CA certificate will not be published to the directory.
Set Up an Entry with Write Access
As part of the process of configuring the Certificate Server to work with the Directory Server, you need to specify a distinguished name that has write access to the directory. You can do either of the following:
Add Entries for the Users
You need to add an entry for each user for whom you want a certificate published. If the user does not have an entry in the directory, the user's certificate will not be published.
Use the tools provided with the Directory Server to add an entry for each user. These entries must belong to an object class (for example, the inetOrgPerson
object class) that allows the userCertificate;binary
attribute.
Depending on the way you organize your directory tree, you may also need to include an indexed LDAP attribute called CmapLdapAttr
, which contains the subject DNs from all certificates belonging to the user. For more information about CmapLdapAttr
, see the discussion of default properties of the certmap.conf
file in Set Up the certmap.conf File.
Get a Server Certificate
Although not required for the Directory Server to support single sign-on for other servers, you may wish to get a server certificate for the Directory Server and enable SSL. This ensures that all information passing between the directory and clients on your network will be encrypted.
You can get a server certificate either from one of the third-party CAs listed at Certificate Authority Services or from your own Certificate Server after it is set up. In either case, you must also make sure the Directory Server has a copy of the appropriate CA's certificate in its list of trusted CAs.
Enable Encryption
After the Certificate Server is set up to work with the Directory Server and you have obtained a server certificate for the Directory Server, you should enable encryption for the Directory Server. To do so, check the Encryption settings in the Server Manager for the Directory Server and make sure SSL encryption is enabled.
Setting Up the Certificate Server
To support single sign-on, you configure the Certificate Server to publish certificates to the Directory Server. The Directory Server acts as a common distribution point for information about users and other entities on the network.
The following kinds of distinguished names arise in the context of the operation of the Certificate Server:
Important Plan carefully for the Certificate Server's physical security before you deploy the Certificate Server for general use within your organization. Access to both the machine it runs on and backup media should be tightly controlled. If the physical security of the Certificate Server or its backups is compromised, your entire network is vulnerable.Before you set up the Certificate Server to use the Directory Server, you must set up the Directory Server as described in Setting Up the Directory Server. When you have completed the configuration described there, follow the steps described in the sections that follow.
Configure the Certificate Server to Work with the Directory Server
To configure the Certificate Server to work with a specific Directory Server, go to the Server Manager, click Certificate Service, then click Directory Server. The window shown in Figure 11 appears.
Figure 11 Certificate Server directory configuration
Whenever you start the Certificate Server, you will be prompted to enter the
password for this DN.
For more information about these settings, see Specify How the Certificate Server Matches DNs to Directory Entries.
certificationAuthority
to the CA's entry in the directory (if the entry does not already belong to this class), click Yes under "Convert issuer's entry to certificationAuthority
."
The
certificationAuthority
object class represents a CA. Entries of this class
must contain a CA certificate. If you click the Yes radio button, the CA certificate is
automatically published to the directory.
If you click No, the CA certificate will not be published to the directory if it does not
already belong to the
certificationAuthority
object class.
By default, a single error is logged if problems occur during a directory server update.
If you want more detail on the problems (for example, if you want to know which
specific entries could not be updated and why they could not be updated), select this
option.
cn=Jane Doe
, is represented by a DER-encoded ISO Object Identifier (OID) for the attribute tag and the DER encoding of the value.
For use with LDAP, the subject name in the certificate is translated to its string form as defined by RFC 1779. The LDAP search operation recognizes the string forms of the DN attribute tags listed in Table 1. (Case is ignored.)Attribute tag | Represents |
---|---|
cn | Common name |
ou | Organization unit |
o | Organization |
l | Locality |
st | State or province |
c | Country |
uid | User ID |
| Electronic mail address |
e | Electronic mail address |
The Certificate Server begins its search by forming the base DN from a selection of AVAs across the subject's distinguished name in the certificate. It selects the AVAs according to the settings in the section labeled "Components to form the subject's DN in the directory" of the Certificate Server Directory Configuration form. This part of the form is shown in Figure 12. Note that in this form, "components" mean the same thing as "DN attribute tags."
Figure 12 Using the Certificate Server Directory Configuration form to specify a directory
search
cn=Jane Doe,ou=My Division,o=My Company,c=US
The Certificate Server can use some or all of these four AVAs to build a distinguished name used to search the directory.
For example, if you set up the Certificate Server to use all of the AVAs in the sample subject name given above, the Certificate Server uses the following distinguished name as the base DN of its search for Jane Doe:
cn=Jane Doe,ou=My Division,o=My Company,c=US
Note that any attribute tags that are not used in the subject name (such as l
, st
, and e
in this example) are ignored. A subject name does not need to have all of the attribute tags (or "components") that you select in the Certificate Server Directory Configuration form.
Any unselected attribute tags are not used to build the distinguished name. In the previous example, if you did not select the OU
component in the Certificate Server Directory Configuration form, the Certificate Server uses this distinguished name as the base for the directory search:
cn=Jane Doe,o=My Company,c=US
In general, under "Components to match attributes in the directory," you should select components only if the corresponding AVA in a subject name can be used to distinguish between directory entries.
For example, if you selected CN
, OU
, O
, and C
under "Components to form the subject's DN in the directory," select L
under "Components to match attributes in the directory" only if its value can be used to distinguish between entries with identical cn
, ou
, o
, and c
values.
If you always get a single, distinct matching entry from the DN, you do not need to select any checkboxes under "Components to match attributes in the directory."
With certain directory tree structures, the AVAs used to form subject's DN in the directory might match more than one entry. For example, this base DN
cn=Jane Doe,ou=My Division,o=My Company,c=US
might match two directory entries with the common name Jane Doe. In this case, the Certificate Server needs additional information from the subject name used in the certificate to determine which entry corresponds to the subject of the certificate.
For example, suppose that the two Jane Doe entries in the directory are distinguished by the value of the mail
attribute (one entry's mail
value is janedoe1
, the other entry's mail
value is janedoe2
). Since the mail
attribute corresponds to the e
(email) attribute type in a distinguished name, you can set up the subject names of certificates to include the e
attribute type. (The e
attribute tag is the only one converted to a different tag, mainly for compatibility. The other attribute tags are not converted.)
By default, the e
, l
, and st
attribute tags are not included in the standard set of certificate request forms. You can either add these attribute tags to the forms, or you can use a VGI script to use these attribute types when populating the subject name in the certificate issuance forms.
Setting Up the Enterprise Server
Some aspects of configuring the Enterprise Server to support single sign-on depend on the configuration of the Certificate Server and the Directory Server. Before you complete the tasks described in this section, make sure you read and understand Setting Up the Certificate Server.
To set up the Enterprise Server for single sign-on, you must perform the following tasks:
Figure 13 The Administration Server's Request Certificate form
Set Client Authentication and Encryption Preferences
There are two ways to configure client authentication for the Enterprise Server:
index.html
file and require a certificate only if the user decides to follow some link on that page. For details, see Restrict Access.
1. Click the Browse button under "Pick an existing ACL" to select a directory for which to set rules.
2. Click the Edit Access Control button to view the access-control rules for that directory.
3. Click the "Access control is on" checkbox to turn on access control.
4. Click the underlined word in the Users/Groups column to see the User/Group window in Figure 15.
Figure 15 Access-control form for User/Group
Configure Directory Service
To interact with the Directory Server for the purposes of single sign-on, for example to look up a user's certificate in directory, you must configure the Enterprise Server for the appropriate directory service. To specify the directory, go to the Server Manager, click Configure Directory Service, and use the form presented there to specify the host name, port, and base DN for the Directory Server you want to use. Figure 16 shows an example.
Figure 16 The Configure Directory Service form
CLIENT_CERT
contains an encoded copy of the user's certificate.
AUTH_TYPE
is set to ssl
when appropriate.
HTTPS
is set to on
when appropriate.
HTTPS_KEYSIZE
is the number of bits in the encryption key, for example, 128.
HTTPS_SECRETKEYSIZE
is the number of bits in the secret key, usually 40 for export, 128 for US.
certmap.conf
file so that the server will look up user entries correctly in your LDAP directory and locate the certificates you expect your users to have.
certmap.conf
file contains one or more named mappings, each applying to a different CA. A mapping has the following syntax:
certmap name issuerDN
name:property [value]The first line specifies a name for the entry and the DN of the issuer of the client certificate. The name is arbitrary; you can define it to be whatever you want.
Important
The issuerDN
must exactly match the issuer DN of the CA that issued the client
certificate. For example, the following two issuer DN lines differ only in the spaces
separating the AVAs, but the server treats these two entries as different:
certmap moz ou=Mozilla Certificate Authority,o=Netscape,c=US
certmap moz ou=Mozilla Certificate Authority, o=Netscape, c=USThe second and subsequent lines in the named mapping match properties with values. The
certmap.conf
file has six default properties:
DNComps
entry in the mapping, the server uses either the CmapLdapAttr
setting or the entire subject DN in the client certificate. DNComps
entry is present but has no value, the server searches the entire LDAP tree for entries matching the filter. DNComps
: cn
, ou
, o
, c
, l
, st
, e
, and mail
. Case is ignored. You can use e
or mail
, but not both.
FilterComps
is a list of comma-separated DN attribute tags used to create a filter by gathering information from the user's DN in the client certificate. The server uses the values for these tags to form the search criteria for matching entries in the LDAP directory. If the server finds one or more entries in the LDAP directory that match the user's information gathered from the certificate, the search is successful and the server optionally performs a verification. For example, if FilterComps
is set to use the e
and uid
attribute tags (FilterComps=e,uid
), the server searches the directory for an entry whose values for e
and uid
match the user's information gathered from the client certificate. Email addresses and user IDs are good filters because they are usually unique entries in the directory.The filter needs to be specific enough to match one and only one entry in the LDAP
database. The following component tags are supported for
FilterComps
: cn
, ou
,
o
, c
, l
, st
, e
, and mail
. Case is ignored. You can use e
or mail
, but not both.
CmapLdapAttr
is the name of the entry attribute in the LDAP directory that contains subject DNs from all certificates belonging to the user. Because this attribute isn't a standard LDAP attribute, you have to extend the LDAP schema to include it (see the Directory Server Administrator's Guide for detail). If the CmapLdapAttr
property exists in the certmap.conf
file, the server searches the entire LDAP directory for an entry whose attribute (named with this property) matches the subject's full DN (taken from the certificate). If the search doesn't yield any entries, the server retries the search using the DNComps
and FilterComps
mappings. The search will take place more quickly if CmapLdapAttr
is an indexed LDAP attribute.This approach to matching a certificate to an LDAP entry is useful when it's difficult
to match entries using
DNComps
and FilterComps
.
Library
is the pathname to a shared library or DLL. You need to use this property only if you want to extend or replace the standard functions that perform the actual mapping on the basis of information in the certmap.conf file. (This is typically not necessary unless you have very specialized mapping requirements.) For information about these functions and how to extend or replace them, see the Certificate Mapping API.
InitFn
is the name of an init function from a custom library. You need to use this property only if you want to extend or replace the standard functions that perform the actual mapping on the basis of information in the certmap.conf file. (This is typically not necessary unless you have very specialized mapping requirements.) For information about these functions and how to extend or replace them, see the Certificate Mapping API.
certmap.conf
file should have at least one entry. The following examples illustrate two different ways you can use the certmap.conf
file to support single sign-on.
certmap.conf
file with only one "default" mapping:
certmap default default
default:DNComps ou, o, c
default:FilterComps e, uid
default:verifycert onUsing this example, the server starts its search at the LDAP branch point containing the entry
ou=
orgunit, o=
org, c=
country,
where the italics represent values from the subject's DN in the client certificate.
The server then uses the values for email address and user ID from the certificate to search for a match in the LDAP directory before authenticating the user. When it finds an entry, the server verifies the certificate by comparing the one the client sent to the one stored in the directory.
certmap default default
default:DNComps
default:FilterComps e, uid
certmap MyCA ou=MySpecialTrust,o=MyOrg,c=US
MyCA:DNComps ou,o,c
MyCA:FilterComps e
MyCA:verifycert onThis file has two mappings: a default one and another for MyCA. When the server gets a certificate from anyone other than MyCA, the server uses the default mapping, which starts at the top of the LDAP tree and searches for an entry matching the client's email address and user ID. If the certificate is from MyCA, the server starts its search at the LDAP branch containing the organizational unit and searches for matching email addresses. Also note that if the certificate is from MyCA, the server verifies the certificate; other certificates are not verified.
Important The issuer DN (that is, the CA's information) in the certificate must be identical to the issuer DN listed in the first line of the mapping. Even an extra space after a comma will cause a mismatch.
Configuring the Certificate Database for Communicator
To set up the CA certificates for the standard version of Communicator before deploying copies to users, you can either use JavaScript in the local configuration file or you can use the Security Info window to customize a single certificate database (the file named cert7.db
on Windows and Unix systems, or Certificate7
on Mac OS) and distribute that file to users with the rest of Communicator.
To set up the CA certificates for Communicator Professional Edition, you can use either of the methods just discussed, or you can use JavaScript in the AutoConfig file. Using the AutoConfig file offers you the greatest flexibility, since you can change the database dynamically. the Netscape Mission Control Guide.
for details on how to do this.
The simplest way to set up the CA databases is to use the Security Info window to modify a single certificate database, then distribute the cert7.db
file with each client copy.
Important Before you attempt to modify a certificate database, make sure you start from a clean installation of Communicator with a new user profile, so that none of your personal certificate information is included in the certificate database you generate.To delete and edit CA list entries from within Communicator, follow these steps: To add a CA associated with your own Certificate Server to the list of CAs, go to the Certificate Server and click "Accept this authority in your Navigator." To add a third-party CA to the list, go that CA's web page and click the URL for adding that CA to the client software's CA list. Once you have added a new CA to the list, make sure that you select the CA's name, click Edit, and select the appropriate options as described in step 3 above.
When you have modified the CA list to your satisfaction, locate the cert7.db file
in the /Communicator/Users/
username subdirectory for the new user profile you have modified (the bookmark.htm
file is located in the same directory).
To associate the new CA list with the Communicator software you initially deploy with Mission Control, you need to copy the cert7.db
into the appropriate Default directories of your custom InstallBuilder directory. For example, for the 32-bit version of Communicator, you would replace the file /32-bit/Navigator 4x/Program/Default/cert7.db
with your custom cert7.db
file.
For detailed information about customizing Communicator and setting up an AutoConfig file for use by Communicator Professional Edition, see the Mission Control documentation.
Configuring SSL and Password Settings for Communicator
You can use Mission Control to customize numerous Communicator preferences and settings related to security. At a minimum, you should support SSL and password protection for the private-key database in copies of Communicator that need to support single sign-on.
The Configuration Editor that comes with Mission Control generates a JavaScript file. If you are familiar with JavaScript, you can edit this file further to refine the settings at a level of detail that's not possible with the Configuration Editor.
For example, the following lines of JavaScript in the configuration file set up Communicator to ask for a password the first time it's needed during a session (for example, when Communicator first needs to present a certificate and signed data for client authentication after being launched) and to enable both SSL 2.0 and SSL 3.0:
with (PrefConfig) {
The term
lockPref("security.ask_for_password", 1);
lockPref("security.enable_ssl2", true);
lockPref("security.enable_ssl3", true);
}lockpref
before each setting indicates that the setting will be locked, so the user won't be able to change it. In the second line, changing the 1 to 0 causes Communicator to ask for a password every time it's needed during a session. If you replace the second line with these lines, Communicator asks for a password every 30 minutes:
lockPref("security.ask_for_password", 2);
It's also possible to set up the configuration file to specify which ciphers SSL uses with the client and whether Communicator warns the user when entering or leaving an encrypted site. For details on these and other security-related settings that you can set with Mission Control, see the Netscape Mission Control Guide.
lockPref("security.password_lifetime",30);
For more information about ciphers and other aspects of SSL, see the chapter on encryption and SSL in any server's Administrator's Guide or check the server's online help.
Configuring User Certificate Setting for Communicator
If you expect that your users will have more than one client SSL certificate, you may want to use Mission Control to configure Navigator so that it will automatically select the appropriate certificate to authenticate itself to a particular server. This configuration may be useful even if a user has only one certificate, since it causes Communicator to use the available certificate without bothering the user with a dialog box that permits only one choice. This section describes how to configure this setting.
This section describes how to configure automatic certificate selection. To see what this setting controls, click the Security button on the Navigator toolbar to open the Security Info window, then click Navigator in the left frame. The pop-up menu labeled "Certificate to identify you to a web site" allows a user to select one of the following items:
with (PrefConfig) {This will normally cause Communicator to choose the correct certificate. If during testing you discover that some users are denied access to web sites even though they possess valid client certificates, make sure you remove any untrusted certificates from the server's list of CAs. It is convenient to use the automatic certificate selection feature for all users in an organization. If you find that some users with multiple certificates are denied access to web sites even though they possess valid client certificates and you have deleted the untrusted CAs from the server's list of CAs, you should recommend that they change the preference to "Ask every time" and select the appropriate server when presented with the resulting dialog box. (Alternatively, you can change the string in the second line of the JavaScript example shown above to "Ask every time".) You should also check the server logs to find out what's really going on.
defaultPref("security.default_personal_cert", "Let Navigator choose automatically");
}
cert5.db
file with each client copy.
Important Before you attempt to modify a certificate database, make sure you start from a clean installation of Navigator with a new user profile, so that none of your personal certificate information is included in the certificate database you generate.To delete and edit CA list entries from within Navigator, follow these steps:
When you have modified the CA list to your satisfaction, locate the cert5.db file
in the /Netscape/Users/
username subdirectory for the new user profile you have modified (the bookmark.htm
file is located in the same subdirectory). To associate the new CA list with the Navigator software you deploy with the Administration Toolkit, you need to copy the cert5.db
into the appropriate directories in the zip files containing the files to be installed.
One way to update the CA database dynamically after you have deployed Navigator 3.x is to write a login script that replaces the user's cert5.db
file with a modified version. The most reliable way to update the CA database dynamically is to use Mission Control and Communicator Professional Edition.
Configuring SSL and Password Settings for Navigator 3.x
The Administration Toolkit allows you to create a special file (its name varies by platform) that contains lock settings for Navigator 3.x. You can edit this file to ensure that the settings for SSL and the private-key database are set up correctly to support single sign-on.
Each setting in the configuration file used by the Administration Toolkit consists of a key-value pair. For example, the following key-value pairs ensure that Navigator supports SSL versions 2 and 3:
Enable SSL v2 = yes
This key-value pair ensures that Navigator asks the user for the private-key database the first time the private key is required in each new session:
Enable SSL v3 = yesDefault Ask for password=0
A setting of 1 instead of 0 indicates that Navigator should ask for the password each time it is requested.
For detailed information about editing Navigator 3.x settings and deploying customized copies, see the Administration Toolkit documentation.
Issuing Client Certificates
At present, users must explicitly request certificates for client authentication. Users are also responsible for backing up the private key. This is technically a good arrangement from a security point of view, because the user's private key remains on the user's machine and is never sent across the network.
However, this approach requires careful explanation to users and testing with users, because they must complete the required steps accurately and completely before they can begin using their certificates. Before issuing client certificates across a large organization, you should plan the process carefully and test it with a small pilot group of users. One of the issues you must deal with is the bootstrapping problem--that is, how to authenticate users initially when they first request a certificate. Some organizations may be able to use the Unix login and password for this purpose.
These sections discuss the two main issues you need to address before issuing certificates to users:
ftp://ftp1.netscape.com/private/certificate/1.0/TeMporARY/ex101eiu.exe
ftp://ftp1.netscape.com/private/certificate/1.0/TeMporARY/certificateextras-1_01-export-us_sparc-sun-solaris2_4_tar.gz
ftp://ftp1.netscape.com/private/certificate/1.0/TeMporARY/certificateextras-1_01-export-us_mips-sgi-irix5_3_tar.gz
Guiding Users Through the Request Process
After you have created your directory and populated it with user entries, you must guide your users through the process of authenticating themselves and requesting certificates. Users must do this themselves because the private keys required for their certificates are generated by each user's copy of the client software. One of the most important issues at this stage is the so-called bootstrapping problem--how to authenticate a user when that person first requests a certificate. This is an important part of your single sign-on deployment, since impersonation at this stage would compromise security no matter how you configure client and server software.
One way to deal with this is to require users to authenticate themselves when requesting a certificate by entering a Unix or NT login and password. As suggested in the previous section, it's possible to write a VGI script to verify that these are correct before issuing a certificate. It may be more convenient for your organization to check some other form of identification, such as an employee number, in a similar way.
Another issue to consider is how the user will back up the private key for a newly issued certificate. This can be an especially serious consideration if you are issuing certificates that can also be used for signing and encrypting email. Problems arise if the user deletes the private key for his or her certificate and doesn't have a backup, or if the user forgets the password for the Communicator certificate and private key databases. In these cases the user will never be able to read stored email that other people have encrypted with the public key for that certificate. There is nothing the system administrator can do about this after the fact: messages can't be decrypted, for all practical purposes, without the private key.
One way to deal with this problem is to require users to back up their private key as soon as Communicator generates it. Communicator automatically suggests this, but there's no way for the administrator to enforce this backup. Another solution is to require each user to back up the private key to a single server maintained by the administrator. This won't help if the user forgets the password, but it can provide a simple key-recovery system if the user's private key is lost or damaged, and the administrator can check whether the backup has taken place.
Future versions of Netscape software will support more sophisticated key-recovery systems that will assist administrators when users forget their passwords, lose their backups, leave the company, and so on. For example, such as system might require some minimum number of people among a specified group of administrators or other personnel to agree and provide special passwords to recover a user's private key from a central repository. This kind of scheme, sometimes called an m of n scheme, ensures that keys can be recovered in emergencies without unduly compromising the user's privacy.
When issuing certificates for use with SuiteSpot 3.0, it's generally preferable to issue just one certificate for each user. You can ensure that each user gets only one certificate by writing a VGI script that checks whether the user's entry in the LDAP directory already includes a certificate before issuing one to the user. Future versions of SuiteSpot will provide better support for multiple certificates.
You should think carefully about the request process and test it on a small group of users before you start to rely on it for issuing certificates to large numbers of people. For example, these steps might be appropriate for some organizations:
https://
. This allows you to test a frequently accessed server without disrupting service.
Once you have experimented in a very limited setting and performed appropriate tests, you should deploy to a very small group of real users--perhaps a dozen, perhaps a hundred, depending on the size of your company and the complexity of the network. You may want to repeat some of the tests with this small initial group.
Do not deploy to a larger group of users until you have worked out all the problems that arise in your initial tests and your first group of users is using single sign-on successfully.
Last Updated: 10/20/97 14:15:39
Any sample code included above is provided for your use on an "AS IS" basis, under the Netscape License Agreement - Terms of Use