Trusted and Secure Software Development
ALEXOPOULOS NIKOLAOS
Course Description
The weekly lecture schedule for the Spring Semester 2025 is listed below.
Week Main topic of lecture Practical part of lecture
1 Introduction & TLS – Basic Cryptography Principles (Encryption, Signatures) Bash basics & demo
2 Software Security Basics (Vulnerabilities, patches, lifecycle)
3 Application Security: Web Security (injection attacks, XSS attacks) XSS Lab task (HW)
4 OS Fundamentals and Security Part 1: Access control and Isolation (Files, permissions, etc.) Making a container from scratch, Android access control
5 OS Fundamentals and Security Part 2: Processes & Overflows stack overflow demo
6 Stack overflow (cont.) + Network/Internet Basics Traceroute demo
7 Network Security (attacks and defenses) Morris Worm Lab task (HW)
8 Data & Communications Privacy (Surveillance, Mixnets, Tor) Tor demo
9 The Human Factor: Passwords, Biometrics + networking basics revision
10 Cryptocurrencies Basics and Bitcoin/Ethereum
11 Other topics in Security (ML, Cryptocurrencies, HW) PKI Lab task (HW)
12 Recap, Research in Computer Security, Questions
Learning Outcomes
Developers are usually trained so that when they develop computing systems, they need to have the necessary functionality in mind without taking account of security. This results in many systems containing weaknesses that can exploit malicious users with particularly damaging consequences either: (a) for organizations that have these systems, and (b) for their users.
Students who will attend this lesson will first understand all the basic definitions of computer security. In addition, they will be able to directly recognize the weaknesses of a vulnerable system and will be able to recognize ways in which they can protect it. Finally, you will learn the most modern techniques for developing secure software, cryptographic protocols, and more generally everything you need to develop a reliable and secure system.