| STUDENTS
> Distributed Systems and Security
|
Distributed Systems and Security
Note:
Whilst every effort is made to keep the syllabus and assessment records correct
for this course, the precise details must be checked with the lecturer(s).
Code: | M030
(Also taught as: GZ03)
|
Year: | 4 |
Prerequisites: | good understanding of object-oriented programming and design and networking protocols |
Term: | 1 |
Taught By: | Brad Karp (100%)
|
Aims: | The aim of this course is to instruct students on
how secure distributed and networked systems can be built.
The course will introduce the principles of distribution middleware that enables objects on different machines to communicate
with each other. It will cover both principles of such distribution
middleware (resolution of heterogeneity, dynamic requests and
different synchronisation primitives used for the communication
between distributed objects), and discuss solutions to a number of
design problems for building distributed systems, such as locating
distributed objects, the life cycle of distributed objects,
persistence of distributed object state and distributed
transactions. The course will then provide an overview of the
threats associated with networked and distributed systems and
mechanisms for addressing those threats. In doing this, we examine
both the range of standards available for the actual deployment of secure
systems and other issues of current concern.
|
Learning Outcomes: | Students will be able to identify and discuss the basic
principles underlying distributed objects. They will be able to construct distributed
applications based on distributed object middleware. The students will
be able to demonstrate how middleware achieves activation and communication
between distributed objects. They will be able to analyse tradeoffs in how such middleware systems resolve the different dimensions of heterogeneity that occur
in practice and how dynamic interactions can be employed to achieve
flexible applications. Students will be able to differentiate between the different
communication primitives that are available. They will be able to compare and contrast the primitives that are available for locating distributed objects, in
particular naming and trading. They will be able to assess the importance of
persistence and be able to build stateful server objects that can
store their state on persistent storage. They will be able to assess
the importance of transactions and be able to build applications that
are resilient against failures.
Students will be able describe the principal mechanisms and requirements for securing the network infrastructure, including the underlying cryptographic protocols and mechanisms for key generation and key exchange. They will be able to describe in detail the major components of a security infrastructure and be able to diagnose
the types of security threats that apply in a given scenario and thence deduce and appraise suitable mechanisms for protection given cost/manpower constraints. Students will be able to propose a workable security policy for a given scenario.
|
Content:
Introduction | Distributed System Case Studies Transparency in Distributed Systems |
Principles of Middleware | |
Examples of Object-Oriented Middleware | CORBA RMI |
Heterogeneity | Programming Language Heterogeneity Data Representation Heterogeity Middleware Heterogeneity |
Reflection | Dynamic Invocation Interface Repositories |
Advanced Communication | Synchronization Multiplicity |
Location | Naming Trading |
Object Life Cycle | |
Persistence | Principles of Persistence Persistent State Services Data Storage Technologies |
Distributed Object Concurrency Control | |
Distributed Object Transactions | |
Security threats | |
Encryption techniques | Secret vs public key encryption Exponentiation vs discrete logs Details of Feistel ciphers, RSA, RC6, etc. |
Random number generators | Entropy RNG output analysis LCG X9.17, BBS |
Key escrow | |
Key exchange protocols | Diffie Hellman ISAKMP Needham Schroeder Kerberos |
Certification | X.509 PGP Cross certification CRLs |
Message digest and digital signatures | DSS/SHA MD5 HMAC
|
Authentication via biometrics, physical tokens etc [time permitting] | |
OS models, Bell and La Padula and the problems with them | |
Security policy definition and auditing | Introduction to BS7799 |
IETF activities: | IPSEC TLS (SSL) Others: PKIX, DNSSEC, etc. |
Mail systems | S/MIME PGP |
Firewalls | |
Wider aspects [time permitting] |
Tempest, quantum approaches, viruses, formal methods Political and legal issues |
Method of Instruction:
Lecture presentation, lab sessions and tutorial sessions .
Assessment:
The course has the following assessment components:
- Written Examination (2.5 hours, 85%)
- Coursework Section (2 pieces, 15%)
To pass this course, students must:
- Obtain an overall pass mark of 50% for all sections combined
The examination rubric is: Answer three questions out of five. All questions carry equal marks. N.B. This course is examined in the pre-Easter examination session.Resources:
W. Emmerich. Engineering Distributed Objects. ISBN 471-98657-7. Wiley 2000
Link to the recommended text book
Lecture notes (Steve Hailes)
Lecture notes (Brad Karp)
|