add slides for attacks (seperate)
[ach-master.git] / presentations / HACK.LU-2014 / presentation / attacks / content.tex
1
2 \begin{frame}{Internet Dark Ages}
3
4   \begin{itemize}
5     \item SSLv1 engineered at Netscape, never released to the public
6     \item Kipp Hickman of Netscape introduces SSLv2 as an IETF draft back in 1995:
7       \newline
8       \newline
9       \texttt{The SSL Protocol is designed to provide privacy between two communicating applications (a client and a server). Second, the protocol is designed to authenticate the server, and optionally the client. [...]}
10   \end{itemize}
11   \vspace{50px}
12
13   \tiny\url{http://tools.ietf.org/html/draft-hickman-netscape-ssl-00}
14
15 \end{frame}
16
17 \begin{frame}{Internet Dark Ages}
18   \begin{itemize}
19     \item SSLv2 was fundamentally broken and badly designed. Basically full loss of Confidentiallity and integrity of on-wire data thus susceptible to MITM attacks, see: \url{http://osvdb.org/56387}
20     \item CipherSpec is sent in the clear
21     \item Size of Block-cipher padding is sent in the clear
22   \end{itemize}
23 \end{frame}
24
25 \begin{frame}{Internet Dark Ages}
26   \begin{itemize}
27     \item SSLv3 was introduced in 1996 by Paul Kocher, Phil Karlton and Alan Freier, utilizing an algoritm by Taher ElGamal, a known cryptographer and Chief Scientist at Netscape at the time: \url{https://tools.ietf.org/html/rfc6101}
28   \end{itemize}
29 \end{frame}
30
31 \begin{frame}{Internet Dark Ages}
32   On a side note; back then the choice algorithms was limited and export ciphers (low security) common as recommended by NSA and mandated by US law. Google: ``Bernstein vs. United States''
33   \begin{itemize}
34     \item encryption algorithms (Confidentiality): NULL, FORTEZZA-CBC (NSA), IDEA-CBC, RC2-CBC-40 (40bit security), RC4-128, DES40-CBC (40bit security), DES-CBC (56bit security), Triple-DES-EDE-CBC
35     \item hash functions (integrity): NULL, MD5 and SHA
36   \end{itemize}
37 \end{frame}
38
39 \begin{frame}{Internet Dark Ages}
40   David Wagner and Bruce Schneier publish a paper entitled ``Analysis of the SSL 3.0 protocol'':
41   \begin{itemize}
42     \item Keyexchange algorithm rollback
43     \item Protocol fallback to SSLv2
44     \item Protocol leaks known plaintexts - may be used in cryptanalysis 
45     \item Replay attacks on Anonymous DH (don't use it anyway!)
46   \end{itemize}
47
48   \vspace{50px}
49
50   \tiny\url{https://www.schneier.com/paper-ssl.pdf}
51 \end{frame}
52
53 \begin{frame}{TLS appears}
54   1999. The SSL protocol is renamed to TLS (version 1) with little improvements over SSLv3. The spec. is almost identical.
55   \begin{itemize}
56     \item Diffie-Hellman, DSS and Triple-DES are now required by implementors
57     \item most SSLv3 security issues are still present in TLS 1.0
58   \end{itemize}
59   (RFC2246)
60 \end{frame}
61
62 \begin{frame}{TLS gets padding attacks}
63   2002. Vaudenay publishes a paper entitled ``Security Flaws Induced by CBC Padding
64 Applications to SSL, IPSEC, WTLS...'' 
65   \begin{itemize}
66     \item Side-channel attack on CBC mode padding
67     \item valid/invalid padding causes different reactions
68     \item can be used to influence decryption operations
69     \item introduces ``padding oracle attacks'' in SSL
70   \end{itemize}
71
72   \vspace{50px}
73
74   \tiny\url{http://www.iacr.org/cryptodb/archive/2002/EUROCRYPT/2850/2850.pdf}
75 \end{frame}
76
77 \begin{frame}{TLS gets extended}
78   2003. TLS extensions get specified in RFC3546.
79   \begin{itemize}
80     \item General: Extended Handshake, ClientHello and ServerHello
81     \item Server Name Indication (SNI) for virtual hosting\\(SNI leaks metadata!)
82     \item Certificate Status Request (CSR) support via OCSP
83     \item (...)
84   \end{itemize}
85 \end{frame}
86
87 \begin{frame}{TLS gets timing attacks}
88   2003. Brumley and Boneh publish a paper entitled ``Remote timing attacks are practical''.
89   \newline
90   \newline
91   Timing attack on RSA in SSL/TLS implementations (OpenSSL):
92   \begin{itemize}
93     \item Send specially crafted ClientKeyExchange message
94     \item Mesure time between ClienyKeyExchange and Alert response
95     \item do a bit of statistics
96     \item retrieve Private Key
97   \end{itemize}
98
99   \vspace{50px}
100
101   \tiny\url{http://dl.acm.org/citation.cfm?id=1251354}
102 \end{frame}
103
104 \begin{frame}{TLS gets padding oracle password retrieval}
105   2003. Canvel, Hiltgen, Vaudenay, Vuagnoux publish ``Password Interception in a SSL/TLS Channel''.
106   \newline
107   \newline
108   Extend earlier work of Vaudenay and successfully intercept IMAP passwords in TLS channels.
109
110   \vspace{95px}
111
112   \tiny\url{http://www.iacr.org/cryptodb/archive/2003/CRYPTO/1069/1069.pdf}
113 \end{frame}
114
115 \begin{frame}{TLS gets chosen plaintext attacks}
116   2004 \& 2006. Bard demonstrates Chosen-Plaintext Attacks against SSL and TLS1.0
117   \newline
118   \newline
119   Attack on CBC:
120   \begin{itemize}
121     \item CBC exchanges an Initialization Vector (IV) during Handshake
122     \item these IVs turn out to be predictable
123     \item PINs and Passwords can be decrypted
124     \item VPNs/Proxies can also be used to accomplish this task
125   \end{itemize}
126   
127   \vspace{50px}
128
129   \tiny
130   \url{https://eprint.iacr.org/2004/111}\\
131   \url{https://eprint.iacr.org/2006/136}
132 \end{frame}
133
134 \begin{frame}{TLS gets updated}
135   2006. A new TLS protocol version is standardized: TLS 1.1
136   \begin{itemize}
137     \item EXPORT ciphers removed
138     \item Session resumption 
139     \item Protection against the CBC attacks by Bard
140     \item IANA TLS parameters standardized
141     \item (...)
142   \end{itemize}
143    (RFC4346)
144 \end{frame}
145
146 \begin{frame}{TLS gets modern crypto}
147   2008. A new TLS protocol version is standardized: TLS 1.2
148   \begin{itemize}
149     \item MD5/SHA1 removed as pseudorandom function (PRF)
150     \item configurable PRFs in ciphersuites (e.g. SHA256)
151     \item Authenticated encryption: CCM, GCM
152     \item AES ciphersuites
153     \item (...)
154   \end{itemize}
155    (RFC5246)
156 \end{frame}
157
158 \begin{frame}{Rouge CA Certificates}
159   2008. Sotirov, Stevens, Appelbaum, Lenstra, Molnar, Osvik and de Weger present a paper based on earlier work by Lenstra et al. at 25c3 entitled ``MD5 considered harmful today''
160
161   \begin{itemize}
162     \item MD5 Hash-collision of a CA Certificate
163     \item Create colliding (rouge) CA Certificates
164     \item Generate any Certificate for MITM you want
165   \end{itemize}
166
167   \vspace{60px}
168
169   \tiny
170   \url{http://www.win.tue.nl/hashclash/rogue-ca/}\\
171   \url{https://www.youtube.com/watch?v=PQcWyDgGUVg}\\
172 \end{frame}
173
174 \begin{frame}{sslstrip}
175   2009. Moxie Marlinspike releases \emph{sslstrip} at BlackHat DC 2009.
176
177   \begin{itemize}
178     \item Client connects to server
179     \item Attacker intercepts session via MITM
180     \item Attacker sends HTTP 301 (moved permanently)
181     \item Attacker forwards requests to/from server via SSL/TLS
182     \item Client receives data via unencrypted channel
183     \item Attacker reads plaintext
184   \end{itemize}
185   
186   \vspace{50px}
187
188   \tiny
189   \url{http://www.thoughtcrime.org/software/sslstrip}\\
190   \url{http://vimeo.com/50018478}
191 \end{frame}
192
193 \begin{frame}{Null-prefix attacks against Certificates}
194   2009. Moxie Marlinspike publishes ``Null prefix Attacks against SSL/TLS Certificates''.
195
196   \begin{itemize}
197     \item Specially crafted domain strings trick CA checking
198     \item null-terminate stuff in a domain name
199     \item ex.: \texttt{www.paypal.com\textbackslash0.thoughtcrime.org} is valid
200     \item ex.: \texttt{*\textbackslash0.thoughtcrime.org} is valid
201     \item CA ignores prefix 
202     \item Client does not -> Certificate valid for prefix
203   \end{itemize}
204   Moxie updated his \emph{sslsniff} project to carry out this attack.
205   
206   \vspace{30px}
207
208   \tiny
209   \url{http://www.thoughtcrime.org/papers/null-prefix-attacks.pdf}\\
210   \url{http://thoughtcrime.org/software/sslsniff}
211 \end{frame}
212
213
214 \begin{frame}{SSLv2 Forbidden}
215   2011. IETF publishes and standardized a RFC to prohibit negotiation and thus compatibility of SSLv2 in TLS1.0-1.2 entirely. 
216   
217   \vspace{140px}
218
219   \tiny
220   \url{https://tools.ietf.org/html/rfc6176}
221 \end{frame}
222
223 \begin{frame}{Comodo}
224   2011. Comodo CA: Attacker issues 9 certificates via reseller account for popular domains (google.com, yahoo.com, live.com, skype.com [...])
225   
226   \vspace{160px}
227
228   \tiny
229   \url{https://www.comodo.com/Comodo-Fraud-Incident-2011-03-23.html}
230 \end{frame}
231
232 \begin{frame}{BEAST}
233   2011. Doung and Rizzo publish the BEAST attack at ekoparty and demo a live attack on PayPal. Based on Bards earlier work on predictable IVs in CBC:
234   \begin{itemize}
235     \item Phishing gets victim to visit a certain website
236     \item Script on said website makes request to genuine site
237     \item Attacker records encrypted cookie information
238     \item Tries to guess session-cookie with known CBC attack
239   \end{itemize}
240   Same Origin Policy (SOP) forbids this attack in client software. If SOP can be bypassed (as shown by the authors with Java's SOP) this attack is still practical.
241   
242   \vspace{30px}
243
244   \tiny
245   \url{http://vnhacker.blogspot.co.at/2011/09/beast.html}
246 \end{frame}
247
248
249 \begin{frame}{Trustwave}
250   2012. Trustwave CA: Trustwave sells subordinate CAs to big corporations to be used for Deep Packet Inspection.
251   \newline
252   \newline
253   A sub-CA can issue and fake any certificate for MITM attacks.
254
255
256   \vspace{80px}
257
258   \tiny
259   \url{http://blog.spiderlabs.com/2012/02/clarifying-the-trustwave-ca-policy-update.html}
260   \url{http://arstechnica.com/business/2012/02/critics-slam-ssl-authority-for-minting-cert-used-to-impersonate-sites/}
261 \end{frame}
262
263 \begin{frame}{DigiNotar}
264   2012. DigiNotar CA: Attackers compromise DigiNotar in it's entirety.
265
266   \begin{itemize}
267     \item attackers generate tons of certificates
268     \item Google Chromes certificate store detects mismatches
269     \item DigiNotar acknowledges breach
270     \item DigiNotar files for bankrupcy
271     \item FOX-IT never gets paid for the investigation
272   \end{itemize}
273
274
275   \vspace{30px}
276
277   \tiny
278   \url{https://en.wikipedia.org/wiki/DigiNotar}\\
279   \url{http://cryptome.org/0005/diginotar-insec.pdf}\\
280   \url{http://nakedsecurity.sophos.com/2011/09/05/operation-black-tulip-fox-its-report-on-the-diginotar-breach}\
281
282 \end{frame}
283
284 \begin{frame}{Certificate validation in non-browser software}
285   2012. Georgiev, Iyengar, Jana, Anubhai, Boneh and Shmatikov publish a paper entitled ``The most dangerous code in the world: validating SSL certificates in non-browser software''
286   \newline
287   \newline
288   Certificate validation vulnerabilities in:
289   \begin{itemize}
290     \item OpenSSL
291     \item GnuTLS
292     \item JSSE
293     \item EC2 Java libraries \& Amazon SDKs
294     \item PayPal SDKs
295     \item eCommerce/WebShop software
296     \item ..cURL, PHP, Python, tons of Java middleware
297   \end{itemize}
298
299   \tiny
300   \url{https://crypto.stanford.edu/~dabo/pubs/abstracts/ssl-client-bugs.html}
301 \end{frame}
302
303 \begin{frame}{CRIME}
304   2012. Doung and Rizzo publish an attack against TLS Compression and SPDY titled CRIME.
305
306   \begin{itemize}
307     \item MITM attacker sees length of compressed ciphertext
308     \item compression has direct affect on the length
309     \item attacker makes client compress/encrypt data (or uses known data) with secret data
310     \item attacker compares
311     \item correct guesses yield shorter messages due to compression
312     \item repeat until done
313   \end{itemize}
314   This is only feasible for small amounts of data, e.g. session strings, cookies and so forth.
315   
316   \vspace{10px}
317
318   \tiny
319   \url{https://isecpartners.com/blog/2012/september/details-on-the-crime-attack.aspx}
320 \end{frame}
321
322 \begin{frame}{TIME}
323   2013. Be'ery and Shulman present TIME at BlackHat Europe. Extend on the CRIME Attack:
324   \begin{itemize}
325     \item Attacker generates HTTP requests (XSS, injection,..)
326     \item Attacker exploits SOP design flaw and measures RTT differences
327     \item determines correct or failed guesses by SOP timing leak
328   \end{itemize}
329   
330   \vspace{70px}
331
332   \tiny
333   \url{https://media.blackhat.com/eu-13/briefings/Beery/bh-eu-13-a-perfect-crime-beery-wp.pdf}\\
334   \url{https://www.youtube.com/watch?v=rTIpFfTp3-w}
335 \end{frame}
336
337 \begin{frame}{Lucky13}
338   2013. AlFardan and Paterson present a novel attack against CBC for TLS and DTLS based on timing analysis.
339   \begin{itemize}
340     \item Attacker intercepts and modifies a message including padding
341     \item Attacker tempers with the padding of the message
342     \item MAC computation takes longer during decryption process
343     \item Attacker repeats and measures
344     \item Attacker performs padding oracle attack described earlier
345     \item (Extremely latency sensitive attack)
346   \end{itemize}
347
348   \vspace{50px}
349
350   \tiny
351   \url{http://www.isg.rhul.ac.uk/tls/Lucky13.html}\\
352   \url{http://www.isg.rhul.ac.uk/tls/TLStiming.pdf}
353 \end{frame}
354
355 \begin{frame}{RC4 Biases}
356   2013. AlFardan, Bernstein, Paterson, Poettering and Schuldt publish a generic attack on the RC4 cipher for TLS and WPA.
357   \begin{itemize}
358     \item Statistical biases in the first 257 bytes of ciphertext
359     \item Recovery of the first 200 bytes after $2^{28}$ to $2^{32}$ encryption operations of the same plaintext
360     \item A broadcast attack: mounted on unique keys
361     \item May also be mounted with a single key with repeating target plaintexts
362     \item Only feasible for large amounts of data and very time consuming
363   \end{itemize}
364   
365   \vspace{20px}
366
367   \tiny
368   \url{http://www.isg.rhul.ac.uk/tls}\\
369   \url{http://www.isg.rhul.ac.uk/tls/RC4biases.pdf}
370 \end{frame}
371
372 \begin{frame}{NIST curves}
373   2013 \& 2014. Daniel J. Bernstein and Tanja Lange voice concern about the NIST Elliptic Cuves that are widely implemented and used in TLS for ECDH and ECDSA
374   \begin{itemize}
375     \item NIST curves defined on recommendations by NSA's Jerry Solinas
376     \item Unclear why these curves and their parameters were chosen
377     \item NIST cites efficiency: more efficient and secure curves available
378     \item Possible mathematical backdoor through previous analysis and carefully chosen and unexplained parameters
379     \item Start SafeCurves project (ongoing)
380   \end{itemize}
381   
382
383   \tiny
384   \url{http://www.hyperelliptic.org/tanja/vortraege/20130531.pdf}\\
385   \url{http://cr.yp.to/talks/2013.09.16/slides-djb-20130916-a4.pdf}\\
386   \url{http://safecurves.cr.yp.to}\\
387   \url{https://archive.org/details/ShmooCon2014_SafeCurves}
388 \end{frame}
389
390 \begin{frame}{BREACH}
391   2013. Gluck, Harris and Prado demonstrate yet another attack based on CRIME at BlackHat USA.
392   \newline
393   \newline
394   Very similar to CRIME but the attack works based on information leaks from HTTP compression instead of TLS compression.
395   
396   \vspace{80px}
397
398   \tiny
399   \url{http://breachattack.com}\\
400   \url{https://www.youtube.com/watch?v=CoNKarq1IYA}
401 \end{frame}
402
403 \begin{frame}{Unused Certificates in Truststores}
404   2014. Perl, Fahl, Smith publish a paper entitled ``You Won't Be Needing These Any More: On Removing Unused Certificates From Trust Stores''
405   \begin{itemize}
406     \item Compared 48 mio. HTTP certificates
407     \item 140 CA Certificates are unused in all major trust stores
408     \item Of 426 trusted root certificates only 66\% are even used
409   \end{itemize}
410
411   
412   \vspace{70px}
413
414   \tiny
415   \url{http://fc14.ifca.ai/papers/fc14_submission_100.pdf}
416 \end{frame}
417
418 \begin{frame}{Triple Handshakes Considered Harmful}
419   2014. Bhargavan, Delignat-Lavaud, Pironti, Langley and Ray present an attack one day before the IETF'89 meeting in London.
420   \begin{itemize}
421     \item Limited to client-certificate authentication with renegotiation
422     \item MITM attack on renegotiation with a three-way handshake
423     \item Variations of the attack also discussed on their website
424     \item Can't possibly fit this into one slide, homework: understand the attack by reading their excellent description on the website
425   \end{itemize}
426
427   
428   \vspace{50px}
429
430   \tiny
431   \url{https://secure-resumption.com}\\
432   \url{https://secure-resumption.com/IETF-triple-handshakes.pdf}
433 \end{frame}
434
435 \begin{frame}{Frankencerts}
436   2014. Brubaker, Jana, Ray, Khurshid and Shmatikovy publish a paper entitled ``Using Frankencerts for Automated Adversarial Testing of Certificate Validation in SSL/TLS Implementations''
437   \begin{itemize}
438     \item Fuzzing of X.509 related code in all major implementations shows serious weaknesses in certificate validation and handling
439     \item OpenSSL, NSS, GnuTLS, MatrixSSL, PolarSSL, CyaSSL, cyptlib [...]
440   \end{itemize}
441
442   
443   \vspace{50px}
444
445   \tiny
446   \url{https://www.cs.utexas.edu/~shmat/shmat_oak14.pdf}\\
447   \url{https://github.com/sumanj/frankencert}
448 \end{frame}
449
450 \begin{frame}{Heartbleed}
451   2014. Heartbleed is independently discovered by Codenomicon and a Google Security engineer.
452   \newline
453   \newline
454   Faulty implementation in OpenSSL of the TLS Heartbleed extension leaks memory content over the wire. This has been all over the media and discussed in detail all over the internet. People have successfully extracted sensitive information (password files et cetera) from victim memory.
455   \newline
456   \newline
457   I wrote an nmap plugin to scan for Heartbleed: \url{https://github.com/azet/nmap-heartbleed}
458
459   \vspace{30px}
460
461   \tiny
462   \url{http://heartbleed.com}
463 \end{frame}
464
465 \begin{frame}{Virtual Host Confusion}
466   2014. At BlackHat Delignat-Lavaud presents an attack based on SSLv3 downgrade and sharing of session caches
467   \begin{itemize}
468     \item Attacker forces downgrade to SSLv3
469     \item For SSLv3: larger deployments share session caches
470     \item attacker exploits a server vulnerability where session caches are reused
471     \item attacker requests different subdomain with SSLv3 using the same session
472     \item vulnerable server will allow connection w/o authentication
473     \item www.company.com vs git.company.com
474   \end{itemize}
475   \tiny
476   \url{https://bh.ht.vc}
477 \end{frame}
478
479 \begin{frame}{POODLE}
480   2014. POODLE
481 \end{frame}
482