- Introduction
- Issues in Designing a Transport Layer Protocol for Ad Hoc Wireless Networks
- Design Goals of a Transport Layer Protocol for Ad Hoc Wireless Networks
- Classification of Transport Layer Solutions
- TCP over Ad Hoc Wireless Networks
- Other Transport Layer Protocols for Ad Hoc Wireless Networks
- Security in Ad Hoc Wireless Networks
- Network Security Requirements
- Issues and Challenges in Security Provisioning
- Network Security Attacks
- Key Management
- Secure Routing in Ad Hoc Wireless Networks
- Summary
- Problems
- Bibliography

## 9.11 KEY MANAGEMENT

Having seen the various kinds of attacks possible on ad hoc wireless networks, we now look at various techniques employed
to overcome the attacks. Cryptography is one of the most common and reliable means to ensure security. Cryptography is not
specific to ad hoc wireless networks. It can be applied to any communication network. It is the study of the principles, techniques,
and algorithms by which information is transformed into a disguised version which no unauthorized person can read, but which
can be recovered in its original form by an intended recipient. In the parlance of cryptography, the original information
to be sent from one person to another is called *plaintext.* This plaintext is converted into *ciphertext* by the process of encryption, that is, the application of certain algorithms or functions. An authentic receiver can decrypt/decode
the ciphertext back into plaintext by the process of decryption. The processes of encryption and decryption are governed by
*keys,* which are small amounts of information used by the cryptographic algorithms. When the key is to be kept secret to ensure
the security of the system, it is called a secret key. The secure administration of cryptographic keys is called key management.

The four main goals of cryptography are confidentiality, integrity, authentication (the receiver should be able to identify the sender and verify that the message actually came from that sender), and non-repudiation. A detailed study of cryptography is presented in [21].

There are two major kinds of cryptographic algorithms: symmetric key algorithms, which use the same key for encryption and decryption, and asymmetric key algorithms, which use two different keys for encryption and decryption. Symmetric key algorithms are usually faster to execute electronically, but require a secret key to be shared between the sender and receiver. When communication needs to be established among a group of nodes, each sender-receiver pair should share a key, which makes the system non-scalable. If the same key is used among more than two parties, a breach of security at any one point makes the whole system vulnerable. The asymmetric key algorithms are based on some mathematical principles which make it infeasible or impossible to obtain one key from another; therefore, one of the keys can be made public while the other is kept secret (private). This is called public key cryptography. Such systems are used extensively in practice, but are not provably secure. They rely upon the difficulty of solving certain mathematical problems, and the network would be open to attacks once the underlying mathematical problem is solved.

#### 9.11.1 Symmetric Key Algorithms

Symmetric key algorithms rely on the presence of the shared key at both the sender and receiver, which has been exchanged by some previous arrangement. There are two kinds of symmetric key algorithms, one involving block ciphers and the other stream ciphers. A block cipher is an encryption scheme in which the plaintext is broken into fixed-length segments called blocks, and the blocks are encrypted one at a time. The simplest examples include substitution and transposition. In substitution, each alphabet of the plaintext is substituted by another in the ciphertext, and this table mapping the original and the substituted alphabet is available at both the sender and receiver. A transposition cipher permutes the alphabet in the plaintext to produce the ciphertext. Figure 9.12 (a) illustrates the encryption using substitution, and Figure 9.12 (b) shows a transposition cipher. The block length used is five.

**Figure 9.12 Substitution and transposition.**

A stream cipher is, in effect, a block cipher of block length one. One of the simplest stream ciphers is the Vernam cipher, which uses a key of the same length as the plaintext for encryption. For example, if the plaintext is the binary string 10010100, and the key is 01011001, then the encrypted string is given by the XOR of the plaintext and key, to be 11001101. The plaintext is again recovered by XORing the ciphertext with the same key. If the key is randomly chosen, transported securely to the receiver, and used for only one communication, this forms the one-time pad which has proven to be the most secure of all cryptographic systems. The only bottleneck here is to be able to securely send the key to the receiver.

#### 9.11.2 Asymmetric Key Algorithms

Asymmetric key (or public key) algorithms use different keys at the sender and receiver ends for encryption and decryption,
respectively. Let the encryption process be represented by a function *E,* and decryption by *D.* Then the plaintext *m* is transformed into the ciphertext *c* as *c = E*(*m*). The receiver then decodes *c* by applying *D.* Hence, *D* is such that *m = D*(*c*) *= D*(*E*(*m*)). When this asymmetric key concept is used in public key algorithms, the key *E* is made public, while *D* is private, known only to the intended receiver. Anyone who wishes to send a message to this receiver encrypts it using *E.* Though *c* can be overheard by adversaries, the function *E* is based on a computationally difficult mathematical problem, such as the factorization of large prime numbers. Hence, it
is not possible for adversaries to derive *D* given *E.* Only the receiver can decrypt *c* using the private key *D.*

A very popular example of public key cryptography is the RSA system [21] developed by Rivest, Shamir, and Adleman, which is based on the integer factorization problem.

