Module Code UFCFYN-15-M
Module Title Analysis and Verification of Concurrent Systems
Weighting This coursework is worth 100 marks representing 40% of your total course grade.
Section 1: Overview of Assessment
This assignment assesses the following module learning outcomes:
Demonstrate the application of formalisms to specify system properties using temporal logics like Linear-time Temporal Logic (LTL) and Computation Tree Logic (CTL)
Use tools and analysis techniques to study and reason about critical properties of the concurrent systems, including security protocols
UFCFYN-15-M Analysis And Verification of Concurrent Systems Assignment-West England University UK.
The assignment is worth 100 marks representing 40% of the overall mark for the module.
The learning objective of this coursework is to design, analyse, and verify authentication protocol using the Nu SMV model checker. This will give you hands-on experience with the NuSMV tool and understanding its input language for specifying systems and desired system properties.
The assignment is described in more detail in Section 2.
Assignment type: this is an INDIVIDUAL assignment. Do not copy and paste work from any other source or work with any other person. You are strictly forbidden from discussing your answers with another student. Text-matching software will be used on all submissions.
Working on this assignment will help you to achieve the learning outcomes mentioned above as well as you would be aware of when and how you might deploy formal verification techniques. If you have questions about this assignment, I will be happy to discuss those during our lecture/lab session.
Section 2: Task Specification
Consider the following four-step communication protocol, which is known as Kerberos protocol and its aim is to guarantee authentication and key exchange between a client and a server [1, 2].
(1) A -> S : A, B
(2) S -> A : {Ts, L, Kab, B}Kas , {Ts, L, Kab, A}Kbs
(3) A -> B : {Ts, L, Kab, A}Kbs , {A, Ta} Kab
(4) B -> A : {Ta+1}Kab
UFCFYN-15-M Analysis And Verification of Concurrent Systems Assignment-West England University UK.
The protocol involves the principals A (client/initiator) and B (server/responder), and an authentication server S. The server S is a trusted party which shares a key Kas with A and a key Kbs with B, and also responsible for generating new session keys Kab. The above protocol makes use of the time stamps Ta and Tb, and the lifetime L.In step (1) above, A contacts S in order to communicate its claimed identity and the name of the server B. In step (2), S sends to A two encrypted components. The first
component contains the session key Kab generated by S, a time stamp Ts specifying when the session key has been generated, the interval of validity of such key, and the name of the server B. The second component is called ticket having similar information, however, A will not be able to decrypt it. In step (3), A forwards the ticket to server B, with a authenticator component encrypted with the new session key. After receiving the above message, B can extract the session key from the ticket, and uses it to decrypt the authenticator. If the key used to encrypt authenticator matches with the key contained in the ticket, the server B can assume that the authenticator was generated by A. At this point, in order to authenticate the client A, the server B must also check the time stamp Ta to make sure that the authenticator is recent. Thus B can recognise A if the result of verification is positive.In step (4), B demonstrate its identity to A sending a message with increased time stamp encrypted with the session key Kab.
The model of the above protocol could be composed of several variables and processes (or agents). The protocol shall ensure authentication and secrecy. Such properties shall be verified against an intruder I with the following capabilities:
- I is a known agent, it can act either as initiator or as responder of a protocol session;
- I can eavesdrop and store any message sent by any agent;
- I can exploit its knowledge to generate new messages or use previously stored messages as they are.
Model as a concurrent system in NuSMV the protocol described above as the interaction of 4 agents, A, B, S and I. Multiple sessions may overlap,
asynchronously. However, to ensure finiteness of the model state space, consider a maximum number n of sessions, and verify the satisfaction of the properties above under such a limitation. To model and verify the desired system properties you need to complete the following tasks:
Task 1: Design and draw a state transition diagram of the system considering four agents mentioned above. Please note that this diagram would be a high-level diagram and not considering NuSMV’s low level diagram (as it would be very complicated);
Task 2: In your NuSMV model (code using the SMV language) all the agents should work concurrently, and in an asynchronous manner;
Task 3: Identify and express six authentication and secrecy properties using
Task 4: Demonstrate, verify all the properties identified above by running your code.
Section 3: Deliverables
Please submit a portfolio via Blackboard on or before May 6, 2021@14:00, as a ZIP file with your NuSMV code (.smv) along with a PDF file containing: (i) system design and state transition diagram, and (ii) video recording presentation of verification results showing the execution logs. The logs should clearly show verified properties as “true” or “false”. In case of “false” it must show a counter example.
UFCFYN-15-M Analysis And Verification of Concurrent Systems Assignment-West England University UK.
Your video recording:
(i) a record of your presentation that displays the screen on which you run your code;
(ii) you should be running through all the properties to demonstrate the how your code works (assuming that your tutor is watching the presentation);
(iii) since presentation timing is an important factor, detailed code explanation would not be possible. However, you should go through the code lightly after presenting/showing/running all the properties. Later on, your tutors may look at your code if necessary;
(iv) your voice will be enough (if you don’t want to show your face);
(v) your presentation should not be too short or too long, ideally 10/15(max)
minutes;
(vi) do not leave submission to the very last minute. Always allow time in case of technical issues and uploading time.