remove excessive vskips. handled by parskip
authorTobias Pape <tobias@netshed.de>
Fri, 27 Dec 2013 21:08:06 +0000 (22:08 +0100)
committerTobias Pape <tobias@netshed.de>
Sat, 28 Dec 2013 00:27:01 +0000 (01:27 +0100)
src/abstract.tex
src/disclaimer.tex
src/howtoread.tex
src/methods.tex
src/practical_settings/webserver.tex
src/theory/overview.tex

index 6ea2ec3..fa03f76 100644 (file)
@@ -1,13 +1,7 @@
 \begin{abstract}
 \section*{Abstract}
-
-
-\vskip 2em
-
 \epigraph{``Unfortunately, the computer security and cryptology communities have drifted apart over the last 25 years. Security people don't always understand the available crypto tools, and crypto people don't always understand the real-world problems.''}{Ross Anderson in \cite{anderson2008security}}
 
-\vskip 2em
-
 This guide arose out of the need for system administrators to have an
 updated, solid, well researched and thought-through guide for configuring SSL,
 PGP, SSH and other cryptographic tools in the post-Snowden age. Triggered by the NSA
@@ -15,18 +9,16 @@ leaks in the summer of 2013, many system administrators and IT security
 officers saw the need to strengthen their encryption settings.
 This guide is specifically written for these system administrators.
 
-\vskip 0.5em
 
 As Schneier noted in \cite{Sch13}, it seems that intelligence agencies and
 adversaries on the Internet are not breaking so much the mathematics of
 encryption per se, but rather use software and hardware weaknesses, subvert
 standardization processes, plant backdoors, rig random number generators and
 most of all exploit careless settings in server configurations and encryption
-systems to listen in on private communications.  Worst of all, most
-communication on the internet is not encrypted at all by default 
-(for SMTP, opportunistic TLS would be a solution). 
+systems to listen in on private communications. Worst of all, most
+communication on the internet is not encrypted at all by default (for SMTP,
+opportunistic TLS would be a solution).
 
-\vskip 0.5em
 
 This guide can only address one aspect of securing our information systems:
 getting the crypto settings right to the best of the authors' current
@@ -37,7 +29,6 @@ we would like to refer the reader to the the references in chapter
 \ref{section:Links} and \ref{section:Suggested_Reading} at the end of this
 document.
 
