next up previous
Next: Scheme II: Tolerating Packet Up: TESLA: Timed Efficient Stream Previous: Initial synchronization (preliminary discussion)

Scheme I: The Basic Scheme

 

Here is a summary of scheme I: The sender issues a signed commitment to a key which is only known to itself. The sender then uses that key to compute a MAC on a packet Pi, and later discloses the key in packet Pi+1, which enables the receiver to verify the commitment and the MAC of packet Pi. If both verifications are successful, packet Pi is authenticated and trusted. The commitment is realized via a pseudorandom function with collision resistance. More details on the requirements on the pseudo-random functions are in appendix A. This protocol is similar to the Guy Fawkes protocol [1].

pim1Pi-1 piPi pip1Pi+1 mim1Mi-1 miMi mip1Mi+1 fkiF(Ki) fkip1F(Ki+1) fkip2F(Ki+2) dim1Di-1 diDi dip1Di+1 kim2Ki-2 kim1Ki-1 kiKi kip1Ki+1 ma1MAC(K'i-1,Di-1) ma2MAC(K'i,Di) ma3MAC(K'i+1,Di+1)

 figure203
Figure 1: Basic stream authentication scheme. Mi stands for message i, Pi is packet i, Ki denotes the secret key i, F,F' are pseudo-random functions, and MAC(Ki',Di) computes the MAC of packet i using the secret key Ki' = F'(Ki). 

We now describe the basic scheme in more detail. The scheme is depicted in Figure 1. We assume that the receiver has an authenticated packet Pi-1 = Di-1, MAC(Ki-1',Di-1) to start with (where Di-1 = Mi-1, F(Ki), Ki-2). The fields have the following meanings. Mi-1 is the message contained by the packet, K'i = F'(Ki) is the secret key used to compute the MAC of the next packet, and F(Ki) commits to the key Ki without revealing it. The functions F and F' are two different pseudo-random functions. Commitment value F(Ki) is important for the authentication of the subsequent packet Pi. To bootstrap this scheme, the first packet needs to be authenticated with a regular digital signature scheme, for example RSA [27].

To send the message Mi, the sender picks a fresh random key Ki+1 and constructs the following packet Pi = Di, MAC(Ki',Di), where Di = Mi, F(Ki+1), Ki-1 and the MAC(Ki',Di) computes a message authenticating code of Di under key Ki'.

When the receiver receives packet Pi, it cannot verify the MAC instantly, since it does not know Ki and cannot reconstruct Ki'. Packet Pi+1 = Di+1, MAC(Ki+1', Di+1) (where Di+1 = Mi+1, F(Ki+2), Ki) discloses Ki and allows the receiver first to verify that Ki is correct (F(Ki) equals the commitment which was sent in packet Pi-1); and second to compute Ki' = F'(Ki) and check the authenticity of packet Pi by verifying the MAC of packet Pi.

After the receiver has authenticated Pi, the commitment F(Ki+1) is also authenticated and the receiver repeats this scheme to authenticate Pi+1 after Pi+2 is received.

This scheme can be subverted if an attacker gets packet Pi+1 before the receiver gets Pi, since the attacker would then know the secret key Ki which is used to compute the MAC of Pi, which allows it to change the message and the commitment in Pi and forge all subsequent traffic. To prevent this attack, the receiver checks the following security condition on each packet it receives, and drops the packet if the condition does not hold.

Security condition: A data packet Pi arrived safely, if the receiver can unambiguously decide, based on its synchronized time and δt, that the sender did not yet send out the corresponding key disclosure packet Pj.

This stream authentication scheme is secure as long as the security condition holds. We would like to emphasize that the security of this scheme does not rely on any assumptions on network latency.

In order for the receiver to verify the security condition, the receiver needs to know the precise sending schedule of packets. The easiest way to solve this problem is by using a constant packet rate. The sending time of packet Pi is hence Ti = T0 + i/r where Ti is the time on the sender's clock and r is the packet rate (number of packets per second). In that case, the security condition which the receiver checks has the following form: ArrTi + δt < Ti+1, where ArrTi stands for the arrival time (on the synchronized receiver's clock) of packet Pi. The main problem with this scheme is that, in order to satisfy the security condition, the sending rate must be slower than the network delay from the sender to the receiver. This is a severe limitation on the throughput of the transmission. In addition, the basic scheme cannot tolerate packet loss. In particular, once a packet is dropped no further packets can be authenticated. We now gradually extend the basic scheme to eliminate these deficiencies.


next up previous
Next: Scheme II: Tolerating Packet Up: TESLA: Timed Efficient Stream Previous: Initial synchronization (preliminary discussion)

Adrian Perrig
Sat Sep 2 17:01:14 PDT 2000