inital introduction to the ssl libs section
[ach-master.git] / src / ssllibs.tex
1 \section{SSL libraries}
2 \label{section:ssllibs}
3
4 \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}
5
6 Most if not all of the cryptographic work is done by the SSL libraries installed on
7 your system. Supported protocols, cipher suites and more depend on the version of
8 the SSL library in use. Whenever you upgrade the SSL library, a recompile of all
9 applications using that library is required to use the newly available features.
10 Some features not only require a SSL library supporting it but also the application
11 using that feature. An example for that may be Apache supporting elliptic curve
12 cryptography only from version 2.4 onwards no matter if OpenSSL supported it or
13 not.
14
15 As you may see from the above, creating a secure setup isn't just a matter of
16 configuration but also depends on several other factors with the most important
17 being the SSL libraries and their support of protocols and cipher suites.
18 Furthermore applications actually need to make use of those.
19
20 For most configuration snipplets throughout this paper we used OpenSSL's cipher
21 strings. Sadly they are different from the official IANA standard names. When you
22 use a different library like for example GnuTLS (which is quite common on Debian
23 systems) you might need to change the cipher string. The hex code for a cipher
24 string however is common to all versions and and library implementations:
25 \texttt{TLS\_RSA\_CAMELLIA\_256\_CBC\_SHA1} in GnuTLS is equivalent to
26 \texttt{CAMELLIA256-SHA} in OpenSSL and \texttt{TLS\_RSA\_WITH\_CAMELLIA\_256\_CBC\_SHA}
27 in the IANA standard with the hex code \texttt{0x00,0x84} as specified in RFC5932.
28
29 In any way, as a sysadmin you are required to check what the SSL libraries on
30 your systems support on how you may get the most security out of your systems.
31
32 \todo{anyone? How about Java? What exists here?}
33
34 \todo{Anyone? Windows crypto API?}
35
36 \todo{Mac OSX /iOS crypto API? MacLemon?}
37
38
39 \subsection{OpenSSL}
40
41 \todo{adi?}
42
43 \subsection{GnuTLS}
44
45 \todo{adi?}
46
47 \subsection{NaCL}
48
49 \todo{adi?}
50
51 \subsection{polarSSL}
52
53 \todo{adi?}
54
55 \subsection{matrixSSL}
56
57 \todo{adi?}
58