todo removed (already done)
[ach-master.git] / src / ssllibs.tex
index 5b638c6..bee8583 100644 (file)
@@ -1,8 +1,6 @@
 \section{SSL libraries}
 \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}
-
 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
@@ -24,40 +22,32 @@ 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 the IANA standard with the hex code \texttt{0x00,0x84} as specified
+in RFC5932\cite{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{anyone? How about Java? What exists here?}
-
-\todo{Anyone? Windows crypto API?}
-
-\todo{Mac OSX /iOS crypto API? MacLemon?}
-
-%%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?}
-
+\subsection{priority strings}
+
+Choosing cipher strings requires the use of an intermediate language that allows selection
+and deselection of ciphers, key exchange mechanisms, MACs and combinations of those.
+Common combinators consist of \texttt{+}, \texttt{-} and \texttt{!}
+
+\begin{center}
+\begin{tabular}{rll}
+\toprule
+\textbf{combinator} & \textbf{effect}                   & \textbf{example}\\\cmidrule(lr){1-3}
+           \verb|+| & add at this position              & \verb|ALL:+SHA256|        \\
+           \verb|-| & remove at the current position    & \verb|ALL:-SSLv3|         \\
+           \verb|!| & permanently remove from selection & \verb|ALL:!3DES:!RC4|     \\
+ (OpenSSL) \verb|@| & special command                   & \verb|ALL:@STRENGTH|       \\
+  (GnuTLS) \verb|%| & special command                   & \verb|NORMAL:%NEW_PADDING| \\
+\bottomrule
+\end{tabular}
+\end{center}
+
+A list of special strings to use can be found in
+\url{http://www.gnutls.org/manual/html_node/Priority-Strings.html} for GnuTLS or
+\url{https://www.openssl.org/docs/apps/ciphers.html} for OpenSSL. There is, however, no
+common syntax for a cipher string throughout different SSL libraries.