Merge branch 'master' of https://git.bettercrypto.org/ach-master
[ach-master.git] / src / practical_settings.tex
index 41a4a62..a6680c6 100644 (file)
@@ -663,12 +663,17 @@ Note: older linux systems won't support SHA2, PuTTY does not support RIPE-MD160.
 
 \subsection{VPNs}
 \todo{write this subsection}
 
 \subsection{VPNs}
 \todo{write this subsection}
-\subsubsection{IPSec}
+\subsubsection{IPSec in general}
+\label{section:IPSECgeneral}
+
 
 \todo{cm: check if there are downgrade attacks for checkpoint \& co} \\
 
 \todo{cm: check if there are downgrade attacks for checkpoint \& co} \\
-\todo{cm: reference the paper describing how complex IPSec is and that it can't be checked properly} \\
 \todo{cm: change this to a table format: Variant ((A,B), (recommendations, recommendations))} \\
 
 \todo{cm: change this to a table format: Variant ((A,B), (recommendations, recommendations))} \\
 
+\begin{description}
+
+\item[Settings:] \mbox{}
+
 \paragraph*{Assumptions}\mbox{}\\
 
 We assume the usage of IKE (v1 or v2) for this document, and ESP.
 \paragraph*{Assumptions}\mbox{}\\
 
 We assume the usage of IKE (v1 or v2) for this document, and ESP.
@@ -683,11 +688,33 @@ against fake certificates.
 If you need to use Pre-Shared Key authentication:
 
 \begin{enumerate}
 If you need to use Pre-Shared Key authentication:
 
 \begin{enumerate}
-\item Choose a \textbf{random} PSK of 20 characters or more (\todo{length, references!})
+\item Choose a \textbf{random}, \textbf{long enough} PSK (see below)
 \item Use a \textbf{separate} PSK for any IPSEC connection
 \item Change the PSKs regularily
 \end{enumerate}
 
 \item Use a \textbf{separate} PSK for any IPSEC connection
 \item Change the PSKs regularily
 \end{enumerate}
 
+The size of the PSK should not be shorter than the output size of
+the hash algorithm used in IKE \footnote{It is used in a HMAC, see
+  \url{http://www.ietf.org/rfc/rfc2104.txt}.}.
+
+For a key composed of upper- and lowercase letters, numbers, and two
+additional symbols \footnote{64 possible values = 6 bits}, that gives
+the following minimum lengths in characters:
+
+\begin{table}[h]
+  \centering
+  \small
+  \begin{tabular}{lc}
+    \toprule
+    IKE Hash & PSK length \\
+    \midrule
+    SHA256 & 43 \\
+    SHA384 & 64 \\
+    SHA512 & 86 \\
+    \bottomrule
+  \end{tabular}
+\end{table}
+
 \paragraph*{Cryptographic Suites}\mbox{}\\
 
 IPSEC Cryptographic Suites are pre-defined settings for all the
 \paragraph*{Cryptographic Suites}\mbox{}\\
 
 IPSEC Cryptographic Suites are pre-defined settings for all the
@@ -695,51 +722,149 @@ items of a configuration; they try to provide a balanced security
 level and make setting up VPNs easier.
 
 When using any of those suites, make sure to enable ``Perfect Forward
 level and make setting up VPNs easier.
 
 When using any of those suites, make sure to enable ``Perfect Forward
-Secrecy`` for Phase 2, as this is not specified in the suites.
+Secrecy`` for Phase 2, as this is not specified in the suites. The
+equivalents to the recommended ciphers suites in section
+\ref{section:recommendedciphers} are:
 
 
-\verb|Suite-B-GCM-256| \footnote{\url{http://tools.ietf.org/html/rfc6379}}
-would be roughly equivalent to ``Configuration A``, but keep in mind
-that it uses NIST elliptic curves for the Diffie-Hellman key exchange.
-
-\verb|Suite-B-GCM-128| or
-\verb|VPN-B| \footnote{\url{http://tools.ietf.org/html/rfc4308}} would
-be roughly equivalent to ``Configuration B``; again,
-\verb|Suite-B-GCM-128| uses NIST elliptic curves, \verb|VPN-B| does
-not.
-
-\todo{Aaron: make an example for how to include images}
-\todo{cm: screenshots of Checkpoint settings}
+\begin{table}[h]
+  \centering
+  \small
+  \begin{tabular}{lll}
+    \toprule
+    Configuration A & Configuration B & Notes\\
+    \midrule
+    \verb|Suite-B-GCM-256|\footnote{\url{http://tools.ietf.org/html/rfc6379}} &
+\verb|Suite-B-GCM-128| & Uses NIST elliptic curves
+\\ & \verb|VPN-B|\footnote{\url{http://tools.ietf.org/html/rfc4308}} &
+\\
+    \bottomrule
+  \end{tabular}
+\end{table}
 
 \paragraph*{IKE or Phase 1}\mbox{}\\
 
 
 \paragraph*{IKE or Phase 1}\mbox{}\\
 
+Alternatively to the pre-defined cipher suites, you can define your
+own, as described in this and the next section.
+
 IKE or Phase 1 is the mutual authentication and key exchange phase.
 
 Use only ``main mode``, as ``aggressive mode`` has known security
 vulnerabilities \footnote{\url{http://ikecrack.sourceforge.net/}}.
 
 IKE or Phase 1 is the mutual authentication and key exchange phase.
 
 Use only ``main mode``, as ``aggressive mode`` has known security
 vulnerabilities \footnote{\url{http://ikecrack.sourceforge.net/}}.
 
-Encryption Algorithm: AES or CAMELLIA
+\todo{how to make footnotes in a table appear in the output document?}
 
 
-Hash Algorithm: SHA2-256, SHA2-384 or SHA2-512
+\begin{table}
+  \centering
+  \small
+  \begin{tabular}{lll}
+    \toprule
+    & Configuration A & Configuration B \\
+    \midrule
+    Mode & Main Mode & Main Mode \\
+    Encryption & AES-256 & AES-256, CAMELLIA-256 \\
+    Hash & SHA2-* & SHA2-*, SHA1 \\
+    DH Group & Group 14--18 \footnote{2048--8192 bit DH},
+    19--21\footnote{(256--521 bit ECDH)} & Group 14--21 \\
+    Lifetime & \todo{need recommendations; 1 day seems to be common
+      practice} & \\
+    \bottomrule
+  \end{tabular}
+\end{table}
 
 
-DH Group: Group 14--18 (2048--8192 bit DH), or 19-21 (256--521 bit
-ECDH)
+\paragraph*{ESP or Phase 2}\mbox{}\\
 
 
-Lifetime: \todo{need recommendations; 1 day seems to be common practice}
+ESP or Phase 2 is where the actual data are protected.
 
 
-\todo{what about CAST?}
+\todo{make the tables appear right here!}
 
 
-\paragraph*{ESP or Phase 2}\mbox{}\\
+\begin{table}
+  \centering
+  \small
+  \begin{tabular}{lll}
+    \toprule
+    & Configuration A & Configuration B \\
+    \midrule
+    Perfect Forward Secrecy & yes & yes \\
+    Encryption & AES-GCM-16, AES-CTR, AES-CCM-16, AES-256 & AES-GCM-16, AES-CTR, AES-CCM-16, AES-256, CAMELLIA-256 \\
+    Hash & SHA2-* (or none for AES-GCM) & SHA2-*, SHA1 (or none for AES-GCM) \\
+    DH Group & Same as Phase 1 & Same as Phase 1 \\
+    Lifetime & \todo{need recommendations; 1-8 hours is common} & \\
+    \bottomrule
+  \end{tabular}
+\end{table}
 
 
-Enable ``Perfect Forward Secrecy`` with a DH Group equivalent to the
-one chosen for IKE.
+\item[References:] \mbox{}
 
 
-Encryption Algorithm: AES-GCM-16, AES-CTR, AES-CCM-16, AES-CBC, SEED
-or CAMELLIA \todo{order of this list?}
+``A Cryptographic Evaluation of IPsec'', Niels Ferguson and Bruce
+  Schneier: \url{https://www.schneier.com/paper-ipsec.pdf}
 
 
-Hash Algorithm: none (if using AES-GCM), HMAC-SHA-SHA256 or longer
-\todo{what about AES-XCBC-MAC?}
+\end{description}
+
+\subsubsection{Check Point FireWall-1}
+   
+\begin{description}
+\item[Tested with Version:] \mbox{}
+
+\begin{itemize}
+\item R77 (should work with any currently supported version)
+\end{itemize}
+
+\item[Settings:] \mbox{}
 
 
-Lifetime: \todo{need recommendations; 1--8 hours seems to be common practice}
+Please see section \ref{section:IPSECgeneral} for guidance on
+parameter choice. In this section, we will configure a strong setup
+according to ``Configuration A''.
+
+This is based on the concept of a ``VPN Community'', which has all the
+settings for the gateways that are included in that community.
+Communities can be found in the ``IPSEC VPN'' tab of SmartDashboard.
+
+\todo{make those graphics prettier -- whoever has the right LaTeX
+  mojo, please do!}
+
+\includegraphics{checkpoint_1.png}
+
+Either chose one of the encryption suites here, or proceed to
+``Custom Encryption...'', where you can set encryption and hash for
+Phase 1 and 2:
+
+\includegraphics{checkpoint_2.png}
+
+The Diffie-Hellman groups and Perfect Forward Secrecy Settings can be
+found under ``Advanced Settings'' / ``Advanced VPN Properties'':
+
+\includegraphics{checkpoint_3.png}
+
+\item[Additional settings:]
+
+For remote Dynamic IP Gateways, the settings are not taken from the
+community, but set in the ``Global Properties'' dialog under ``Remote
+Access'' / ``VPN Authentication and Encryption''. Via the ``Edit...''
+button, you can configure sets of algorithms that all gateways support:
+
+\includegraphics{checkpoint_4.png}
+
+Please note that these settings restrict the available algorithms for
+\textbf{all} gateways, and also influence the VPN client connections.
+
+%\item[Justification for special settings (if needed):]
+
+%\item[Limitations:]
+
+\item[References:]\mbox{}
+
+\begin{itemize}
+
+\item Check Point
+  \href{https://sc1.checkpoint.com/documents/R77/CP_R77_VPN_AdminGuide/html_frameset.htm}{VPN
+    R77 Administration Guide} (may require a
+  UserCenter account to access)
+
+\end{itemize}
+
+% \item[How to test:]
+
+\end{description}
 
 
 \subsubsection{OpenVPN}
 
 
 \subsubsection{OpenVPN}
@@ -799,7 +924,14 @@ cipher AES-256-CBC   # AES
 \todo{what about auth sha512 ?}
 
 \subsubsection{PPTP}
 \todo{what about auth sha512 ?}
 
 \subsubsection{PPTP}
-\todo{cm: please write this subsubsection}
+
+PPTP is broken, Microsoft recommends to ``use a more secure VPN
+tunnel''\footnote{\url{http://technet.microsoft.com/en-us/security/advisory/2743314}}.
+
+There is a cloud service that cracks the underlying MS-CHAPv2
+authentication protocol for the price of USD~200\footnote{\url{https://www.cloudcracker.com/blog/2012/07/29/cracking-ms-chap-v2/}},
+and given the resulting MD4 hash, all PPTP traffic for that user can
+be decrypted.
 
 \subsubsection{Cisco IPSec}
 \todo{write this subsubsection}
 
 \subsubsection{Cisco IPSec}
 \todo{write this subsubsection}