6.4 Verifying RA Property for DTR1
6.4.3 Verification
To check that the DTR1 model satisfies the NA (and subsequently RA) property, one can show the following:
Specptu,P 8
q Impl (6.4.1)
It can be seen that Impl is large and complex. Even for a system with a small number of peers, Impl has too many states and transitions for it to be checked automatically by FDR. In this thesis, the approach for verifying Equation 6.4.1 involves first finding an abstraction for Impl that has a smaller state space. Next, a small instance of the abstraction is implemented in FDR, which confirms that the refinement relation is true. The final step is to derive a general proof for the abstraction model of any size. In the following, the main steps in arriving at the final the proof are presented informally in order. The general proof is shown in Appendix F. More details can be found in [30].
6.4.3.1 Weakening the adversary.
The adversary modeled in Impl is given infinite memory which allows it to remember and replaying messages. Consider the weakened adversary that has no memory and therefore is restricted to only relay messages. More specifically, the weakened adversary is constructed by replacing MemoryNoncepnq, MemorySigIpn, i, cq, MemorySigRpn, i, cq
and MemoryCertpi, l, r, cq with the following processes:
RelayNonce(n) learn.SqN.xny Ñ say.SqN.xny Ñ STOP
RelaySigR(n,i,c) learn.SqR.xn, i, cy Ñ say.SqR.xn, i, cy Ñ STOP
RelaySigI(n,i,c) learn.SqI.xn, i, cy Ñ say.SqI.xn, i, cy Ñ STOP
RelayCert(i,l,r,c) learn.Cert.xi, l, r, cy Ñ say.Cert.xi, l, r, cy Ñ STOP
Let Impl1 be the new model constructed by replacing the old adversary with the weakened one, then it can be shown that:
6.4.3.2 Reducing Nonces using the data independence technique.
In Impl1 , the Nonce Manager supplies fresh nonces to the other agents from the poten- tially infinite set Nonces. The model is therefore dependent of type Nonces, because the adversary and Nonce Manager process are constructed using parallel operators indexed over Nonces. To apply the data independence technique for Nonces, another abstraction to Impl1 that is independent of Nonces must be found. First, notice that Nonces can be divided into three distinct sets: Noncesad, Noncesca and Noncesvf that contain nonces
supplied to the adversary, CA and Verifier process respectively. Let Impl2 be the model derived from Impl1 as follows:
• Noncesad is removed, meaning that the data type for nonces used in Impl2 is
Noncesvf Y Noncesca. It is shown in [30] that removing these nonces does not
change the trace set of Impl1 .
• The Nonce Manager and adversary process are rewritten in recursive form so that they no longer consist of parallel sub-processes indexed over the set Noncesvf and
Noncesca. For example, the adversary sub-process that relay TPM signatures can
be rewritten as: RelaySigR(i) = learn?SqR.xn, i, cy Ñ RelaySigR(i) lsay.SqR.xn, i, cy ÑRelaySigR(i) RelaySigI(i) = learn?SqI.xn, i, cy Ñ RelaySigI(i) lsay.SqI.xn, i, cyÑRelaySigI(i)
It is shown in the technical report [30] that:
tracespImpl1q tracespImpl2q (6.4.3)
All the sub-processes of Impl2 , except for the Nonce Manager process, are inde- pendent of Noncesvf and Noncesca. They satisfy the PosConjEqDTStrict(ETvf) and
PosConjEqDTStrict(ETca) condition where:
ETvf tfake.NM .VF .SqN .xny|n PNoncesvfu
ETca tfake.NM .CA.SqN .xny|n PNoncescau
Let Impl3 be derived from Impl2 by removing the Nonce Manager process and replacing Noncesvf and Noncesca with tnvfuand tncaurespectively. Using the collapsing functions
that map Noncesvf and Nonceca to tnvfu and tncau respectively, Equation 6.3.2 and the
fact that events containing nonces are hidden in the model, it is shown in [30] that:
tracespImpl2qtracespImpl3q (6.4.4)
6.4.3.3 Reducing Counts using the data independence technique.
Impl3 is dependent of type Counts, because the operator ’¡’ and parallel operator indexed
over Counts are used in the TPMs and adversary process. Before reducing Counts to a smaller size, a new abstraction to Impl3 that is independent of Counts needs to be found. Let Impl4 be the model derived from Impl3 as follows:
• The TPMs process is rewritten so that new counter values are selected from the set of values that have not been used, instead of restricting them to be greater than the current value. This replacement is sound, because in the original model, the ’¡’
operator is used only to guarantee the freshness of the new value.
• The adversary process is rewritten in recursive form so that it no longer comprises parallel sub-processes indexed over Counts.
The following holds:
tracespImpl3q tracespImpl4q (6.4.5)
Impl4 is independent of type Counts and in fact satisfies the PosConjEqDT condition. Let Abstraction be the model derived from Impl4 in which the only counter value used is
cd. By applying a collapsing function that maps Counts to tcdu, it is shown in [30] that:
tracespImpl4q tracespAbstractionq (6.4.6)
This abstraction does not allow replay attacks (even though only two nonces and one counter value are ever used in Abstraction), because the adversary’s memory has been removed.
6.4.3.4 Automated verification.
The state space of Abstraction is smaller than that of Impl . Because Abstraction Impl,
to prove that Equation 6.4.1 holds, it is sufficient to show:
Specptu,P 8
q Abstraction (6.4.7)
To provide preliminary evidence that Equation 6.4.7 holds, the refinement is checked for a small model in which |P
8
| 3. Specptu,P 8
q and Abstraction are implemented
in FDR. The detailed implementation can be found in Appendix E. The refinement check returns true after evaluating 13,501,797 states and 73,831,002 transitions. This automated proof confirms that Equation 6.4.7 is true for the DTR1 model of at least 3 peers.
6.4.3.5 Generalizing the automated proof.
To prove that Equation 6.4.7 holds for P8
of any size, it is necessary to show that tracespAbstractionq tracespSpecptu,P
8
qq. The proof is constructed by induction as
follows (for more details, see Appendix F):
1. (Base case). Let tr be a trace of Abstraction such that træt|completeChurn|u xy
(æis the restriction operator, for example sqæX removes non-X elements from sq).
Then tr PtracespSpecptu,P 8
2. (Inductive case). For any θ xy, let tr be a trace of Abstraction such that:
træt|completeChurn|uθ ^ trP tracespSpecptu,P 8
Let tr1
be another trace of Abstraction, then:
e . tr 1 æt|completeChurn|uθ ^ xey ñ tr 1
P tracespSpecptuq,P 8
q