get rid of merge conflict
[ach-master.git] / src / ssllibs.tex
index 3f86db0..5b638c6 100644 (file)
@@ -2,28 +2,62 @@
 \label{section:ssllibs}
 
 \todo{write down that everything here is very SSL lib dependent. You might have to recompile everythign if you need to change the ssl lib}
-\todo{anyone? How about Java? What exists here?}
-\todo{Anyone? Windows crypto API?}
-\todo{Mac OSX /iOS crypto API? MacLemon?}
-
-
-\subsection{OpenSSL}
-
-\todo{adi?}
 
-\subsection{GnuTLS}
+Most if not all of the cryptographic work is done by the SSL libraries installed on
+your system. Supported protocols, cipher suites and more depend on the version of
+the SSL library in use. Whenever you upgrade the SSL library, a recompile of all
+applications using that library is required to use the newly available features.
+Some features not only require a SSL library supporting it, but also the application
+using that feature. An example for that may be Apache supporting elliptic curve
+cryptography only from version 2.4 onwards, no matter if OpenSSL supported it or
+not.
+
+As you may see from the above, creating a secure setup isn't just a matter of
+configuration but also depends on several other factors with the most important
+being the SSL libraries and their support of protocols and cipher suites.
+Furthermore, applications actually need to make use of those.
+
+For most configuration snippets throughout this paper we used OpenSSL's cipher
+strings. Sadly they are different from the official IANA standard names. When you
+use a different library like for example GnuTLS (which is quite common on Debian
+systems) you might need to change the cipher string. The hex code for a cipher
+string however is common to all versions and and library implementations:
+\texttt{TLS\_RSA\_CAMELLIA\_256\_CBC\_SHA1} in GnuTLS is equivalent to
+\texttt{CAMELLIA256-SHA} in OpenSSL and \texttt{TLS\_RSA\_WITH\_CAMELLIA\_256\_CBC\_SHA}
+in the IANA standard with the hex code \texttt{0x00,0x84} as specified in RFC5932.
+
+In any way, as a sysadmin you are required to check what the SSL libraries on
+your systems support on how you may get the most security out of your systems.
 
-\todo{adi?}
-
-\subsection{NaCL}
-
-\todo{adi?}
-
-\subsection{polarSSL}
+\todo{anyone? How about Java? What exists here?}
 
-\todo{adi?}
+\todo{Anyone? Windows crypto API?}
 
-\subsection{matrixSSL}
+\todo{Mac OSX /iOS crypto API? MacLemon?}
 
-\todo{adi?}
+%%azet: 
+% I think we should neglect this section since we do 
+% not need to provide an overview of cryptography libraries 
+% ourselves. but we  should point to concise guides
+% for those libraries - which most of them do not have
+% in place.
+%\subsection{OpenSSL}
+%
+%\todo{adi?}
+%
+%\subsection{GnuTLS}
+%
+%\todo{adi?}
+%
+%\subsection{NaCL}
+%
+%\todo{adi?}
+%
+%\subsection{polarSSL}
+%
+%\todo{adi?}
+%
+%\subsection{matrixSSL}
+%
+%\todo{adi?}