re-format the new section as \begin{description} element.
[ach-master.git] / src / cipher_suites.tex
1 \section{Cipher suites}
2 \label{section:CipherSuites}
3 \todo{team: section 8 is currently a bit messy. Re-do it}
4 \todo{daniel: tex properly and add sources}
5
6
7 \subsection{Architectural overview }
8
9 A cipher suite is a standardised collection of key exchange algorithms, ciphers,
10 Message authentication code (MAC) that provides authenticated encryption schemes. 
11 It consists of the following components:
12
13 \begin{description}
14 \item{Key exchange protocol:}
15 ``An (interactive) key exchange protocol is a method whereby parties who do not 
16 share any secret information can generate a shared, secret key by communicating 
17 over a public channel. The main property guaranteed here is that an 
18 eavesdropping adversary who sees all the messages sent over the communication 
19 line does not learn anything about the resulting secret key.'' {1} 
20 Katz, Lindell Introduction to Modern cryptography
21 Example: DH ECDH DHE ECDHE RSA
22
23 \item{Authentication:}
24 The client authenticates the server by its certificate. Optionally the server 
25 may authenticate the client certificate.
26 Example: RSA ECDSA DSA
27
28 \item{Cipher:}
29 The cipher is used to encrypt the message stream. It also contains the key size
30 and mode used by the suite.
31
32 Example: AES128 AES128\_GCM Camellia128 
33
34
35 \item{Message authentication code (MAC):}
36 A MAC ensures that the message has not been tampered with (integrity).
37 Examples: SHA256 SHA384 SHA
38
39 \todo{find a good visualisation for a cipher suite composition}
40
41 \item{Authenticated encryption scheme:}
42 An encryption scheme which provides confidentiality, integrity and authenticity.
43
44 \end{description}
45
46 \subsection{Forward Secrecy}
47 Forward Secrecy or Perfect Forward Secrecy is a property of a cipher suite 
48 that ensures confidentiality even if the server key has been compromised.
49 Thus if traffic has been recorded it can not be decrypted even if an adversary
50 has got hold of the server key
51 \footnote{\url{http://en.wikipedia.org/wiki/Forward\_secrecy}}
52 \footnote{\url{https://www.eff.org/deeplinks/2013/08/pushing-perfect-forward-secrecy-important-web-privacy-protection}}. 
53
54 \subsection{Recommended cipher suites}
55 \label{section:recommendedciphers}
56
57 In principle, system administrators who want to improve their servers need to
58 make a hard decision between locking out some users while keeping very high
59 cipher suite security levels or supporting as many users as possible while
60 lowering some settings. \url{https://www.ssllabs.com/} gives administrators a
61 tool to test out different settings. The authors used ssllabs.com to arrive at
62 a set of cipher suites which we will recommend throughout this document.
63 \textbf{Caution: these settings can only represent a subjective choice of the
64 authors at the time of this writing. It might be a wise choice to select your
65 own cipher suites based on the instructions in section
66 \ref{section:ChoosingYourOwnCipherSuites}}.
67
68
69 \subsubsection{Configuration A: strong ciphers, fewer clients}
70
71 At the time of this writing, we recommend the following set of strong cipher
72 suites which may be useful in an environment where you do not depend on many,
73 diverse external clients and where compatibility is not an issue.  An example
74 of such an environment might be machine 2 machine communications or corporate
75 environments where you can define the software which must be used.
76
77
78 We arrived at this set of cipher suites by selecting
79
80 \begin{itemize}
81 \item TLS 1.2
82 \item Perfect forward secrecy / ephemeral Diffie Hellman
83 \item strong Hashes (SHA-2)
84 \item GCM as chaining mode if possible 
85 \end{itemize}
86
87 This results in the string:
88
89 \begin{lstlisting}[breaklines]
90 'EECDH+aRSA+AES256:EDH+aRSA+AES256:!SSLv3'
91 \end{lstlisting}
92
93 %$\implies$ resolves to 
94 %
95 %\begin{verbatim}
96 %openssl ciphers -V $string
97 %\end{verbatim}
98
99
100
101 \todo{make a column for cipher chaining mode}
102 \begin{center}
103
104 \begin{tabular}{lllllll}
105 \toprule
106 \textbf{ID}   & \textbf{OpenSSL Name}       & \textbf{Version} & \textbf{KeyEx} & \textbf{Auth} & \textbf{Cipher} & \textbf{MAC}\\\cmidrule(lr){1-7}
107 \verb|0xC030| & ECDHE-RSA-AES256-GCM-SHA384 & TLSv1.2          & ECDH           &  RSA          & AESGCM(256)     & AEAD         \\
108 \verb|0xC028| & ECDHE-RSA-AES256-SHA384     & TLSv1.2          & ECDH           &  RSA          & AES(256) (CBC)  & SHA384       \\
109 \verb|0x009F| & DHE-RSA-AES256-GCM-SHA384   & TLSv1.2          & DH             &  RSA          & AESGCM(256)     & AEAD         \\
110 \verb|0x006B| & DHE-RSA-AES256-SHA256       & TLSv1.2          & DH             &  RSA          & AES(256) (CBC)  & SHA256       \\
111 \bottomrule
112 \end{tabular}
113 \end{center}
114
115
116 \textbf{Compatibility}
117
118 Only clients which support TLS1.2 are covered by these cipher suites (Chrome 30,
119 Win 7 and Win 8.1 crypto stack, Opera 17, OpenSSL $\ge$ 1.0.1e, Safari 6 / iOS
120 6.0.1, Safari 7 / OS X 10.9).
121
122
123
124 \subsubsection{Configuration B: weaker ciphers, many clients}
125
126 In this section we propose a slightly "weaker" set of cipher suites. For example, there are
127 some known weaknesses for SHA-1 which is included in this set.
128 However, the advantage of this set of cipher suites is its wider compatibility
129 with clients. 
130
131
132 \textbf{In the following document, all further examples in this paper will use Configuration B}.
133
134
135 We arrived at this set of cipher suites by selecting
136
137 \begin{itemize}
138 \item TLS 1.2, TLS 1.1, TLS 1.0
139 \item allowing SHA-1
140 \todo{AK: Note that SHA1 is considered broken but if we are in DHE, we might get around it as long as you can not calculate a SHA1 collision ``live'' on the wire}
141
142 \end{itemize}
143
144 This results in the string:
145
146 \begin{lstlisting}[breaklines]
147 'EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EDH+CAMELLIA256:EECDH:EDH+aRSA:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED:!AES128:!CAMELLIA128:!ECDSA:AES256-SHA'
148 \end{lstlisting}
149
150
151 \todo{make a column for cipher chaining mode}
152 \begin{center}
153 \begin{tabular}{lllllll}
154 \toprule
155 \textbf{ID}   & \textbf{OpenSSL Name}       & \textbf{Version} & \textbf{KeyEx} & \textbf{Auth} & \textbf{Cipher} & \textbf{MAC}\\\cmidrule(lr){1-7}
156 \verb|0xC030| & ECDHE-RSA-AES256-GCM-SHA384 & TLSv1.2          & ECDH           &  RSA          & AESGCM(256)     & AEAD         \\ 
157 \verb|0xC028| & ECDHE-RSA-AES256-SHA384     & TLSv1.2          & ECDH           &  RSA          & AES(256) (CBC)  & SHA384       \\ 
158 \verb|0x009F| & DHE-RSA-AES256-GCM-SHA384   & TLSv1.2          & DH             &  RSA          & AESGCM(256)     & AEAD         \\ 
159 \verb|0x006B| & DHE-RSA-AES256-SHA256       & TLSv1.2          & DH             &  RSA          & AES(256) (CBC)  & SHA256       \\ 
160 \verb|0x0088| & DHE-RSA-CAMELLIA256-SHA     & SSLv3            & DH             &  RSA          & Camellia(256)   & SHA1         \\ 
161 \verb|0xC014| & ECDHE-RSA-AES256-SHA        & SSLv3            & ECDH           &  RSA          & AES(256) (CBC)  & SHA1         \\ 
162 \verb|0x0039| & DHE-RSA-AES256-SHA          & SSLv3            & DH             &  RSA          & AES(256) (CBC)  & SHA1         \\ 
163 \verb|0x0035| & AES256-SHA                  & SSLv3            & RSA            &  RSA          & AES(256) (CBC)  & SHA1         \\
164 \bottomrule
165 \end{tabular}
166 \end{center}
167
168 \textbf{Compatibility}
169
170 Note that these cipher suites will not work with anything using Windows XP's
171 crypto stack (IE, Outlook), Java 6, Java 7 and Android 2.3. Java 7 could be
172 made compatible by installing the "Java Cryptography Extension (JCE) Unlimited
173 Strength Jurisdiction Policy Files"
174 (JCE) \footnote{\url{http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html}}.
175 We could not verify yet if installing JCE also fixes the Java 7
176 DH-parameter length limitation (1024 bit). 
177
178 \textbf{Explanation}
179
180 For a detailed explanation of the cipher suites chosen, please see
181 \ref{section:ChoosingYourOwnCipherSuites}. In short, finding the perfect cipher
182 string is impossible and must be a tradeoff. On the one hand
183 there are mandatory and optional ciphers defined in a few RFCs, on the other hand
184 there are clients and servers only implementing subsets of the specification.
185
186 Straight forward, we wanted strong ciphers, forward secrecy
187 \footnote{\url{http://nmav.gnutls.org/2011/12/price-to-pay-for-perfect-forward.html}}
188 and the most clients we could get while still having a cipher string that can be
189 used on older servers too (think OpenSSL 0.9.8). This cipher string is meant to be used
190 by copy and paste and needs to just work.
191
192 \begin{itemize}
193 \item TLS1.2 is preferred over TLSv1.0/SSLv3 (while still providing a useable cipher
194       string for SSLv3).
195 \item AES256 and CAMELLIA256 count as strong ciphers at the moment; preferrably in
196       GCM mode.\\
197           \todo{add a reference here please}
198       \todo{Adi: add 128bit ciphers too} \\
199       \todo{Team: discuss ordering of keys (256 $\rightarrow$ 128 or vice versa?)}
200 \item DHE or ECDHE for forward secrecy
201 \item RSA as this will fit most of todays setup
202 \item AES256-SHA as a last ressort (with this cipher at the end, even systems with
203       very old versions of openssl like 0.9.8 will just work. Just forward secrecy
204       will not be used. On systems that do not support elliptic curves, that cipher
205       offers support for the Microsoft crypto libraries that only support ECDHE.
206 \end{itemize}
207 \todo{Adi: review "justification" when next section is written}
208
209
210
211 \subsection{Known insecure and weak cipher suites}
212 \todo{PG: please write this section. List all known broken, obsolete, weak and insecure cipher suites . Or even better: find the best site which keeps track of outdated cipher suites and simply reference it. We do not want to maintain such a list ourselves!}
213
214 Ciphers with 112bit or less are considered weak and aren't recommended. Note that
215 \texttt{3DES} provides only 112bit of security
216 \footnote{\url{http://csrc.nist.gov/publications/PubsSPs.html\#800-57-part1}}.
217
218 \subsection{Compatibility}
219 \todo{write this section. The idea here is to first document which server (and openssl) version we assumed. Once these parameters are fixed, we then list all clients which are supported for Variant A) and B). Therefore we can document compatibilities to some extent. The sysadmin can then choose roughly what he looses or gains by omitting certain cipher suites.}
220
221
222 \subsection{Choosing your own cipher suites}
223 \label{section:ChoosingYourOwnCipherSuites}
224
225 \todo{ Adi...  you want to describe how to make your own selection of cipher suites here.}
226
227 SSL/TLS cipher suites consist of a key exchange mechanism, an authentication, a
228 stream cipher (or a block cipher with a chaining mode) and a message authentication
229 mechanism.
230
231 Many of those mechanisms are interchangeable like the key exchange in this example:
232 \texttt{ECDHE-RSA-AES256-GCM-SHA384} and \texttt{DHE-RSA-AES256-GCM-SHA384}.
233 To provide a decent level of security, all algorithms need to be safe (subject to
234 the disclaimer in section \ref{section:disclaimer}).
235
236 Note: There are some very weak cipher suites in about every crypto library, most of
237 them for historic reasons like the crypto export embargo
238 \footnote{\url{http://en.wikipedia.org/wiki/Export_of_cryptography_in_the_United_States}}.
239 For the following chapter support of those is assumed to be disabled by having
240 \texttt{!EXP:!LOW:!NULL} as part of the cipher string.
241
242 \todo{Team: do we need references for all cipher suites considered weak?}
243
244 \subsubsection{key exchange}
245
246 Many algorithms allow a secure key exchange. Among those are RSA, DSA, DH, EDH, ECDSA,
247 ECDH, EECDH and a few others. During the key exchange, keys for authentication and for
248 encryption are exchanged. For RSA and DSA those keys are the same.
249
250 \begin{center}
251 \begin{tabular}{| l | l | l | l |}
252     \toprule
253  & \textbf{Key}  & \textbf{\cellcolor{orange}EC}  & \textbf{\cellcolor{green}ephemeral} \\ \cmidrule(lr){1-4}
254     \cellcolor{red}    RSA   & RSA  & \cellcolor{green}no   & \cellcolor{red} no         \\
255     \cellcolor{red}    DH    & RSA  & \cellcolor{green}no   & \cellcolor{red} no         \\
256     \cellcolor{green}  EDH   & RSA  & \cellcolor{green}no   & \cellcolor{green} yes      \\
257     \cellcolor{red}    ECDH  & both & \cellcolor{orange}yes & \cellcolor{red} no         \\
258     \cellcolor{orange} EECDH & both & \cellcolor{orange}yes & \cellcolor{green} yes      \\
259     \cellcolor{red}    DSA   & DSA  & \cellcolor{green}no   & \cellcolor{red} no         \\
260     \cellcolor{red}    ECDSA & DSA  & \cellcolor{orange}yes & \cellcolor{red} no         \\
261 \bottomrule
262 \end{tabular}
263 %\\
264 %\\
265 %disabled: \texttt{!PSK:!SRP}
266 \end{center}
267
268 \textbf{Ephemeral Key Exchange} uses different keys for authentication (the server's RSA
269 key) and encryption (a randomly created key). This advantage is called ``Forward
270 Secrecy'' and means that even recorded traffic cannot be decrypted later when someone
271 gets the server key. \\
272 All ephemeral key exchange mechanisms base on Diffie-Hellman algorithm and require
273 pre-generated Diffe-Hellman parameter (which allow fast ephemeral key generation). It
274 is important to note that the Diffie-Hellman parameters need to be at least as strong
275 (speaking in number of bits) as the RSA host key. \todo{TODO: reference!}
276
277
278 \textbf{Elliptic Curves}\ref{section:EllipticCurveCryptography} required by current TLS
279 standards only consist of the so-called NIST-curves (\texttt{secp256r1} and
280 \texttt{secp384r1}) which may be weak because the parameters that led to their generation
281 weren't properly explained (by the NSA). \\
282 Disabling support for Elliptic Curves leads to no ephemeral key exchange being available
283 for the Windows platform. When you decide to use Elliptic Curves despite the uncertainty,
284 make sure to at least use the stronger curve of the two supported by all clients
285 (\texttt{secp384r1}).
286
287
288 Other key exchange mechanisms like Pre-Shared Key (PSK) or Secure Remote Password
289 (SRP) are irrelevant for regular SSL/TLS use.
290
291 \subsubsection{authentication}
292
293 RSA, DSA, DSS, ECDSA, ECDH, FORTEZZA(?).
294
295 Other authentication mechanisms like Pre Shared Keys aren't used in SSL/TLS: \texttt{!PSK:!aNULL}
296
297 \subsubsection{encryption}
298
299 AES, CAMELLIA, SEED, ARIA(?), FORTEZZA(?)...
300
301 Other ciphers like IDEA, RC2, RC4, 3DES or DES are weak and therefor not recommended:
302 \texttt{!DES:!3DES:!RC2:!RC4:!eNULL}
303
304 \subsubsection{message authentication}
305
306 SHA-1 (SHA), SHA-2 (SHA256, SHA384), AEAD
307
308 Note that SHA-1 is considered broken and should not be used. SHA-1 is however a the
309 only still available message authentication mechanism supporting TLS1.0/SSLv3. Without
310 SHA-1 most clients will be locked out.
311
312 Other hash functions like MD2, MD4 or MD5 are unsafe and broken: \texttt{!MD2:!MD4:!MD5}
313
314 \subsubsection{combining cipher strings}
315 %% reference 'man ciphers' and 'openssl ciphers' and show some simple examples
316 %% VERY IMPORTANT: hint at the IANA-list and the differences in implementations
317
318 \todo{ Adi...  The text below was simply the old text, still left here for reference.}
319
320 %%% NOTE: we do not need to list this all here, can move to an appendix
321 %At the time of this writing, SSL is defined in RFCs:   
322 %
323 %\begin{itemize}
324 %\item RFC2246 - TLS1.0         
325 %\item RFC3268 - AES            
326 %\item RFC4132 - Camelia                
327 %\item RFC4162 - SEED           
328 %\item RFC4279 - PSK            
329 %\item RFC4346 - TLS 1.1                
330 %\item RFC4492 - ECC            
331 %\item RFC4785 - PSK\_NULL              
332 %\item RFC5246 - TLS 1.2                
333 %\item RFC5288 - AES\_GCM               
334 %\item RFC5289 - AES\_GCM\_SHA2\_ECC            
335 %\item RFC5430 - Suite B                
336 %\item RFC5487 - GCM\_PSK               
337 %\item RFC5489 - ECDHE\_PSK             
338 %\item RFC5932 - Camelia                
339 %\item RFC6101 - SSL 3.0                
340 %\item RFC6209 - ARIA           
341 %\item RFC6367 - Camelia                
342 %\item RFC6655 - AES\_CCM               
343 %\item RFC7027 - Brainpool Curves               
344 %\end{itemize}
345
346 \subsubsection{Overview of SSL Server settings}
347
348
349 Most Server software (Webservers, Mail servers, etc.) can be configured to prefer certain cipher suites over others. 
350 We followed the recommendations by Ivan Ristic's SSL/TLS Deployment Best Practices\footnote{\url{https://www.ssllabs.com/projects/best-practices/index.html}} document (see section 2.2 "Use Secure Protocols") and arrived at a list of recommended cipher suites for SSL enabled servers.
351
352 Following Ivan Ristic's adivce we arrived at a categorisation of cipher suites.
353
354 \begin{center}
355 \begin{tabular}{lllll}
356 \cmidrule[\heavyrulewidth]{2-5}
357 & \textbf{Version}   & \textbf{KeyEx} & \textbf{Cipher}    & \textbf{MAC}       \\\cmidrule(lr){2-5}
358 \cellcolor{green}prefer  & TLS 1.2   & DHE\_DSS   & AES\_256\_GCM   & SHA384        \\
359     &   & DHE\_RSA   & AES\_256\_CCM   & SHA256        \\
360     &   & ECDHE\_ECDSA   & AES\_256\_CBC   &       \\
361     &   & ECDHE\_RSA &   &       \\ 
362     &   &   &   &       \\
363 \cellcolor{orange}consider    & TLS 1.1   & DH\_DSS    & AES\_128\_GCM   & SHA       \\
364     & TLS 1.0   & DH\_RSA    & AES\_128\_CCM   &       \\
365     &   & ECDH\_ECDSA    & AES\_128\_CBC   &       \\ 
366     &   & ECDH\_RSA  & CAMELLIA\_256\_CBC  &       \\
367     &   & RSA   & CAMELLIA\_128\_CBC  &       \\
368     &   &   &   &       \\
369 \cellcolor{red}avoid   
370 & SSL 3.0   & NULL  & NULL  & NULL      \\
371     &   & DH\_anon   & RC4\_128   & MD5       \\
372     &   & ECDH\_anon & 3DES\_EDE\_CBC  &       \\
373     &   &   & DES\_CBC   &       \\
374     &   &   &   &       \\
375 \cellcolor{blue}{\color{white}special }
376 &   & PSK   & CAMELLIA\_256\_GCM  &       \\
377     &   & DHE\_PSK   & CAMELLIA\_128\_GCM  &       \\
378     &   & RSA\_PSK   & ARIA\_256\_GCM  &       \\
379     &   & ECDHE\_PSK & ARIA\_256\_CBC  &       \\
380     &   &   & ARIA\_128\_GCM  &       \\
381     &   &   & ARIA\_128\_CBC  &       \\
382     &   &   & SEED  &       \\
383 \cmidrule[\heavyrulewidth]{2-5}
384 \end{tabular}
385 \end{center}
386
387 A remark on the ``consider'' section: the BSI (Federal office for information security, Germany) recommends in its technical report TR-02102-2\footnote{\url{https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02102/BSI-TR-02102-2_pdf.html}} to \textbf{avoid} non-ephemeral\footnote{Ephemeral keys are session keys which are destroyed upon termination of the encrypted session. In TLS/SSL, they are realized by the DHE cipher suites. } keys for any communication which might contain personal or sensitive data. In this document, we follow BSI's advice and therefore only keep cipher suites containing (EC)DH\textbf{E} (ephemeral) variants. System administrators, who can not use forward secrecy can still use the cipher suites in the ``consider'' section. We however, do not recommend them in this document.
388
389 %% NOTE: s/forward secrecy/perfect forward secrecy???
390
391 Note that the entries marked as ``special'' are cipher suites which are not common to all clients (webbrowsers etc).
392
393
394 \subsubsection{Tested clients}
395  
396 Next we tested the cipher suites above on the following clients:
397
398 %% NOTE: we need to test with more systems!!
399 \begin{itemize}
400 \item Chrome 30.0.1599.101 Mac OS X 10.9
401 \item Safari 7.0 Mac OS X 10.9
402 \item Firefox 25.0 Mac OS X 10.9
403 \item Internet Explorer 10 Windows 7
404 \item Apple iOS 7.0.3
405 \end{itemize}
406
407
408 The result of testing the cipher suites with these clients gives us a preference order as shown in table \ref{table:prefOrderCipherSuites}. 
409 Should a client not be able to use a specific cipher suite, it will fall back to the next possible entry as given by the ordering.
410
411 \begin{table}[h]
412 \centering\small
413     \begin{tabular}{cllcccc}
414     \toprule
415     \textbf{Pref}   & \textbf{Cipher Suite}                            & \textbf{ID}   & \multicolumn{4}{l}{\textbf{Supported by}}\\ 
416     \cmidrule(lr){4-7}
417                     & \textbf{OpenSSL Name}                            &               & Chrome & FF   & IE   & Safari \\
418     \cmidrule(lr){1-7}
419     \phantom{0}1    & \verb|TLS_DHE_RSA_WITH_AES_256_GCM_SHA384|     & \verb|0x009f| & \no    & \no  & \no  & \no    \\
420                     & \verb|DHE-RSA-AES256-GCM-SHA384|                      &               & &&&\\\rowcolor{lightlightgray}
421     \phantom{0}2    & \verb|TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384| & \verb|0xC024| & \no    & \no  & \no  & \yes   \\\rowcolor{lightlightgray}
422                     & \verb|ECDHE-ECDSA-AES256-SHA384|                      &               & &&&\\
423     \phantom{0}3    & \verb|TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384|   & \verb|0xC028| & \no    & \no  & \no  & \yes   \\
424                     & \verb|ECDHE-RSA-AES256-SHA384|                        &               & &&&\\\rowcolor{lightlightgray}
425     \phantom{0}4    & \verb|TLS_DHE_RSA_WITH_AES_256_CBC_SHA256|     & \verb|0x006B| & \yes   & \no  & \no  & \yes   \\\rowcolor{lightlightgray}
426                     & \verb|DHE-RSA-AES256-SHA256|                          &               & &&&\\
427     \phantom{0}5    & \verb|TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA|    & \verb|0xC00A| & \yes   & \yes & \yes & \yes   \\
428                     & \verb|ECDHE-ECDSA-AES256-SHA|                         &               & &&&\\\rowcolor{lightlightgray}
429     \phantom{0}6    & \verb|TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA|      & \verb|0xC014| & \yes   & \yes & \yes & \yes   \\\rowcolor{lightlightgray}
430                     & \verb|ECDHE-RSA-AES256-SHA|                           &               & &&&\\
431     \phantom{0}7    & \verb|TLS_DHE_RSA_WITH_AES_256_CBC_SHA|        & \verb|0x0039| & \yes   & \yes & \no  & \yes   \\
432                     & \verb|DHE-RSA-AES256-SHA|                             &               & &&&\\\rowcolor{lightlightgray}
433     \phantom{0}8    & \verb|TLS_DHE_DSS_WITH_AES_256_CBC_SHA|        & \verb|0x0038| & \no    & \yes & \yes & \no    \\\rowcolor{lightlightgray}
434                     & \verb|DHE-DSS-AES256-SHA|                             &               & &&&\\
435     \phantom{0}9    & \verb|TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA|   & \verb|0x0088| & \no    & \yes & \no  & \no    \\
436                     & \verb|DHE-RSA-CAMELLIA256-SHA|                        &               & &&&\\\rowcolor{lightlightgray}
437     \phantom{}10    & \verb|TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA|   & \verb|0x0087| & \no    & \yes & \no  & \no    \\\rowcolor{lightlightgray}
438                     & \verb|DHE-DSS-CAMELLIA256-SHA|                        &               & &&&\\
439    \bottomrule
440     \end{tabular}
441 \caption{Preference order of cipher suites.  All suites are supported by OpenSSL.}
442 \label{table:prefOrderCipherSuites}
443 \end{table}
444
445 Note: the above table \ref{table:prefOrderCipherSuites} contains Elliptic curve key exchanges. There are currently strong doubts\footnote{\url{http://safecurves.cr.yp.to/rigid.html}} concerning ECC.
446 If unsure, remove the cipher suites starting with ECDHE in the table above.
447
448
449 Based on this ordering, we can now define the corresponding settings for servers. We will start with the most common web servers.
450