Timestamp exchange

In the solution proposed in this chapter, timestamps are used to determine freshness. This technique requires an exchange of timestamps between nodes. The timestamp exchange process introduces tree new message types. These messages are processed regardless of the signature message validation. This process is likely to take place between neighbors that have no registered timestamp of each other, and therefore traffic between them will not be validated by the signature check. Because of this, all such messages are signed internally. This means that all the timestamp exchange messages carries their own digest and they are never stacked with other OLSR-messages but rather sent in OLSR-packets of their own.

The exchange of timestamps between two neighbor hosts A and B can be described as:

$A \rightarrow B : Ch_a D(M, K)$

$B \rightarrow A : Ch_b Ts_b D(IP_b, Ch_a, K) D(M, K)$

$A \rightarrow B : Ts_a D(IP_a, Ch_b, K) D(M, K)$

When A receives a signed message form a neighbor B, for which A has no registered timevalue, A initiates the timestamp exchange process. A first sends a challenge message (figure 11.4) to B. This message is broadcasted since A might not have an actual route to B. The challenge message contains a 32-bit nonce11.1value, $Ch_a$. A then signs this message with a digest of the entire message and the shared key $D(M, K)$.

B now has to respond to this message with a challenge-response (figure 11.5) message. B first generates the digest of its IP address(if B is multi-homed the IP address fetched from the challenge message is used), the received nonce and the shared key $D(IP_b, CH_a, K)$. B then generates a 32-bit nonce, $Ch_b$, and transmits the nonce, the timestamp of B, the digest $D(IP_b, CH_a, K)$ and a digest of the entire message and the shared key $D(M, K)$.

When A receives the challenge-response message from B, it first tries to validate the data. If the digests $D(IP_b, CH_a, K)$ and $D(M, K)$ can be verified, then the timestamp of B is used to create the difference of time between A and B. A then generates a response-response message(figure 11.6) and broadcasts it to B. This message contains As timestamp, a digest of As address(as received from B), the nonce received from B and the shared key $D(IP_a, CH_b, K)$ and a digest of the entire message and the key $D(M, K)$.

Note that in addition to the data described here, the IP address of the destination is always sent in timestamp exchange packages.

When B receives the response-response message from A, it tries to verify the digests. If they can be verified, B uses the received timestamp to register its time difference to A. The timestamp exchange is then complete.

Andreas 2004-07-29