Strong authentication of packets sent between nodes of different clusters
in a two-tier ad hoc network is provided by the cluster heads. Each
cluster head authenticates nodes that enter the cluster. Thereafter, when
a sending node requests a session from its cluster head with a receiving
node in another cluster, the cluster head negotiates a session secret key
(SSK) with the corresponding cluster head of the receiving node. Further,
the cluster head provides authentication tags for the sending node to use
with each packet. Each authentication tag is time-stamped, digitally
signed by the cluster head, encrypted with the SSK, and includes
indicators of message integrity, including a sequence number and TCP
header field of checksum. The sending node further calculates a check
result from a number of the authentication tags, encrypted with the SSK,
so that the receiving node can authenticate the number of packets.