3.7 Combining Services
All changes in this version
Title
Combining Services
Control
In many applications, a combination of security services (confidentiality, integrity authentication, source authentication, and support for non-repudiation) is desired. Designers of secure systems often begin by considering which security services are needed to protect the information contained within and processed by the system. After these services have been determined, the designer then considers what mechanisms will best provide these services. Not all mechanisms are cryptographic in nature. For example, physical security may be used to protect the confidentiality of certain types of data, and identification badges or biometric
2 Sometimes referred to as identity authentication . identification devices may be used for source authentication. However, cryptographic mechanisms consisting of algorithms, keys, and other keying material often provide the most cost-effective means of protecting the security of information. This is particularly true in applications where the information would otherwise be exposed to unauthorized entities. When properly implemented, some cryptographic algorithms provide multiple services. The following examples illustrate this case: 1. A message authentication code ( Section 4.2.3 ) can provide source authentication, as well as integrity authentication if the symmetric keys are unique to each pair of users. 2. A digital signature algorithm ( Section 4.2.4 ) can provide source authentication and integrity authentication, as well as support a non-repudiation decision. 3. Certain modes of encryption can provide confidentiality, integrity authentication, and source authentication when properly implemented. These modes should be specifically designed to provide these services. However, it is often the case that different algorithms need to be employed in order to provide all the desired services. Examples: Consider a system where the secure exchange of information between pairs of Internet entities is needed. Some of the exchanged information requires just integrity protection, while other information requires both integrity and confidentiality protection. It is also a requirement that each entity that participates in an information exchange knows the identity of the other entity. The designers of this example system decide that a Public Key Infrastructure (PKI) needs to be established and that each entity wishing to communicate securely is required to physically prove his or her identity to a Registration Authority (RA). This identity-proving process requires the presentation of proper credentials, such as a driver’s license, passport or birth certificate. After establishing the correct identity, an individual then generates a public static key pair; each individual that generates a key pair is considered to be the owner of that key pair. The public key of the key pair is provided to the RA, where it is incorporated with the key-pair owner’s identifier and other information into a digitally signed message for transmission to a Certification Authority (CA). The CA then composes the key-pair owner’s public-key certificate by signing the owner's public key and the identifier, along with other information. This certificate is returned to the key-pair owner or placed in a certificate repository or both. The private key remains under the sole control of the owner. Two types of public key certificates are commonly used: certificates used for key establishment (i.e., key agreement or key transport) and certificates used for digital signatures. In the case of key-agreement certificates, two entities wishing to communicate may exchange public-key certificates containing public static key-agreement keys that are checked by verifying the CA’s signature on the certificate (using the CA’s public key). The public static key-agreement key of each of the two entities and each entity's own private static key-agreement key are then used in a key-agreement scheme to produce a shared secret that is known by the two entities. The shared secret may then be used to derive one or more shared symmetric keys to be used by a symmetric algorithm to provide confidentiality and/or integrity protection for data. The receiver of the data protected by the symmetric key(s) has assurance that the data came from the other entity indicated by the public-key certificate (i.e., source authentication for the symmetric keys has been obtained). In the case of digital signature certificates, one entity (i.e., a signatory) signs data using the private key and sends the signed data to an intended recipient. The recipient obtains the signatory’s public key certificate (e.g., from the recipient or some repository), verifies the certificate using the CA’s public key, and then uses the public key in the certificate (i.e., the public key corresponding to the private key used by the signatory) to verify the signature on the received data. By using this process, the recipient obtains assurances of both the integrity and the source of the received data. The above examples provide basic sketches of how cryptographic algorithms may be used to support multiple security services. However, it can be easily seen that the security of such systems depend on many factors, including: a. The strength of the entity’s credentials (e.g., driver’s license, passport or birth certificate) and the identity authentication process, b. The strength of the cryptographic algorithms used, c. The degree of trust placed in the RA and the CA, d. The strength of the key-establishment protocols, and e. The care taken by the users in generating their keys and protecting them from unauthorized use. Therefore, the design of a security system that provides the desired security services by making use of cryptographic algorithms and sound key-management techniques requires a high degree of skill and expertise.