B Strands SSM
B Strands SSM
B Strands SSM
Sibylle Fröschle1
Department für Informatik
Universität Oldenburg
Oldenburg, Germany
Abstract
The strand space model is one of the most successful and widely used formalisms for analysing security
protocols. This might seem surprising given that the model is not able to reflect choice points in a protocol
execution: the key concept in the strand space model is that of a bundle, which models exactly one possible
execution of a security protocol. Inspired by the branching processes of Petri nets, we show that branching
can be introduced into the strand space model in a very natural way: bundles can be generalized to
branching bundles, which are able to capture several conflicting protocol executions. Our investigations of
the theory of branching bundles will motivate the concept of symbolic branching bundles, and culminate in
the result that every protocol has a strand space semantics in terms of a largest symbolic branching bundle.
We hope our results provide a strong theoretical basis for comparing models and providing process calculi
semantics in security protocol analysis. Altogether our work is related but different to a series of works by
Crazzolara and Winskel. Throughout we will profit from a close relationship of the strand space model to
event structures, which has already been pointed out by these authors.
Keywords: Models for security protocol analysis, strand spaces, event structures, branching processes
1 Introduction
The strand space model [5] is one of the most successful and widely used formalisms
for analysing security protocols. For example, it has been employed to verify security
properties by hand, to give formal semantics to protocol logics, and as the underlying
model of model-checking tools (c.f. [7]). In spite of this success two points of criticism
have been brought against it: one is that, in contrast to models based on multiset
rewriting, it is an ad hoc model rather than rooted in a rich theory. The second is
that it is not able to reflect aspects of branching such as choice points in a protocol
execution. To explain the latter we recall that the central concept of the strand
space model is that of the bundle. A bundle models exactly one snapshot of a
protocol execution: a set of strands represents the sessions that have occurred so
far while a relation between the send and receive events of the strands describes
how messages have flowed between them.
1 Email: [email protected]
c 2008
! Published by Elsevier Science B. V.
Fröschle
Both points of criticism have been countered by results of Crazzolara and Winksel
[2,1,3]. On the one hand, they have shown that the strand space model is closely re-
lated to event-based models for concurrency such as event structures. On the other
hand, aiming to obtain compositional event-based semantics for protocol languages,
they have shown how the strand space model can be extended by a notion of conflict
[3]. Their notion of conflict is introduced at the level of strand spaces, which are
conceptually a level lower than bundles: a strand space fixes all the sessions that
are to be considered in the protocol analysis; it is the space from which bundles are
‘carved out’.
In this paper our thesis is that branching can be introduced into the strand
space model very directly at the conceptual level of bundles. The idea is to general-
ize bundles to branching bundles in the same way as in Petri net theory branching
processes generalize Petri net processes. Petri net branching processes [4] are in-
troduced as a formalization of an initial part of a run of a Petri net, which can
include conflicting choices. They come with a very satisfying theory: the branching
processes of a Petri net form a complete lattice (modulo isomorphism) with respect
to a natural notion of approximation. The largest element of this lattice captures
all possible behaviour of the Petri net, and is called its unfolding.
In this paper we wish to investigate whether protocols have as satisfying a theory
of branching bundles. If every protocol P had indeed a largest branching bundle,
this branching bundle would capture all possible behaviour of P , and would thus
provide a natural strand space semantics. This could provide a strong theoretical
basis for comparing models and providing semantics for protocol languages. Our
contributions are as follows:
(1) We show that bundles can indeed be generalized to branching bundles in a
very natural way. Branching bundles are able to capture several conflicting protocol
executions.
(2) We investigate the theory of branching bundles. We find that every branching
bundle can be viewed as a labelled prime event structure. This will motivate a
notion of computation state for branching bundles in terms of sub-bundles, and a
transition relation between them. Following the approach of [4] we will investigate
whether the branching bundles of a protocol form a complete lattice with respect to
a natural notion of approximation. We will however obtain a negative result: the
branching bundles of a protocol do not even form a complete partial order.
(3) By analysing this negative result we will, however, be led to a notion of sym-
bolic branching bundle. We will obtain that the symbolic branching bundles of a
protocol indeed form a complete lattice (modulo isomorphism). Thus, every proto-
col can be given a strand space semantics in terms of a largest symbolic branching
bundle. We will motivate that this semantics is suitable for most situations in
security protocol analysis.
In the following section we will introduce the strand space model using variations
on the original definition of [2] and [6]. The remainder of the paper is structured
according to the above contributions. All proofs can be found in the full version of
the paper.
2
Fröschle
Message Algebra
In the following we assume that messages are modelled by a message algebra. The
results we present here are independent of the actual structure of this algebra. We
only assume a set of messages Mesg, a set of atomic messages AMesg, from which
Mesg is built up from, and a binary relation & on Mesg that says when one message
is contained in another. Messages and atomic messages may contain variables. A
message is ground if it does not contain any variables. We denote the set of ground
messages by GMesg.
Intruder Model
The power of the Intruder is typically modelled by two ingredients: the set of
messages initially known to the Intruder such as all public keys and his own private
key; and a set of Intruder roles, which specify the Intruder’s basic elements of attack
such as decrypting a message with a key that he has already obtained. (Intruder
roles are originally called parametric Intruder traces [5].) Similarly to protocol roles,
Intruder roles are essentially sequences of signed messages, where ‘+’ denotes output
and ‘−’ denotes input.
The results here are independent of the actual format of the Intruder roles.
We only assume that an Intruder theory is given as a pair I = (KI , RI ) where
KI ⊆ GMesg is the set of initial Intruder knowledge and R is the set of Intruder
roles, and that each Intruder role is a finite sequence of actions of the following
form:
IAct = { + M | M ∈ Mesg} ∪ { − M | M ∈ Mesg}
∪ { + M of I -Knowledge | M ∈ Mesg}.
We redefine the set of actions Act defined in the previous paragraph to include
actions of this form: Act := Act ∪ IAct.
2 This notion slightly varies from the standard notion of strand space related to in the introduction.
5
Fröschle
• + Client Hello
• - Server Hello
• - Certificate
• +{a, na }Kb
- Certificate Request • • - Server Hello Done
(a) (b)
Fig. 1. Sources of branching within a session
3 Branching Bundles
We now define our concept of branching bundles. As motivated in the introduction
branching bundles should be capable of representing several conflicting protocol
executions. To obtain them as a natural generalization of bundles, we will define
them as bi-graphs of events labelled by actions of GAct. In contrast to bundles
we will allow them to contain events that represent conflicting points in a protocol
execution. We can distinguish between three situations when two events e1 and e2
of a protocol execution should naturally be considered to be in conflict with each
other:
(i) e1 and e2 belong to different futures of the same session;
(ii) one of e1 and e2 , say e1 , is a send event that sends as part of its message
a freshly generated atomic message n, while the other event, e2 , contradicts
unique origination of n: e2 sends n as part of its message but n has never been
received earlier in the session of e2 .
(iii) e1 and e2 are causally dependent on two events that are in conflict according
to (i) or (ii).
The first situation motivates that a concept of branching bundles must be based
on a concept of branching strands. So let us analyse in turn what sources of branch-
ing there are within a session. When does a session split into different futures?
(i) The receive actions of a protocol specification typically contain variables to be
bound to parts of the incoming message. A session with such a receive action
will have different futures depending on the received message. (The different
futures will, however, be equivalent modulo the value that is bound to the
respective input variable.) This situation is depicted in Figure 1(a).
(ii) The protocol specification may contain choice points. For example, the course
of the SSL/TLS handshake protocol depends on which method for establishing
the pre-master-secret is negotiated at the start, and on whether client authen-
6
Fröschle
tication is requested by the Server or not. Typically the choice between several
options of a protocol will be resolved by received input. On the other hand, to
abstract away from detail, we may allow protocols to contain nondeterministic
choice. The first situation is depicted in Figure 1(b).
There is yet another source of branching if we take a purely observational view.
Say Eavesdropper Eve observes the first two actions of a session, but she cannot tell
to which role these actions belong to: according to their format the actions could
form an initial part of an instance of role A or of role B. Then in one future of
Eve the observed session may evolve into an instance of role A, whereas in another
future of Eve it will evolve into an instance of role B.
(iii) An observed session may have different futures due to ambiguity in the protocol
specification.
To include (iii) as a source of branching is a design decision and may seem
counter-intuitive at first. To include it seems, however, in the spirit of the strand
space model: it is consistent with the fact that if there is ambiguity in the protocol
specification then a strand may be interpreted as an instance of several roles. To
resolve this type of ambiguity one would need to keep a role identifier at each strand,
which would make the model less abstract and technically cumbersome. As we will
now see our decision to include (iii) leads to a very simple formalization of branching
strand. In the following, let P be a protocol.
Definition 3.1 A branching strand of P , abbreviated b-strand of P , is a labelled
tree s = (E, ⇒, GAct, l) such that all branches of s are strands of P . (Note that
this implies that branching strands are trees of finite depth.)
By definition every strand is a b-strand, and every b-strand whose events are
totally ordered is a strand. We carry over all the concepts defined for strands in
Section 2 in the obvious way. The notation ⇒-pred (e) naturally also carries over.
Having defined a notion of b-strands we obtain b-strand spaces in the obvious
way. A b-strand space of P is a pair B = (S, →) where S is a set of disjoint b-
!
strands of P , and → ⊆ E × E is a relation on the events of S, E = s∈S events(s).
Analogously to strand spaces, we will often view B as a labelled bi-graph (E, ⇒, →,
GAct, l). The three situations of conflict pinpointed in the beginning of the section
give rise to a binary conflict relation on the events of a b-strand space.
Definition 3.2 Let B = (E, ⇒, →, GAct, l) be a b-strand space of P . Two distinct
events e1 , e2 ∈ E are in immediate conflict, written e1 #1 e2 , if
(i) ⇒-pred (e1 ) = ⇒-pred (e2 ), or
(ii) sign(e1 ) = +, and there is n ∈ fresh(e1 ) such that n originates on e2 , or
(iii) the symmetric condition holds.
Two events e1 , e2 ∈ E are in conflict, written e1 #B e2 , if there exist distinct events
e"1 , e"2 ∈ E such that e"1 #1 e"2 and e"i (⇒ ∪ →)∗ ei for i = 1, 2. For e ∈ E, we say e is
in self-conflict if e#B e.
inition of bundles. However, Axiom (B6) will be dropped: the axiom on unique
origination is clearly not needed when events are allowed to be in conflict. On the
other hand, in the presence of conflict a new axiom will be required: we need to
make sure that events are never in conflict with any of the events they are causally
dependent on. Formally, this gives rise to the following definition.
8
Fröschle
4.1 Sub-b-bundles
We introduce a natural notion of sub-b-bundle, which formalizes when a b-bundle
is an initial part of another b-bundle.
In other words, B " is a sub-b-bundle of B if, E " ⊆ E, and for every e ∈ E " ,
(1) l" (e) = l(e), (2) ⇒" -pred (e) = ⇒ -pred (e), and (3) →" -pred (e) = → -pred (e)
(using the fact that B and B " are b-bundles). This shows that B " really is an initial
part of B.
We provide a characterization of the sub-b-bundles and sub-bundles of a b-
bundle B in terms of downwards-closed subsets of E. This will further illustrate
the concept of sub-b-bundle but will also be needed in the next section. A subset
E " of E is downwards-closed if, for all e1 , e2 ∈ E, if e1 ,B e2 and e2 ∈ E " then
e1 ∈ E " . If B " is a sub-b-bundle of B then E " is clearly downwards-closed. This
follows from the observation of the previous paragraph. On the other hand, every
downwards-closed set of events determines a sub-b-bundle in a natural way.
10
Fröschle
4.3 Approximation
Every b-bundle of a protocol P captures an initial part of the behaviour of P .
We now wish to investigate whether the b-bundles of P consistently approximate,
modulo isomorphism, a largest b-bundle. If every protocol P had indeed a largest
b-bundle, this b-bundle would capture all possible behaviour of P , and would thus
provide a natural strand space semantics for protocols. Furthermore, in view of the
results of the previous section this strand space semantics would come with a notion
of computation state in terms of bundles, and a transition relation between them.
The induced labelled transition system would give the corresponding interleaving
semantics of the protocol, while the protocol would also have an abstract partial
order semantics in terms of the induced labelled event structure.
First, we need to define a natural notion of approximation for b-bundles. Intu-
itively, one b-bundle approximates another when it is, up to isomorphism, an initial
part of the other. This can be formalized as follows.
Proof. To prove this result we will exhibit two b-bundles that have upper bounds
but no least upper bound. The b-bundles (which are also bundles) are presented in
Figure 2.
Bundle A contains one instance of trace +m1 +m2 and one instance of trace
−m1 −m2 , with the send and receive events matched up in the obvious way. Bundle
B contains two instances of trace +m1 +m2 and one instance of trace −m1 −m2 ,
with the receive events of the latter matched up to send events of different strands.
Observe that A and B are incomparable: B can clearly not be injectively folded
onto A; while there cannot be a homomorphism from A to B because there is no
strand in B with two outgoing message-flow arrows.
By a similar argument it is clear that any upper bound of A and B must contain
at least two instances of trace +m1 +m2 and two instances of trace −m1 −m2 . If
two b-bundles contain the same number of events and are comparable with respect
to ≤ then there will be a bijective homomorphism between them, and hence an
11
Fröschle
• −m1 • −m1
• −m2 • −m2
A B
• −m1 • −m1
• +m2 • +m2 • +m2 • +m2
• −m2 • −m2
• −m1 • −m1
• −m2 • −m2
U V
Fig. 2. m1 and m2 are ground messages, +m1 stands short for + fresh ∅ in m1 , and similarly for +m2 . It
is clear that there is a protocol P such that A to V are b-bundles of P .
isomorphism. Thus, any upper bound of A and B which contains only eight events
is, up to isomorphism, a minimal upper bound of A and B.
Consider b-bundles U and V of Figure 2. It is easy to check that both of them
are upper bounds of A and B. Further, both of them have only eight events, and
thus, up to isomorphism, they must be minimal upper bounds. On the other hand,
U and V are not isomorphic: e.g., U has an event labelled by +m1 with two outgoing
message-flow arcs while V does not. !
Remark 4.11 Those readers who are familiar with the strand space model may
wonder whether a counter-example could still be obtained if the →-relation in bun-
dles was disallowed to be forwards-branching (and the Intruder must duplicate mes-
sages explicitly). Note that for b-bundles forwards-branching would still be natural,
12
Fröschle
• +fresh a in m1
• +m2
• +m2
• −m2 • −m2
• +m3 • +m3
# • −m3
• +a
Axiom (SBB) is analogous to, and inspired by, a requirement for Petri net
branching processes (Definition 7 of [4]). We also derive a notion of symbolic bundle.
Naturally, they are based on symbolic b-strands.
We will now demonstrate that every b-bundle B of P can indeed be folded onto
a symbolic b-bundle. By induction on the causal depth of events we successively
identify those events that satisfy conditions (a) to (c) of the definition of symbolic
b-bundle. Formally, we define an equivalence relation ∼ on E ∪ {nil } inductively as
follows:
(i) nil ∼ nil ,
14
Fröschle
(ii) e1 ∼ e2 if
(a) l(e1 ) = l(e2 ),
(b) ⇒-pred (e1 ) ∼ ⇒-pred (e2 ), and
(c) →-pred (e1 ) ∼ →-pred (e2 ).
It is easy to check that ∼ is indeed an equivalence relation. Denote the equiv-
alence class of event e by [e]∼ . Given a b-bundle B, the folding of B, denoted by
fold (B), is defined to be the tuple (Ef , ⇒f , →f , GAct, lf ) where
• Ef = {[e]∼ | e ∈ E},
• ∀f1 , f2 ∈ Ef , f1 ⇒f f2 if and only if e1 ⇒B e2 for some e1 ∈ f1 , e2 ∈ f2 ,
• ∀f1 , f2 ∈ Ef , f1 →f f2 if and only if e1 →B e2 for some e1 ∈ f1 , e2 ∈ f2 ,
• ∀f ∈ Ef , l(f ) = a if and only if l(e) = a for some (or equivalently all) e ∈ f .
Proposition 5.4 Let B be a b-bundle of P .
(i) fold (B) is a symbolic b-bundle of P .
(ii) If B is a bundle then fold (B) is a symbolic bundle.
(iii) fold is a surjective homomorphism from B to fold (B).
On the other hand, every symbolic b-bundle can be transformed into a b-bundle
by disentangling non-conflicting strands that are glued together. In particular,
every symbolic bundle can be transformed into a bundle. (These connections will
be formalized in the full version of the paper.)
The transformations give rise to the following observation, which shows how
reachability problems on bundles can be reduced to reachability problems on sym-
bolic bundles.
Proposition 5.5 Assume a protocol P and a finite set of strands S of P . There
is a bundle B of P with S ⊆ strands(B) if and only if the events of S are conflict-
free and there is a symbolic bundle B " of P with traces(S) ⊆ traces(B " ). (We use
strands(B), traces(S), and traces(B " ) with the obvious meaning.)
This shows that it should be adequate to work with symbolic bundles in most
situations. Most verification problems for security protocols can be expressed as
reachability problems: check whether a situation that represents an attack can be
reached. In the strand space model this can be formalized as follows:
Given: A protocol P , and a finite set of strands S.
Decide: Is there a finite bundle B such that S ⊆ strands(B)?
result on Petri net branching processes [4]. The proof will be provided in the full
version of the paper.
Theorem 6.1 guarantees the existence of a unique maximal element in ISBB (P ),
which captures all possible behaviour of P in a symbolic fashion. We call it the
symbolic unfolding of P . Thus, every protocol has a strand space semantics in terms
of its symbolic unfolding. Further, by the results of Section 4.2 this semantics comes
with a notion of computation state in terms of symbolic sub-bundles, a transition
relation, and close relations to event structures.
It remains to be investigated whether restricting our attention to the symbolic
unfolding is indeed suitable in most situations of security protocol analysis. We
will also examine whether it can help with the state space explosion problem in
model-checking tools. On the theoretical side, the relationship between symbolic
b-bundles and b-bundles can be further formalized using category theory.
References
[1] Federico Crazzolara and Glynn Winskel. Events in security protocols. In ACM Conference on Computer
and Communications Security, pages 96–105, 2001.
[2] Federico Crazzolara and Glynn Winskel. Petri nets in cryptographic protocols. In IEEE IPDPS-01,
page 149, 2001.
[3] Federico Crazzolara and Glynn Winskel. Composing strand spaces. In FST TCS 2002, volume 2556 of
Lecture Notes in Computer Science, pages 97–108, 2002.
[4] Joost Engelfriet. Branching processes of Petri nets. Acta Inf., 28(6):575–591, 1991.
[5] F. Javier Thayer Fábrega, Jonathan C. Herzog, and Joshua D. Guttman. Strand spaces: Why is a
security protocol correct? In Symposium on Security and Privacy. IEEE Computer Society, 1998.
[6] Sibylle Fröschle. The insecurity problem: Tackling unbounded data. In CSF 2007, pages 370–384. IEEE,
2007.
16