GPG section: fix spelling
[ach-master.git] / src / practical_settings.tex
index 0f6f6fc..ebf9c09 100644 (file)
@@ -52,7 +52,7 @@ You should redirect everything to httpS:// if possible. In Apache you can do thi
     ssl.engine  = "enable"
     ssl.use-sslv2 = "disable"
     ssl.use-sslv3 = "disable"
     ssl.engine  = "enable"
     ssl.use-sslv2 = "disable"
     ssl.use-sslv3 = "disable"
-    ssl.use-compression = "disable"
+    #ssl.use-compression obsolete >= 1.4.3.1
     ssl.pemfile = "/etc/lighttpd/server.pem"
     ssl.cipher-list = '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'
     ssl.honor-cipher-order = "enable"
     ssl.pemfile = "/etc/lighttpd/server.pem"
     ssl.cipher-list = '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'
     ssl.honor-cipher-order = "enable"
@@ -194,7 +194,10 @@ Dovecot 2.1: Almost as good as dovecot 2.2. Does not support ssl\_prefer\_server
 
 \paragraph*{Limitations}\mbox{}\\
 
 
 \paragraph*{Limitations}\mbox{}\\
 
-Dovecot currently does not support disabling TLS compression.
+Dovecot currently does not support disabling TLS compression. Furthermore, DH parameters
+greater than 1024bit aren't possible. The most recent version 2.2.7 of Dovecot implements
+configurable DH parameter length
+\footnote{\url{http://hg.dovecot.org/dovecot-2.2/rev/43ab5abeb8f0}}.
 
 \subsubsection{cyrus-imapd (based on 2.4.17)}
 
 
 \subsubsection{cyrus-imapd (based on 2.4.17)}
 
@@ -450,13 +453,14 @@ There already is a working patch to provide support:\\
 \subsection{SSH}
 
 \begin{lstlisting}[breaklines]
 \subsection{SSH}
 
 \begin{lstlisting}[breaklines]
-       RSAAuthentication yes
+       Protocol 2
+       PermitEmptyPasswords no
        PermitRootLogin no
        StrictModes yes
        HostKey /etc/ssh/ssh_host_rsa_key
        Ciphers aes256-ctr
        MACs hmac-sha2-512,hmac-sha2-256,hmac-ripemd160
        PermitRootLogin no
        StrictModes yes
        HostKey /etc/ssh/ssh_host_rsa_key
        Ciphers aes256-ctr
        MACs hmac-sha2-512,hmac-sha2-256,hmac-ripemd160
-       KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1
+       KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1
 \end{lstlisting}
 
 % XXX: curve25519-sha256@libssh.org only available upstream(!)
 \end{lstlisting}
 
 % XXX: curve25519-sha256@libssh.org only available upstream(!)
@@ -469,11 +473,80 @@ Note: older linux systems won't support SHA2, PuTTY does not support RIPE-MD160.
 \todo{write this subsection}
 
 \subsection{IPSec}
 \todo{write this subsection}
 
 \subsection{IPSec}
-\todo{write this subsection}
+
+\paragraph*{Assumptions}\mbox{}\\
+
+We assume the usage of IKE (v1 or v2) for this document, and ESP.
+
+\paragraph*{Authentication}\mbox{}\\
+
+IPSEC authentication should optimally be performed via RSA signatures,
+with a key size of 2048 bits or more. Configuring only the trusted CA
+that issued the peer certificate provides for additional protection
+against fake certificates.
+
+If you need to use Pre-Shared Key authentication:
+
+\begin{enumerate}
+\item Choose a random PSK of 20 characters or more (\todo{length, references!})
+\item Use a separate PSK for any IPSEC connection
+\item Change the PSKs regularily
+\end{enumerate}
+
+\paragraph*{Cryptographic Suites}\mbox{}\\
+
+IPSEC Cryptographic Suites are pre-defined settings for all the
+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
+Secrecy`` for Phase 2, as this is not specified in the suites.
+
+\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.
+
+\paragraph*{IKE or Phase 1}\mbox{}\\
+
+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
+
+Hash Algorithm: SHA2-256, SHA2-384 or SHA2-512
+
+DH Group: Group 14--18 (2048--8192 bit DH), or 19-21 (256--521 bit
+ECDH)
+
+Lifetime: \todo{need recommendations; 1 day seems to be common practice}
+
+\todo{what about blowfish, CAST?}
+
+\paragraph*{ESP or Phase 2}\mbox{}\\
+
+Enable ``Perfect Forward Secrecy`` with a DH Group equivalent to the
+one chosen for IKE.
+
+Encryption Algorithm: AES-GCM-16, AES-CTR, AES-CCM-16, AES-CBC, SEED
+or CAMELLIA \todo{order of this list?}
+
+Hash Algorithm: none (if using AES-GCM), HMAC-SHA-SHA256 or longer
+\todo{what about AES-XCBC-MAC?}
+
+Lifetime: \todo{need recommendations; 1--8 hours seems to be common practice}
+
 
 \subsection{PGP/ GPG - Pretty Good Privacy}
 
 
 \subsection{PGP/ GPG - Pretty Good Privacy}
 
-\todo{write this subsection -- this is still only a draft!!}
+\todo{re-work this subsection -- this is still only a draft!!}
 \input{GPG}
 
 
 \input{GPG}