Digital signatures schemes are also based on public key encryption. In these schemes, the functions *E* and *D* are chosen such that *D*(*E*(*m*)) *= E*(*D*(*m*)) *= m* for any message *m.* These are called reversible public key systems. In this case, the person who wishes to sign a document encrypts it using
his/her private key *D,* which is known only to him/her. Anybody who has his/her public key *E* can decrypt it and obtain the original document, if it has been signed by the corresponding sender. In practice, a trusted
third party (*TTP*) is agreed upon in advance, who is responsible for issuing these digital signatures (*D* and *E* pairs) and for resolving any disputes regarding the signatures. This is usually a governmental or business organization.

#### 9.11.3 Key Management Approaches

The primary goal of key management is to share a secret (some information) among a specified set of participants. There are several methods that can be employed to perform this operation, all of them requiring varying amounts of initial configuration, communication, and computation. The main approaches to key management are key predistribution, key transport, key arbitration, and key agreement [22].

#### Key Predistribution

Key predistribution, as the name suggests, involves distributing keys to all interested parties before the start of communication.
This method involves much less communication and computation, but all participants must be known *a priori*, during the initial configuration. Once deployed, there is no mechanism to include new members in the group or to change
the key. As an improvement over the basic predistribution scheme, sub-groups may be formed within the group, and some communication
can be restricted to a subgroup. However, the formation of sub-groups is also an *a priori* decision with no flexibility during the operation.

#### Key Transport

In key transport systems, one of the communicating entities generates keys and transports them to the other members. The simplest
scheme assumes that a shared key already exists among the participating members. This prior shared key is used to encrypt
a new key and is transmitted to all corresponding nodes. Only those nodes which have the prior shared key can decrypt it.
This is called the key encrypting key (*KEK*) method. However, the existence of a prior key cannot always be assumed. If the public key infrastructure (*PKI*) is present, the key can be encrypted with each participant's public key and transported to it. This assumes the existence
of a *TTP*, which may not be available for ad hoc wireless networks.

An interesting method for key transport without prior shared keys is the Shamir's three-pass protocol [22]. The scheme is based on a special type of encryption called commutative encryption schemes [which are reversible and composable
(composition of two functions ƒ and *g* is defined as *f*(*g*(*x*)))]. Consider two nodes *X* and *Y* which wish to communicate. Node X selects a key *K* which it wants to use in its communication with node *Y.* It then generates another random key *k _{x}*, using which it encrypts

*K*with

*f,*and sends to node

*Y.*Node

*Y*encrypts this with a random key

*k*using

_{y}*g,*and sends it back to node

*X.*Now, node

*X*decrypts this message with its key

*k*, and after applying the inverse function ƒ

_{x}

^{—}^{1}, sends it to node

*Y*. Finally, node

*Y*decrypts the message using

*k*and

_{y}*g*

^{—1}to obtain the key

*K.*The message exchanges of the protocol are illustrated in Figure 9.13.

**Figure 9.13 Shamir's three-pass protocol.**

#### Key Arbitration

Key arbitration schemes use a central arbitrator to create and distribute keys among all participants. Hence, they are a class
of key transport schemes. Networks which have a fixed infrastructure use the *AP* as an arbitrator, since it does not have stringent power or computation constraints. In ad hoc wireless networks, the problem
with implementation of arbitrated protocols is that the arbitrator has to be powered on at all times to be accessible to all
nodes. This leads to a power drain on that particular node. An alternative would be to make the keying service distributed,
but simple replication of the arbitration at different nodes would be expensive for resource-constrained devices and would
offer many points of vulnerability to attacks. If any one of the replicated arbitrators is attacked, the security of the whole
system breaks down.

#### Key Agreement

Most key agreement schemes are based on asymmetric key algorithms. They are used when two or more people want to agree upon a secret key, which will then be used for further communication. Key agreement protocols are used to establish a secure context over which a session can be run, starting with many parties who wish to communicate and an insecure channel. In group key agreement schemes, each participant contributes a part to the secret key. These need the least amount of preconfiguration, but such schemes have high computational complexity. The most popular key agreement schemes use the Diffie-Hellman exchange [21], an asymmetric key algorithm based on discrete logarithms.

#### 9.11.4 Key Management in Ad Hoc Wireless Networks

Ad hoc wireless networks pose certain specific challenges in key management due to the lack of infrastructure in such networks. Three types of infrastructure have been identified in [23], which are absent in ad hoc wireless networks. The first is the network infrastructure, such as dedicated routers and stable links, which ensure communication with all nodes. The second missing infrastructure is services such as name resolution, directory, and TTPs. The third missing infrastructure in ad hoc wireless networks is the administrative support of certifying authorities.

#### Password-Based Group Systems

Several solutions for group keying in ad hoc wireless networks have been suggested in [23]. The example scenario for implementation is a meeting room, where different mobile devices want to start a secure session. Here, the parties involved in the session are to be identified based on their
location, that is, all devices in the room can be part of the session. Hence, relative location is used as the criterion for
access control. If a *TTP* which knows the location of the participants exists, then it can implement location-based access control. A prior shared
secret can be obtained by a physically more secure medium such as a wired network. This secret can be obtained by plugging
onto a wired network first, before switching to the wireless mode.

