ssl_prequisites.tex 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. \chapter{The Secure Layer \label{chap:ssl}}
  2. Transport Layer Security, formerly known as SSL (Secure Socket Layer), aims
  3. to bring some security features over a communication channel, specifically
  4. providing \strong{integrity} and \strong{confidentiality} of the message, \strong{authenticity} of the server and
  5. optionally the client.
  6. %% fuck osi layers: there is no code explicitly structuring the internet in 7
  7. %% layers.
  8. It is nowadays widely adopted all over the world, being the de-facto standard for
  9. end-to-end encryption.
  10. \paragraph{Certification Authorities} are authorities to whom it is granted the
  11. power to \emph{authenticate} the peer. Pragmatically, they are public keys
  12. pre-installed on your computer that decide who and who not to trust employing
  13. of a digital signature. A more detailed analysis of the inside of a certificate
  14. will be given in section ~\ref{sec:ssl:x509}.
  15. In order to overcome the proliferation of keys to disribute, and satisfy the
  16. use-case of a mindless user willing to accomplish a secure transaction on the
  17. internet, the concept of a hierarchical model issuing digital certificates
  18. proliferated with the following trust model:
  19. \\
  20. \\
  21. %% E` BELLISSIMO QUESTO COSO
  22. \begin{center}
  23. \begin{tikzpicture}[
  24. scale=.8,
  25. ->,>=stealth',
  26. ,level/.style={sibling distance = 10cm/#1,
  27. level distance = 2.5cm}]
  28. \node {Root CA}
  29. child{ node {\small{Intermediate CA}}
  30. child{ node {Issuer CA}
  31. child{ node {} edge from parent node[above left]
  32. {\tiny{loltrust}}}
  33. child{ node {}}
  34. }
  35. child{ node {CA}
  36. child{ node {Sub-CA}}
  37. child{ node {}}
  38. }
  39. }
  40. child{ node {\small{Intermediate CA}}
  41. child{ node {CA}
  42. child{ node {hacked computer}}
  43. child{ node {CA}}
  44. }
  45. child{ node {GVMT CA}
  46. child{ node {}}
  47. child{ node {}}
  48. }
  49. }
  50. ;
  51. \end{tikzpicture}
  52. \end{center}
  53. \paragraph{The protocol} is actually a collection of many sub-protocols:
  54. \begin{itemize}
  55. \setlength{\itemsep}{1pt}
  56. \setlength{\parskip}{0pt}
  57. \setlength{\parsep}{0pt}
  58. \item \strong{\emph{handshake}} protocol, a messaging protocol that allows to
  59. \emph{authenticate} the peers, and eventually restore a past encrypted
  60. session.
  61. \item \strong{\emph{record}} protocol, permitting the encapsulation of higher level protocols,
  62. like HTTP and even the next two sub-protocols. It is the fulcrum for all data
  63. transfer.
  64. \item \strong{alert} protocol, which steps-in at any time from handshake to closure of the
  65. session in order to signal a fatal error. The connection will be closed
  66. immediately after sending an alert record.
  67. \item \strong{changespec} protocol, to negotiate with and notify the receiver that
  68. subsequent records will be protected under the just negotiated keys and
  69. \texttt{Cipher Spec}.
  70. \end{itemize}
  71. We will proceed by describing in deep only the first two of these, due to their
  72. relevant role inside the connection and furthermore, because they are the only
  73. two we actually made use of during our investigations.
  74. \section{The \texttt{handshake} protocol}
  75. Different options:
  76. \begin{itemize}
  77. \item no session
  78. \item session
  79. \item client authentication
  80. \end{itemize}
  81. \section{The \texttt{record} protocol}
  82. Until 2005, failure to authenticate, decrypt will result in I/O error and a
  83. close of the connection
  84. \section{What's inside a certificate \label{sec:ssl:x509}}
  85. \section{Remarks among SSL/TLS versions}
  86. %%% Local Variables:
  87. %%% mode: latex
  88. %%% TeX-master: "question_authority.tex"
  89. %%% End: