Browse Source

Removing some bullshits here and there in the book.

* re-writing the handshake protocol thing, which was cumbersome and wrong;
* mentioning cluster experiments with the cluster in preface.
Michele Orrù 11 years ago
parent
commit
b07160fafc
3 changed files with 35 additions and 26 deletions
  1. 1 1
      book/conclusions.tex
  2. 7 1
      book/preface.tex
  3. 27 24
      book/ssl_prequisites.tex

+ 1 - 1
book/conclusions.tex

@@ -1,4 +1,4 @@
-\chapter{Conclusions}
+\chapter{Conclusions \label{conclusions}}
 \noindent
 \noindent
 Everytime we see a certificate, we get this idea the somebody is telling us the
 Everytime we see a certificate, we get this idea the somebody is telling us the
 connection is safe. There is some authority out there telling what to do.
 connection is safe. There is some authority out there telling what to do.

+ 7 - 1
book/preface.tex

@@ -14,7 +14,13 @@ programming, and finally, give some hints about a distributed version of it.
 
 
 Besides the pseudocode already available in this document, the project led to the
 Besides the pseudocode already available in this document, the project led to the
 development of a real, open, C implementation consultable at
 development of a real, open, C implementation consultable at
-\small{\url{https://github.com/mmaker/bachelor}}.
+{\small \url{https://github.com/mmaker/bachelor}}.
+
+In addition, the application has then been deployed on the
+university cluster and pointed against a huge number of websites -
+\href{http://www.alexa.com/}{Alexa}'s \emph{top 1 million global websites}.
+Some of the statistical result extracted from this investigation are later
+examined in chapter \ref{conclusions}.
 
 
 %%% Local Variables:
 %%% Local Variables:
 %%% mode: latex
 %%% mode: latex

+ 27 - 24
book/ssl_prequisites.tex

@@ -118,47 +118,50 @@ found or no trusted authority is found. In the latter case, the connection is ab
   subsequent records will be protected under the just negotiated keys and
   subsequent records will be protected under the just negotiated keys and
   \texttt{Cipher Spec}.
   \texttt{Cipher Spec}.
 \end{itemize}
 \end{itemize}
-We will proceed with a brief synopsis of the first two of these protocols, due to
-their relevant role inside the connection and furthermore, because they were the
-only two we actually used during our investigations.
+We will now proceed with a brief synopsis of the first two of these protocols,
+due to their relevant role inside the connection, but will not proceed further,
+as they were the only two we actually used in our research.
 
 
 
 
 \section{The \texttt{handshake} protocol}
 \section{The \texttt{handshake} protocol}
 As mentioned above, the handshake occurs whenever a machine attempts to start
 As mentioned above, the handshake occurs whenever a machine attempts to start
-a TLS connection. If there is no session identifier, a new one is being build
+a TLS connection. If there is no session identifier, a new one is being built
 up; otherwise the client will include the session-id in the initial
 up; otherwise the client will include the session-id in the initial
 communication and the server will eventually skip the key agreement phase since
 communication and the server will eventually skip the key agreement phase since
 %% XXX. check the use of verb happened
 %% XXX. check the use of verb happened
-it has happened recently.\footnote{``recently'' is not well-defined in
+it has happened recently\footnote{``recently'' is not well-defined in
   the standard - it is suggested an upper limit of 24-hours lifetime, but the
   the standard - it is suggested an upper limit of 24-hours lifetime, but the
-  only constraint is that both client and server agree on it.}\\
-A new session-id identifier gets built via a challenge-response mechanism: the
-client issues a challenge, the server chooses a connection-id and presents it
-with its certificate. The client verifies the server's identity, and then
-chooses both a session key and the security specifications for the current
-session. Note that the session key should be different for any connection and
-direction. At this point the server can either send back the challenge and
-generate a session-id, or it can ask for the client
-certificate and finally ask for it (client authentication).
+  only actual constraint is that both client and server agree on it.}.\\
+A new session identifier gets built as follows. Once a communication channel
+over the transport layer has been established, the client sends a hello
+message, to which the server must respond with a server hello, or else a fatal error
+will occurr. The above hello messages agree the two parties on the TLS protocol
+version, compression and encryption methods, and  establish a session identifier
+(\cite{rfc2246} \S 7.3).
+
+Following the hello messages, the server will send its certificate,
+if it is to be authenticated. If the client is happy with it, a RSA or
+Diffie-Hellmann key exchange is initiated by the client to establish the
+symmetric key to be used for the ensuing session.
 
 
-\vfill
 \section{The \texttt{record} protocol}
 \section{The \texttt{record} protocol}
+Once the two parties share a common secret, called \emph{premaster secret},
+they can generate a new key to be used for symmetric encryption of message, and
+another for message authentication.
+
 All TLS protocol messages move in records of up to 16K, containing 3
 All TLS protocol messages move in records of up to 16K, containing 3
 main components: MAC-data, data, and padding.
 main components: MAC-data, data, and padding.
-\\
-{MAC-data} is no other than the Message Authentication Code over the
+\begin{itemize}
+\item {MAC-data} is no other than the Message Authentication Code over the
 encrypted \emph{data} sent
 encrypted \emph{data} sent
 (SSL performs the encrypt-then-mac mode of operation).
 (SSL performs the encrypt-then-mac mode of operation).
 It provides \strong{authenticity} and \strong{integrity} of the message.
 It provides \strong{authenticity} and \strong{integrity} of the message.
+\item {Data} is the actual message, encrypted after an eventual compression.
+\item The {Padding} section contains informations about the padding algorithm
+adopted, and the padding size.
+\end{itemize}
 Failure to authenticate, decrypt will result in I/O error and a close of the
 Failure to authenticate, decrypt will result in I/O error and a close of the
 connection.
 connection.
-\\
-{Data} is the actual message, compressed and encrypted. Compression comes
-for free in order to mitigate the cryptanalysis of the cipher, since protocols
-such as HTTP have a common set of standard messages.
-\\
-The {Padding} section contains informations about the padding algorithm
-adopted, and the padding size.
 
 
 \section{What is inside a certificate \label{sec:ssl:x509}}
 \section{What is inside a certificate \label{sec:ssl:x509}}
 SSL certificates employed the X.509 PKI standard, which specifies, among other
 SSL certificates employed the X.509 PKI standard, which specifies, among other