\documentstyle[12pt,twoside,alltt]{article}
\textwidth=6in
\oddsidemargin=0.25in
\evensidemargin=0.25in
\topmargin=-0.1in
\footskip=0.8in
\parindent=0.0cm
\parskip=0.3cm
\textheight=8.00in
\setcounter{tocdepth} {3}
\setcounter{secnumdepth} {2}
\sloppy

\newenvironment{proof}{\noindent{\bf Proof:}}{\qed\bigskip}
\newenvironment{proof_sketch}{\noindent{\bf Sketch of 
Proof}\hspace*{1em}}{\qed\bigskip}

\newtheorem{theorem}{Theorem}
\newtheorem{corollary}{Corollary}
\newtheorem{lemma}{Lemma}
\newtheorem{claim}{Claim}
\newtheorem{fact}{Fact}
\newtheorem{definition}{Definition}
\newtheorem{assumption}{Assumption}
\newtheorem{observation}{Observation}
\newtheorem{example}{Example}
\newcommand{\qed}{\rule{7pt}{7pt}}

\newcommand{\lecture}[4]{
\pagestyle{headings}
\thispagestyle{plain}
\newpage
\noindent
\begin{center}
\framebox{
\vbox{
\hbox to 5.75in { {\bf 6.857 Computer and Network Security
\hfill Fall Term, 1996}  }
\vspace{4mm}
\hbox to 5.75in { {\Large \hfill Lecture #1 : #2 \hfill} }
\vspace{2mm}
\hbox to 5.75in { {\it Lecturer: #3 \hfill Scribe: #4} }
}
}
\end{center}
\markboth{Lecture #1 : #2}{Lecture #1 : #2}
\vspace*{4mm}
}

\begin{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Lecture command takes 4 arguments:
%		ordinal number of the lecture
%		date of the lecture
%		lecturer
%		scribe---that is you
%
\lecture{1}{September 5, 1996}{Ron Rivest}{Holly Grabowski} 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Your notes start here!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% For theorems, lemmas, definitions, remarks, etc. use commands
% {\theorem{...}}, {\lemma{...}}, {\definition{...}}, etc.
% For proofs, use \begin{proof} ... \end{proof}
%
% For figures use the following block:
%
% \begin{figure}[h]
% \begin{center}
% \mbox{\psfig{figure=notes-nn-fig-mm.ps}}
% \caption{A very nice picture.}
% \label{fig:picture}
% \end{center}
% \end{figure}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


6.857 is a fairly new subject on Computer and Network Security (this
is the second time it is being offered). It's 
mostly intended for seniors and first-year graduate students.
By going through the course outline we can see that the covered topics
can be divided in three big parts. After a brief introduction on the topic of 
security, the first part of the course will deal
with a fundamental tool that we will use during the rest of the course:
{\em Cryptography.} We will discuss classical secret--key cryptosystems (DES), 
and more recent public--key security systems (PGP). We will introduce digital signature
schemes and mention some more sophisticated cryptographic protocols like
secret sharing, oblivious transfer, commitment, and zero--knowledge proofs. 
We will also talk about policy issues such as exporting cryptograpy chips,
and key escrow.  Finally, we will talk about key exchange and key agreement.
We will then move on {\em Computer Security}. This area will cover topics
like logic of authentication, mutual authentication, auditing, intrusion detection, 
access control, 
computer viruses, covert channels, secure operating systems, etc. 
We will also discuss formal models for computer security. Finally we will
move on the area of {\em Network Security} with a special focus on
the Internet. We will talk about the Internet Protocol and its security
issues. We will study firewalls and network protocols like Kerberos. 
We will also discuss the  World--Wide--Web, electronic payments and cash,
digital cash, and java. At the conclusion of the course all students will 
present their team projects.

\section{Security Objectives} 

In this class we will learn how, given a computer system, we can identify
and possibly solve its security problems. First of all this means that we have 
to define and outline what we mean by security. The computer system can 
be anything you may think of: a shared system, a Web server, a bank ATM, 
the cable--box on your TV and so on. For each case to define what security is, 
it actually means to specify a {\bf security policy}, i.e., a set of desired
goals. For example in a shared system only authorized users should be able
to login, for a Web server accessing clients should pay a fee and so on. 

Once a security policy has been specified we need to put in place 
{\bf security mechanisms}, i.e., tools that make sure that the desired 
goals are met. For example a password scheme will (hopefully) give access to
a shared system only to authorized users. A payment protocol will ensure
fee payments for clients accessing a Web page. 

Once the security mechanisms are put in place they need to be reviewed 
in order to assess possible {\bf vulnerabilities} of the system, i.e., 
weakness of the system that leave it open to attacks. Hostile parties
who exploit weaknesses in order to create damage are known as {\bf threats}.

If vulnerabilities are identified, then a {\bf safeguard} or a 
{\bf countermeasure} must be designed in order to eliminate the
weaknesses.

\subsection{Security Policy - Goals}

As we notice above there are many different goals, depending on 
what purpose the computer system is fulfilling. However we can 
group goals in three broad categories:
\begin{description}
\item[Confidentiality:] Assets of the computer system should not be 
accessible by unauthorized parties. For example - a student's 
grades should be kept private.
\item[Integrity:] Assets of the computer system should not be modified 
by unauthorized users. For example - only professors should be able to 
edit grades.
\item[Availability:] The system should be available to authorized users. 
A {\em denial of service attack} is an attack that infringes availability of 
the system.  For example - students should be able to view their own grades.
\end{description}

Other goals may also come up: for example in a payment protocol 
one could require anonymity of the parties (as in with real--life cash), 
which does not seem to fall under any of the categories above (although
confidentiality is probably the closest.)

\subsection{Mechanisms}

Security mechanisms evolve over long periods of time. For example -
bank vaults took years to evolve.  They were improved as thieves found
new ways to break into them.  It is difficult to know when security has
been achieved because it is much harder to prove a negative (that no
security hole exists) than it is to prove a posotive (that a concrete 
security flaw exists).  Also, you can prove that something is correct, but 
to do this you have to make assumptions about what your adversaries can do (
passive intruding, active intruding, etc.) which
may or may not be true.  

In the course of this class we will explore many possible 
security mechanisms. Some typical ones include in order 
of more sophistication: 

\begin{description} 

\item[User awareness] By educating users about the security goals
of the system and the possible risks, one can achieve one of the most 
effective security mechanism. 

\item[Physical protection] Locks and keys prevent unauthorized access
to buildings where computer systems reside. Shredders make snooping in the
trash harder. Degaussers really delete the content of your floppy (differently
than the {\sc delete} command that usually just removes a pointer to them) 
and so on ... 

\item[Cryptography] As we will see later in the class encryption functions
can be used (in different ways) to enforce both confidentiality and 
integrity. 

\item[Access Control] For example in UNIX access control lists specify
which users can read, write, execute a given file. 

\item[Auditing] By recording all the activities of the system it is possible
to detect security breaches that could not be prevented. 

\end{description}

As we can see, some mechanism are aimed at {\em prevention} while some others 
at {\em detection} of security breaches. The latter is particularly 
important since we are never sure to have ruled out all possible 
attacks. It is important then to detect if something is going wrong and
take the necessary countermeasures. 

\subsection{Principles}

In order to design effective security mechanisms we will refer to 
some general {\em security principles}. For example: 

\begin{itemize}

\item {\em Principle of least privilege} : Give a user or process
only privileges needed to perform task at hand. No more, no less. 

\item {\em Minimize amount of trusted components} : Identify what components
of the system needs to be trusted and aim to keep those small and simple. 

\item {\em Do not aim for perfection} : It is basically impossible. Instead 
be prepared to detect problems, to design countermeasures and to recover 
from attacks. 

\end{itemize}


\section{Handouts and Readings}

There was one handout: Course Information.  There will be no text
for this class.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Your notes end here!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{document}



