Merge branch 'master' of https://git.bettercrypto.org/ach-master
authorAaron Kaplan <aaron@lo-res.org>
Fri, 22 Nov 2013 21:53:53 +0000 (22:53 +0100)
committerAaron Kaplan <aaron@lo-res.org>
Fri, 22 Nov 2013 21:53:53 +0000 (22:53 +0100)
1  2 
src/practical_settings.tex

@@@ -209,7 -209,7 +209,7 @@@ tested using https://www.ssllabs.com
  
  Table~\ref{tab:MS_IIS_Client_Support} shows the algoriths from
  strongest to weakest and why they need to be added in this order. For
 -example insiting on SHA-2 algorithms (only first two lines) would
 +example insisting on SHA-2 algorithms (only first two lines) would
  eliminate all versions of Firefox, so the last line is needed to
  support this browser, but should be placed at the bottom, so capable
  browsers will choose the stronger SHA-2 algorithms.
@@@ -663,12 -663,17 +663,17 @@@ Note: older linux systems won't suppor
  
  \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: 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))} \\
  
+ \begin{description}
+ \item[Settings:] \mbox{}
  \paragraph*{Assumptions}\mbox{}\\
  
  We assume the usage of IKE (v1 or v2) for this document, and ESP.
@@@ -683,11 -688,33 +688,33 @@@ against fake certificates
  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}
  
+ 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
@@@ -695,51 -722,149 +722,149 @@@ items of a configuration; they try to p
  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{}\\
  
+ 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/}}.
  
- 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}
@@@ -799,7 -924,14 +924,14 @@@ cipher AES-256-CBC   # AE
  \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}