2516f80a5fcc009c07f452faf7575fa22a0204aa
[ach-master.git] / presentations / HACK.LU-2014 / presentation / agenda.md
1 % Bettercrypto - Applied Crypto Hardening for Sysadmins
2 % L. Aaron Kaplan <kaplan@cert.at> ;  David Durvaux <david.durvaux@gmail.com>; Aaron Zauner <azet@azet.org>
3 % 2014/10/21
4 ---------------------------
5
6
7
8 # Part 1:  Intro to the project
9
10 ## Welcome 
11
12 ![Neboltai](img/neboltai.png)
13
14 %{\centering
15 %  \includegraphics[width=.7\textwidth]{img/neboltai.png}\par
16 %  \vbox{\emph{Do not talk unencrypted}}
17 %}
18
19 ---
20 # Overview 
21
22   1. Intro & Motivation
23   2. How we got started, how we work, what's there, what's missing, 
24      how to use the guide
25   3. History of Crypto in a nutshell
26   4. Theory
27   4. 10:10 __break__
28   5. Theory (cont.)
29   6. Attacks
30   7. Current trends (IETF, ...)
31   7. wrap up
32   9. 11:45 __lunch__
33     
34
35 # Prerequisites
36
37   * Participants should have a basic knowledge of System administration and be
38 familiar with configuring Apache, nginx, etc.
39   * Basic knowledge of crypto will help.
40
41 # Motivation
42
43 ![NSA](img/nsa.png)
44
45 # Motivation (2)
46
47 Please note:
48
49   * the leaks also revealed to non-democratic countries precise recipies on how to do country wide or even Internet-wide surveillance, traffic inspection and -modification, etc.
50   * If politicians in other countries did not know how to do this, now they know!
51   * If criminals did not know how to do this, now they know!
52
53 # The reaction
54
55 \centering { \textbf{Don't give them anything for free}\par
56   It's your home, you fight! }
57
58
59 # The reaction (2)
60
61   * We as humans are used to certain **modes** in communications:
62 spoken words tend to:
63     * be forgotten over time ("data expires")
64     * get modified/changed whenever "copied" (repeated)
65     * get changed/modified over time  ("forgetfullness")
66     * we tend to be not so harsh about them ("forgive")
67     * have a limited geographic range ("town talk")
68     * be very decentralized ("accoustic range")
69   * digital traces/data tends to be:
70     * stored for ever. Never modified by default
71     * used against you in the future
72     * very centralized
73     * copied very easily
74     * always searchable in O(log(n)) 
75     
76   
77 # The reaction (3)
78
79 \centering { \textbf{Crypto is the only thing that might still help}
80 \par
81 a.k.a.:\par
82         ``\textit{The Bottom Line Is That Encryption Does Work}'', Edward Snowden
83 }
84
85 # But where?
86
87   * Ca. August 2013: Adi Kriegisch asks Aaron where he could find good recommendations on SSL settings.
88   * Does that exist? At that time:
89     - no ssllabs cookbook
90     - only theoretical recommendations (ENISA, eCrypt II, NIST)
91     - ioerror's duraconf settings are outdated
92     - no practical copy & paste-able settings exist?
93
94
95 # Project plan
96
97 ![Project plan](img/metalab-world-domination.jpg)
98
99
100 # Project plan  (srsly)
101
102   * Do at least something against the **Cryptocalypse**
103   * Check SSL, SSH, PGP crypto SeIngs in the most common services and certificates:
104     –  Apache, Nginx, lighthNp
105         –  IMAP/POP servers (dovecot, cyrus, ...) –  openssl.conf
106         –  Etc.
107   * Write down our experinces as guide
108   * Create easy, copy & paste-able settings which are "OK" (as far as we know) for sysadmins.
109   * Keep the guide short. There are many good recommendations out there written by cryptographers for cryptographers
110   * Many eyes must check this!
111   * Make it open source
112
113   
114
115
116 # Why is this relevant for you?
117
118   * You run networks and services. These are targets. If you believe it or not.
119   * You produce code. Make sure it uses good crypto coding practices
120
121   * However good crypto is hard to achieve
122   * Crypto does not solve all problems, but it helps
123
124
125 # Who?
126
127 Wolfgang Breyha (uni VIE), David Durvaux (CERT.be), Tobias Dussa (KIT-CERT), L. Aaron Kaplan (CERT.at), Christian Mock (coretec), Daniel Kovacic (A-Trust), Manuel Koschuch (FH Campus Wien), Adi Kriegisch (VRVis), Ramin Sabet (A-Trust), Aaron Zauner (azet.org), Pepi Zawodsky (maclemon.at), IAIK, A-Sit, ...  
128
129
130 # Contents so far
131
132   * Intro
133   * Disclaimer 
134   * Methods 
135   * Theory
136     * Elliptic Curve Cryptography 
137     * Keylengths 
138     * Random Number Generators 
139     * Cipher suites – general overview & how to choose one
140   * Recommendations on practical settings 
141   * Tools 
142   * Links 
143   * Appendix
144
145
146 # Methods and Principles
147
148 C.O.S.H.E.R principle:
149   * **C**ompletely
150   * **O**pen 
151   * **S**ource
152   * **H**eaders
153   * **E**ngineering and
154   * **R**esearch
155
156 Methods:
157   * Public review
158   * commits get **discussed**
159   * recommendations **need** references (like wikipedia)
160   * Every commit gets logged
161   * We need your review!
162
163
164 # How to commit
165
166   * https://git.bettercrypto.org (master, read-only)
167   * https://github.com/BetterCrypto/ (please clone this one & send PRs)
168
169 How?
170   1. discuss the changes first on the mailinglist
171   2. clone 
172   3. follow the templates 
173   3. send pull requests
174   3. **split the commit into many smaller commits **
175   4. don't be cross if something does not get accepted. 
176   5. be ready for discussion
177  
178 # Theory part
179
180 \[
181 i \hbar \frac{\partial}{\partial t}\Psi = \hat H \Psi
182 \]
183
184
185 # Some thoughts on ECC
186
187   * Currently this is under heavy debate
188   * Trust the Math
189     * eg. NIST P-256 (http://safecurves.cr.yp.to/rigid.html)
190     * Coefficients generated by hashing the unexplained seed c49d3608 86e70493 6a6678e1 139d26b7 819f7e90.
191   * Might have to change settings tomorrow
192   * Most Applications only work with NIST-Curves
193   * Bottom line: we leave the choice of ECC yes or no to the reader. You might have to adapt again.
194   * However, many server operators tend towards ECC  (speed)
195
196 # Keylengths
197
198   * http://www.keylength.com/ 
199   * Recommended Keylengths, Hashing algorithms, etc.
200   * Currently:
201     * RSA: >= 3248 bits (Ecrypt II)     
202     * ECC: >= 256       
203     * SHA 2+ (SHA 256,…)
204     * AES 128 is good enough
205
206 # AES 128? Is that enough?
207
208 \centering{,,On the choice between AES256 and AES128: I would never consider using AES256, just like I don’t wear a helmet when I sit inside my car. It’s too much bother for the epsilon improvement in security.''\par
209 — Vincent Rijmen in a personal mail exchange Dec 2013
210 }
211   * Some theoretical attacks on AES-256
212
213
214
215
216
217
218