2011). A high-level of abstraction is considered since
the aim of the formal model is to check the behavioral
functions of the system.
Figure 3 illustrates the behavior of the software
deployed on the car in the Car Reservation System.
The figure shows the different states the system can
have, with the transitions from and to each state. The
states, represented by the circle, are the system’s con-
ditions after or before a transition. One state the sys-
tem can have is idle. It is the initial state of the sys-
tem that shows that there is no ongoing process or
reservation. Another state is ”Car Unlocked” which is
reached after receiving a Car Unlock or Start Reser-
vation message. This state shows that there is an on-
going reservation or that the car is currently unlocked
and that the engine can now be started. The other
states are Reserved, Car Locked, Ongoing Session,
Res End Requested, and Verify END Session.
The transitions are the messages exchanged be-
tween the different components of the system to com-
mand it to act in a certain way. The transition mes-
sages with a question mark (?) mean that the system
is waiting to receive this message from another com-
ponent (Back Office, Mobile App, Badge, etc.). The
other transition messages with an exclamation mark
(!) represent the ones sent by the system to another
component after receiving the expected message. The
other labels are guards to verify some system condi-
tions.
The first step is for the server to send an Add
Reservation request to the system embedded in the
car. Then, the reservation is initiated by the Start
Reservation request, where the car is unlocked, and a
driving session is started. The car at this stage can be
locked using a Lock Car request for an intermediate
stop. Then, the car is unlocked, using the Unlock Car
request, and the session resumes. The session can be
finished using the END RES Request. Then, the car
is locked using the Lock Car request, and it goes back
to idle after verifying the conditions of the car lock
and the network connection. Also, after each request,
a confirmation message is sent to the server.
Figure 4 shows an abstract model of the server
which, based on the requests previously define, com-
municates with the system embedded in the car.
We show another model in Figure 5. It represents
using an ID badge to control the car lock using the
Lock Car and Unlock Car requests. Then, the entire
model, with its different components, is verified to en-
sure the well functioning of the system.
Some of these functional requirements are:
- If the car is unlocked by the server or the ID, the
state in the server should also be car unlocked.
- If the car is locked by the server or the ID, the
state in the server should also be car locked.
- If the car is in the Ongoing Session state, the
state in the server should be car unlocked (In service
of the user).
- If the car is in the reservation end requested state,
the state in the server should be car unlocked.
- If the car is in the Verify end session state, the
state in the server should be car locked.
Using the methodology presented in Figure 1,
these functional requirements have been encoded in
queries and verified on this model. However, this
level of specification lacks the conditions necessary
for identifying and formalizing the security require-
ments. To achieve this, we identify the main method-
ological tasks needed to formalize the security re-
quirements, and we integrated them into the model-
checking methodology. The experimental section il-
lustrates these in the car-sharing system.
4 SECURITY MODELING
METHODOLOGY:
CONTRIBUTION
We adopt the Qualitative Risk Analysis approach in
our modeling methodology. The model comprises 3
principal components, the system, the attacker, and
the properties.
The aim of having a model with these three com-
ponents is to produce the co-existence of a vulnerable
system and a threat to reveal the risks.
The attacker model is considered being a threat.
It is used to uncover the risk in the system, which is
assumed to be vulnerable. Then, the properties which
represent the risks are checked on the entire model.
This serves to use model-checking in qualitative risk
analysis. This is represented in figure 6, where an at-
tacker model is added to figure 1. The figure shows
how the attacker is integrated into model checking.
The attacker model is composed of the system model
using an attack composition operator, and the attacker
interests are combined with the system requirements
to specify the properties. Then, the combined proper-
ties, requirements, and attacker interests are verified
on the composed model: system and attacker. This
results in identifying the genuineness of the risks and
if there is a possibility of them happening.
4.1 Attacker Model
After the system is modeled and verified, the vulner-
abilities, that form potential targets of the attacker in
Security Property Modeling
697