-\vskip 0.5em
 
 The focus of this guide is merely to give current \emph{best practices for
 configuring complex cipher suites} and related parameters in a \emph{copy \&
@@ -48,11 +39,9 @@ practice documents available when it comes to cryptography. However none of
 them focuses specifically on what an average system administrator needs for
 hardening his or her systems' crypto settings.
 
-\vskip 0.5em
 This guide tries to fill this gap.
 
 
-%\vskip 3.5em
 %\tiny
 %The guide was produced in an open source manner: every step of editing can be
 %traced back to a specific author via our version control system.
index 10d183a..802fd0d 100644 (file)
@@ -3,7 +3,6 @@
 \label{section:disclaimer}
 
 \epigraph{``A chain is no stronger than its weakest link, and life is after all a chain''}{William James}
-
 \epigraph{``Encryption works. Properly implemented strong crypto systems are
 one of the few things that you can rely on. Unfortunately, endpoint security is
 so terrifically weak that NSA can frequently find ways around it.''}{Edward
@@ -28,7 +27,6 @@ with.\footnote{An easy to read yet very insightful recent example is the
 "FLUSH+RELOAD" technique \cite{yarom2013flush+} for leaking cryptographic keys
 from one virtual machine to another via L3 cache timing attacks.}
 
-\vskip 0.5em
 This guide does not talk much about the well-known insecurities of trusting a
 public-key infrastructure (PKI)\footnote{Interested readers are referred to
 \url{https://bugzilla.mozilla.org/show_bug.cgi?id=647959} or
@@ -37,7 +35,6 @@ public-key infrastructure (PKI)\footnote{Interested readers are referred to
 does this text fully explain how to run your own Certificate Authority (CA). 
 
 
-\vskip 0.5em
 Most of this zoo of information security issues are addressed in the very
 comprehensive book ``Security Engineering'' by Ross Anderson
 \cite{anderson2008security}. 
@@ -47,7 +44,6 @@ strive to keep the language as non-technical as possible and fitting for our
 target audience: system administrators who can collectively improve the
 security level for all of their users. 
 
-\vskip 0.5em
 
 
 \epigraph{``Security is a process, not a product.''}{Bruce Schneier}
@@ -62,7 +58,6 @@ mind that tomorrow there might be new attacks on some ciphers and many of the
 recommendations in this guide might turn out to be wrong. Security is a
 process.
 
-\vskip 0.5em
 
 We therefore recommend that system administrators keep up to date with recent
 topics in IT security and cryptography. 
index dc75df2..026bb00 100644 (file)
@@ -1,17 +1,14 @@
 \section{How to read this guide}
 
 This guide tries to accommodate two needs: first of all, having a handy reference on how to configure the most common services's crypto settings and second of all, explaining a bit, how to chose your own cipher settings.
-\vskip 0.5em
 
 System administrators who want to copy \& paste recommendations quickly without spending a lot of time on background reading on cryptography or cryptanalysis can do so, by simply searching for the corresponding section in chapter  \ref{section:PracticalSettings} (``Practical recommendations''). However, for the quick copy \& paste approach it is important to know that this guide assumes users are happy with \textit{cipher String B} which is the baseline and most compatible recommendation that the authors came up with. \textit{Cipher string B} is described in \ref{section:recommendedciphers}.
 \textit{Cipher String B} covers the most common use-cases (such as running an e-commerce shop, a private homepage, a mail server, $ \ldots $)
 
-\vskip 0.5em
 While chapter \ref{section:PracticalSettings} is intended to serve as a copy \& paste reference, chapter \ref{chapter:Theory} (``Theory'') explains the reasoning behind \textit{cipher string B}. In particular, section \ref{section:CipherSuites} explains how to choose individual cipher strings. We advise the reader to actually read this section and challenge our reasoning in choosing \textit{cipher string B} and to come up with a better  or localized solution.
 
 %We start with some general remarks in sections \ref{section:DH},\ref{section:EllipticCurveCryptography},\ref{section:keylengths} on 
 %If you are a system administrator and want to quickly update your services, jump right to section \ref{section:PracticalSettings}. However, we recommend that you take some time and first read through the theory part (chapter \ref{chapter:Theory}), especially section \ref{section:CipherSuites} on how to choose your own cipher string and then adapt the settings in section \ref{section:PracticalSettings} to your own needs.
-\vskip 1.5em
 
 \begin{figure}[h]
   \centering
@@ -20,7 +17,4 @@ While chapter \ref{section:PracticalSettings} is intended to serve as a copy \&
   \label{fig:howtoread}
 \end{figure}
 
-\vskip 2em
-
-
 
index 00e2ae4..15b9d57 100644 (file)
@@ -19,12 +19,10 @@ mirror\footnote{\url{https://github.com/BetterCrypto/Applied-Crypto-Hardening}}
 for this paper.
 
 
-\vskip 0.5em
 
 Public peer-review and ``multiple eyes'' checking of our publication is the
 best strategy we can imagine at the present moment
 \footnote{\url{http://www.wired.com/opinion/2013/10/how-to-design-and-defend-against-the-perfect-backdoor/}}.
 
-\vskip 0.5em
 We invite the gentle reader to participate in this public review process.
 
index 7951b24..d8243af 100644 (file)
@@ -13,7 +13,6 @@
 
 Enabled modules \emph{SSL} and \emph{Headers} are required.
 
-
 %-All +TLSv1.1 +TLSv1.2
 \begin{lstlisting}[breaklines]
   SSLCertificateFile server.crt
@@ -33,8 +32,6 @@ Enabled modules \emph{SSL} and \emph{Headers} are required.
 
 Note that any cipher suite starting with ECDHE can be omitted, if in doubt.
 
-
-\vskip 1.0em
 \subsubsection{Additional settings}
 
 You might want to redirect everything to httpS:// if possible. In Apache you can do this with the following setting inside of a VirtualHost environment:
@@ -180,8 +177,6 @@ If you absolutely want to specify your own DH parameters, you can specify them v
 
 However, we advise you to read section \ref{section:DH} and stay with the standard IKE/IETF parameters (as long as they are $ > 1024 $ bits).
 
-\vskip 0.5em
-
 \subsubsection{Additional settings}
 
 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:
index 69e958f..49e9423 100644 (file)
@@ -6,14 +6,10 @@
 
 This chapter provides the necessary background information on why chapter \ref{chapter:PracticalSettings} recommended \textit{cipher string B}.
 
-\vskip 0.5em
 We start off by explaining the structure of cipher strings in section \ref{subsection:architecture} (architecture) and define Perfect Forward Secrecy (PFS) in \ref{subsection:PFS}. Next we present \textit{Cipher String A} and \textit{Cipher String B} in section \ref{section:recommendedciphers}. This concludes the section on cipher strings. In theory, the reader should now be able to construct his or her own cipher string. However, the question why certain settings were chosen still remains. To answer this part, we need to look at recommended keylengths, problems in specific algorithms and hash functions and other cryptographic parameters. As mentioned initially in section \ref{section:relatedPublications}, the ENISA (\cite{ENISA2013}), ECRYPT 2 (\cite{ii2011ecrypt}) and BSI (\cite{TR02102}) reports go much more into these topics and should be consulted in addition.
 
-\vskip 0.5em
 We try to answer the questions by explaining issues with random number generators (section \ref{section:RNGs}), keylengths (section \ref{section:keylengths}), current issues in ECC (section \ref{section:EllipticCurveCryptography}), a note of warning on SHA-1 (section \ref{section:SHA}) and some comments on Diffie Hellman key exchanges (section \ref{section:DH}). All of this is important in understanding why certain choices were made for \textit{Cipher String A and B}. However, for most system administrators, the question of compatibility is one of the most pressing ones. Having the freedom to be compatible with any client (even running on outdated operating systems) of course, reduces the security of our cipher strings. We address these topics in section \ref{subsection:compatibility}. 
 All these sections will allow a system administrator to balance his or her needs for strong encryption with usability and compatibility.
 
-\vskip 0.5em
-
 Last but not least, we finish this chapter by talking about issues in PKIs (section \ref{section:PKIs}), Certificate Authorities and on hardening a PKI. Note that these last few topics deserve a book on their own. Hence this guide can only mention a few current topics in this area.