Rigorous State Based Methods 8th International Conference ABZ 2021 Ulm Germany June 9 11 2021 Proceedings 1st Edition Alexander Raschke
Rigorous State Based Methods 8th International Conference ABZ 2021 Ulm Germany June 9 11 2021 Proceedings 1st Edition Alexander Raschke
Rigorous State Based Methods 8th International Conference ABZ 2021 Ulm Germany June 9 11 2021 Proceedings 1st Edition Alexander Raschke
com
https://ebookmeta.com/product/rigorous-state-
based-methods-8th-international-conference-
abz-2021-ulm-germany-
june-9-11-2021-proceedings-1st-edition-alexander-
raschke/
OR CLICK BUTTON
DOWLOAD EBOOK
https://ebookmeta.com/product/optimization-and-learning-4th-
international-conference-ola-2021-catania-italy-
june-21-23-2021-proceedings-1st-edition-bernabe-dorronsoro/
https://ebookmeta.com/product/graph-transformation-14th-
international-conference-icgt-2021-held-as-part-of-
staf-2021-virtual-event-june-24-25-2021-proceedings-1st-edition-
fabio-gadducci/
https://ebookmeta.com/product/architecture-of-computing-
systems-34th-international-conference-arcs-2021-virtual-event-
june-7-8-2021-proceedings-1st-edition-christian-hochberger-
Software Engineering and Formal Methods: 19th
International Conference, SEFM 2021, Virtual Event,
December 6–10, 2021, Proceedings 1st Edition Calinescu
https://ebookmeta.com/product/software-engineering-and-formal-
methods-19th-international-conference-sefm-2021-virtual-event-
december-6-10-2021-proceedings-1st-edition-calinescu/
https://ebookmeta.com/product/hci-
international-2021-posters-23rd-hci-international-conference-
hcii-2021-virtual-event-july-24-29-2021-proceedings-part-ii-1st-
Alexander Raschke
Dominique Méry (Eds.)
LNCS 12709
Rigorous State-Based
Methods
8th International Conference, ABZ 2021
Ulm, Germany, June 9–11, 2021
Proceedings
Lecture Notes in Computer Science 12709
Founding Editors
Gerhard Goos
Karlsruhe Institute of Technology, Karlsruhe, Germany
Juris Hartmanis
Cornell University, Ithaca, NY, USA
Rigorous State-Based
Methods
8th International Conference, ABZ 2021
Ulm, Germany, June 9–11, 2021
Proceedings
123
Editors
Alexander Raschke Dominique Méry
Ulm University University of Lorraine
Ulm, Germany Vandœuvre-lès-Nancy, France
This Springer imprint is published by the registered company Springer Nature Switzerland AG
The registered company address is: Gewerbestrasse 11, 6330 Cham, Switzerland
Preface
The conference was due to be held during June 9–11, 2021, in Ulm, Germany, but
unfortunately the successes of the COVID-19 vaccination program will probably not be
seen for several months, so the conference was held virtually. In addition to the new
submissions, the authors of ABZ 2020 were also invited to present their papers, which
fortunately many took advantage of and thus a comprehensive program could be put
together.
Unfortunately, due to consequences of the COVID-19 crisis in the personal envi-
ronment, one of the keynote speakers understandably had to cancel at short notice.
However, we were all the more pleased to listen to the keynotes of Ana Cavalcanti,
University of York, UK, on “RoStar technology — a roboticist’s toolbox for combined
proof and sound simulation” and Gilles Dowek, Inria/ENS Paris-Saclay, France, on
“Sharing proofs across logics and systems: a boost for formal methods?”
The EasyChair conference management system was set up for ABZ 2021, sup-
porting submissions and the review process.
We would like to thank all the authors who submitted their work to ABZ 2021. We
are grateful to the Program Committee members for their high-quality reviews and
discussions. Finally, we wish to thank the Organizing Committee members for their
continuous support.
We hope the vaccination program will also reach poor countries as fast as possible
such that the COVID-19 crisis will decrease within the next two years and we can meet
together in person at ABZ 2023 in France.
For readers of these proceedings, we hope these papers are interesting and they
inspire ideas for future research that can be presented at the next ABZ!
General Chairs
Alexander Raschke Ulm University, Germany
Dominique Méry Université de Lorraine, LORIA, France
Program Committee
Yamine Ait Ameur IRIT/INPT-ENSEEIHT, France
Paolo Arcaini National Institute of Informatics, Japan
Richard Banach University of Manchester, UK
Egon Boerger Università di Pisa, Italy
Eerke Boiten De Montfort University, UK
Michael Butler University of Southampton, UK
Andrew Butterfield Trinity College Dublin, Ireland
David Deharbe ClearSy System Engineering, France
Juergen Dingel Queen’s University, Canada
Flavio Ferrarotti Software Competence Centre Hagenberg, Austria
Mamoun Filali-Amine IRIT, France
Marc Frappier Université de Sherbrooke, Canada
Angelo Gargantini University of Bergamo, Italy
Vincenzo Gervasi University of Pisa, Italy
Gudmund Grov Norwegian Defence Research Establishment (FFI),
Norway
Stefan Hallerstede Aarhus University, Denmark
Klaus Havelund Jet Propulsion Laboratory, USA
Ian J. Hayes The University of Queensland, Australia
Thai Son Hoang University of Southampton, UK
Frank Houdek Daimler AG, Germany
Alexei Iliasov Newcastle University, UK
Felix Kossak Software Competence Center Hagenberg, Austria
Regine Laleau Paris-Est Créteil University, France
Thierry Lecomte ClearSy, France
Michael Leuschel University of Düsseldorf, Germany
Alexei Lisitsa University of Liverpool, UK
Atif Mashkoor Johannes Kepler University, Austria
Jackson Mayo Sandia National Laboratories, USA
Stephan Merz Inria Nancy, France
Stefan Mitsch Carnegie Mellon University, USA
Rosemary Monahan Maynooth University, Ireland
Mohamed Mosbah University of Bordeaux, France
Cesar Munoz NASA, USA
viii Organization
Short Articles
Formalizing the Institution for Event-B in the Coq Proof Assistant . . . . . . . . 162
Conor Reynolds
1 Introduction
MapReduce provides a programming model for processing large data sets in an
asynchronous and distributed way [6]. A MapReduce computation comprises a
map phase processing input data in an asynchronous and parallel way to obtain
intermediate key-value pairs, a shuffle phase redistributing the data and a reduce
phase aggregating intermediate key-value pairs to yield the final results.
The bulk synchronous parallel (BSP) bridging model [16] is a widely-used
model for parallel computations by a fixed number of agents. A BSP computa-
tion consists of a sequence of supersteps, and each superstep is composed of a
c Springer Nature Switzerland AG 2021
A. Raschke and D. Méry (Eds.): ABZ 2021, LNCS 12709, pp. 3–16, 2021.
https://doi.org/10.1007/978-3-030-77543-8_1
4 Z. Li et al.
1
Theconcatenation ( ) used here is not same as the common concatenation denoted
by . It works more like aggregation and its real functionality varies among different
scenarios, but we still use the term concatenation to be consistent with [12].
6 Z. Li et al.
The following ASM 1 gives an ASM rule for agent j handling a memoryless
stream query. The variable taskj is the current phase of agent j which can be
either map or reduce. The rule bsp sync() is used for synchronization which indi-
cates the end of the current superstep for an agent. The agent will not continue
with the next superstep until all agents complete their current superstep. The
rule bsp send() can send the local data to other agents and the sent data is only
available in the next superstep, i.e. after bsp sync(). The rule bsp get() fetches
the data sent by other agents in the previous superstep.
ASM 1 (MapReduce for Memoryless Stream Query based on BSP).
IF taskj = “map”
THEN map outj := M ap F unction(sj )
bsp send(map outj )
bsp sync()
IF taskj = “reduce”
THEN map outj := bsp get()
reduce outj := concat(reduce outj , map outj )
bsp sync()
Unbounded Barrier-Synchronized Concurrent ASMs 7
Example 2. Consider the query Q2 which returns the average value of the num-
bers arrived so far. When evaluating the average of stream s, where s is divided
into two substreams s1 and s2 , first execute function K which calculates the
average value of s1 and s2 respectively. In this example, the lengths of two sub-
streams are also needed to calculate the total average, namely, I(si ) = {len(si )}.
Therefore, Q2 is semi-memoryless and can be evaluated as follows:
The following ASM 2 gives an ASM rule for agent j handling a semi-
memoryless stream query. The term tag is used to denote the informative set
I. The function bsp send tag() sends the tag to other agents and the function
bsp get tag() fetches the tags sent by others. The variable local tagj is the pre-
i−1
viously stored tags of agent j (i.e. I( Σ s(k) ) in Eq. 6). The function Agg plays
k=1
the role of Fagg which aggregates the previous and current tags and map-results.
8 Z. Li et al.
or equivalently,
|I(s1 ) + I(s2 )| ∈ Θ(|s|) (8)
Example 3. Consider the query Q3 which returns the median value of the num-
bers arrived so far. Given any stream, every number can be the candidate of the
median, which means the whole stream s is required to determine the median.
When evaluating the median of s, where s is divided into two substreams s1 and
s2 , we have I(s1 ) = s1 and I(s2 ) = s2 . Therefore, Q3 is memorable.
stream query raises the problem how to handle stream queries that require a
large amount of computations and a large storage space. A feasible solution
is to have a large amount of available agents3 , which allows agents to join,
e.g. when there are many parallel computation threads, or leave, e.g. when the
computation is almost sequential. This gives sufficient computing sources and
storage space to guarantee the stream query evaluation to succeed. However,
neither an unbounded number of agents nor a dynamic growth and shrinking of
a set of agents is foreseen in the BSP model. It is therefore required to extend the
BSP model to Infinite-Agent BSP model as we will do in the following section.
3.1 Axiomatization
There are two essential differences between the general BSP computation model
and the extended Inf-Ag-BSP computation model: (1) The total number of avail-
able agents can be countably infinite; (2) The agents can join or leave the set of
active agents in the BSP computation. Therefore, the axiomatization of Inf-Ag-
BSP can be derived from the axiomatization of the general BSP computation
model developed in [9] with those two differences taken into consideration.
For the first difference, we just slightly modify the number of available agents
from finite to countably infinite. This extension is feasible, as general BSP com-
putations are just restricted concurrent algorithms, and as such they can have
an infinite number of agents [3]. As for the second difference we introduce a local
variable joini and a joining set Jn . The variable joini is a function symbol of
3
In theory, we can assume that the number is countably infinite, provided we restrict
the model such that only finitely many of them will be simultaneously active.
10 Z. Li et al.
arity 0 in the local signature of each algorithm. When the algorithm is going to
join the set of active agents, the variable will be set to true; when the algorithm
decides to leave the BSP, it will be reset to false. The joining set Jn contains
the identifiers i of the active agents which have joined in state Sn . In addition,
requiring Jn to be a finite set ensures that only finitely many agents join at the
same time.
However, there remains another issue concerning the join/leave behavior,
which concerns when an agent is allowed to join or leave the BSP computation.
As for join we require any new agent to join only in the communication phase
because it needs to receive data to manipulate in the next computation phase.
As for leave we require that an agent can leave only after communication, i.e.
in the computation phase, because an agent may send some computed data to
other agents in the communication phase. All above considerations motivate the
axiomatization of Inf-Ag-BSP in the following Definition 4, which originates
from that of the general BSP model with several necessary restrictions and
modifications.
(1) The subsignatures Σi,loc are pairwise disjoint, and each of them contains the
corresponding function symbols bari and joini of arity 0;
(2) For Ai , all locations (ci,j , v) are write-only;
(3) For Ai , all locations (cj,i , v) are read-only;
(4) The function symbol barrier has arity 0 and is monitored for all agents ai
(i = 0);
(5) For A0 , it monitors bari and joini .
4
The definitions of the notations used here can be found in [9, Def. 2.2].
Unbounded Barrier-Synchronized Concurrent ASMs 11
(3) If there exists an update (l, v) ∈ Δn with a location of form l = (ci,j , v), then
all updates in Δn (except (barx , false) and {(bary , true), (joiny , true)})
have this form and valSa(n) (barrier) = true holds for all a ∈ Agn ;
(4) If there exists no update (l, v) ∈ Δn with a location of the form l = (ci,j , v),
then valSa(n) (barrier) = false holds for all a ∈ Agn ;
(5) If non-trivial update (joini , true) ∈ Δn , then (bari , true) ∈ Δn ;
(6) If non-trivial update (joini , false) ∈ Δn , then valSai (n) (bari ) = false;
(7) Whenever (bari ∧ ¬barrier) ∨ (¬bari ∧ barrier) holds for any agent i ∈ Jn
in state Sn , then Δai (n) (res(Sn , Σi )) = ∅;
(8) The location barrier is lazy, namely, it only changes value when all bari for
i ∈ Jn have changed their values from true to false (or false to true).
1. The value of barrier in state Sij is false for even j and true for odd j.
2. For all x with ij ≤ x < ij+1 the update set Δx (with Sx + Δx = Sx+1 )
satisfies:
5
Note that it still has to be ensured that an agent leaving the computation does this
after completing its step. This, however, has to be ensured by the specification of
the programs of the agents.
12 Z. Li et al.
(a) If j is even, then all updates in Δx affect locations of the form (f, v) with
k
f ∈ i=1 Σi,loc .
(b) If j is odd, then none of the updates in Δx affects a location of the form
k
(f, v) with f ∈ i=1 Σi,loc .
3. For all j, all x with ij−1 ≤ x < ij and all agents a ∈ Ag x we have ij−1 ≤ a(x).
5 Conclusion
In this paper, we extended MapReduce to handle different classes of stream
queries based on the BSP model. We distinguished memoryless, semi-memoryless
and memorable stream queries. The increasing need for memory and the increas-
ing number of parallel map/reduce tasks in memorable stream queries motivated
the extension of the general BSP model to Inf-Ag-BSP model. For this we devel-
oped a behavioral theory for the Inf-Ag-BSP model based on the theory of the
general BSP model, and we showed how the extended model is used to refine the
16 Z. Li et al.
References
1. Blass, A., Gurevich, Y.: Abstract state machines capture parallel algorithms. ACM
Trans. Comput. Logic 4(4), 578–651 (2003)
2. Blass, A., Gurevich, Y.: Abstract state machines capture parallel algorithms: cor-
rection and extension. ACM Trans. Comp. Logic 9(3), 1–32 (2008)
3. Börger, E., Schewe, K.-D.: Concurrent abstract state machines. Acta Inf. 53(5),
469–492 (2015). https://doi.org/10.1007/s00236-015-0249-7
4. Börger, E., Schewe, K.D.: A behavioural theory of recursive algorithms. Fundam.
Inf. 177(1), 1–37 (2020)
5. Costa, V.G., Marı́n, M.: A parallel search engine with BSP. In: Third Latin Amer-
ican Web Congress (LA-Web 2005), pp. 259–268. IEEE Computer Society (2005).
https://doi.org/10.1109/LAWEB.2005.7
6. Dean, J., Ghemawat, S.: MapReduce: simplified data processing on large clusters.
In: Proceedings of the 6th Conference on Symposium on Opearting Systems Design
& Implementation, OSDI 2004, vol. 6, p. 10. USENIX Association (2004). http://
dl.acm.org/citation.cfm?id=1251254.1251264
7. Dershowitz, N., Falkovich-Derzhavetz, E.: On the parallel computation thesis.
Logic J. IGPL 24(3), 346–374 (2016). https://doi.org/10.1093/jigpal/jzw008
8. Ferrarotti, F., Schewe, K.D., Tec, L., Wang, Q.: A new thesis concerning synchro-
nised parallel computing - simplified parallel ASM thesis. Theor. Comp. Sci. 649,
25–53 (2016). https://doi.org/10.1016/j.tcs.2016.08.013
9. Ferrarotti, F., González, S., Schewe, K.D.: BSP abstract state machines cap-
ture bulk synchronous parallel computations. Sci. Comput. Program. 184, 102319
(2019). https://doi.org/10.1016/j.scico.2019.102319
10. Gava, F., Pommereau, F., Guedj, M.: A BSP algorithm for on-the-fly checking
CTL* formulas on security protocols. J. Supercomput. 69(2), 629–672 (2014).
https://doi.org/10.1007/s11227-014-1099-8
11. Gurevich, Y.: Sequential abstract-state machines capture sequential algorithms.
ACM Trans. Comp. Logic 1(1), 77–111 (2000). https://doi.org/10.1145/343369.
343384
12. Gurevich, Y., Leinders, D., Van den Bussche, J.: A theory of stream queries. In:
Arenas, M., Schwartzbach, M.I. (eds.) DBPL 2007. LNCS, vol. 4797, pp. 153–168.
Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-75987-4 11
13. Inda, M.A., Bisseling, R.H.: A simple and efficient parallel FFT algorithm using
the BSP model. Parallel Comput. 27(14), 1847–1878 (2001)
14. Pace, M.F.: BSP vs. MapReduce. In: Ali, H.H., et al. (eds.) Proceedings of the
International Conference on Computational Science (ICCS 2012). Procedia Com-
puter Science, vol. 9, pp. 246–255. Elsevier (2012)
15. Schewe, K.-D., Wang, Q.: A simplified parallel ASM thesis. In: Derrick, J., et al.
(eds.) ABZ 2012. LNCS, vol. 7316, pp. 341–344. Springer, Heidelberg (2012).
https://doi.org/10.1007/978-3-642-30885-7 27
16. Valiant, L.G.: A bridging model for parallel computation. Commun. ACM 33(8),
103–111 (1990). https://doi.org/10.1145/79173.79181
Towards ASM-Based Automated Formal
Verification of Security Protocols
1 Introduction
With the rise of Internet and other open networks, the world became more and
more connected, thus technology and data have taken more significant roles in
our daily lives. A report conducted in 2017 by Domo [20] estimated that by
2020 (without taking in consideration the COVID-19 outbreak that intensified
the process) 1.7MB of data would be created every second for every person on
earth. This massive amount of data, often sensitive, is shared among users by
means of communication protocols. A large number of security protocols have
been developed and deployed in order to provide security guarantees (such as
authentication of actors, or secrecy of some pieces of information) through the
2 Background
2.1 Security Protocols
Although there is a wide range of protocols, differing by the number of principals
(or actors), the number of messages, the goals of the protocol (that may often
be expressed with a list of desired security properties), they all share a common
structure. Indeed, a communication protocol consists of a sequence of messages
between two or more principals. Each message may be written in the form:
which specifies:
– The principals (or actors) exchanging messages (in general, symbols A and
B represent arbitrary principals, S a server). In particular, the direction of
the arrow specifies the sender and the receiver of the message.
– The order in which messages are sent, and their specific payload. In particular,
M1 is a label identifying the message, whereas message payload specifies the
actual content of the message.
In secure protocols, payloads can be partially or totally ciphered, either by
symmetric-key encryption (in this case, KAB is often used to specify a key shared
between actors A and B, used both to encrypt and decrypt), or by asymmetric-
−1
key encryption (here, KB and KB are used to specify a public and private key
of B, respectively). Message payloads can contain other information, such as
nonces (N ), timestamps (T ), etc.
The security goals are often defined with respect to CIA (Confidential-
ity, Integrity, Authentication) triad. The most common are confidentiality or
integrity of message payloads, or entity authentication (i.e., the process by which
20 C. Braghin et al.
the exchanges with the certification authority to get the public keys). It consists
of three messages: in the first message, principal A sends to B a message con-
taining her identity, A, and a nonce, NA , to avoid replay attacks (i.e., reuse of
old messages, often called a challenge message), that only B can decrypt with
his private key. B ’s answer (message M2) is ciphered with A’s public key and
contains nonce NA to authenticate B (he is the only one able to decrypt mes-
sage M1 and obtain NA in clear), and a nonce NB to authenticate A with B.
Since message M2 is encrypted with A’s public key, she is the only one who can
decrypt it, thus if B receives message M3 containing nonce NB encrypted with
his public key, A is authenticated, too.
The SSL protocol was introduced by Netscape to exchange a session key and
mutual authentication. In message M1, client A sends a session key KAB to
server B. In the second message, B produces a challenge NB , which A signs and
returns to B along with a certificate CA , in case B does not have her public key.
Also in this case, A is authenticated when B receives the signed nonce.
In general, a secure protocol is used to communicate along an insecure net-
work in an untrusted environment, such as Internet. That is, the communication
channel is shared among possibly untrusted principals. This means that any
arbitrary adversary E may try to subvert a protocol run. It is common to distin-
guish between passive and active attackers, which differ in the capabilities they
have. The passive attacker is able to eavesdrop the channel, whereas an active
attacker controls the network and can delete, inject, modify and intercept any
message and is only limited by the constraints of the cryptographic methods
used (i.e., the classical symbolic Dolev-Yao model [19] assuming perfect cryp-
tography). In this fully untrusted scenario, it is also wrong to assume that an
intended principal of the protocol always behaves honestly.
Both the above protocols are vulnerable to this attack. In NSPK, if A starts
a session of the protocol with a dishonest principal E, E may start a new session
of the protocol with B to whom (s)he forwards all the messages (s)he receives
from A, where (s)he just changes the key used to encrypt. As a consequence, B
Towards ASM-Based Automated Formal Verification of Security Protocols 21
will think to run a protocol session with A and not with E (the solution is to
add the identity of the intended receiver in message M2, i.e., {NA , NB , B}KA ).
In the SSL protocol, B can be a dishonest principal opening a session with
another principal C, making C to believe (s)he is talking to A (i.e., B imperson-
ates A with C by showing the nonce signed by A in message M3). The attack
may be avoided by modifying message M3 in {CA , {A, B, KAB , NB }K −1 }KAB .
A
ASMs [13,14] is the formalism that we use for modeling security protocols. They
are a state-based formal method, which extends Finite State Machines (FSMs) by
replacing unstructured control states with algebraic structures (i.e., domains of
objects with functions defined on them), and performing state transitions by fir-
ing transition rules. At each computation step, all transition rules are executed in
parallel by leading to simultaneous (consistent) updates of a number of locations
– i.e., memory units defined as pairs (function-name, list-of-parameter-values)–,
and therefore changing functions interpretation from one state to the next one.
Location updates are given as assignments of the form loc := v, where loc is a
location and v its new value. Among other rule constructors, those used for our
purposes are constructors for: guarded updates (if-then, switch-case), paral-
lel updates (par), sequential actions (seq), nondeterministic updates (choose).
Functions which are not updated by rule transitions are static. Those updated
are dynamic, and distinguished in monitored (read by the machine and modified
by the environment), controlled (read and written by the machine).
ASMs allow modeling different computational paradigms, from a single agent
executing parallel actions, to distributed multiple agents interacting in a syn-
chronous or asynchronous way. We exploit the latter computational model for
modeling security protocols. More specifically, a multi-agent ASM is a family of
pairs (a, ASM(a)), where each agent a : Agent executes its own machine ASM(a)
specifying its local behavior, and contributes to determine the next state. A pre-
defined function program on Agent indicates the ASM associated with an agent.
As an example, Fig. 2 shows an excerpt of the multi-agent ASM models of the
two case studies, where the three agents, agentA (for principal A), agentB (for
principar B) and the attacker agentE, operate in a distributed setting according
to the protocol rules (see Sect. 2.1 for more details).
Within transition rules, each agent can identify itself by means of a special
0-ary function self : Agent which is interpreted by each agent a as itself. An
ASM agent can behave according to a control-state ASM [14]: transition rules
are guarded by a function mode, which is updated in the rule body and whose
values resemble the states of a Finite State Machine. This machine model has
been used for specifying principal behaviour (i.e., actor’s actions).
the actors (KK for message M1, NK for M2, CSNK for M3 - see Code 1). Similarly,
PayloadSSL instantiates Payload with elements representing the different
data a message can contain (e.g., SKAB refers to the symmetric key KAB ).
Note that it also contains information to deal with an adversary principal
(as SKAE, symmetric key KAE between A and the intruder - see Sect. 3.1).
PayloadSectionSSL instantiates PayloadSection with labels for significant
groups (e.g., SIGN NONCE identifies data {NB }K −1 ).
A
Actor’s Actions. Each (honest) protocol actor runs a program having the
same structure; this reflects the common pattern that crypto-protocols have.
Figure 2 in Sect. 3.2 shows the pattern similarity in the two case studies, SSL
and NSPK protocols. Each rule in the actor’s program (e.g., r agentARule
for actor agentA) models the role that the actor has in the protocol run. Each
actor has a memory: (s)he keeps information related to the protocol session
by means of the following built-in functions available in the library.
controlled knownAsimPubKey: Agent −> Powerset(AsimPubKeyType)
controlled knownAsimPrivKey: Agent −> Powerset(AsimPrivKeyType)
controlled knownSimmKey: Agent −> Powerset(SimmKeyType)
controlled knownPayload: Agent −> Powerset(PayloadType)
be selected by the monitored function chosenMode and the same protocol can
be analysed in the two passive/active intruder scenarios.
enum domain Modality = {ACTIVE | PASSIVE}
monitored chosenMode: Modality
controlled mode: Modality
In PASSIVE mode, agentE can view all the messages of the communication
between agentA and agentB, save all information transmitted in clear and
those contained in message payloads that (s)he is able to decrypt. In ACTIVE
mode, agentE operates under the Dolev-Yao assumption and controls the
traffic: besides the capabilities as passive attacker, (s)he can craft messages
by using information stolen (from messages sent by agentA or agentB) and
send fake messages (consistent with the protocol rules).
For each message type, the intruder has rules for working in passive or active
mode. Rules r message eavesdrop model the intruder operating as passive
attacker; rules r message craft model the intruder operating as external active
actor and as protocol actor with malicious behavior (in both cases, (s)he is able
to craft new messages).
Unlike agentA and agentB, agentE has no internalState and does not
work according to a control-state ASM. His/her behaviour depends on what (s)he
views in the traffic. As the other agents, agentE has a knowledge (knownSimmKey,
knownAsimPrivKey, knownAsimPubKey, knownPayload) that can be exploited to
steal information or craft fake messages. To endow the intruder with a prior
knowledge, it is enough to set initial values for the knowledge functions.
Figure 2 reports the high level ASM models of the two case studies by using
predefined domains and functions of the library CryptoLibrary and instantiat-
ing domains when required. The two models have the same structure: each one
is a multi-agent ASM with programs for honest actors agentA and agentB –
according to the actor’s role in the protocol–, and for the attacker agentE; each
honest actor has a rule for each kind of protocol message (s)he has to build, plus
the final B’s rule for the final message check; the attacker has rules to handle
all possible behaviours (as eavesdropper and as message crafter) as described
before. Call rules definitions differ depending to the protocol.
Code 4 shows, as an example, an excerpt of the rule r message CSNK of
protocol SSL, in the case of A talking with B. The rule is executed by agentA
when she is in (internal) state WAITING NK and receives a message of label NK
(step M2): she can decrypt the message and sends a message of label CSNK, which
is encrypted by the symmetric key between herself and the expected receiver
agentB; the message has two payload sections: one of label CERT, which has
payload CA, and one of label SIGN NONCE, which has the same payload (i.e., NB)
of the previously sent message having label NK and payload section NONCE, signed
by the private actor’s key PRIVKA.
rule r message CSNK=
let (e=agentE) in
if (internalStateA(self)=WAITING NK and protocolMessage(e,self)=NK) then
if (receiver=agentB) then
if (decrypt sim(NK,{NONCE},e,self)=true) then
par
protocolMessage(self,e):= CSNK
payload(CSNK,CERT,self,e):= {CA}
payload(CSNK,SIGN NONCE,self,e ):= payload(NK,NONCE,e,self)
sign(CSNK,SIGN NONCE,self,e):= PRIVKA
encrypt sim(CSNK,{CERT,SIGN NONCE},self,e):= sim keyAssociation(self,receiver)
internalStateA(self):= END A
endpar
endif
..... endif endlet
In this section, we introduce schema also for specifying in CTL formulas the
security goals of a protocol in terms of the CIA triad.
Confidentiality. In communication protocols, encryption is used to obtain data
confidentiality: only actors with correct decryption keys are able to access data.
Let x be a given exchanged data, confidentiality of x is assured by proving
that there is not a state in the future in which E knows x:
¬EF ( contains(knownPayload(agentE), x))
This property is false in the NSPK protocol. Code 5 shows a scenario of the
NSPK protocol model, which reflects the counterexample reported by the model
checker: if agentA initiates a protocol run with agentB under the Dolev-Yao
assumption of an active attacher agentE (the set command is used to assign
specific values to monitored functions) controlling the traffic, upon a certain
number (not reported here) of machine steps (the command step forces a step
of the ASM execution), the protocol run ends with both agents agentA and
agentB successfully completing the protocol, but also with the shared secret NB
known by the attacker (the check command is used to inspect location values
in the current state of the underlying ASM).
Note that if message M2 is patched using message {NA , NB , B}KA , the prop-
erty holds.
scenario NB interception
load NS/NS.asm
set chosenReceiver:=agentE;
set chosenMode:=ACTIVE;
step
check internalStateA(agentA)=IDLE A and internalStateB(agentB)=WAITING NAK;
step
check internalStateA(agentA)=WAITING NNK and
internalStateB(agentB)=WAITING NAK and protocolMessage(agentA,agentE)= NAK
and payload(NAK,NONCE ID,agentA,agentE)={NA,ID A} and
encrypt asim(NAK,{NONCE ID},agentA,agentE)=PUBKE;
step
.....
step
check internalStateA(agentA)=END A and internalStateB(agentB)=END B;
check contains(knownPayload(agentE),NB);
Integrity. Exchanged message has not been altered. Thus, a message can be
considered integral when the payload sent is the same as the payload received.
Let m be a message exchanged. Integrity of m is assured by proving that
there is not a state in the future in which E altered the payload section sec of the
message m:
¬EF ( payload(m,sec,agentA,agentE)=payload(m,sec,agentE,agentB))
In none of the two protocols there is integrity violation, since there are two sep-
arate sessions and the attacker does not modify any message along the channel.
Authentication. A principal proves his/her identity by demonstrating knowl-
edge of a secret (not necessarily shared) and of an information that varies over
time (to avoid replay attacks), without explicitly revealing the secret.
Let x be a secret that must be shared by the two actors at the end of the
protocol execution. Authentication of entity x is assured by proving that if there
is a state in the future in which A and B know x, then E does not know x.
EF ( contains(knownPayload(agentB), x) and contains(knownPayload(agentA), x)) →
AG( ¬(contains(knownPayload(agentE), x)))
30 C. Braghin et al.
This property does not hold; if message M3 is patched using the message
{CA , {A, B, KAB , NB }K −1 }KAB , the property is true.
A
4 Related Work
After the seminal paper on BAN logic [15] introducing one of the first formalisms
designed to reason about protocols, many techniques and tools have been pro-
posed for verifying protocols.
Tamarin [26] is a well-known tool dedicated to the formal analysis of secu-
rity protocols. It has been used to verify complex protocols such as TLS, 5G, or
RFID protocols. It uses its own modelling language to specify protocols, adver-
sary models and security properties. For the verification process, it is based on
deduction and equational reasoning. However, one of its drawback is its lack of
full automation: for many protocols, the user needs to write intermediate lem-
mas (called sources lemmas), or to manually guide the proof search. In [16],
the authors propose a technique to automatically generate sources lemmas that
works for simple protocols, but still needs user interaction in case of large proto-
cols. Scyther [17] is somehow an extension of Tamarin, with a more accessible
and explicit modelling language by means of a graphical user interface.
ProVerif [11] uses applied pi-calculus [27] as modelling language, and a reso-
lution algorithm on Horn clauses for the verification. It may need human inter-
vention when a protocol proof fails because of some internal approximations, or
it may find false attacks. However, it can verify protocols without arbitrarily
bounding the number of executed protocol sessions or the message size.
Verifpal [24] is a more recent framework inspired by ProVerif. As us, the
authors recognise that the limited usage of formal methods is mainly due to
the fact that the languages employed by most tools is too difficult and abstract.
Verifpal uses a simple modelling language similar to the usual protocol notation
that we introduced in Sect. 2.1 at the cost of some compromises in analysis
completeness. For more sound proofs, translation of models in ProVerif and
Coq [10] are possible. The tool’s internal logic relies on the deconstruction and
reconstruction of abstract terms, similar to existing symbolic verification tools.
AVISPA (Automated Validation of Internet Security Protocols and Appli-
cations) [5] is a platform that groups several tools, using different verification
techniques. It uses HLPSL (High-Level Protocol Specification Language) as pro-
tocol description language. The HLPSL model is then translated in an interme-
diate model, that is given as input to four tools: SATMC (SAT-based Model-
Checker) [6] for a bounded state space, CL-AtSe and OFMC for a bounded
number of sessions, TA4SP for an unbounded number of sessions.
The use of ASMs to model security protocols has been tackled in the past.
However, most of the works are rather outdated and they consist on a single case
Another random document with
no related content on Scribd:
et nos ad tuas nuptias
vocatus rex suscipias.’