add more todo sections
[ach-master.git] / src / practical_settings.tex
1 \section{Recommendations on practical settings}
2
3 \subsection{SSL}
4
5 %%% NOTE: we do not need to list this all here, can move to an appendix
6 %At the time of this writing, SSL is defined in RFCs:   
7 %
8 %\begin{itemize}
9 %\item RFC2246 - TLS1.0         
10 %\item RFC3268 - AES            
11 %\item RFC4132 - Camelia                
12 %\item RFC4162 - SEED           
13 %\item RFC4279 - PSK            
14 %\item RFC4346 - TLS 1.1                
15 %\item RFC4492 - ECC            
16 %\item RFC4785 - PSK\_NULL              
17 %\item RFC5246 - TLS 1.2                
18 %\item RFC5288 - AES\_GCM               
19 %\item RFC5289 - AES\_GCM\_SHA2\_ECC            
20 %\item RFC5430 - Suite B                
21 %\item RFC5487 - GCM\_PSK               
22 %\item RFC5489 - ECDHE\_PSK             
23 %\item RFC5932 - Camelia                
24 %\item RFC6101 - SSL 3.0                
25 %\item RFC6209 - ARIA           
26 %\item RFC6367 - Camelia                
27 %\item RFC6655 - AES\_CCM               
28 %\item RFC7027 - Brainpool Curves               
29 %\end{itemize}
30
31 \subsubsection{Overview of SSL Server settings}
32
33 Most Server software (Webservers, Mail servers, etc.) can be configured to prefer certain cipher suites over others. 
34 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.
35
36 Following Ivan Ristic's adivce we arrived at a categorisation of cipher suites.
37
38 \begin{center}
39 \begin{tabular}{| l | l | l | l | l|}
40 \hline
41 & Version   & Key\_Exchange  & Cipher    & MAC       \\ \hline
42 \cellcolor{green}prefer  & TLS 1.2   & DHE\_DSS   & AES\_256\_GCM   & SHA384        \\ \hline
43     &   & DHE\_RSA   & AES\_256\_CCM   & SHA256        \\ \hline
44     &   & ECDHE\_ECDSA   & AES\_256\_CBC   &       \\ \hline
45     &   & ECDHE\_RSA &   &       \\ \hline
46     &   &   &   &       \\ \hline
47 \cellcolor{orange}consider    & TLS 1.1   & DH\_DSS    & AES\_128\_GCM   & SHA       \\ \hline
48     & TLS 1.0   & DH\_RSA    & AES\_128\_CCM   &       \\ \hline
49     &   & ECDH\_ECDSA    & AES\_128\_CBC   &       \\ \hline
50     &   & ECDH\_RSA  & CAMELLIA\_256\_CBC  &       \\ \hline
51     &   & RSA   & CAMELLIA\_128\_CBC  &       \\ \hline
52     &   &   &   &       \\ \hline
53 \cellcolor{red}avoid   
54 & SSL 3.0   & NULL  & NULL  & NULL      \\ \hline
55     &   & DH\_anon   & RC4\_128   & MD5       \\ \hline
56     &   & ECDH\_anon & 3DES\_EDE\_CBC  &       \\ \hline
57     &   &   & DES\_CBC   &       \\ \hline
58     &   &   &   &       \\ \hline
59 \cellcolor{blue}{\color{white}special }
60 &   & PSK   & CAMELLIA\_256\_GCM  &       \\ \hline
61     &   & DHE\_PSK   & CAMELLIA\_128\_GCM  &       \\ \hline
62     &   & RSA\_PSK   & ARIA\_256\_GCM  &       \\ \hline
63     &   & ECDHE\_PSK & ARIA\_256\_CBC  &       \\ \hline
64     &   &   & ARIA\_128\_GCM  &       \\ \hline
65     &   &   & ARIA\_128\_CBC  &       \\ \hline
66     &   &   & SEED  &       \\ \hline
67 \end{tabular}
68 \end{center}
69
70 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.
71
72 %% NOTE: s/forward secrecy/perfect forward secrecy???
73
74 Note that the entries marked as ``special'' are cipher suites which are not common to all clients (webbrowsers etc).
75
76
77 \subsubsection{Tested clients}
78  
79 Next we tested the cipher suites above on the following clients:
80
81 %% NOTE: we need to test with more systems!!
82 \begin{itemize}
83 \item Chrome 30.0.1599.101 Mac OS X 10.9
84 \item Safari 7.0 Mac OS X 10.9
85 \item Firefox 25.0 Mac OS X 10.9
86 \item Internet Explorer 10 Windows 7
87 \item Apple iOS 7.0.3
88 \end{itemize}
89
90
91 The result of testing the cipher suites with these clients gives us a preference order as shown in table \ref{table:prefOrderCipherSuites}. 
92 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.
93
94 \begin{center}
95 \begin{table}[h]
96 \small
97     \begin{tabular}{|l|l|l|l|l|}
98     \hline
99     Pref & Cipher Suite                                   & ID         & Browser                     \\ \hline
100     1    & TLS\_DHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384     &     0x009f & OpenSSL command line client \\ \hline
101     2    & TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_CBC\_SHA384 &     0xC024 & Safari                      \\ \hline
102     3    & TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA384   &     0xC028 & Safari                      \\ \hline
103     4    & TLS\_DHE\_RSA\_WITH\_AES\_256\_CBC\_SHA256     &     0x006B & Safari, Chrome              \\ \hline
104     5    & TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_CBC\_SHA    &     0xC00A & Safari, Chrome, Firefox, IE \\ \hline
105     6    & TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA      &     0xC014 & Safari, Chrome, Firefox, IE \\ \hline
106     7    & TLS\_DHE\_RSA\_WITH\_AES\_256\_CBC\_SHA        &     0x0039 & Safari, Chrome, Firefox     \\ \hline
107     8    & TLS\_DHE\_DSS\_WITH\_AES\_256\_CBC\_SHA        &     0x0038 & Firefox, IE                 \\ \hline
108     9    & TLS\_DHE\_RSA\_WITH\_CAMELLIA\_256\_CBC\_SHA   &     0x0088 & Firefox                     \\ \hline
109     10   & TLS\_DHE\_DSS\_WITH\_CAMELLIA\_256\_CBC\_SHA   &     0x0087 & Firefox                     \\ \hline
110     \end{tabular}
111 \caption{Preference order of cipher suites}
112 \label{table:prefOrderCipherSuites}
113 \end{table}
114 \end{center}
115
116
117 Table \ref{table:prefOrderOpenSSLNames} shows the same data again with specifying the corresponding OpenSSL name.
118
119 \begin{center}
120 \begin{table}[h]
121 \small
122     \begin{tabular}{|l|l|l|}
123     \hline
124     Cipher Suite                                   & ID         & OpenSSL Name                  \\ \hline
125     TLS\_DHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384     &     0x009f &         DHE-RSA-AES256-GCM-SHA384 \\ \hline
126     TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_CBC\_SHA384 &     0xC024 &     ECDHE-ECDSA-AES256-SHA384 \\ \hline
127     TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA384   &     0xC028 &     ECDHE-RSA-AES256-SHA384   \\ \hline
128     TLS\_DHE\_RSA\_WITH\_AES\_256\_CBC\_SHA256     &     0x006B &     DHE-RSA-AES256-SHA256     \\ \hline
129     TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_CBC\_SHA    &     0xC00A &     ECDHE-ECDSA-AES256-SHA    \\ \hline
130     TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA      &     0xC014 &     ECDHE-RSA-AES256-SHA      \\ \hline
131     TLS\_DHE\_RSA\_WITH\_AES\_256\_CBC\_SHA        &     0x0039 &     DHE-RSA-AES256-SHA        \\ \hline
132     TLS\_DHE\_DSS\_WITH\_AES\_256\_CBC\_SHA        &     0x0038 &     DHE-DSS-AES256-SHA        \\ \hline
133     TLS\_DHE\_RSA\_WITH\_CAMELLIA\_256\_CBC\_SHA   &     0x0088 &     DHE-RSA-CAMELLIA256-SHA   \\ \hline
134     TLS\_DHE\_DSS\_WITH\_CAMELLIA\_256\_CBC\_SHA   &     0x0087 &     DHE-DSS-CAMELLIA256-SHA   \\ \hline
135     \end{tabular}
136 \caption{Preference order of cipher suites, with OpenSSL names}
137 \label{table:prefOrderOpenSSLNames}
138 \end{table}
139 \end{center}
140
141 Note: the tables \ref{table:prefOrderOpenSSLNames} and \ref{table:prefOrderCipherSuites} contain Elliptic curve key exchanges. There are currently strong doubts\footnote{\url{http://safecurves.cr.yp.to/rigid.html}} concerning ECC.
142 If unsure, remove the cipher suites starting with ECDHE in the table above.
143
144
145 Based on this ordering, we can now define the corresponding settings for servers. We will start with the most common web servers
146
147 \subsubsection{Apache}
148
149 \todo{separate into Variant A and B}
150
151 Note: a "\textbackslash" (backslash) denotes a line continuation which was wrapped due to formatting reasons here. Do not copy it verbatim.
152
153 %-All +TLSv1.1 +TLSv1.2
154 \begin{verbatim}
155   SSLProtocol All -SSLv2 -SSLv3 
156   SSLHonorCipherOrder On
157   SSLCompression off
158   # Add six earth month HSTS header for all users...
159   Header add Strict-Transport-Security "max-age=15768000"
160   # If you want to protect all subdomains, use the following header
161   # ALL subdomains HAVE TO support https if you use this!
162   # Strict-Transport-Security: max-age=15768000 ; includeSubDomains
163
164   SSLCipherSuite  DHE+AESGCM:\
165     ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:\
166     DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-SHA:\
167     ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:\
168     DHE-DSS-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:\
169     DHE-DSS-CAMELLIA256-SHA:!ADH:!AECDH:!MD5:!DSS
170 \end{verbatim}
171
172 Note again, that any cipher suite starting with ECDHE  can be omitted in case of doubt.
173 %% XXX NOTE TO SELF: remove from future automatically generated lists!
174
175 You should redirect everything to httpS:// if possible. In Apache you can do this with the following setting inside of a VirtualHost environment:
176
177 \begin{verbatim}
178   <VirtualHost *:80>
179    #...
180    RewriteEngine On
181         RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=permanent]
182    #...
183   </VirtualHost>
184 \end{verbatim}
185
186 %XXXX   ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AES:RSA+3DES:!ADH:!AECDH:!MD5:!DSS
187
188
189 \subsubsection{lighttpd}
190
191 \todo{separate into Variant A and B}
192
193
194 %% Note: need to be checked / reviewed
195
196 %% Complete ssl.cipher-list with same algo than Apache
197 %% Currently this is only the default proposed lighttpd config for SSL
198 \begin{verbatim}
199   $SERVER["socket"] == "0.0.0.0:443" {
200     ssl.engine  = "enable"
201     ssl.use-sslv2 = "disable"
202     ssl.use-sslv3 = "disable"
203     ssl.use-compression = "disable"
204     ssl.pemfile = "/etc/lighttpd/server.pem"
205     ssl.cipher-list = "DHE+AESGCM:\
206       ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:\
207       DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-SHA:\
208       ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:\
209       DHE-DSS-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:\
210       DHE-DSS-CAMELLIA256-SHA:!ADH:!AECDH:!MD5:!DSS"
211     ssl.honor-cipher-order = "enable"
212   }
213 \end{verbatim}
214
215 As for any other webserver, you should redirect automatically http traffic toward httpS:\footnote{That proposed configuration is directly coming from lighttpd documentation: \url{http://redmine.lighttpd.net/projects/1/wiki/HowToRedirectHttpToHttps}}
216
217 \begin{verbatim}
218   $HTTP["scheme"] == "http" {
219     # capture vhost name with regex conditiona -> %0 in redirect pattern
220     # must be the most inner block to the redirect rule
221     $HTTP["host"] =~ ".*" {
222         url.redirect = (".*" => "https://%0$0")
223     }
224   }
225 \end{verbatim}
226
227 \subsubsection{nginx}
228
229 \todo{separate into Variant A and B}
230
231
232 \begin{verbatim}
233   ssl_prefer_server_ciphers on;
234   ssl_protocols -SSLv2 -SSLv3; 
235   ssl_ciphers DHE+AESGCM:\
236     ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:\
237     DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-SHA:\
238     ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:\
239     DHE-DSS-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:\
240     DHE-DSS-CAMELLIA256-SHA:!ADH:!AECDH:!MD5:!DSS;
241   add_header Strict-Transport-Security max-age=2592000;
242   add_header X-Frame-Options DENY;
243 \end{verbatim}
244
245 %% XXX FIXME: do we need to specify dhparams? Parameter: ssl_dhparam = file. See: http://wiki.nginx.org/HttpSslModule#ssl_protocols
246
247
248 If you decide to trust NIST's ECC curve recommendation, you can add the following line to nginx's configuration file to select special curves:
249
250 \begin{verbatim}
251   ssl_ecdh_curve          sect571k1;
252 \end{verbatim}
253
254 You should redirect everything to httpS:// if possible. In Nginx you can do this with the following setting:
255
256 \begin{verbatim}
257   rewrite     ^(.*)   https://$host$1 permanent;
258 \end{verbatim}
259
260 %\subsubsection{openssl.conf settings}
261
262 %\subsubsection{Differences in SSL libraries: gnutls vs. openssl vs. others}
263
264 \subsubsection{MS IIS}
265 \label{sec:ms-iis}
266
267
268 \todo{separate into Variant A and B}
269
270 When trying to avoid RC4 and CBC (BEAST-Attack) and requiring perfect
271 forward secrecy, Microsoft Internet Information Server (IIS) supports
272 ECDSA, but does not support RSA for key exchange (consider ECC suite
273 B doubts\footnote{\url{http://safecurves.cr.yp.to/rigid.html}}).
274
275 Since \verb|ECDHE_RSA_*| is not supported, a SSL certificate based on
276 elliptic curves needs to be used.
277
278 The configuration of cipher suites MS IIS will use can be configured in one
279 of the following ways:
280 \begin{enumerate}
281 \item Group Policy \footnote{\url{http://msdn.microsoft.com/en-us/library/windows/desktop/bb870930(v=vs.85).aspx}}
282 \item Registry
283 \item IIS Crypto~\footnote{\url{https://www.nartac.com/Products/IISCrypto/}}
284 \end{enumerate}
285
286
287 Table~\ref{tab:MS_IIS_Client_Support} shows the process of turning on
288 one algorithm after another and the effect on the supported Clients
289 tested using https://www.ssllabs.com.
290
291 \verb|SSL 3.0|, \verb|SSL 2.0| and \verb|MD5| are turned off.
292 \verb|TLS 1.0| and \verb|TLS 2.0| are turned on.
293
294 \begin{table}[h]
295   \centering
296   \small
297   \begin{tabular}{|l|l|}
298     \hline
299     Cipher Suite & Client \\
300     \hline
301     \verb|TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256| & only IE 10,11, OpenSSL 1.0.1e \\
302     \hline
303     \verb|TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256| & Chrome 30, Opera 17, Safari 6+ \\
304     \hline
305     \verb|TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA| & FF 10-24, IE 8+, Safari 5, Java 7\\
306     \hline
307   \end{tabular}
308   \caption{Client support}
309   \label{tab:MS_IIS_Client_Support}
310 \end{table}
311
312 Table~\ref{tab:MS_IIS_Client_Support} shows the algoriths from
313 strongest to weakest and why they need to be added in this order. For
314 example insiting on SHA-2 algorithms (only first two lines) would
315 eliminate all versions of Firefox, so the last line is needed to
316 support this browser, but should be placed at the bottom, so capable
317 browsers will choose the stronger SHA-2 algorithms.
318
319 \verb|TLS_RSA_WITH_RC4_128_SHA| or equivalent should also be added if
320 MS Terminal Server Connection is used (make sure to use this only in a
321 trusted environment). This suite will not be used for SSL, since we do
322 not use a RSA Key.
323
324
325 % \verb|TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256| ... only supported by: IE 10,11, OpenSSL 1.0.1e
326 % \verb|TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256| ... Chrome 30, Opera 17, Safari 6+
327 % \verb|TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA| ... Firefox 10-24, IE 8+, Safari 5, Java 7
328
329
330 Not supported Clients:
331 \begin{enumerate}
332 \item Java 6
333 \item WinXP
334 \item Bing
335 \end{enumerate}
336
337
338
339 \subsubsection{Dovecot}
340
341
342 \todo{separate into Variant A and B}
343
344 Dovecot 2.2:
345
346 % Example: http://dovecot.org/list/dovecot/2013-October/092999.html
347
348 \begin{verbatim}
349   ssl_cipher_list = DHE+AESGCM:\
350     ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:\
351     DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-SHA:\
352     ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:\
353     DHE-DSS-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:\
354     DHE-DSS-CAMELLIA256-SHA:!ADH:!AECDH:!MD5:!DSS
355   ssl_prefer_server_ciphers = yes
356 \end{verbatim}
357
358 Dovecot 2.1: Almost as good as dovecot 2.2. Does not support ssl\_prefer\_server\_ciphers
359
360
361 \subsubsection{Cyrus}
362
363 \todo{write this subsubsection}
364
365 \subsubsection{UW}
366
367 \todo{write this subsubsection}
368
369 Another option to secure IMAPs servers is to place them behind an stunnel server. 
370
371 % XXX config von Adi?
372 % sslVersion = TLSv1
373 % ciphers = EDH+CAMELLIA256:EDH+aRSA:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED:-AES128:!CAMELLIA128:!ECDSA:AES256-SHA:EDH+AES128;
374 % options = CIPHER_SERVER_PREFERENCE
375 % TIMEOUTclose = 1
376
377 \subsubsection{Postfix}
378
379
380 \todo{separate into Variant A and B}
381
382 First, you need to generate Diffie Hellman parameters (please first take a look at the section \ref{section:PRNG}):
383
384 \begin{verbatim}
385   % openssl gendh -out /etc/postfix/dh_param_512.pem -2 512
386   % openssl gendh -out /etc/postfix/dh_param_1024.pem -2 1024
387 \end{verbatim}
388
389 Next, we specify these DH parameters in the postfix config file:
390
391 \begin{verbatim}
392   smtpd_tls_dh512_param_file = /etc/postfix/dh_param_512.pem
393   smtpd_tls_dh1024_param_file = /etc/postfix/dh_param_1024.pem
394 \end{verbatim}
395
396 You usually don't want restrictions on the ciphers for opportunistic
397 encryption, because any encryption is better than plain text. 
398
399 For submission (Port 587) or other special cases, however, you want to
400 enforce strong encryption. In addition to the below entries in
401 main.cf, you need to enable ``mandatory`` encryption for the
402 respective service, e.g. by adding ``-o
403 smtpd\_tls\_security\_level=encrypt'' to the submission smtpd in
404 master.cf.
405
406 % don't -- this influences opportunistic encryption
407 %  smtpd_tls_protocols = !SSLv2, !SSLv3
408
409 \begin{verbatim}
410   smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
411   tls_ssl_options=NO_COMPRESSION
412   smtpd_tls_mandatory_ciphers=high
413   tls_high_cipherlist=DHE+AESGCM:ECDHE-ECDSA-AES256-SHA384:\
414     ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-SHA:\
415     ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:\
416     DHE-RSA-CAMELLIA256-SHA:DHE-DSS-CAMELLIA256-SHA:!ADH:!AECDH:\
417     !MD5:!DSS
418   tls_preempt_cipherlist = yes
419   tls_random_source = dev:/dev/urandom          
420     %% NOTE: might want to have /dev/random here + Haveged
421 \end{verbatim}
422   
423 For those users, who want to use ECC key exchange, it is possible to specify this via:
424 \begin{verbatim}
425   smtpd_tls_eecdh_grade = ultra
426 \end{verbatim}
427
428 You can check the settings by specifying  smtpd\_tls\_loglevel = 1 and then check the selected ciphers with the following command:
429 \begin{verbatim}
430 $ zegrep "TLS connection established from.*with cipher" /var/log/mail.log | \
431 > awk '{printf("%s %s %s %s\n", $12, $13, $14, $15)}' | sort | uniq -c | sort -n
432       1 SSLv3 with cipher DHE-RSA-AES256-SHA
433      23 TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384
434      60 TLSv1 with cipher ECDHE-RSA-AES256-SHA
435     270 TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384
436     335 TLSv1 with cipher DHE-RSA-AES256-SHA
437 \end{verbatim}
438
439 Source: \url{http://www.postfix.org/TLS_README.html}
440
441 \subsubsection{SMTP: opportunistic TLS}
442
443 \todo{write this subsubsection}
444
445 % do we need to documment starttls in detail?
446 %\subsubsection{starttls?}
447
448 \subsection{SSH}
449
450
451 \begin{verbatim}
452         RSAAuthentication yes
453         PermitRootLogin no
454         StrictModes yes
455         HostKey /etc/ssh/ssh_host_rsa_key
456         Ciphers aes256-ctr
457         MACs hmac-sha2-512,hmac-sha2-256,hmac-ripemd160
458         KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1
459 \end{verbatim}
460
461 % XXX: curve25519-sha256@libssh.org only available upstream(!)
462 Note: older linux systems won't support SHA2, PuTTY does not support RIPE-MD160.
463
464 \subsection{OpenVPN}
465
466 \todo{write this subsection}
467
468 \subsection{IPSec}
469 \todo{write this subsection}
470
471 \subsection{PGP}
472
473 \todo{write this subsection}
474
475
476
477 %%% Local Variables: 
478 %%% mode: latex
479 %%% TeX-master: "applied-crypto-hardening"
480 %%% End: