Applications and services are supported by software platforms such as operating systems and databases. Secure execution of such applications depends on the trust assumptions that can be made about these systems. By providing right mechanisms for protecting sensitive information and other resources, operating systems and databases can facilitate the development of secure applications. A uniform approach for exploring security support in operating systems and databases is attractive because both types of systems must offer similar mechanisms to mediate access to protected information. This course will take such an approach and it will explore problems such as authentication and access control that are traditionally handled at the system level. Students will also gain in depth understanding of the implementations of mechanisms that address these problems and security policies that can be supported by them. System level security issues in distributed systems will be covered as well.
After completing the course, the students should have the following capabilities:
- Demonstrate the need for a trusted computing base (TCB) and how it helps protect resources in a computer system.
- Analyze how hardware supported memory protection enables isolation of TCB and of untrusted programs.
- Develop, implement and evaluate authentication and access control in computer systems.
- Understand and evaluate security in distributed systems.
- Apply security concepts to protect data stored in database systems.
- Be familiar with recent research related to topics covered in class.
Spring 2023 syllabus and schedule (PDF)
Summer 2021 syllabus and schedule (PDF)
Spring 2021 syllabus and schedule (PDF)
Note: Sample syllabi are provided for informational purposes only. For the most up-to-date information, consult the official course documentation.
Before Taking This Class...
Suggested Background Knowledge
- An undergraduate operating systems course (Georgia Tech's course CS 3210 Design of Operating Systems or equivalent).
- System programming experience with the C programming language is highly desirable.
- Programming experience with Python.
Technical Requirements and Software
- High-speed Internet connection
- Laptop or desktop computer with a minimum of a 2 GHz processor and 4 GB of RAM
- Windows for PC computers OR Mac iOS for Apple computers
- Complete Microsoft Office Suite or comparable and ability to use Adobe PDF software (install, download, open and convert)
- Linux operating systems familiarity, including how system calls are used
- Virtualization software such as VirtualBox and ability to create and launch virtual machines
- Software development, compiling and debugging tools as required
All Georgia Tech students are expected to uphold the Georgia Tech Academic Honor Code. This course may impose additional academic integrity stipulations; consult the official course documentation for more information.