Describe what a digital certificate is.
Describe how authentication works.
|
|
A Certificate Identifies Someone or Something
A certificate is an electronic document used to identify
an individual, a server, a company, or some other entity and to associate
that identity with a public key. We can compare it to a driver's
license, a passport, or other commonly used personal IDs. A certificate
provides generally recognized proof of a person's identity that is validated
by a recognized authority. Public-key cryptography uses certificates to
address the problem of spoofing (misrepresentation).
Certificates work in much the same fashion as a driver's license. Certificate
authorities (CAs) are entities that validate identities and issue certificates.
They can be either independent third parties or organizations running their
own certificate-issuing server software (such as Netscape Certificate Server).
The certificate issued by the CA binds a particular public key to the
name of the entity the certificate identifies (such as the name of an employee
or a server). Certificates help prevent the use of fake public keys for
impersonation. Only the public key certified by the certificate will work
with the corresponding private key possessed by the entity identified by
the certificate.
In addition to a public key, a certificate always includes the name
of the entity it identifies, an expiration date, the name of the CA that
issued the certificate, a serial number, and other information. Most importantly,
a certificate always includes the digital signature of the issuing CA.
The CA's digital signature allows the certificate to function as a "letter
of introduction" for users who know and trust the CA but don't know the
entity identified by the certificate.
For more information about the role of CAs, see How CA Certificates
Are Used to Establish Trust.
Authentication Confirms an Identity
Authentication is the process of confirming an identity.
In the context of network interactions, authentication involves the confident
identification of one party by another party. Authentication over networks
can take many forms. Certificates are one way of supporting authentication.
Network interactions typically take place between a client, such as
browser software running on a personal computer, and a server, such as
the software and hardware used to host a Web site. Client authentication
refers to the confident identification of a client by a server (that is,
identification of the person assumed to be using the client software).
Server
authentication refers to the confident identification of a server by
a client (that is, identification of the organization assumed to be responsible
for the server at a particular network address).
Client and server authentication are not the only forms of authentication
that certificates support. For example, the digital signature on an email
message, combined with the certificate that identifies the sender, provide
strong evidence that the person identified by that certificate did indeed
send that message. Similarly, a digital signature on an HTML form, combined
with a certificate that identifies the signer, can provide evidence, after
the fact, that the person identified by that certificate did agree to the
contents of the form. In addition to authentication, the digital signature
in both cases ensures a degree of nonrepudiation - that is, a digital signature
makes it difficult for the signer to claim later not to have sent the email
or the form.
Client authentication is an essential element of network security within
most intranets or extranets. The sections that follow contrast two forms
of client authentication:
- Password-Based Authentication. Almost all server software permits
client authentication by means of a name and password. For example, a server
might require a user to type a name and password before granting access
to the server. The server maintains a list of names and passwords; if a
particular name is on the list, and if the user types the correct password,
the server grants access.
- Certificate-Based Authentication. Client authentication based on
certificates is part of the SSL protocol. The client digitally signs a
randomly generated piece of data and sends both the certificate and the
signed data across the network. The server uses techniques of public-key
cryptography to validate the signature and confirm the validity of the
certificate.
Password-Based Authentication
This example shows the basic steps involved in authenticating
a client by means of a name and password. The following is assumed:
- The user has already decided to trust the server, either without authentication
or on the basis of server authentication via SSL.
- The user has requested a resource controlled by the server.
- The server requires client authentication before permitting access to the
requested resource.
Figure 2.9
With this arrangement, the user must supply a new password for each
server, and the administrator must keep track of the name and password
for each user, typically on separate servers.
Certificate-Based Authentication
One of the advantages of certificate-based authentication is
that it can be used to replace the steps demonstrated above with a mechanism
that allows the user to supply just one password (which is not sent across
the network) and allows the administrator to control user authentication
centrally.
The following shows how client authentication works using certificates
and the SSL Protocol. To authenticate a user to a server, a client digitally
signs a randomly generated piece of data and sends both the certificate
and the signed data across the network. For the purposes of this discussion,
the digital signature associated with some data can be thought of as evidence
provided by the client to the server. The server authenticates the user's
identity on the strength of this evidence.
Figure 2.10
As you can see by comparing certificate-based authentication with password-based
authentication, certificates replace the authentication portion of the
interaction between the client and the server. Instead of requiring a user
to send passwords across the network throughout the day, single sign-on
requires the user to enter the private-key database password just once,
without sending the password across the network. For the rest of the session,
the client presents the user's certificate to authenticate the user to
each new server it encounters. Existing authorization mechanisms based
on the authenticated user identity are not affected.
|