News
GradesGeschrieben am 29.09.23 von Matthis Kruse Dear all, You can find the grades on your personal status page. Best, |
PresentationsGeschrieben am 25.09.23 von Xaver Fabian Dear all, the room and time for the presentations are now fixed. Where: Room 2.22 at E9.1 |
LecturesGeschrieben am 04.09.23 (letzte Änderung am 04.09.23) von Matthis Kruse Dear all, We are very much looking forward to meet you all during the lectures next week. Where: Room 2.22 at E9.1 in the main CISPA building (C0) We will have two lectures per day from 10:00 (sharp) to ~11:30 as well as 13:00 (sharp) to ~14:30. Dear all, We are very much looking forward to meet you all during the lectures next week. Where: Room 2.22 at E9.1 in the main CISPA building (C0) We will have two lectures per day from 10:00 (sharp) to ~11:30 as well as 13:00 (sharp) to ~14:30. Cheers! |
Summary GradesGeschrieben am 04.09.23 von Matthis Kruse You can find the points for your summaries on your personal status page. |
Deadline 1st Paper SummaryGeschrieben am 31.05.23 von Xaver Fabian Hello all, |
Your Papers and SummariesGeschrieben am 28.04.23 von Matthis Kruse Hello all, not everyone has given their preferences with regards to the paper they want to present. Hello all, not everyone has given their preferences with regards to the paper they want to present. For the summaries, the assignment will be as follows: If you have paper 1, you summarize papers 3 and 10. Let us know if you've got any questions, be it with regards to your paper or organization of the seminar. |
Pick PreferencesGeschrieben am 24.04.23 von Matthis Kruse Hi all, You should now be able to pick preferences for the respective paper of your interest. Hi all, You should now be able to pick preferences for the respective paper of your interest. Cheers |
Open seatsGeschrieben am 19.04.23 (letzte Änderung am 19.04.23) von Xaver Fabian Hi all,
cheers |
Information regarding Kick-off meetingGeschrieben am 18.04.23 von Xaver Fabian Hi all, the zoom link for the kick-off meeting can now be found in the Material section.
see you there! |
Formal Compiler Security (7CP, BLOCK Seminar)
For registration, please apply for this seminar through the central seminar assignment system.
Compilers are used to compile source languages (e.g. Rust) to target languages (e.g. Assembly).
However, how can we be sure that security properties of the source code like Memory Safety or Constant Time are \textit{preserved} by the compiler?
One way to achieve this is by defining correctness criteria that specify when a compiler is secure.
In this seminar, we will explore different kinds of correctness criteria for compilers and what security guarantees they offer. Furthermore, the course will discuss specific instances of secure compilers and which mechanisms they exploit (i.e. types, hardware features like enclaves) to attain security.
During the seminar, participants will learn how to differentiate between correctness criteria, the kind of security they achieve and what their limitations are.
Requirements: A basic understanding of programming (Programmierung 1, Programmierung 2) and compilers is required.
Having an interest in formal methods / semantics is a plus.
Course Organisation
This seminar is a block seminar and is structured as follows:
- Kick-off meeting in the first week of the semester (19.04.23 at 4 PM) (via zoom).
- During the semester, you will write 2-3 (depending on the number of students) summaries on a paper that you were not assigned on.
- During the semester break, we will have one block (a week 11.9 - 15.9) of lectures that enable participants to understand the material fully and better. Attendance is mandatory.
- Once the lectures are done, students will have time to prepare their presentations and have a practice talk with us. The presentations will be organized in a block format approximately 2 weeks after the lectures (~ 29.9). Following each presentation, we will have a round table discussion about the presented paper. Attendance and active participation are mandatory.
During the kick-off, we will present a short overview of the content and format of the seminar.
Evaluation and Grading
- Presentation: (50%) You will deliver a presentation (30 minutes) on the paper assigned to you and lead the round table discussion after your presentation. You will have the chance to have a practice talk with one of the lecturers before the final presentation.
- 2 -3 (depending on the number of students) summaries: (30%) Write a short (max 1-2 pages) paper summary about one of the papers that you are not presenting. A good paper summary should be concise while retaining clarity and must include the following:
- Context and Background: What is the domain of the work?
- Problem: What is the problem that is addressed in the paper? Why is the problem complex? Why is it interesting?
- Main Idea: What is the main idea that solves the problem in the paper?
- Contribution: How does it advance the state of the art? What exactly is new and valuable in the paper?
- Evaluation: Describe the languages, compiler, correctness criteria and proof techniques adopted by the authors.
- Pros and Cons: What do you think is good about the paper? What are its weaknesses and what are its limitations? Likewise, report any possible ideas for improving the paper.
- In addition to your summary, you will prepare and submit 3 questions that you will ask during the presentation.
- In-class participation (20%): Active participation in the round table discussion is required.
List of Papers
This is the list of papers to pick from in no particular order:
-
MSWasm: Soundly Enforcing Memory-Safe Execution of Unsafe Code - paper
-
Formal Verification of a Constant-Time Preserving C Compiler - paper
-
Beyond Good and Evil Formalizing the Security Guarantees of Compartmentalizing Compilation - paper
-
When Good Components Go Bad Formally Secure Compilation Despite Dynamic Compromise - paper
-
DimSum: A Decentralized Approach to Multi-language Semantics and Verification - paper
-
CapablePtrs: Securely Compiling Partial Programs using the Pointers-as-Capabilities Principle - paper
-
Semantic Soundness for Language Interoperability - paper
-
Le temps des Cerises: efficient temporal stack safety on capability machines using directed capabilities - paper
-
SecurePtrs: Proving Secure Compilation with Data-Flow Back-Translation and Turn-Taking Simulation - paper
-
The High-Level Benefits of Low-Level Sandboxing - paper
-
Exorcising Spectres with Secure Compilers - paper
-
Jasmin: High-Assurance and High-Speed Cryptography - paper