A password-based system has been explored where, in the simplest case, a long string is given as the password for users for
one session. However, human beings tend to favor natural language phrases as passwords, over randomly generated strings. Such
passwords, if used as keys directly during a session, are very weak and open to attack because of high redundancy, and the
possibility of reuse over different sessions. Hence, protocols have been proposed to derive a strong key (not vulnerable to
attacks) from the weak passwords given by the participants. This password-based system could be two-party, with a separate
exchange between any two participants, or it could be for the whole group, with a leader being elected to preside over the
session. Leader election is a special case of establishing an order among all participants. The protocol used is as follows.
Each participant generates a random number, and sends it to all others. When every node has received the random number of
every other node, a common predecided function is applied on all the numbers to calculate a *reference value.* The nodes are ordered based on the difference between their random number and the reference value.

#### Threshold Cryptography

Public key infrastructure (*PKI*) enables the easy distribution of keys and is a scalable method. Each node has a public/private key pair, and a certifying
authority (*CA*) can bind the keys to the particular node. But the *CA* has to be present at all times, which may not be feasible in ad hoc wireless networks. It is also not advisable to simply
replicate the *CA* at different nodes. In [20], a scheme based on threshold cryptography has been proposed by which *n* servers exist in the ad hoc wireless network, out of which any (t+1) servers can jointly perform any arbitration or authorization
successfully, but *t* servers cannot perform the same. Hence, up to *t* compromised servers can be tolerated. This is called an (n, *t* + 1) configuration, where *n* ≥ 3*t* + 1.

To sign a certificate, each server generates a partial signature using its private key and submits it to a combiner. The combiner
can be any one of the servers. In order to ensure that the key is combined correctly, *t + 1* combiners can be used to account for at most *t* malicious servers. Using *t +* 1 partial signatures (obtained from itself and *t* other servers), the combiner computes a signature and verifies its validity using a public key. If the verification fails,
it means that at least one of the *t +* 1 keys is not valid, so another subset of *t +* 1 partial signatures is tried. If the combiner itself is malicious, it cannot get a valid key, because the partial signature
of itself is always invalid.

The scheme can be applied to asynchronous networks, with no bound on message delivery or processing times. This is one of the strengths of the scheme, as the requirement of synchronization makes the system vulnerable to DoS attacks. An adversary can delay a node long enough to violate the synchrony assumption, thereby disrupting the system.

Sharing a secret in a secure manner alone does not completely fortify a system. Mobile adversaries can move from one server
to another, attack them, and get hold of their private keys. Over a period of time, an adversary can have more than *t* private keys. To counter this, *share refreshing* has been proposed, by which servers create a new independent set of shares (the partial signatures which are used by the
servers) periodically. Hence, to break the system, an adversary has to attack and capture more than *t* servers within the period between two successive refreshes; otherwise, the earlier share information will no longer be valid.
This improves protection against mobile adversaries.

#### Self-Organized Public Key Management for Mobile Ad Hoc Networks

The authors of [24] have proposed a completely self-organized public key system for ad hoc wireless networks. This makes use of absolutely no
infrastructure — *TTP*, *CA*, or server — even during initial configuration. The users in the ad hoc wireless network issue certificates to each other
based on personal acquaintance. A certificate is a binding between a node and its public key. These certificates are also
stored and distributed by the users themselves. Certificates are issued only for a specified period of time and contain their
time of expiry along with them. Before it expires, the certificate is updated by the user who had issued the certificate.

Initially, each user has a local repository consisting of the certificates issued by him and the certificates issued by other
users to him. Hence, each certificate is initially stored twice, by the issuer and by the person for whom it is issued. Periodically,
certificates from neighbors are requested and the repository is updated by adding any new certificates. If any of the certificates
are conflicting (*e.g.,* the same public key to different users, or the same user having different public keys), it is possible that a malicious node
has issued a false certificate. A node then labels such certificates as *conflicting* and tries to resolve the conflict. Various methods exist to compare the confidence in one certificate over another. For instance,
another set of certificates obtained from another neighbor can be used to take a majority decision. This can be used to evaluate
the trust in other users and detect malicious nodes. If the certificates issued by some node are found to be wrong, then that
node may be assumed to be malicious.

The authors of [24] define a certificate graph as a graph whose vertices are public keys of some nodes and whose edges are public-key certificates
issued by users. When a user *X* wants to obtain the public key of another user *Y,* he/she finds a chain of valid public key certificates leading to *Y.* The chain is such that the first hop uses an edge from *X,* that is, a certificate issued by *X,* the last hop leads into *Y* (this is a certificate issued to *Y*), and all intermediate nodes are trusted through the previous certificate in the path. The protocol assumes that trust is
transitive, which may not always be valid.

Having seen the various key management techniques employed in ad hoc wireless networks, we now move on to discuss some of the security-aware routing schemes for ad hoc wireless networks.