Add information about DH param compatibility
[ach-master.git] / src / practical_settings / proxy_solutions.tex
1 %hack.
2 \gdef\currentsectionname{Proxies}
3 %%\subsection{Intercepting proxy solutions and reverse proxies}
4
5 Within enterprise networks and corporations with increased levels of paranoia or at least some defined security requirements it is common \textbf{not} to allow direct connections to the public internet.
6
7 For this reason proxy solutions are deployed on corporate networks to intercept and scan the traffic for potential threats within sessions.
8
9 For encrypted traffic there are four options:
10
11 \begin{itemize*}
12   \item Block the connection because it cannot be scanned for threats.
13   \item Bypass the threat-mitigation and pass the encrypted session to the client, which results in a situation where malicious content is transferred directly to the client without visibility to the security system.
14   \item Intercept (i.e. terminate) the session at the proxy, scan there and re-encrypt the session towards the client (effectively MITM).
15   \item Deploy special Certificate Authorities to enable Deep Packet Inspection on the wire.
16 \end{itemize*}
17
18 While the latest solution might be the most "up to date", it arises a new front in the context of this paper, because the most secure part of a client's connection could only be within the corporate network, if the proxy-server handles the connection to the destination server in an insecure manner.
19
20 Conclusion: Don't forget to check your proxy solutions SSL-capabilities. Also do so for your reverse proxies!
21
22 %% ---------------------------------------------------------------------- 
23 % who was the author of this section?
24 % can we have this either tested or removed?
25 %\subsection{Squid}
26 %As of squid-3.2.7 (01 Feb 2013) there is support for the OpenSSL NO\_Compression option within squid config (CRIME attack) and if you combine that in the config file, with an enforcement of the server cipher preferences (BEAST Attack) you are safe.
27 %
28 %
29 %\todo{UNTESTED!}
30 %\configfile{squid.conf}{1363-1363,1379-1379}{Cipher selection and SSL options in Squid}
31 %%% http://forum.pfsense.org/index.php?topic=63262.0
32 %%\todo{UNTESTED!}
33 %% see squid.conf, repeating the options here does not help.
34 %\todo{Patch here? Definitely working for 3.2.6!}
35 %For squid Versions before 3.2.7 use this patch against a vanilla source-tree:
36 %\begin{lstlisting}
37 %--- support.cc.ini      2013-01-09 02:41:51.000000000 +0100
38 %+++ support.cc  2013-01-21 16:13:32.549383848 +0100
39 %@@ -400,6 +400,11 @@
40 %         "NO_TLSv1_2", SSL_OP_NO_TLSv1_2
41 %     },
42 % #endif
43 %+#ifdef SSL_OP_NO_COMPRESSION
44 %+    {
45 %+        "NO_Compression", SSL_OP_NO_COMPRESSION
46 %+    },
47 %+#endif
48 %     {
49 %         "", 0
50 %     },
51 %\end{lstlisting}
52 %
53 %
54 %% ---------------------------------------------------------------------- 
55 \subsection{Bluecoat}
56 %% https://kb.bluecoat.com/index?page=content&id=KB5549
57 \subsubsection{Tested with Versions}
58 \begin{itemize*}
59   \item SGOS 6.5.x
60 \end{itemize*}
61
62 BlueCoat Proxy SG Appliances can be used as forward and reverse proxies. The reverse proxy feature is rather under-developed, and while it is possible and supported, there only seems to be limited use of this feature "in the wild" - nonetheless there are a few cipher suites to choose from, when enabling SSL features.
63
64 \paragraph*{Only allow TLS 1.0,1.1 and 1.2 protocols:}
65 ~
66 \begin{lstlisting}
67 $conf t
68 $(config)ssl
69 $(config ssl)edit ssl-device-profile default
70 $(config device-profile default)protocol tlsv1 tlsv1.1 tlsv1.2
71   ok
72 \end{lstlisting}
73
74 \paragraph*{Select your accepted cipher-suites:}
75 ~
76 \begin{lstlisting}
77 $conf t
78 Enter configuration commands, one per line.  End with CTRL-Z.
79 $(config)proxy-services
80 $(config proxy-services)edit ReverseProxyHighCipher
81 $(config ReverseProxyHighCipher)attribute cipher-suite
82 Cipher#  Use        Description        Strength
83 -------  ---  -----------------------  --------
84       1  yes            AES128-SHA256      High
85       2  yes            AES256-SHA256      High
86       3  yes               AES128-SHA    Medium
87       4  yes               AES256-SHA      High
88       5  yes       DHE-RSA-AES128-SHA      High
89       6  yes       DHE-RSA-AES256-SHA      High
90                [...]
91      13  yes          EXP-RC2-CBC-MD5    Export
92
93 Select cipher numbers to use, separated by commas: 2,5,6
94   ok
95 \end{lstlisting}
96
97 The same protocols are available for forward proxy settings and should be adjusted accordingly:
98 In your local policy file add the following section:
99 \begin{lstlisting}
100 <ssl>
101     DENY server.connection.negotiated_ssl_version=(SSLV2, SSLV3)
102 \end{lstlisting}
103
104 Disabling protocols and ciphers in a forward proxy environment could lead to unexpected results on certain (misconfigured?) webservers (i.e. ones accepting only SSLv2/3 protocol connections)
105
106
107 %% ---------------------------------------------------------------------- 
108 \subsection{Pound}
109 % See http://www.apsis.ch/pound
110 % See https://help.ubuntu.com/community/Pound
111
112 \subsubsection{Tested with Versions}
113 \begin{itemize*}
114   \item Pound 2.6
115 \end{itemize*}
116
117 \subsubsection{Settings}
118 \configfile{pound.cfg}{31}{HTTPS Listener in Pound}