Embedded Systems Security and Reliability (ESSR)

The Embedded Systems Security and Reliability (ESSR) track focuses on the study of the latest technologies and methods for the design of Secure and Reliable Embedded Systems, Internet-of-Things (IoT), and Critical Infrastructures. The track program has been carefully designed to provide the students with knowledge and skills in the fields of security and reliability of computing systems including Embedded System Design, Secure IoT Applications, Dependable Systems, Security Architecture Design, Software Security, Hardware Security, and Embedded Systems Reliability. The students have to successfully follow a number of courses that sum up to 30 ECTS per semester. The track offers 5 obligatory courses with 24 ECTS in total in the 1st semester and 3 obligatory courses with 18 ECTS in total in the 2nd semester, while the students may be granted the required ECTS per semester by attending 1 or 2 elective courses or obligatory courses from other tracks. The 3rd semester is devoted to the Diploma Thesis in a state-of-the-art topic in the fields of security and reliability of computing systems, supervised by one of the instructors of the track.

Track Courses:

First Semester:

ECTS: 6
Course Description:
The goal of this course is to identify and analyze the basic principles of designing secure Information Systems. This is achieved through the introduction of known best practices on the application of security mechanisms and communication protocols for modern systems mainly based on cryptography. The main objectives of Security Architecture Design are:
– To identify the main components of modern information systems architecture.
– To capture the scope and the complexity of the security vulnerabilities of information systems.
– To define the basic security principles regarding the design of advanced mechanisms and components.
The understand the relevant security models that are based on the above basic principles, whose implementation mitigates and minimizes the security threats.
The course covers the following areas:
• Introduction to Information Security
• Information security architecture requirements
• The Web platform and its Threats
• Threats and Attacks of the Web platform
• Mobile security design
• Real case scenarios

Labs: Each lecture of the course is combined with practical exercises from real examples whose main goal is the consolidation and application of all the above in the process of designing secure Information Systems.

Course Coordinator: Prof. Christos Douligeris

ECTS: 3
Course Description:
Introduction to the Internet of Things (IoT). Microcontroller architectures for IoT. IoT connectivity aspects. Design approaches for secure IoT. Hardware support for IoT security. Hardware Security Modules. Secure and cryptographic implementations for IoT.

Labs: Labs on the design of secure IoT applications.
Project: Implementation of a secure IoT application.

Course Coordinator: Dr. Athanasios Papadimitriou

ECTS: 6
Course Description:
Introduction to Embedded Systems. Embedded applications, specifications and requirements. Embedded computing platforms (CPUs, ASIC, FPGA). Design methodology with FPGAs. Introduction to VHDL. Case study: Xilinx Zynq-7000 System-on-Chip

Labs: Lab courses in the design, simulation and verification of embedded systems in FPGAs. Use of automated design tools (Vivado) and FPGA development boards (Zybo boards).
Project: Implementation of an embedded application (software + hardware) on an FPGA board.

Course Coordinator: Prof. Mihalis Psarakis

ECTS: 3
Course Description:
Examples of Critical Systems. Fault models, security threats and system failures. Fundamentals concepts of dependability (reliability, availability, safety, security). Hardware and Software fault tolerance. Reliability evaluation (FMEA, radiation experiments, fault injection). Dependability standards. Case study: FMEA on a critical system.

Course Coordinator: Prof. Mihalis Psarakis

ECTS: 6

Course description:
Introduction to data analytics (principles, pipeline, pre-processing). Common Machine Learning methods (classification, clustering). Neural networks and Deep Learning. Advanced clustering techniques (DBSCAN, OPTICS, etc.). Applications on Text / audio / video data mining. Lab hours with Python, R, Spark MLib.

Course coordinator: Prof. Aggelos Pikrakis

Second Semester:

ECTS: 6
Course Description:
Companies and organizations around the world are today, much more than ever before, recognizing the value of security in software. Furthermore, vendors heavily invest in security processes that will enable them to produce software that will meet high security standards. This course describes the fundamental principles behind software security and explains the value of secure software in dependable ICT infrastructures. It also describes in detail the basic types of software vulnerabilities and shows how these can be rated and managed according to their respective risk.
Through lectures, assignments and workshops students will find out how to identify security bugs both in software for which the source code has been made available (code review) but also in software where source code is not available (black box review). The vulnerabilities studied throughout this course come from a wide area of applications including: operating system software, embedded systems software, Internet services, desktop software, web applications and mobile applications.

Scope of the course: The primary goal of this course is the development of the following skills: the application of security best practices to software under development, the identification of security issues in open source and closed source software, the demonstration of a vulnerability, the rating of a vulnerability and the management of vulnerabilities throughout the design, implementation and maintenance phases of software projects. Students will also be introduced to state-of-the-art methods for the identification of vulnerabilities and recent techniques for the proactive mitigation of risks.

Labs: Various tools for static and dynamic code analysis (like nm, file, objdump, strace, ltrace), debugging tools (gdb), protocol fuzzing (peach), file fuzzing (jonggfuzz) and web app security (bwapp).

Course Coordinator: Prof. Panayiotis Kotzanikolaou

ECTS: 6
Course Description:
Introduction to Hardware Security. Secure embedded systems. Fault injection attacks – voltage and clock glitches. Side channel analysis attacks – power and electromagnetic analysis. Hardware attack countermeasures – fault injection: hardware and time redundancy, error detection codes – side channel analysis: hiding and masking based. Physically unclonable functions (PUF). Hardware trojans.

Labs: Labs on Fault Injection attacks and Side Channel Analysis attacks. Evaluation of secure embedded systems implementations. Countermeasure design.

Course Coordinator: Dr. Athanasios Papadimitriou

ECTS: 6
Course Description:
Hardware fault-tolerance. Redundancy techniques (duplex systems; triple modular redundancy). Information redundancy (error detection and correction codes). Radiation effects in embedded systems (SEEs, SEUs, SEFIs). Fault-tolerance methodologies for embedded microprocessors (Software-Implemented hardware Fault Tolerance, memories ECCs, core lockstep, checkpointing, watchdog timers) and SRAM FPGAs (TMR, scrubbing). Fault injection techniques (simulation-based, FPGA-based) for reliability analysis.

Labs: Lab courses in the design of fault mitigation techniques for SRAM FGPAs. Use of commercial design tools (Vivado, Synplify), open-source fault injection platforms and FPGA development boards (Zybo boards).
Project: Design of a fault-tolerant SRAM FPGA system and reliability evaluation using fault injection.

Course Coordinator: Prof. Mihalis Psarakis