CS 387: Advanced Topics in
Information
Security
Spring 2008 Topic: Architectures
for
Trusted Computing
- Instructor: Prof. Bhagi Narahari
- Office
Hours: TBA
- Class
Schedule: Thursday 6:10-9:40pm. We will try to meet earlier if the room is
available.
- Course
description: This seminar course will examine the question of how the entire
language-compiler-OS-architecture chain can be designed to achieve
security objectives such as code tampering, unauthorized access,
reliability and privacy. The goal of this course is to get a broad
overview of this field and to try to address some open problems via the
final project. Of special interest, and focus, is the expanding role of
hardware in creating more secure systems and thereby the question of
"how can hardware assist us in providing secure trusted computing
platforms ?". Recent research addressing this question has
proposed hardware support for buffer-overflow vulnerabilities, memory
protection, secure co-processors, reducing runtime overheads of secure
programming languages, fast cryptography, control flow protection,
address space obfuscation, tamper resistant software, prevention of
code injection, and various "trusted computing" models.
<>
This topics course will cover issues
related to the
entire 'tool chain' of languages-compilers-OS-processor, with a special
focus
on the hardware-software interplay. Topics that will be covered
include:
language features for security, run-time systems, protection against
code
tampering, compiler-driven security, static and dynamic code analysis,
obfuscation, and hardware support for software protection. The course
will be
conducted seminar-style with paper presentations and a final project.
We will
pose some open ended questions and challenges to guide our discussions
and with
the objective of concluding the course with a position paper on these
questions.
- Prerequisites:
The prerequisites are background in architecture, security and
algorithms (CS 211, CS 212, CS 283 or equivalent) and a desire to learn
more about both security and computer systems and architecture. The
course material should be applicable and accessible to participants
with a range of interests in Computer Science – languages, systems,
architecture and security.
- Course
Requirements and Expectations. Coursework will consist
mostly of paper reading, analysis, and in-class discussion. Students will be expected to read papers,
present them lucidly, engage in classroom discussions, and
complete a project or term paper with supervision from the instructor.
Each class will have two presentations (covering 2 topics, each with 2
or more papers) and each presentation will be followed by a 15 minute
discussions. Each topic will be presented by one main presenter and
will have a "lead discusser" (who will lead the discussions) and two
other "discussers". Presentations are not meant to be a 'core dump' of
the results in the paper into powerpoint format! They should explain
the topic, analyze its impact, and creativity in analysis will be
rewarded. Each student will be expected to have 2 presentations, serve
as lead discusser for 2 presentations, and as a discusser for 4-6
presentations. Students are also encouraged to come at the course from
different angles and thereby add more debate, with different
viewpoints, to the discussions.