Formal Verification of Security Protocols
COL876 - Special Topics in Formal Methods
July 2023 – December 2023
Course timings & Venue:
Mondays & Thursdays 1530 – 1700, in SIT006.
What is this course about?
Nowadays, we use smart devices and the internet to do everything from chatting with friends to booking movie tickets to transferring large amounts of money to each other. How does one ensure that these cryptographic mechanisms (often called "security protocols") are secure (“nobody but me should be able to access my bank account”), private (“nobody should be able to link a payment from my anonymous Ethereum wallet to my real life identity”) etc?
It has been shown that even if the underlying cryptographic mechanisms are assumed to be perfectly correct, security protocols can often admit very problematic logical flaws. Attacks have been demonstrated on critical protocols ranging from those used for e-voting to those used in RFID passports. To get guarantees about safe operation, one can use formal verification, in which we mathematically model these protocols and the desired properties, and see if the model satisfies these properties. In this course, we will study how to formally model security protocols using various abstract systems, and how to express and verify properties over such models. In addition, since verification by hand is cumbersome and often error-prone, we will see how to code up protocols and verify properties using some specialized software.
We will also see how this analysis, which is based mostly in abstract logic and theoretical computer science, fits into the engineering workflow of a protocol going from design to deployment, and what challenges arise during this process. While this course concentrates on the formal analysis and verification of security protocols, many of the techniques used here provide a good introduction to the field of formal verification as a whole.
Who should take this course?
This course is for you if
you have ever wondered how messaging systems like Signal or Whatsapp ensure that messages are "end-to-end encrypted", or
you worry about whether banking systems really are as secure and correct as one would hope and expect, or
you just have an interest in combining abstract tools like logic and automata theory with programming to solve real life problems.
Prerequisites
The course involves concepts from automata theory, algorithms, logic, proof theory, and programming languages. Understanding the material will, therefore, require some mathematical acumen -- students should, at the very least, be able to write and understand rigorous formal proofs, especially those involving induction. Students will also be required to be conversant with basic concepts of syntax/semantics, automata, and algorithms. A very basic idea of logic and of complexity theory is also necessary; notions like inference, reductions, and NP-completeness should not seem unfamiliar. You should have taken the following courses at IIT Delhi:
These courses are not a hard prerequisite. If you do not fulfil the above prerequisites, but think you have the necessary background to attend this course, feel free to get in touch.
Lecture Notes & Reference Material
Date | Slides | References (if any) |
---|---|---|
24 July, 2023 | ||
27 July, 2023 | ||
3 August, 2023 | ||
7 August, 2023 | ||
10 August, 2023 | ||
14 August, 2023 | ||
17 August, 2023 | ||
21 August, 2023 | Applied-pi Calculus Review |
|
24 August, 2023 | ProVerif Review |
|
28 August, 2023 | Review & discussion |
|
31 August, 2023 | Lecture 8, Undecidability of the secrecy problem |
|
4 September, 2023 | Assignment 1 Review |
|
18 September, 2023 | ||
25 September, 2023 | More about multiset rewriting and Tamarin |
|
28 September, 2023 | Some more Tamarin |
|
9 October, 2023 | Lecture 10, Constraint satisfaction |
|
12 October, 2023 | Guest lecture by Mr. Karl Normann, Ericsson Research |
|
16 October, 2023 | Lecture 11, Computational soundness (part 1) |
|
19 October, 2023 | Lecture 12, Computational soundness (part 2) |
Evaluation Policy
- In-class quizzes: 10%
- Assignments: 40%
- Project/Paper presentation: 50%
Audit policy: 40% pass.