Search programme

​Use the search function to search amongst programmes at Chalmers. The study programme and the study programme syllabus relating to your studies are generally from the academic year you began your studies.

Syllabus for

Academic year
TDA601 - Language-based security
 
Syllabus adopted 2011-02-24 by Head of Programme (or corresponding)
Owner: MPALG
7,5 Credits
Grading: TH - Five, Four, Three, Not passed
Education cycle: Second-cycle
Major subject: Computer Science and Engineering, Information Technology
Department: 37 - COMPUTER SCIENCE AND ENGINEERING


Teaching language: English

Course module   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 Summer course No Sp
0107 Design exercise + laboratory 7,5c Grading: TH   7,5c    
0207 Laboratory 0,0c Grading: UG   0,0c    

In programs

TKITE SOFTWARE ENGINEERING, Year 3 (elective)
MPSEN SOFTWARE ENGINEERING AND TECHNOLOGY, MSC PROGR, Year 2 (elective)
MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 1 (elective)
MPALG COMPUTER SCIENCE - ALGORITHMS, LANGUAGES AND LOGIC, MSC PROGR, Year 2 (elective)
MPALG COMPUTER SCIENCE - ALGORITHMS, LANGUAGES AND LOGIC, MSC PROGR, Year 1 (compulsory elective)

Examiner:

Professor  Andrei Sabelfeld


Replaces

TDA600   Language-based security


  Go to Course Homepage

Eligibility:

For single subject courses within Chalmers programmes the same eligibility requirements apply, as to the programme(s) that the course is part of.

Course specific prerequisites

Knowledge of the material covered in the courses DAT150 Programming language technology and EDA263 Computer security or equivalent is required.

Previous knowledge of semantics, automata, and compiler construction is helpful (although not required as a prerequisite).

Aim

Modern attacks often succeed at circumventing standard security mechanisms. While operating-system security policies are low-level (such as access control policies, protecting particular files), many attacks are high-level, or application-level (such as email worms that pass by access controls pretending to be executed on behalf of a mailer application). Because applications are typically specified and implemented in programming languages, application-level security is a part of the more general area of language-based security. A direct benefit of language-based security is the ability to naturally express security policies and enforcement mechanisms using the techniques of the well-developed area of programming languages.

Learning outcomes (after completion of the course the student should be able to)

After the course, you should be able to apply practical knowledge of security for modern programming languages. This includes the ability to identify application- and language-level security threats, design and argue for application- and language-level security policies, and design and argue for the security, clarity, usability, and efficiency of solutions, as well as implement such solutions in expressive programming languages.

You should be able to demonstrate the critical knowledge of:
principles behind application-level attacks (such as Trojan horses, worms, buffer overrun attacks, exploit attacks, covert channels, and malicious code) and
language-based protection mechanisms (such as static security analysis, program transformation, and stack inspection).

You should gain experience in technical writing.

Content

This course combines practical and cutting-edge research material. For the latter part, the course's particular emphasis is on the use of formal, or semantic, models of program behaviour for specifying and enforcing security properties.

Organisation

The course consists of lectures, group meetings and project presentations.

Literature

See separate literature list.

Examination

In order to pass the course, the students must complete programming projects and/or produce a survey/position paper.


Published: Mon 28 Nov 2016.